diff --git a/README.md b/README.md index 3ab0ce44b..d52b36418 100644 --- a/README.md +++ b/README.md @@ -34,16 +34,16 @@ This repository is a pnpm workspaces monorepo containing the following packages: This repository is a pnpm workspaces monorepo containing the following packages: -| Package | Latest version | Description | -| --- | --- | --- | -| [contracts](./packages/contracts) | [![npm version](https://badge.fury.io/js/@graphprotocol%2Fcontracts.svg)](https://badge.fury.io/js/@graphprotocol%2Fcontracts) | Contracts enabling the open and permissionless decentralized network known as The Graph protocol. | -| [eslint-graph-config](./packages/eslint-graph-config) | - | Shared linting and formatting rules for TypeScript projects. | -| [horizon](./packages/horizon) | - | Contracts for Graph Horizon, the next iteration of The Graph protocol. | -| [sdk](./packages/sdk) | [![npm version](https://badge.fury.io/js/@graphprotocol%2Fsdk.svg)](https://badge.fury.io/js/@graphprotocol%2Fsdk) | TypeScript based SDK to interact with the protocol contracts | -| [solhint-graph-config](./packages/solhint-graph-config) | - | Shared linting and formatting rules for Solidity projects. | -| [solhint-plugin-graph](./packages/solhint-plugin-graph) | - | Plugin for Solhint with specific Graph linting rules. | -| [subgraph-service](./packages/subgraph-service) | - | Contracts for the Subgraph data service in Graph Horizon. | -| [token-distribution](./packages/token-distribution) | [![npm version](https://badge.fury.io/js/@graphprotocol%2Ftoken-distribution.svg)](https://badge.fury.io/js/@graphprotocol%2Ftoken-distribution) | Contracts managing token locks for network participants | +| Package | Latest version | Description | +| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- | +| [contracts](./packages/contracts) | [![npm version](https://badge.fury.io/js/@graphprotocol%2Fcontracts.svg)](https://badge.fury.io/js/@graphprotocol%2Fcontracts) | Contracts enabling the open and permissionless decentralized network known as The Graph protocol. | +| [eslint-graph-config](./packages/eslint-graph-config) | - | Shared linting and formatting rules for TypeScript projects. | +| [horizon](./packages/horizon) | - | Contracts for Graph Horizon, the next iteration of The Graph protocol. | +| [sdk](./packages/sdk) | [![npm version](https://badge.fury.io/js/@graphprotocol%2Fsdk.svg)](https://badge.fury.io/js/@graphprotocol%2Fsdk) | TypeScript based SDK to interact with the protocol contracts | +| [solhint-graph-config](./packages/solhint-graph-config) | - | Shared linting and formatting rules for Solidity projects. | +| [solhint-plugin-graph](./packages/solhint-plugin-graph) | - | Plugin for Solhint with specific Graph linting rules. | +| [subgraph-service](./packages/subgraph-service) | - | Contracts for the Subgraph data service in Graph Horizon. | +| [token-distribution](./packages/token-distribution) | [![npm version](https://badge.fury.io/js/@graphprotocol%2Ftoken-distribution.svg)](https://badge.fury.io/js/@graphprotocol%2Ftoken-distribution) | Contracts managing token locks for network participants | ## Development @@ -110,7 +110,7 @@ Packages are published and distributed via NPM. To publish a package, run the fo # Publish the packages $ pnpm changeset publish -# Alternatively use +# Alternatively use $ pnpm publish --recursive ``` diff --git a/count-patterns.txt b/count-patterns.txt index 60717b3ec..f92174429 100644 --- a/count-patterns.txt +++ b/count-patterns.txt @@ -8,7 +8,7 @@ # Include patterns (files to count): packages/issuance/contracts/**/*.sol packages/contracts/contracts/rewards/RewardsManager*.sol -packages/common/contracts/**/*.sol +packages/interfaces/contracts/**/*.sol # Exclude patterns (files to ignore): !*/mocks/*.sol diff --git a/natspec-smells.config.js b/natspec-smells.config.js index d333109a3..79d04ee35 100644 --- a/natspec-smells.config.js +++ b/natspec-smells.config.js @@ -11,7 +11,7 @@ /** @type {import('@defi-wonderland/natspec-smells').Config} */ module.exports = { - include: ['packages/issuance/contracts/**/*.sol', 'packages/common/contracts/**/*.sol'], + include: ['packages/issuance/contracts/**/*.sol', 'packages/interfaces/contracts/**/*.sol'], root: './', diff --git a/package.json b/package.json index 65475835a..882639d81 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "postinstall": "husky", "clean": "pnpm -r run clean", "clean:all": "pnpm clean && rm -rf node_modules packages/*/node_modules", - "build": "chmod +x ./scripts/build && ./scripts/build", + "build": "pnpm -r run build", "lint": "pnpm lint:ts; pnpm lint:sol; pnpm lint:natspec; pnpm lint:md; pnpm lint:json; pnpm lint:yaml", "lint:ts": "eslint --fix --cache '**/*.{js,ts,cjs,mjs,jsx,tsx}'; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", "lint:sol": "solhint --fix --noPrompt --noPoster 'packages/*/contracts/**/*.sol'; prettier -w --cache --log-level warn '**/*.sol'", diff --git a/packages/common/README.md b/packages/common/README.md deleted file mode 100644 index 20e550114..000000000 --- a/packages/common/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# @graphprotocol/common - -Common utilities and configuration for Graph Protocol packages. - -## Overview - -This package provides shared utilities and configuration for all Graph Protocol packages. It centralizes network configurations, contract addresses, and environment variable handling to ensure consistency across packages. - -## Installation - -```bash -# From the root of the monorepo -yarn workspace @graphprotocol/common install -``` - -## Usage - -TODO: This needs to be refactored with Ignition usage. - -### Network Configuration - -```javascript -import { - getNetworkConfig, - getNetworkConfigByChainId, - isL2Network, - isProductionNetwork, - getAnvilForkConfig, -} from '@graphprotocol/common' - -// Get network configuration by name -const arbitrumConfig = getNetworkConfig('arbitrumOne') -console.log(arbitrumConfig.displayName) // Arbitrum One -console.log(arbitrumConfig.sourceRpcUrl) // https://arb1.arbitrum.io/rpc -console.log(arbitrumConfig.localRpcUrl) // http://127.0.0.1:8545 - -// Get network configuration by chain ID -const ethereumConfig = getNetworkConfigByChainId(1) -console.log(ethereumConfig.name) // ethereumMainnet - -// Check if a network is an L2 -const isL2 = isL2Network('arbitrumOne') // true - -// Check if a network is a production network -const isProd = isProductionNetwork('arbitrumOne') // true - -// Configure an Anvil fork for a specific network -const forkConfig = getAnvilForkConfig('arbitrumOne') -console.log(forkConfig.displayName) // Anvil Fork of Arbitrum One -console.log(forkConfig.sourceRpcUrl) // https://arb1.arbitrum.io/rpc -console.log(forkConfig.localRpcUrl) // http://127.0.0.1:8545 -``` - -Each network configuration includes: - -- `name`: Internal name of the network -- `displayName`: Human-readable name of the network -- `chainId`: Chain ID of the network -- `sourceRpcUrl`: RPC URL of the actual network (used for forking) -- `localRpcUrl`: RPC URL for local development/testing (used for connecting) -- `blockExplorer`: URL of the block explorer -- `isL2`: Whether the network is an L2 -- `isProduction`: Whether the network is a production network -- `paramsFile`: Path to the parameter file for deployments - -### Contract Addresses - -```javascript -import { getContractAddress, getAllContractAddresses } from '@graphprotocol/common' - -// Get a specific contract address -const graphTokenAddress = getContractAddress(1, 'GraphToken') -console.log(graphTokenAddress) // 0x... - -// Get all contract addresses for a chain ID -const addresses = getAllContractAddresses(1) -console.log(addresses.GraphToken) // 0x... -``` - -Note: For Arbitrum networks, the GraphToken contract address is stored as L2GraphToken in the addresses.json file, but you can still use 'GraphToken' as the contract name in your code. - -### Environment Variables - -```javascript -import { loadEnv, getEnv, getBoolEnv, getNumericEnv } from '@graphprotocol/common' - -// Load environment variables from a file -loadEnv('.env.arbitrum-one') - -// Get environment variables with fallbacks -const rpcUrl = getEnv('RPC_URL', 'http://localhost:8545') -const isProduction = getBoolEnv('PRODUCTION', false) -const chainId = getNumericEnv('CHAIN_ID', 1) -``` - -## Command-line Usage - -The addresses.js module can be used directly from the command line: - -```bash -# Get a specific contract address -node src/config/addresses.js 1 GraphToken - -# Get all contract addresses for a chain ID -node src/config/addresses.js 1 -``` - -## Directory Structure - -```text -src/ - config/ # Shared configuration - networks.js # Network configurations - addresses.js # Contract addresses utility - ignition/ # Ignition-specific configuration - parameters/ # Shared parameter templates - utils/ # Shared utilities - env.js # Environment variable handling - index.js # Main entry point -``` - -## Contributing - -To add a new network configuration, update the `NETWORKS` object in `src/config/networks.js`. - -To add new utilities, create a new file in the appropriate directory and export it from `src/index.js`. diff --git a/packages/common/contracts/rewards/IRewardsManager.sol b/packages/common/contracts/rewards/IRewardsManager.sol deleted file mode 100644 index 8856816ef..000000000 --- a/packages/common/contracts/rewards/IRewardsManager.sol +++ /dev/null @@ -1,141 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -pragma solidity ^0.7.6 || ^0.8.0; - -interface IRewardsManager { - /** - * @dev Stores accumulated rewards and snapshots related to a particular SubgraphDeployment. - * @param accRewardsForSubgraph Accumulated rewards for the subgraph - * @param accRewardsForSubgraphSnapshot Snapshot of accumulated rewards for the subgraph - * @param accRewardsPerSignalSnapshot Snapshot of accumulated rewards per signal - * @param accRewardsPerAllocatedToken Accumulated rewards per allocated token - */ - struct Subgraph { - uint256 accRewardsForSubgraph; - uint256 accRewardsForSubgraphSnapshot; - uint256 accRewardsPerSignalSnapshot; - uint256 accRewardsPerAllocatedToken; - } - - // -- Config -- - - /** - * @notice Set the issuance per block for rewards distribution - * @param _issuancePerBlock The amount of tokens to issue per block - */ - function setIssuancePerBlock(uint256 _issuancePerBlock) external; - - /** - * @notice Sets the minimum signaled tokens on a subgraph to start accruing rewards - * @dev Can be set to zero which means that this feature is not being used - * @param _minimumSubgraphSignal Minimum signaled tokens - */ - function setMinimumSubgraphSignal(uint256 _minimumSubgraphSignal) external; - - function setSubgraphService(address _subgraphService) external; - - // -- Denylist -- - - /** - * @notice Set the subgraph availability oracle address - * @param _subgraphAvailabilityOracle The address of the subgraph availability oracle - */ - function setSubgraphAvailabilityOracle(address _subgraphAvailabilityOracle) external; - - /** - * @notice Set the denied status for a subgraph deployment - * @param _subgraphDeploymentID The subgraph deployment ID - * @param _deny True to deny, false to allow - */ - function setDenied(bytes32 _subgraphDeploymentID, bool _deny) external; - - /** - * @notice Check if a subgraph deployment is denied - * @param _subgraphDeploymentID The subgraph deployment ID to check - * @return True if the subgraph is denied, false otherwise - */ - function isDenied(bytes32 _subgraphDeploymentID) external view returns (bool); - - // -- Getters -- - - /** - * @notice Gets the issuance of rewards per signal since last updated - * @dev Linear formula: `x = r * t` - * - * Notation: - * t: time steps are in blocks since last updated - * x: newly accrued rewards tokens for the period `t` - * - * @return newly accrued rewards per signal since last update, scaled by FIXED_POINT_SCALING_FACTOR - */ - function getNewRewardsPerSignal() external view returns (uint256); - - /** - * @notice Gets the currently accumulated rewards per signal - * @return Currently accumulated rewards per signal - */ - function getAccRewardsPerSignal() external view returns (uint256); - - /** - * @notice Get the accumulated rewards for a specific subgraph - * @param _subgraphDeploymentID The subgraph deployment ID - * @return The accumulated rewards for the subgraph - */ - function getAccRewardsForSubgraph(bytes32 _subgraphDeploymentID) external view returns (uint256); - - /** - * @notice Gets the accumulated rewards per allocated token for the subgraph - * @param _subgraphDeploymentID Subgraph deployment - * @return Accumulated rewards per allocated token for the subgraph - * @return Accumulated rewards for subgraph - */ - function getAccRewardsPerAllocatedToken(bytes32 _subgraphDeploymentID) external view returns (uint256, uint256); - - /** - * @notice Calculate current rewards for a given allocation on demand - * @param _allocationID Allocation - * @return Rewards amount for an allocation - */ - function getRewards(address _allocationID) external view returns (uint256); - - function calcRewards(uint256 _tokens, uint256 _accRewardsPerAllocatedToken) external pure returns (uint256); - - // -- Updates -- - - /** - * @notice Updates the accumulated rewards per signal and save checkpoint block number - * @dev Must be called before `issuancePerBlock` or `total signalled GRT` changes. - * Called from the Curation contract on mint() and burn() - * @return Accumulated rewards per signal - */ - function updateAccRewardsPerSignal() external returns (uint256); - - /** - * @notice Pull rewards from the contract for a particular allocation - * @dev This function can only be called by the Staking contract. - * This function will mint the necessary tokens to reward based on the inflation calculation. - * @param _allocationID Allocation - * @return Assigned rewards amount - */ - function takeRewards(address _allocationID) external returns (uint256); - - // -- Hooks -- - - /** - * @notice Triggers an update of rewards for a subgraph - * @dev Must be called before `signalled GRT` on a subgraph changes. - * Hook called from the Curation contract on mint() and burn() - * @param _subgraphDeploymentID Subgraph deployment - * @return Accumulated rewards for subgraph - */ - function onSubgraphSignalUpdate(bytes32 _subgraphDeploymentID) external returns (uint256); - - /** - * @notice Triggers an update of rewards for a subgraph - * @dev Must be called before allocation on a subgraph changes. - * Hook called from the Staking contract on allocate() and close() - * @param _subgraphDeploymentID Subgraph deployment - * @return Accumulated rewards per allocated token for a subgraph - */ - function onSubgraphAllocationUpdate(bytes32 _subgraphDeploymentID) external returns (uint256); -} diff --git a/packages/common/contracts/token/IGraphToken.sol b/packages/common/contracts/token/IGraphToken.sol deleted file mode 100644 index c1d44a2f3..000000000 --- a/packages/common/contracts/token/IGraphToken.sol +++ /dev/null @@ -1,104 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -pragma solidity ^0.7.6 || ^0.8.0; - -import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; - -/** - * @title IGraphToken - * @notice Interface for the Graph Token contract - * @dev Extends IERC20 with additional functionality for minting, burning, and permit - */ -interface IGraphToken is IERC20 { - // -- Mint and Burn -- - - /** - * @notice Burns tokens from the caller's account - * @param amount The amount of tokens to burn - */ - function burn(uint256 amount) external; - - /** - * @notice Burns tokens from a specified account (requires allowance) - * @param _from The account to burn tokens from - * @param amount The amount of tokens to burn - */ - function burnFrom(address _from, uint256 amount) external; - - /** - * @notice Mints new tokens to a specified account - * @dev Only callable by accounts with minter role - * @param _to The account to mint tokens to - * @param _amount The amount of tokens to mint - */ - function mint(address _to, uint256 _amount) external; - - // -- Mint Admin -- - - /** - * @notice Adds a new minter account - * @dev Only callable by accounts with appropriate permissions - * @param _account The account to grant minter role to - */ - function addMinter(address _account) external; - - /** - * @notice Removes minter role from an account - * @dev Only callable by accounts with appropriate permissions - * @param _account The account to revoke minter role from - */ - function removeMinter(address _account) external; - - /** - * @notice Renounces minter role for the caller - * @dev Allows a minter to voluntarily give up their minting privileges - */ - function renounceMinter() external; - - /** - * @notice Checks if an account has minter role - * @param _account The account to check - * @return True if the account is a minter, false otherwise - */ - function isMinter(address _account) external view returns (bool); - - // -- Permit -- - - /** - * @notice Allows approval via signature (EIP-2612) - * @param _owner The token owner's address - * @param _spender The spender's address - * @param _value The allowance amount - * @param _deadline The deadline timestamp for the permit - * @param _v The recovery byte of the signature - * @param _r Half of the ECDSA signature pair - * @param _s Half of the ECDSA signature pair - */ - function permit( - address _owner, - address _spender, - uint256 _value, - uint256 _deadline, - uint8 _v, - bytes32 _r, - bytes32 _s - ) external; - - // -- Allowance -- - - /** - * @notice Increases the allowance granted to a spender - * @param spender The account whose allowance will be increased - * @param addedValue The amount to increase the allowance by - * @return True if the operation succeeded - */ - function increaseAllowance(address spender, uint256 addedValue) external returns (bool); - - /** - * @notice Decreases the allowance granted to a spender - * @param spender The account whose allowance will be decreased - * @param subtractedValue The amount to decrease the allowance by - * @return True if the operation succeeded - */ - function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); -} diff --git a/packages/common/hardhat.config.js b/packages/common/hardhat.config.js deleted file mode 100644 index 4a1e07786..000000000 --- a/packages/common/hardhat.config.js +++ /dev/null @@ -1,37 +0,0 @@ -const config = { - solidity: { - compilers: [ - { - version: '0.8.27', - settings: { - optimizer: { - enabled: true, - runs: 200, - }, - }, - }, - { - version: '0.7.6', - settings: { - optimizer: { - enabled: true, - runs: 200, - }, - }, - }, - ], - }, - paths: { - sources: './contracts', - artifacts: './artifacts', - cache: './cache', - }, - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - }, - }, -} - -module.exports = config diff --git a/packages/common/package.json b/packages/common/package.json deleted file mode 100644 index cf0842774..000000000 --- a/packages/common/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "@graphprotocol/common", - "version": "0.1.0", - "description": "Common utilities and configuration for Graph Protocol packages", - "main": "build/index.js", - "types": "types/index.d.ts", - "exports": { - ".": { - "import": "./build/index.js", - "types": "./types/index.d.ts" - } - }, - "files": [ - "build/**/*", - "types/**/*", - "contracts/**/*", - "artifacts/**/*", - "README.md" - ], - "author": "The Graph Team", - "license": "GPL-2.0-or-later", - "scripts": { - "clean": "rm -rf build cache types artifacts", - "lint": "pnpm lint:ts; pnpm lint:sol; pnpm lint:natspec; pnpm lint:md; pnpm lint:json", - "lint:ts": "eslint '**/*.{js,ts,cjs,mjs,jsx,tsx}' --fix --cache; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", - "lint:sol": "solhint --fix --noPrompt --noPoster 'contracts/**/*.sol'; prettier -w --cache --log-level warn 'contracts/**/*.sol'", - "lint:natspec": "cd ../.. && node scripts/filter-natspec.js --include 'packages/common/contracts/**/*.sol'", - "lint:md": "markdownlint --fix --ignore-path ../../.gitignore '**/*.md'; prettier -w --cache --log-level warn '**/*.md'", - "lint:json": "prettier -w --cache --log-level warn '**/*.json'", - "format": "prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx,json,md,yaml,yml}'", - "build": "hardhat compile", - "build:contracts": "hardhat compile", - "build:clean": "pnpm clean && pnpm build" - }, - "dependencies": { - "dotenv": "^16.3.1" - }, - "devDependencies": { - "@defi-wonderland/natspec-smells": "^1.1.6", - "@types/node": "^20.17.50", - "eslint": "^9.28.0", - "eslint-config-prettier": "^10.1.5", - "globals": "^16.1.0", - "hardhat": "^2.24.0", - "markdownlint-cli": "^0.45.0", - "prettier": "^3.5.3", - "prettier-plugin-solidity": "^2.0.0", - "solhint": "5.1.0", - "typescript": "^5.8.3", - "typescript-eslint": "^8.33.1" - } -} diff --git a/packages/common/tsconfig.json b/packages/common/tsconfig.json deleted file mode 100644 index 2a9239355..000000000 --- a/packages/common/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./build", - "declarationDir": "./types", - "tsBuildInfoFile": "./cache/tsbuildinfo", - "allowSyntheticDefaultImports": true - }, - "include": ["src/**/*.ts"], - "exclude": ["node_modules", "build", "types", "cache"] -} diff --git a/packages/contracts/.solhint.json b/packages/contracts/.solhint.json new file mode 100644 index 000000000..b20f2d607 --- /dev/null +++ b/packages/contracts/.solhint.json @@ -0,0 +1,7 @@ +{ + "extends": ["solhint:recommended", "./../../.solhint.json"], + "rules": { + "graph/leading-underscore": "off", + "named-parameters-mapping": "off" + } +} diff --git a/packages/contracts/CHANGELOG.md b/packages/contracts/CHANGELOG.md index 2e99896ed..d28fab689 100644 --- a/packages/contracts/CHANGELOG.md +++ b/packages/contracts/CHANGELOG.md @@ -1,5 +1,17 @@ # @graphprotocol/contracts +## 7.2.1 + +### Patch Changes + +- Fix prepack script + +## 7.2.0 + +### Minor Changes + +- Sub-packages for contracts package + ## 7.1.2 ### Patch Changes diff --git a/packages/contracts/contracts/staking/IL1Staking.sol b/packages/contracts/contracts/staking/IL1Staking.sol index a93cec246..4a446f787 100644 --- a/packages/contracts/contracts/staking/IL1Staking.sol +++ b/packages/contracts/contracts/staking/IL1Staking.sol @@ -15,6 +15,4 @@ import { IL1StakingBase } from "./IL1StakingBase.sol"; * the custom setup of the Staking contract where part of the functionality is implemented * in a separate contract (StakingExtension) to which calls are delegated through the fallback function. */ -interface IL1Staking is IStaking, IL1StakingBase { - // Nothing to see here -} +interface IL1Staking is IStaking, IL1StakingBase {} diff --git a/packages/contracts/contracts/staking/IStaking.sol b/packages/contracts/contracts/staking/IStaking.sol index 3673c480b..a7d89feea 100644 --- a/packages/contracts/contracts/staking/IStaking.sol +++ b/packages/contracts/contracts/staking/IStaking.sol @@ -15,6 +15,4 @@ import { IManaged } from "../governance/IManaged.sol"; * the custom setup of the Staking contract where part of the functionality is implemented * in a separate contract (StakingExtension) to which calls are delegated through the fallback function. */ -interface IStaking is IStakingBase, IStakingExtension, IMulticall, IManaged { - // Nothing to see here -} +interface IStaking is IStakingBase, IStakingExtension, IMulticall, IManaged {} diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 92b89d0dd..975b3cbd5 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -1,6 +1,6 @@ { "name": "@graphprotocol/contracts", - "version": "7.1.2", + "version": "7.2.1", "publishConfig": { "access": "public" }, @@ -27,7 +27,7 @@ "index.d.ts" ], "scripts": { - "prepack": "scripts/build", + "prepack": "pnpm build", "clean": "rm -rf artifacts/ cache/ types/ abis/", "build": "pnpm compile", "compile": "hardhat compile", @@ -54,7 +54,6 @@ "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/providers": "^5.8.0", - "@graphprotocol/common": "workspace:^", "@graphprotocol/common-ts": "^1.8.3", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomiclabs/hardhat-ethers": "^2.2.3", diff --git a/packages/contracts/task/CHANGELOG.md b/packages/contracts/task/CHANGELOG.md new file mode 100644 index 000000000..1d635ac4f --- /dev/null +++ b/packages/contracts/task/CHANGELOG.md @@ -0,0 +1,17 @@ +# @graphprotocol/contracts-task + +## 1.0.2 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/contracts@7.2.1 + - @graphprotocol/sdk@0.6.2 + +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/contracts@7.2.0 + - @graphprotocol/sdk@0.6.1 diff --git a/packages/contracts/task/package.json b/packages/contracts/task/package.json index b95368721..3bfa02b51 100644 --- a/packages/contracts/task/package.json +++ b/packages/contracts/task/package.json @@ -1,6 +1,6 @@ { "name": "@graphprotocol/contracts-task", - "version": "1.0.0", + "version": "1.0.2", "private": true, "description": "Task utilities for @graphprotocol/contracts", "main": "src/index.ts", @@ -13,7 +13,7 @@ }, "dependencies": { "@graphprotocol/contracts": "workspace:^", - "@graphprotocol/sdk": "workspace:^", + "@graphprotocol/sdk": "0.6.0", "axios": "^1.9.0", "console-table-printer": "^2.14.1" }, @@ -24,7 +24,6 @@ "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/providers": "^5.8.0", - "@graphprotocol/common": "workspace:^", "@graphprotocol/common-ts": "^1.8.3", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomiclabs/hardhat-ethers": "^2.2.3", diff --git a/packages/contracts/test/CHANGELOG.md b/packages/contracts/test/CHANGELOG.md new file mode 100644 index 000000000..4e51d1365 --- /dev/null +++ b/packages/contracts/test/CHANGELOG.md @@ -0,0 +1,17 @@ +# @graphprotocol/contracts-tests + +## 1.0.2 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/contracts@7.2.1 + - @graphprotocol/sdk@0.6.2 + +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/contracts@7.2.0 + - @graphprotocol/sdk@0.6.1 diff --git a/packages/contracts/test/hardhat.config.ts b/packages/contracts/test/hardhat.config.ts index 1d23d7023..0f22db611 100644 --- a/packages/contracts/test/hardhat.config.ts +++ b/packages/contracts/test/hardhat.config.ts @@ -1,4 +1,5 @@ // Test-focused Hardhat configuration +import '@graphprotocol/sdk/gre' import '@nomiclabs/hardhat-ethers' import '@nomiclabs/hardhat-waffle' import '@typechain/hardhat' diff --git a/packages/contracts/test/package.json b/packages/contracts/test/package.json index 7cabebf40..feae0d9ba 100644 --- a/packages/contracts/test/package.json +++ b/packages/contracts/test/package.json @@ -1,11 +1,11 @@ { "name": "@graphprotocol/contracts-tests", - "version": "1.0.0", + "version": "1.0.2", "private": true, "description": "Tests for @graphprotocol/contracts", "dependencies": { "@graphprotocol/contracts": "workspace:^", - "@graphprotocol/sdk": "workspace:^" + "@graphprotocol/sdk": "0.6.0" }, "devDependencies": { "@arbitrum/sdk": "~3.1.13", @@ -15,7 +15,6 @@ "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/providers": "^5.8.0", - "@graphprotocol/common": "workspace:^", "@graphprotocol/common-ts": "^1.8.3", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomiclabs/hardhat-ethers": "^2.2.3", diff --git a/packages/hardhat-graph-protocol/CHANGELOG.md b/packages/hardhat-graph-protocol/CHANGELOG.md index 188c1ab88..0894c931c 100644 --- a/packages/hardhat-graph-protocol/CHANGELOG.md +++ b/packages/hardhat-graph-protocol/CHANGELOG.md @@ -1,5 +1,17 @@ # hardhat-graph-protocol +## 0.1.24 + +### Patch Changes + +- @graphprotocol/toolshed@0.5.7 + +## 0.1.23 + +### Patch Changes + +- @graphprotocol/toolshed@0.5.6 + ## 0.1.22 ### Patch Changes diff --git a/packages/hardhat-graph-protocol/package.json b/packages/hardhat-graph-protocol/package.json index 727e19109..a7a2f1092 100644 --- a/packages/hardhat-graph-protocol/package.json +++ b/packages/hardhat-graph-protocol/package.json @@ -1,6 +1,6 @@ { "name": "hardhat-graph-protocol", - "version": "0.1.22", + "version": "0.1.24", "publishConfig": { "access": "public" }, @@ -26,6 +26,8 @@ }, "scripts": { "build": "tsc", + "build:clean": "pnpm clean && pnpm build", + "watch": "tsc --watch", "clean": "rm -rf dist", "lint": "eslint --fix --cache '**/*.{js,ts,cjs,mjs,jsx,tsx}'; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", "test": "mocha --exit --recursive 'test/**/*.test.ts'", diff --git a/packages/hardhat-graph-protocol/src/config.ts b/packages/hardhat-graph-protocol/src/config.ts index 34f5ad7e6..403a0d01a 100644 --- a/packages/hardhat-graph-protocol/src/config.ts +++ b/packages/hardhat-graph-protocol/src/config.ts @@ -24,14 +24,19 @@ export function getAddressBookPath( const addressBookPath = optsPath ?? networkPath ?? globalPath if (addressBookPath === undefined) { - throw new GraphPluginError('Must set a an addressBook path!') + return undefined } const normalizedAddressBookPath = normalizePath(addressBookPath, hre.config.paths.graph) logDebug(`Address book path: ${normalizedAddressBookPath}`) if (!fs.existsSync(normalizedAddressBookPath)) { - throw new GraphPluginError(`Address book not found: ${normalizedAddressBookPath}`) + if (opts.createAddressBook) { + logDebug(`Creating address book: ${normalizedAddressBookPath}`) + fs.writeFileSync(normalizedAddressBookPath, '{}') + } else { + throw new GraphPluginError(`Address book not found: ${normalizedAddressBookPath}`) + } } return normalizedAddressBookPath diff --git a/packages/hardhat-graph-protocol/src/gre.ts b/packages/hardhat-graph-protocol/src/gre.ts index f44a77834..0dc1c1018 100644 --- a/packages/hardhat-graph-protocol/src/gre.ts +++ b/packages/hardhat-graph-protocol/src/gre.ts @@ -30,9 +30,17 @@ export const greExtendConfig = (config: HardhatConfig, userConfig: Readonly { - hre.graph = lazyFunction(() => (opts: GraphRuntimeEnvironmentOptions = { deployments: {} }) => { + hre.graph = lazyFunction(() => (opts?: GraphRuntimeEnvironmentOptions) => { logDebug('*** Initializing Graph Runtime Environment (GRE) ***') logDebug(`Main network: ${hre.network.name}`) + + if (opts === undefined) { + opts = { + deployments: {}, + createAddressBook: false, + } + } + const chainId = hre.network.config.chainId if (chainId === undefined) { throw new GraphPluginError('Please define chainId in your Hardhat network configuration') diff --git a/packages/hardhat-graph-protocol/src/types.ts b/packages/hardhat-graph-protocol/src/types.ts index 044f88bce..9faa0838f 100644 --- a/packages/hardhat-graph-protocol/src/types.ts +++ b/packages/hardhat-graph-protocol/src/types.ts @@ -9,6 +9,7 @@ export type GraphDeploymentOptions = { export type GraphRuntimeEnvironmentOptions = { deployments?: GraphDeploymentOptions + createAddressBook?: boolean } export type GraphRuntimeEnvironment = GraphDeployments & { diff --git a/packages/horizon/README.md b/packages/horizon/README.md index eefd749f4..1a81f0743 100644 --- a/packages/horizon/README.md +++ b/packages/horizon/README.md @@ -6,12 +6,12 @@ Graph Horizon is the next evolution of the Graph Protocol. The following environment variables might be required: -| Variable | Description | -|----------|-------------| -| `ARBISCAN_API_KEY` | Arbiscan API key - for contract verification| -| `ARBITRUM_ONE_RPC` | Arbitrum One RPC URL - defaults to `https://arb1.arbitrum.io/rpc` | +| Variable | Description | +| ---------------------- | ------------------------------------------------------------------------------- | +| `ARBISCAN_API_KEY` | Arbiscan API key - for contract verification | +| `ARBITRUM_ONE_RPC` | Arbitrum One RPC URL - defaults to `https://arb1.arbitrum.io/rpc` | | `ARBITRUM_SEPOLIA_RPC` | Arbitrum Sepolia RPC URL - defaults to `https://sepolia-rollup.arbitrum.io/rpc` | -| `LOCALHOST_RPC` | Localhost RPC URL - defaults to `http://localhost:8545` | +| `LOCALHOST_RPC` | Localhost RPC URL - defaults to `http://localhost:8545` | You can set them using Hardhat: @@ -54,9 +54,7 @@ Steps 2, 3 and 4 require patching the configuration file with addresses from pre ## Testing - **unit**: Unit tests can be run with `pnpm test` -- **integration**: Integration tests can be run with `pnpm test:integration` - - Need to set `BLOCKCHAIN_RPC` for a chain where The Graph is already deployed - - If no `BLOCKCHAIN_RPC` is detected it will try using `ARBITRUM_SEPOLIA_RPC` +- **integration**: Integration tests can be run with `pnpm test:integration` - Need to set `BLOCKCHAIN_RPC` for a chain where The Graph is already deployed - If no `BLOCKCHAIN_RPC` is detected it will try using `ARBITRUM_SEPOLIA_RPC` - **deployment**: Deployment tests can be run with `pnpm test:deployment --network `, the following environment variables allow customizing the test suite for different scenarios: - `TEST_DEPLOYMENT_STEP` (default: 1) - Specify the latest deployment step that has been executed. Tests for later steps will be skipped. - `TEST_DEPLOYMENT_TYPE` (default: migrate) - The deployment type `protocol/migrate` that is being tested. Test suite has been developed for `migrate` use case but can be run against a `protocol` deployment, likely with some failed tests. diff --git a/packages/horizon/addresses-integration-tests.json b/packages/horizon/addresses-integration-tests.json index b8229613d..e7f445db0 100644 --- a/packages/horizon/addresses-integration-tests.json +++ b/packages/horizon/addresses-integration-tests.json @@ -37,4 +37,4 @@ "implementation": "0x64Ed77b164d3B22339DA4DB6d56a1C1d8A051c0A" } } -} \ No newline at end of file +} diff --git a/packages/horizon/addresses.json b/packages/horizon/addresses.json index 48d1cbd29..0c9e2cb89 100644 --- a/packages/horizon/addresses.json +++ b/packages/horizon/addresses.json @@ -52,4 +52,4 @@ "address": "0xB63bC33D13F73eFD14d32D2b9FC0B6116B6611CE" } } -} \ No newline at end of file +} diff --git a/packages/horizon/contracts/data-service/DataService.sol b/packages/horizon/contracts/data-service/DataService.sol index fc72e54ab..6b14365d5 100644 --- a/packages/horizon/contracts/data-service/DataService.sol +++ b/packages/horizon/contracts/data-service/DataService.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IDataService } from "./interfaces/IDataService.sol"; +import { IDataService } from "@graphprotocol/interfaces/contracts/data-service/IDataService.sol"; import { DataServiceV1Storage } from "./DataServiceStorage.sol"; import { GraphDirectory } from "../utilities/GraphDirectory.sol"; diff --git a/packages/horizon/contracts/data-service/extensions/DataServiceFees.sol b/packages/horizon/contracts/data-service/extensions/DataServiceFees.sol index a1c38a99a..a82c15361 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServiceFees.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServiceFees.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IDataServiceFees } from "../interfaces/IDataServiceFees.sol"; +import { IDataServiceFees } from "@graphprotocol/interfaces/contracts/data-service/IDataServiceFees.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; import { ProvisionTracker } from "../libraries/ProvisionTracker.sol"; import { LinkedList } from "../../libraries/LinkedList.sol"; @@ -21,7 +22,7 @@ import { DataServiceFeesV1Storage } from "./DataServiceFeesStorage.sol"; */ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDataServiceFees { using ProvisionTracker for mapping(address => uint256); - using LinkedList for LinkedList.List; + using LinkedList for ILinkedList.List; /// @inheritdoc IDataServiceFees function releaseStake(uint256 numClaimsToRelease) external virtual override { @@ -44,7 +45,7 @@ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDat require(_tokens != 0, DataServiceFeesZeroTokens()); feesProvisionTracker.lock(_graphStaking(), _serviceProvider, _tokens, _delegationRatio); - LinkedList.List storage claimsList = claimsLists[_serviceProvider]; + ILinkedList.List storage claimsList = claimsLists[_serviceProvider]; // Save item and add to list bytes32 claimId = _buildStakeClaimId(_serviceProvider, claimsList.nonce); @@ -71,7 +72,7 @@ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDat * @param _numClaimsToRelease Amount of stake claims to process. If 0, all stake claims are processed. */ function _releaseStake(address _serviceProvider, uint256 _numClaimsToRelease) internal { - LinkedList.List storage claimsList = claimsLists[_serviceProvider]; + ILinkedList.List storage claimsList = claimsLists[_serviceProvider]; (uint256 claimsReleased, bytes memory data) = claimsList.traverse( _getNextStakeClaim, _processStakeClaim, diff --git a/packages/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol b/packages/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol index 30d1aa4ee..78d826f03 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IDataServiceFees } from "../interfaces/IDataServiceFees.sol"; +import { IDataServiceFees } from "@graphprotocol/interfaces/contracts/data-service/IDataServiceFees.sol"; -import { LinkedList } from "../../libraries/LinkedList.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; /** * @title Storage layout for the {DataServiceFees} extension contract. @@ -18,7 +18,7 @@ abstract contract DataServiceFeesV1Storage { mapping(bytes32 claimId => IDataServiceFees.StakeClaim claim) public claims; /// @notice Service providers registered in the data service - mapping(address serviceProvider => LinkedList.List list) public claimsLists; + mapping(address serviceProvider => ILinkedList.List list) public claimsLists; /// @dev Gap to allow adding variables in future upgrades /// Note that this contract is not upgradeable but might be inherited by an upgradeable contract diff --git a/packages/horizon/contracts/data-service/extensions/DataServicePausable.sol b/packages/horizon/contracts/data-service/extensions/DataServicePausable.sol index 16cd26885..a4c60f7db 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServicePausable.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServicePausable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IDataServicePausable } from "../interfaces/IDataServicePausable.sol"; +import { IDataServicePausable } from "@graphprotocol/interfaces/contracts/data-service/IDataServicePausable.sol"; import { Pausable } from "@openzeppelin/contracts/utils/Pausable.sol"; import { DataService } from "../DataService.sol"; diff --git a/packages/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol b/packages/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol index da4d8fd77..2ca8e09c6 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IDataServicePausable } from "../interfaces/IDataServicePausable.sol"; +import { IDataServicePausable } from "@graphprotocol/interfaces/contracts/data-service/IDataServicePausable.sol"; import { PausableUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; import { DataService } from "../DataService.sol"; diff --git a/packages/horizon/contracts/data-service/extensions/DataServiceRescuable.sol b/packages/horizon/contracts/data-service/extensions/DataServiceRescuable.sol index 13ef7d4df..0bb600a01 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServiceRescuable.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServiceRescuable.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import { Address } from "@openzeppelin/contracts/utils/Address.sol"; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import { IDataServiceRescuable } from "../interfaces/IDataServiceRescuable.sol"; +import { IDataServiceRescuable } from "@graphprotocol/interfaces/contracts/data-service/IDataServiceRescuable.sol"; import { DataService } from "../DataService.sol"; diff --git a/packages/horizon/contracts/data-service/libraries/ProvisionTracker.sol b/packages/horizon/contracts/data-service/libraries/ProvisionTracker.sol index 2fe271833..06612913d 100644 --- a/packages/horizon/contracts/data-service/libraries/ProvisionTracker.sol +++ b/packages/horizon/contracts/data-service/libraries/ProvisionTracker.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IHorizonStaking } from "../../interfaces/IHorizonStaking.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; /** * @title ProvisionTracker library diff --git a/packages/horizon/contracts/data-service/utilities/ProvisionManager.sol b/packages/horizon/contracts/data-service/utilities/ProvisionManager.sol index 699394c8d..db5a9e8f5 100644 --- a/packages/horizon/contracts/data-service/utilities/ProvisionManager.sol +++ b/packages/horizon/contracts/data-service/utilities/ProvisionManager.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IHorizonStaking } from "../../interfaces/IHorizonStaking.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; import { UintRange } from "../../libraries/UintRange.sol"; import { PPMMath } from "../../libraries/PPMMath.sol"; diff --git a/packages/horizon/contracts/interfaces/IGraphProxyAdmin.sol b/packages/horizon/contracts/interfaces/IGraphProxyAdmin.sol deleted file mode 100644 index 7ffe0487f..000000000 --- a/packages/horizon/contracts/interfaces/IGraphProxyAdmin.sol +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -pragma solidity 0.8.27; - -/** - * @title IGraphProxyAdmin - * @dev Empty interface to allow the GraphProxyAdmin contract to be used - * in the GraphDirectory contract. - * @custom:security-contact Please email security+contracts@thegraph.com if you find any - * bugs. We may have an active bug bounty program. - */ -interface IGraphProxyAdmin {} diff --git a/packages/horizon/contracts/libraries/LinkedList.sol b/packages/horizon/contracts/libraries/LinkedList.sol index af0f1dad9..9d3305329 100644 --- a/packages/horizon/contracts/libraries/LinkedList.sol +++ b/packages/horizon/contracts/libraries/LinkedList.sol @@ -2,6 +2,8 @@ pragma solidity 0.8.27; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; + /** * @title LinkedList library * @notice A library to manage singly linked lists. @@ -20,21 +22,7 @@ pragma solidity 0.8.27; * bugs. We may have an active bug bounty program. */ library LinkedList { - using LinkedList for List; - - /** - * @notice Represents a linked list - * @param head The head of the list - * @param tail The tail of the list - * @param nonce A nonce, which can optionally be used to generate unique ids - * @param count The number of items in the list - */ - struct List { - bytes32 head; - bytes32 tail; - uint256 nonce; - uint256 count; - } + using LinkedList for ILinkedList.List; /// @notice Empty bytes constant bytes internal constant NULL_BYTES = bytes(""); @@ -42,26 +30,6 @@ library LinkedList { /// @notice Maximum amount of items allowed in the list uint256 internal constant MAX_ITEMS = 10_000; - /** - * @notice Thrown when trying to remove an item from an empty list - */ - error LinkedListEmptyList(); - - /** - * @notice Thrown when trying to add an item to a list that has reached the maximum number of elements - */ - error LinkedListMaxElementsExceeded(); - - /** - * @notice Thrown when trying to traverse a list with more iterations than elements - */ - error LinkedListInvalidIterations(); - - /** - * @notice Thrown when trying to add an item with id equal to bytes32(0) - */ - error LinkedListInvalidZeroId(); - /** * @notice Adds an item to the list. * The item is added to the end of the list. @@ -72,9 +40,9 @@ library LinkedList { * @param self The list metadata * @param id The id of the item to add */ - function addTail(List storage self, bytes32 id) internal { - require(self.count < MAX_ITEMS, LinkedListMaxElementsExceeded()); - require(id != bytes32(0), LinkedListInvalidZeroId()); + function addTail(ILinkedList.List storage self, bytes32 id) internal { + require(self.count < MAX_ITEMS, ILinkedList.LinkedListMaxElementsExceeded()); + require(id != bytes32(0), ILinkedList.LinkedListInvalidZeroId()); self.tail = id; self.nonce += 1; if (self.count == 0) self.head = id; @@ -92,11 +60,11 @@ library LinkedList { * @return The id of the head of the list. */ function removeHead( - List storage self, + ILinkedList.List storage self, function(bytes32) view returns (bytes32) getNextItem, function(bytes32) deleteItem ) internal returns (bytes32) { - require(self.count > 0, LinkedListEmptyList()); + require(self.count > 0, ILinkedList.LinkedListEmptyList()); bytes32 nextItem = getNextItem(self.head); deleteItem(self.head); self.count -= 1; @@ -124,14 +92,14 @@ library LinkedList { * @return The final accumulator data. */ function traverse( - List storage self, + ILinkedList.List storage self, function(bytes32) view returns (bytes32) getNextItem, function(bytes32, bytes memory) returns (bool, bytes memory) processItem, function(bytes32) deleteItem, bytes memory processInitAcc, uint256 iterations ) internal returns (uint256, bytes memory) { - require(iterations <= self.count, LinkedListInvalidIterations()); + require(iterations <= self.count, ILinkedList.LinkedListInvalidIterations()); uint256 itemCount = 0; iterations = (iterations == 0) ? self.count : iterations; diff --git a/packages/horizon/contracts/mocks/CurationMock.sol b/packages/horizon/contracts/mocks/CurationMock.sol index 261532333..ea3df0587 100644 --- a/packages/horizon/contracts/mocks/CurationMock.sol +++ b/packages/horizon/contracts/mocks/CurationMock.sol @@ -3,17 +3,17 @@ pragma solidity 0.8.27; contract CurationMock { - mapping(bytes32 => uint256) public curation; + mapping(bytes32 subgraphDeploymentID => uint256 tokens) public curation; - function signal(bytes32 _subgraphDeploymentID, uint256 _tokens) public { - curation[_subgraphDeploymentID] += _tokens; + function signal(bytes32 subgraphDeploymentID, uint256 tokens) public { + curation[subgraphDeploymentID] += tokens; } - function isCurated(bytes32 _subgraphDeploymentID) public view returns (bool) { - return curation[_subgraphDeploymentID] != 0; + function isCurated(bytes32 subgraphDeploymentID) public view returns (bool) { + return curation[subgraphDeploymentID] != 0; } - function collect(bytes32 _subgraphDeploymentID, uint256 _tokens) external { - curation[_subgraphDeploymentID] += _tokens; + function collect(bytes32 subgraphDeploymentID, uint256 tokens) external { + curation[subgraphDeploymentID] += tokens; } } diff --git a/packages/horizon/contracts/mocks/EpochManagerMock.sol b/packages/horizon/contracts/mocks/EpochManagerMock.sol index 12f694a5e..55efa161f 100644 --- a/packages/horizon/contracts/mocks/EpochManagerMock.sol +++ b/packages/horizon/contracts/mocks/EpochManagerMock.sol @@ -14,10 +14,10 @@ contract EpochManagerMock is IEpochManager { // -- Configuration -- - function setEpochLength(uint256 _epochLength) public { + function setEpochLength(uint256 epochLength_) public { lastLengthUpdateEpoch = 1; lastLengthUpdateBlock = blockNum(); - epochLength = _epochLength; + epochLength = epochLength_; } // -- Epochs @@ -36,8 +36,8 @@ contract EpochManagerMock is IEpochManager { return block.number; } - function blockHash(uint256 _block) public view returns (bytes32) { - return blockhash(_block); + function blockHash(uint256 block_) public view returns (bytes32) { + return blockhash(block_); } function currentEpoch() public view returns (uint256) { @@ -52,9 +52,9 @@ contract EpochManagerMock is IEpochManager { return blockNum() - currentEpochBlock(); } - function epochsSince(uint256 _epoch) public view returns (uint256) { + function epochsSince(uint256 epoch_) public view returns (uint256) { uint256 epoch = currentEpoch(); - return _epoch < epoch ? (epoch - _epoch) : 0; + return epoch_ < epoch ? (epoch - epoch_) : 0; } function epochsSinceUpdate() public view returns (uint256) { diff --git a/packages/horizon/contracts/mocks/RewardsManagerMock.sol b/packages/horizon/contracts/mocks/RewardsManagerMock.sol index 272584ca4..300e7efe2 100644 --- a/packages/horizon/contracts/mocks/RewardsManagerMock.sol +++ b/packages/horizon/contracts/mocks/RewardsManagerMock.sol @@ -7,20 +7,20 @@ import { MockGRTToken } from "./MockGRTToken.sol"; contract RewardsManagerMock { // -- Variables -- MockGRTToken public token; - uint256 private rewards; + uint256 private _rewards; // -- Constructor -- - constructor(MockGRTToken _token, uint256 _rewards) { - token = _token; - rewards = _rewards; + constructor(MockGRTToken token_, uint256 rewards) { + token = token_; + _rewards = rewards; } function takeRewards(address) external returns (uint256) { - token.mint(msg.sender, rewards); - return rewards; + token.mint(msg.sender, _rewards); + return _rewards; } function onSubgraphAllocationUpdate(bytes32) public returns (uint256) {} - function onSubgraphSignalUpdate(bytes32 _subgraphDeploymentID) external returns (uint256) {} + function onSubgraphSignalUpdate(bytes32 subgraphDeploymentID) external returns (uint256) {} } diff --git a/packages/horizon/contracts/mocks/imports.sol b/packages/horizon/contracts/mocks/imports.sol index f70a28ab9..3a05b2b4d 100644 --- a/packages/horizon/contracts/mocks/imports.sol +++ b/packages/horizon/contracts/mocks/imports.sol @@ -1,3 +1,5 @@ +// solhint-disable no-global-import + // SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.7.6 || 0.8.27; @@ -5,32 +7,3 @@ pragma solidity ^0.7.6 || 0.8.27; // This ensures that their artifacts are available for Hardhat Ignition to use. import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; - -// These are needed to get artifacts for toolshed -import "@graphprotocol/contracts/contracts/governance/Controller.sol"; -import "@graphprotocol/contracts/contracts/upgrades/GraphProxyAdmin.sol"; -import "@graphprotocol/contracts/contracts/staking/IStaking.sol"; -import "@graphprotocol/contracts/contracts/discovery/ISubgraphNFT.sol"; - -// Also for toolshed, solidity version in @graphprotocol/contracts does not support overriding public getters -// in interface file, so we need to amend them here. -import { IRewardsManager } from "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol"; -import { IL2Curation } from "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol"; -import { IEpochManager } from "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol"; -import { IGNS } from "@graphprotocol/contracts/contracts/discovery/IGNS.sol"; - -interface IRewardsManagerToolshed is IRewardsManager { - function subgraphService() external view returns (address); -} - -interface IL2CurationToolshed is IL2Curation { - function subgraphService() external view returns (address); -} - -interface IEpochManagerToolshed is IEpochManager { - function epochLength() external view returns (uint256); -} - -interface IGNSToolshed is IGNS { - function subgraphNFT() external view returns (address); -} diff --git a/packages/horizon/contracts/payments/GraphPayments.sol b/packages/horizon/contracts/payments/GraphPayments.sol index e74e351cf..e82758b0e 100644 --- a/packages/horizon/contracts/payments/GraphPayments.sol +++ b/packages/horizon/contracts/payments/GraphPayments.sol @@ -2,8 +2,8 @@ pragma solidity 0.8.27; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IGraphPayments } from "../interfaces/IGraphPayments.sol"; -import { IHorizonStakingTypes } from "../interfaces/internal/IHorizonStakingTypes.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import { MulticallUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol"; diff --git a/packages/horizon/contracts/payments/PaymentsEscrow.sol b/packages/horizon/contracts/payments/PaymentsEscrow.sol index d947921cd..bcced0412 100644 --- a/packages/horizon/contracts/payments/PaymentsEscrow.sol +++ b/packages/horizon/contracts/payments/PaymentsEscrow.sol @@ -2,8 +2,8 @@ pragma solidity 0.8.27; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IGraphPayments } from "../interfaces/IGraphPayments.sol"; -import { IPaymentsEscrow } from "../interfaces/IPaymentsEscrow.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IPaymentsEscrow } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsEscrow.sol"; import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import { MulticallUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol"; diff --git a/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol b/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol index 9a417fd9b..0ede499e0 100644 --- a/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol +++ b/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IGraphPayments } from "../../interfaces/IGraphPayments.sol"; -import { IGraphTallyCollector } from "../../interfaces/IGraphTallyCollector.sol"; -import { IPaymentsCollector } from "../../interfaces/IPaymentsCollector.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IGraphTallyCollector } from "@graphprotocol/interfaces/contracts/horizon/IGraphTallyCollector.sol"; +import { IPaymentsCollector } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsCollector.sol"; import { Authorizable } from "../../utilities/Authorizable.sol"; import { EIP712 } from "@openzeppelin/contracts/utils/cryptography/EIP712.sol"; diff --git a/packages/horizon/contracts/staking/HorizonStaking.sol b/packages/horizon/contracts/staking/HorizonStaking.sol index 49d753ffb..d297e15bb 100644 --- a/packages/horizon/contracts/staking/HorizonStaking.sol +++ b/packages/horizon/contracts/staking/HorizonStaking.sol @@ -3,9 +3,12 @@ pragma solidity 0.8.27; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IHorizonStakingMain } from "../interfaces/internal/IHorizonStakingMain.sol"; -import { IHorizonStakingExtension } from "../interfaces/internal/IHorizonStakingExtension.sol"; -import { IGraphPayments } from "../interfaces/IGraphPayments.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; +import { + IHorizonStakingExtension +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; import { TokenUtils } from "@graphprotocol/contracts/contracts/utils/TokenUtils.sol"; import { MathUtils } from "../libraries/MathUtils.sol"; @@ -30,7 +33,7 @@ import { HorizonStakingBase } from "./HorizonStakingBase.sol"; contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { using TokenUtils for IGraphToken; using PPMMath for uint256; - using LinkedList for LinkedList.List; + using LinkedList for ILinkedList.List; /// @dev Maximum number of simultaneous stake thaw requests (per provision) or undelegations (per delegation) uint256 private constant MAX_THAW_REQUESTS = 1_000; @@ -1034,7 +1037,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { uint256 _thawingNonce ) private returns (bytes32) { require(_shares != 0, HorizonStakingInvalidZeroShares()); - LinkedList.List storage thawRequestList = _getThawRequestList( + ILinkedList.List storage thawRequestList = _getThawRequestList( _requestType, _serviceProvider, _verifier, @@ -1078,7 +1081,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { function _fulfillThawRequests( FulfillThawRequestsParams memory _params ) private returns (uint256, uint256, uint256) { - LinkedList.List storage thawRequestList = _getThawRequestList( + ILinkedList.List storage thawRequestList = _getThawRequestList( _params.requestType, _params.serviceProvider, _params.verifier, @@ -1108,7 +1111,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { */ function _traverseThawRequests( FulfillThawRequestsParams memory _params, - LinkedList.List storage _thawRequestList + ILinkedList.List storage _thawRequestList ) private returns (TraverseThawRequestsResults memory) { function(bytes32) view returns (bytes32) getNextItem = _getNextThawRequest(_params.requestType); function(bytes32) deleteItem = _getDeleteThawRequest(_params.requestType); diff --git a/packages/horizon/contracts/staking/HorizonStakingBase.sol b/packages/horizon/contracts/staking/HorizonStakingBase.sol index 3b0f29065..2428e1e98 100644 --- a/packages/horizon/contracts/staking/HorizonStakingBase.sol +++ b/packages/horizon/contracts/staking/HorizonStakingBase.sol @@ -2,9 +2,10 @@ pragma solidity 0.8.27; -import { IHorizonStakingTypes } from "../interfaces/internal/IHorizonStakingTypes.sol"; -import { IHorizonStakingBase } from "../interfaces/internal/IHorizonStakingBase.sol"; -import { IGraphPayments } from "../interfaces/IGraphPayments.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { IHorizonStakingBase } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingBase.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; import { MathUtils } from "../libraries/MathUtils.sol"; import { LinkedList } from "../libraries/LinkedList.sol"; @@ -32,7 +33,7 @@ abstract contract HorizonStakingBase is IHorizonStakingTypes, IHorizonStakingBase { - using LinkedList for LinkedList.List; + using LinkedList for ILinkedList.List; /** * @notice The address of the subgraph data service. @@ -158,7 +159,7 @@ abstract contract HorizonStakingBase is address serviceProvider, address verifier, address owner - ) external view override returns (LinkedList.List memory) { + ) external view override returns (ILinkedList.List memory) { return _getThawRequestList(requestType, serviceProvider, verifier, owner); } @@ -169,7 +170,7 @@ abstract contract HorizonStakingBase is address verifier, address owner ) external view override returns (uint256) { - LinkedList.List storage thawRequestList = _getThawRequestList(requestType, serviceProvider, verifier, owner); + ILinkedList.List storage thawRequestList = _getThawRequestList(requestType, serviceProvider, verifier, owner); if (thawRequestList.count == 0) { return 0; } @@ -307,7 +308,7 @@ abstract contract HorizonStakingBase is address _serviceProvider, address _verifier, address _owner - ) internal view returns (LinkedList.List storage) { + ) internal view returns (ILinkedList.List storage) { return _thawRequestLists[_requestType][_serviceProvider][_verifier][_owner]; } diff --git a/packages/horizon/contracts/staking/HorizonStakingExtension.sol b/packages/horizon/contracts/staking/HorizonStakingExtension.sol index 17787c4d3..eb1fa3340 100644 --- a/packages/horizon/contracts/staking/HorizonStakingExtension.sol +++ b/packages/horizon/contracts/staking/HorizonStakingExtension.sol @@ -4,8 +4,10 @@ pragma solidity 0.8.27; import { ICuration } from "@graphprotocol/contracts/contracts/curation/ICuration.sol"; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IHorizonStakingExtension } from "../interfaces/internal/IHorizonStakingExtension.sol"; -import { IRewardsIssuer } from "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol"; +import { + IHorizonStakingExtension +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; +import { IRewardsIssuer } from "@graphprotocol/interfaces/contracts/contracts/rewards/IRewardsIssuer.sol"; import { TokenUtils } from "@graphprotocol/contracts/contracts/utils/TokenUtils.sol"; import { MathUtils } from "../libraries/MathUtils.sol"; diff --git a/packages/horizon/contracts/staking/HorizonStakingStorage.sol b/packages/horizon/contracts/staking/HorizonStakingStorage.sol index f06ff5cb6..aaa3ebe40 100644 --- a/packages/horizon/contracts/staking/HorizonStakingStorage.sol +++ b/packages/horizon/contracts/staking/HorizonStakingStorage.sol @@ -2,11 +2,12 @@ pragma solidity 0.8.27; -import { IHorizonStakingExtension } from "../interfaces/internal/IHorizonStakingExtension.sol"; -import { IHorizonStakingTypes } from "../interfaces/internal/IHorizonStakingTypes.sol"; -import { IGraphPayments } from "../interfaces/IGraphPayments.sol"; - -import { LinkedList } from "../libraries/LinkedList.sol"; +import { + IHorizonStakingExtension +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; /* solhint-disable max-states-count */ @@ -162,7 +163,7 @@ abstract contract HorizonStakingV1Storage { /// @dev Thaw request lists /// Metadata defining linked lists of thaw requests for each service provider or delegator (owner) - mapping(IHorizonStakingTypes.ThawRequestType thawRequestType => mapping(address serviceProvider => mapping(address verifier => mapping(address owner => LinkedList.List list)))) + mapping(IHorizonStakingTypes.ThawRequestType thawRequestType => mapping(address serviceProvider => mapping(address verifier => mapping(address owner => ILinkedList.List list)))) internal _thawRequestLists; /// @dev Operator allow list diff --git a/packages/horizon/contracts/utilities/Authorizable.sol b/packages/horizon/contracts/utilities/Authorizable.sol index 5d164c2c3..3c77e951e 100644 --- a/packages/horizon/contracts/utilities/Authorizable.sol +++ b/packages/horizon/contracts/utilities/Authorizable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IAuthorizable } from "../interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "@graphprotocol/interfaces/contracts/horizon/IAuthorizable.sol"; import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; diff --git a/packages/horizon/contracts/utilities/GraphDirectory.sol b/packages/horizon/contracts/utilities/GraphDirectory.sol index 418b58619..ed38dfa90 100644 --- a/packages/horizon/contracts/utilities/GraphDirectory.sol +++ b/packages/horizon/contracts/utilities/GraphDirectory.sol @@ -3,15 +3,15 @@ pragma solidity 0.8.27; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IHorizonStaking } from "../interfaces/IHorizonStaking.sol"; -import { IGraphPayments } from "../interfaces/IGraphPayments.sol"; -import { IPaymentsEscrow } from "../interfaces/IPaymentsEscrow.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IPaymentsEscrow } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsEscrow.sol"; import { IController } from "@graphprotocol/contracts/contracts/governance/IController.sol"; import { IEpochManager } from "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol"; import { IRewardsManager } from "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol"; import { ITokenGateway } from "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol"; -import { IGraphProxyAdmin } from "../interfaces/IGraphProxyAdmin.sol"; +import { IGraphProxyAdmin } from "@graphprotocol/interfaces/contracts/contracts/upgrades/IGraphProxyAdmin.sol"; import { ICuration } from "@graphprotocol/contracts/contracts/curation/ICuration.sol"; diff --git a/packages/horizon/hardhat.config.ts b/packages/horizon/hardhat.config.ts index 22683dab5..c8adb8628 100644 --- a/packages/horizon/hardhat.config.ts +++ b/packages/horizon/hardhat.config.ts @@ -4,18 +4,19 @@ import '@nomicfoundation/hardhat-toolbox' import '@nomicfoundation/hardhat-ignition-ethers' import 'hardhat-contract-sizer' import 'hardhat-secure-accounts' +import 'hardhat-graph-protocol' import { hardhatBaseConfig, isProjectBuilt, loadTasks } from '@graphprotocol/toolshed/hardhat' import type { HardhatUserConfig } from 'hardhat/types' -// Skip importing hardhat-graph-protocol when building the project, it has circular dependency +// Some tasks need compiled artifacts to run so we avoid loading them when building the project if (isProjectBuilt(__dirname)) { - require('hardhat-graph-protocol') loadTasks(__dirname) } +const baseConfig = hardhatBaseConfig(require) const config: HardhatUserConfig = { - ...hardhatBaseConfig, + ...baseConfig, solidity: { version: '0.8.27', settings: { @@ -26,7 +27,7 @@ const config: HardhatUserConfig = { }, }, etherscan: { - ...hardhatBaseConfig.etherscan, + ...baseConfig.etherscan, customChains: [ { network: 'arbitrumSepolia', diff --git a/packages/horizon/ignition/modules/index.ts b/packages/horizon/ignition/modules/index.ts new file mode 100644 index 000000000..5933a3300 --- /dev/null +++ b/packages/horizon/ignition/modules/index.ts @@ -0,0 +1,4 @@ +export { default as HorizonModule } from './deploy' +export { deployImplementation } from './proxy/implementation' +export { deployTransparentUpgradeableProxy } from './proxy/TransparentUpgradeableProxy' +export { upgradeTransparentUpgradeableProxy } from './proxy/TransparentUpgradeableProxy' diff --git a/packages/horizon/package.json b/packages/horizon/package.json index 5bd405102..a93a71358 100644 --- a/packages/horizon/package.json +++ b/packages/horizon/package.json @@ -8,6 +8,11 @@ "author": "The Graph core devs", "license": "GPL-2.0-or-later", "types": "typechain-types/index.ts", + "exports": { + "./artifacts/*": "./build/contracts/*", + "./addresses*": "./addresses*", + "./ignition": "./ignition/modules/index.ts" + }, "files": [ "build/contracts/**/*", "typechain-types/**/*", @@ -15,10 +20,11 @@ "addresses.json" ], "scripts": { - "lint": "pnpm lint:ts && pnpm lint:sol", + "lint": "pnpm lint:ts; pnpm lint:sol; pnpm lint:natspec; pnpm lint:json", "lint:ts": "eslint --fix --cache '**/*.{js,ts,cjs,mjs,jsx,tsx}'; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", "lint:sol": "solhint --config ../../.solhint.json --fix --noPrompt --noPoster 'contracts/**/*.sol'; prettier -w --cache --log-level warn '**/*.sol'", - "lint:sol:natspec": "natspec-smells --config natspec-smells.config.js", + "lint:natspec": "natspec-smells --config natspec-smells.config.js", + "lint:json": "prettier -w --cache --log-level warn '**/*.json'", "clean": "rm -rf build dist cache cache_forge typechain-types", "build": "hardhat compile", "test": "forge test", @@ -27,7 +33,8 @@ }, "devDependencies": { "@defi-wonderland/natspec-smells": "^1.1.6", - "@graphprotocol/contracts": "workspace:^7.1.2", + "@graphprotocol/contracts": "workspace:^7.2.1", + "@graphprotocol/interfaces": "workspace:^", "@graphprotocol/toolshed": "workspace:^", "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", "@nomicfoundation/hardhat-ethers": "3.0.8", @@ -54,7 +61,7 @@ "hardhat": "^2.22.18", "hardhat-contract-sizer": "^2.10.0", "hardhat-gas-reporter": "^1.0.8", - "hardhat-graph-protocol": "workspace:^0.1.22", + "hardhat-graph-protocol": "workspace:^0.1.24", "hardhat-secure-accounts": "^1.0.5", "lint-staged": "^15.2.2", "prettier": "^3.2.5", diff --git a/packages/horizon/remappings.txt b/packages/horizon/remappings.txt index 62b37e81b..9c42ca6f6 100644 --- a/packages/horizon/remappings.txt +++ b/packages/horizon/remappings.txt @@ -2,4 +2,5 @@ @openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/ @openzeppelin/foundry-upgrades/=node_modules/@openzeppelin/foundry-upgrades/src/ @graphprotocol/contracts/=node_modules/@graphprotocol/contracts/ +@graphprotocol/interfaces/=node_modules/@graphprotocol/interfaces/ forge-std/=node_modules/forge-std/src/ \ No newline at end of file diff --git a/packages/horizon/tasks/deploy.ts b/packages/horizon/tasks/deploy.ts index 1e6d38187..234ffb255 100644 --- a/packages/horizon/tasks/deploy.ts +++ b/packages/horizon/tasks/deploy.ts @@ -17,7 +17,7 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont ) .addOptionalParam('accountIndex', 'Derivation path index for the account to use', 0, types.int) .setAction(async (args, hre: HardhatRuntimeEnvironment) => { - const graph = hre.graph() + const graph = hre.graph({ createAddressBook: true }) // Load configuration for the deployment console.log('\n========== ⚙️ Deployment configuration ==========') diff --git a/packages/horizon/tasks/test/ownership.ts b/packages/horizon/tasks/test/ownership.ts index abb544e56..25ba028f4 100644 --- a/packages/horizon/tasks/test/ownership.ts +++ b/packages/horizon/tasks/test/ownership.ts @@ -30,7 +30,7 @@ task('test:transfer-ownership', 'Transfer ownership of protocol contracts to a n const graphProxyAdmin = graph.horizon.contracts.GraphProxyAdmin // Get current owners - const controllerGovernor = await controller.governor() + const controllerGovernor = await controller.getGovernor() const proxyAdminGovernor = await graphProxyAdmin.governor() console.log(`Current Controller governor: ${controllerGovernor}`) @@ -49,7 +49,7 @@ task('test:transfer-ownership', 'Transfer ownership of protocol contracts to a n // Accept ownership of Controller await controller.connect(newGovernor).acceptOwnership() - console.log(`New Controller governor: ${await controller.governor()}`) + console.log(`New Controller governor: ${await controller.getGovernor()}`) console.log('\n--- STEP 2: Transfer ownership of GraphProxyAdmin ---') diff --git a/packages/horizon/test/integration/during-transition-period/operator.test.ts b/packages/horizon/test/integration/during-transition-period/operator.test.ts index adf5c89a7..eabd44ec2 100644 --- a/packages/horizon/test/integration/during-transition-period/operator.test.ts +++ b/packages/horizon/test/integration/during-transition-period/operator.test.ts @@ -1,5 +1,4 @@ import { generatePOI } from '@graphprotocol/toolshed' -import type { HorizonStakingExtension } from '@graphprotocol/toolshed/deployments' import { getEventData } from '@graphprotocol/toolshed/hardhat' import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' import { expect } from 'chai' @@ -70,7 +69,7 @@ describe('Operator', () => { const idleStakeBefore = await horizonStaking.getIdleStake(indexer.address) // Close allocation - const tx = await (horizonStaking as HorizonStakingExtension).connect(operator).closeAllocation(allocationID, poi) + const tx = await horizonStaking.connect(operator).closeAllocation(allocationID, poi) const eventData = await getEventData( tx, 'event HorizonRewardsAssigned(address indexed indexer, address indexed allocationID, uint256 amount)', diff --git a/packages/horizon/test/integration/during-transition-period/permissionless.test.ts b/packages/horizon/test/integration/during-transition-period/permissionless.test.ts index 6745bd423..3fa38d0ed 100644 --- a/packages/horizon/test/integration/during-transition-period/permissionless.test.ts +++ b/packages/horizon/test/integration/during-transition-period/permissionless.test.ts @@ -1,5 +1,4 @@ import { generatePOI } from '@graphprotocol/toolshed' -import type { HorizonStakingExtension } from '@graphprotocol/toolshed/deployments' import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' import { expect } from 'chai' import hre from 'hardhat' @@ -56,7 +55,7 @@ describe('Permissionless', () => { // Close allocation const poi = generatePOI('poi') - await (horizonStaking as HorizonStakingExtension).connect(anySigner).closeAllocation(allocationID, poi) + await horizonStaking.connect(anySigner).closeAllocation(allocationID, poi) // Get indexer's idle stake after closing allocation const idleStakeAfter = await horizonStaking.getIdleStake(indexer.address) diff --git a/packages/horizon/test/integration/during-transition-period/service-provider.test.ts b/packages/horizon/test/integration/during-transition-period/service-provider.test.ts index 69375d55f..2d7b6c25a 100644 --- a/packages/horizon/test/integration/during-transition-period/service-provider.test.ts +++ b/packages/horizon/test/integration/during-transition-period/service-provider.test.ts @@ -1,5 +1,4 @@ import { generatePOI, ONE_MILLION } from '@graphprotocol/toolshed' -import type { HorizonStakingExtension } from '@graphprotocol/toolshed/deployments' import { getEventData, setGRTBalance } from '@graphprotocol/toolshed/hardhat' import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' import { expect } from 'chai' @@ -14,7 +13,6 @@ describe('Service Provider', () => { const graph = hre.graph() const { stake, collect } = graph.horizon.actions const horizonStaking = graph.horizon.contracts.HorizonStaking - const horizonStakingExtension = horizonStaking as HorizonStakingExtension const graphToken = graph.horizon.contracts.L2GraphToken // Subgraph service address is not set for integration tests @@ -257,7 +255,7 @@ describe('Service Provider', () => { const idleStakeBefore = await horizonStaking.getIdleStake(indexer.address) // Close allocation - const tx = await horizonStakingExtension.connect(indexer).closeAllocation(allocationID, poi) + const tx = await horizonStaking.connect(indexer).closeAllocation(allocationID, poi) const eventData = await getEventData( tx, 'event HorizonRewardsAssigned(address indexed indexer, address indexed allocationID, uint256 amount)', @@ -332,7 +330,7 @@ describe('Service Provider', () => { } // Close allocation - await horizonStakingExtension.connect(indexer).closeAllocation(allocationID, poi) + await horizonStaking.connect(indexer).closeAllocation(allocationID, poi) // Tokens to collect const tokensToCollect = ethers.parseEther('1000') @@ -407,7 +405,7 @@ describe('Service Provider', () => { const balanceBefore = await graphToken.balanceOf(rewardsDestination) // Close allocation - const tx = await horizonStakingExtension.connect(indexer).closeAllocation(allocationID, poi) + const tx = await horizonStaking.connect(indexer).closeAllocation(allocationID, poi) const eventData = await getEventData( tx, 'event HorizonRewardsAssigned(address indexed indexer, address indexed allocationID, uint256 amount)', diff --git a/packages/horizon/test/unit/GraphBase.t.sol b/packages/horizon/test/unit/GraphBase.t.sol index 0a72c8c0e..f3f55b96a 100644 --- a/packages/horizon/test/unit/GraphBase.t.sol +++ b/packages/horizon/test/unit/GraphBase.t.sol @@ -12,10 +12,10 @@ import { TransparentUpgradeableProxy } from "@openzeppelin/contracts/proxy/trans import { PaymentsEscrow } from "contracts/payments/PaymentsEscrow.sol"; import { GraphPayments } from "contracts/payments/GraphPayments.sol"; import { GraphTallyCollector } from "contracts/payments/collectors/GraphTallyCollector.sol"; -import { IHorizonStaking } from "contracts/interfaces/IHorizonStaking.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; import { HorizonStaking } from "contracts/staking/HorizonStaking.sol"; import { HorizonStakingExtension } from "contracts/staking/HorizonStakingExtension.sol"; -import { IHorizonStakingTypes } from "contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; import { MockGRTToken } from "../../contracts/mocks/MockGRTToken.sol"; import { EpochManagerMock } from "contracts/mocks/EpochManagerMock.sol"; import { RewardsManagerMock } from "contracts/mocks/RewardsManagerMock.sol"; diff --git a/packages/horizon/test/unit/data-service/DataService.t.sol b/packages/horizon/test/unit/data-service/DataService.t.sol index 85c576308..d415e042c 100644 --- a/packages/horizon/test/unit/data-service/DataService.t.sol +++ b/packages/horizon/test/unit/data-service/DataService.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.27; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; import { HorizonStakingSharedTest } from "../shared/horizon-staking/HorizonStakingShared.t.sol"; import { DataServiceBase } from "./implementations/DataServiceBase.sol"; import { DataServiceOverride } from "./implementations/DataServiceOverride.sol"; diff --git a/packages/horizon/test/unit/data-service/extensions/DataServiceFees.t.sol b/packages/horizon/test/unit/data-service/extensions/DataServiceFees.t.sol index cd6e7bf46..e6601ca82 100644 --- a/packages/horizon/test/unit/data-service/extensions/DataServiceFees.t.sol +++ b/packages/horizon/test/unit/data-service/extensions/DataServiceFees.t.sol @@ -3,9 +3,10 @@ pragma solidity 0.8.27; import { HorizonStakingSharedTest } from "../../shared/horizon-staking/HorizonStakingShared.t.sol"; import { DataServiceImpFees } from "../implementations/DataServiceImpFees.sol"; -import { IDataServiceFees } from "../../../../contracts/data-service/interfaces/IDataServiceFees.sol"; +import { IDataServiceFees } from "@graphprotocol/interfaces/contracts/data-service/IDataServiceFees.sol"; import { ProvisionTracker } from "../../../../contracts/data-service/libraries/ProvisionTracker.sol"; import { LinkedList } from "../../../../contracts/libraries/LinkedList.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; contract DataServiceFeesTest is HorizonStakingSharedTest { function test_Lock_RevertWhen_ZeroTokensAreLocked() @@ -121,7 +122,7 @@ contract DataServiceFeesTest is HorizonStakingSharedTest { } // it should revert - vm.expectRevert(abi.encodeWithSelector(LinkedList.LinkedListInvalidIterations.selector)); + vm.expectRevert(abi.encodeWithSelector(ILinkedList.LinkedListInvalidIterations.selector)); dataService.releaseStake(steps + 1); } diff --git a/packages/horizon/test/unit/data-service/extensions/DataServicePausable.t.sol b/packages/horizon/test/unit/data-service/extensions/DataServicePausable.t.sol index f43191a94..bfd8086e0 100644 --- a/packages/horizon/test/unit/data-service/extensions/DataServicePausable.t.sol +++ b/packages/horizon/test/unit/data-service/extensions/DataServicePausable.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import { HorizonStakingSharedTest } from "../../shared/horizon-staking/HorizonStakingShared.t.sol"; import { DataServiceImpPausable } from "../implementations/DataServiceImpPausable.sol"; -import { IDataServicePausable } from "./../../../../contracts/data-service/interfaces/IDataServicePausable.sol"; +import { IDataServicePausable } from "@graphprotocol/interfaces/contracts/data-service/IDataServicePausable.sol"; contract DataServicePausableTest is HorizonStakingSharedTest { DataServiceImpPausable dataService; diff --git a/packages/horizon/test/unit/data-service/implementations/DataServiceBase.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceBase.sol index 30a40b4db..b58bbc5e0 100644 --- a/packages/horizon/test/unit/data-service/implementations/DataServiceBase.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceBase.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.27; import { DataService } from "../../../../contracts/data-service/DataService.sol"; -import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; contract DataServiceBase is DataService { uint32 public constant DELEGATION_RATIO = 100; diff --git a/packages/horizon/test/unit/data-service/implementations/DataServiceBaseUpgradeable.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceBaseUpgradeable.sol index d24e831af..d328089f9 100644 --- a/packages/horizon/test/unit/data-service/implementations/DataServiceBaseUpgradeable.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceBaseUpgradeable.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.27; import { DataService } from "../../../../contracts/data-service/DataService.sol"; -import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; contract DataServiceBaseUpgradeable is DataService { constructor(address controller_) DataService(controller_) { diff --git a/packages/horizon/test/unit/data-service/implementations/DataServiceImpFees.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceImpFees.sol index 04d0ca336..85c51465f 100644 --- a/packages/horizon/test/unit/data-service/implementations/DataServiceImpFees.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceImpFees.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import { DataService } from "../../../../contracts/data-service/DataService.sol"; import { DataServiceFees } from "../../../../contracts/data-service/extensions/DataServiceFees.sol"; -import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; contract DataServiceImpFees is DataServiceFees { uint256 public constant STAKE_TO_FEES_RATIO = 1000; diff --git a/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausable.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausable.sol index 00e9c94a9..bba7de566 100644 --- a/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausable.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausable.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import { DataService } from "../../../../contracts/data-service/DataService.sol"; import { DataServicePausable } from "../../../../contracts/data-service/extensions/DataServicePausable.sol"; -import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; contract DataServiceImpPausable is DataServicePausable { uint32 public constant DELEGATION_RATIO = 100; diff --git a/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausableUpgradeable.sol b/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausableUpgradeable.sol index dcec8d225..f0bb32c7e 100644 --- a/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausableUpgradeable.sol +++ b/packages/horizon/test/unit/data-service/implementations/DataServiceImpPausableUpgradeable.sol @@ -5,7 +5,7 @@ import { DataService } from "../../../../contracts/data-service/DataService.sol" import { DataServicePausableUpgradeable } from "../../../../contracts/data-service/extensions/DataServicePausableUpgradeable.sol"; -import { IGraphPayments } from "./../../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; contract DataServiceImpPausableUpgradeable is DataServicePausableUpgradeable { constructor(address controller_) DataService(controller_) { diff --git a/packages/horizon/test/unit/data-service/libraries/ProvisionTracker.t.sol b/packages/horizon/test/unit/data-service/libraries/ProvisionTracker.t.sol index ab6a6f584..d3424dfc5 100644 --- a/packages/horizon/test/unit/data-service/libraries/ProvisionTracker.t.sol +++ b/packages/horizon/test/unit/data-service/libraries/ProvisionTracker.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import { HorizonStakingSharedTest } from "../../shared/horizon-staking/HorizonStakingShared.t.sol"; import { ProvisionTrackerImplementation } from "./ProvisionTrackerImplementation.sol"; import { ProvisionTracker } from "../../../../contracts/data-service/libraries/ProvisionTracker.sol"; -import { IHorizonStaking } from "./../../../../contracts/interfaces/IHorizonStaking.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; // Wrapper required because when using vm.expectRevert, the error is expected in the next immediate call // Which in the case of this library is an internal call to the staking contract diff --git a/packages/horizon/test/unit/escrow/GraphEscrow.t.sol b/packages/horizon/test/unit/escrow/GraphEscrow.t.sol index 247fd3cf5..82a40d463 100644 --- a/packages/horizon/test/unit/escrow/GraphEscrow.t.sol +++ b/packages/horizon/test/unit/escrow/GraphEscrow.t.sol @@ -2,9 +2,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IPaymentsEscrow } from "../../../contracts/interfaces/IPaymentsEscrow.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; -import { IHorizonStakingTypes } from "../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IPaymentsEscrow } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsEscrow.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; import { HorizonStakingSharedTest } from "../shared/horizon-staking/HorizonStakingShared.t.sol"; import { PaymentsEscrowSharedTest } from "../shared/payments-escrow/PaymentsEscrowShared.t.sol"; diff --git a/packages/horizon/test/unit/escrow/collect.t.sol b/packages/horizon/test/unit/escrow/collect.t.sol index c0a3c8145..9de98ba0b 100644 --- a/packages/horizon/test/unit/escrow/collect.t.sol +++ b/packages/horizon/test/unit/escrow/collect.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; diff --git a/packages/horizon/test/unit/escrow/getters.t.sol b/packages/horizon/test/unit/escrow/getters.t.sol index e0279ee49..262192125 100644 --- a/packages/horizon/test/unit/escrow/getters.t.sol +++ b/packages/horizon/test/unit/escrow/getters.t.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; diff --git a/packages/horizon/test/unit/escrow/paused.t.sol b/packages/horizon/test/unit/escrow/paused.t.sol index 60fe38f25..815d75dc4 100644 --- a/packages/horizon/test/unit/escrow/paused.t.sol +++ b/packages/horizon/test/unit/escrow/paused.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; -import { IPaymentsEscrow } from "../../../contracts/interfaces/IPaymentsEscrow.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IPaymentsEscrow } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsEscrow.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; diff --git a/packages/horizon/test/unit/escrow/withdraw.t.sol b/packages/horizon/test/unit/escrow/withdraw.t.sol index 1b60118bf..0a4e9b1af 100644 --- a/packages/horizon/test/unit/escrow/withdraw.t.sol +++ b/packages/horizon/test/unit/escrow/withdraw.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; contract GraphEscrowWithdrawTest is GraphEscrowTest { diff --git a/packages/horizon/test/unit/libraries/LinkedList.t.sol b/packages/horizon/test/unit/libraries/LinkedList.t.sol index 13f31b8ad..9bc78a026 100644 --- a/packages/horizon/test/unit/libraries/LinkedList.t.sol +++ b/packages/horizon/test/unit/libraries/LinkedList.t.sol @@ -4,19 +4,19 @@ pragma solidity 0.8.27; import "forge-std/console.sol"; import { Test } from "forge-std/Test.sol"; import { LinkedList } from "../../../contracts/libraries/LinkedList.sol"; - +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; import { ListImplementation } from "./ListImplementation.sol"; contract LinkedListTest is Test, ListImplementation { - using LinkedList for LinkedList.List; + using LinkedList for ILinkedList.List; function setUp() internal { - list = LinkedList.List({ head: bytes32(0), tail: bytes32(0), nonce: 0, count: 0 }); + list = ILinkedList.List({ head: bytes32(0), tail: bytes32(0), nonce: 0, count: 0 }); } /// forge-config: default.allow_internal_expect_revert = true function test_Add_RevertGiven_TheItemIdIsZero() external { - vm.expectRevert(LinkedList.LinkedListInvalidZeroId.selector); + vm.expectRevert(ILinkedList.LinkedListInvalidZeroId.selector); list.addTail(bytes32(0)); } @@ -39,13 +39,13 @@ contract LinkedListTest is Test, ListImplementation { _addItemToList(list, id, i); } - vm.expectRevert(LinkedList.LinkedListMaxElementsExceeded.selector); + vm.expectRevert(ILinkedList.LinkedListMaxElementsExceeded.selector); list.addTail(_buildItemId(list.nonce)); } /// forge-config: default.allow_internal_expect_revert = true function test_Remove_RevertGiven_TheListIsEmpty() external { - vm.expectRevert(LinkedList.LinkedListEmptyList.selector); + vm.expectRevert(ILinkedList.LinkedListEmptyList.selector); list.removeHead(_getNextItem, _deleteItem); } @@ -92,7 +92,7 @@ contract LinkedListTest is Test, ListImplementation { for (uint256 i = 0; i < n; i++) { sum += i; } - vm.expectRevert(LinkedList.LinkedListInvalidIterations.selector); + vm.expectRevert(ILinkedList.LinkedListInvalidIterations.selector); _assert_traverseList(_processItemAddition, abi.encode(0), n, abi.encode(sum)); } diff --git a/packages/horizon/test/unit/libraries/ListImplementation.sol b/packages/horizon/test/unit/libraries/ListImplementation.sol index 5f1c6ce3b..dad859f59 100644 --- a/packages/horizon/test/unit/libraries/ListImplementation.sol +++ b/packages/horizon/test/unit/libraries/ListImplementation.sol @@ -1,10 +1,11 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.27; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; import { LinkedList } from "../../../contracts/libraries/LinkedList.sol"; contract ListImplementation { - using LinkedList for LinkedList.List; + using LinkedList for ILinkedList.List; uint256 constant LIST_LENGTH = 100; @@ -13,11 +14,11 @@ contract ListImplementation { bytes32 next; } - LinkedList.List public list; + ILinkedList.List public list; mapping(bytes32 id => Item data) public items; bytes32[LIST_LENGTH] public ids; - function _addItemToList(LinkedList.List storage _list, bytes32 _id, uint256 _data) internal returns (bytes32) { + function _addItemToList(ILinkedList.List storage _list, bytes32 _id, uint256 _data) internal returns (bytes32) { items[_id] = Item({ data: _data, next: bytes32(0) }); if (_list.count != 0) { items[_list.tail].next = _id; diff --git a/packages/horizon/test/unit/payments/GraphPayments.t.sol b/packages/horizon/test/unit/payments/GraphPayments.t.sol index 564bf3a1f..61659a9ab 100644 --- a/packages/horizon/test/unit/payments/GraphPayments.t.sol +++ b/packages/horizon/test/unit/payments/GraphPayments.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IHorizonStakingTypes } from "../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { GraphPayments } from "../../../contracts/payments/GraphPayments.sol"; import { HorizonStakingSharedTest } from "../shared/horizon-staking/HorizonStakingShared.t.sol"; diff --git a/packages/horizon/test/unit/payments/graph-tally-collector/GraphTallyCollector.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/GraphTallyCollector.t.sol index ca9ff235d..74c468186 100644 --- a/packages/horizon/test/unit/payments/graph-tally-collector/GraphTallyCollector.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/GraphTallyCollector.t.sol @@ -5,11 +5,11 @@ import "forge-std/Test.sol"; import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IGraphTallyCollector } from "../../../../contracts/interfaces/IGraphTallyCollector.sol"; -import { IPaymentsCollector } from "../../../../contracts/interfaces/IPaymentsCollector.sol"; -import { IGraphPayments } from "../../../../contracts/interfaces/IGraphPayments.sol"; -import { IAuthorizable } from "../../../../contracts/interfaces/IAuthorizable.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; +import { IGraphTallyCollector } from "@graphprotocol/interfaces/contracts/horizon/IGraphTallyCollector.sol"; +import { IPaymentsCollector } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsCollector.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IAuthorizable } from "@graphprotocol/interfaces/contracts/horizon/IAuthorizable.sol"; import { GraphTallyCollector } from "../../../../contracts/payments/collectors/GraphTallyCollector.sol"; import { PPMMath } from "../../../../contracts/libraries/PPMMath.sol"; diff --git a/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol index c0c30fb78..fbc5bae06 100644 --- a/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphTallyCollector } from "../../../../../contracts/interfaces/IGraphTallyCollector.sol"; -import { IGraphPayments } from "../../../../../contracts/interfaces/IGraphPayments.sol"; +import { IGraphTallyCollector } from "@graphprotocol/interfaces/contracts/horizon/IGraphTallyCollector.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/unit/payments/graph-tally-collector/signer/authorizeSigner.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/signer/authorizeSigner.t.sol index 3eb65e094..c2cfc6dcd 100644 --- a/packages/horizon/test/unit/payments/graph-tally-collector/signer/authorizeSigner.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/signer/authorizeSigner.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IAuthorizable } from "../../../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "@graphprotocol/interfaces/contracts/horizon/IAuthorizable.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/unit/payments/graph-tally-collector/signer/cancelThawSigner.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/signer/cancelThawSigner.t.sol index c70379e94..2523f10c6 100644 --- a/packages/horizon/test/unit/payments/graph-tally-collector/signer/cancelThawSigner.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/signer/cancelThawSigner.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IAuthorizable } from "../../../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "@graphprotocol/interfaces/contracts/horizon/IAuthorizable.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/unit/payments/graph-tally-collector/signer/revokeSigner.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/signer/revokeSigner.t.sol index cdc4f5d36..eacd8b5bd 100644 --- a/packages/horizon/test/unit/payments/graph-tally-collector/signer/revokeSigner.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/signer/revokeSigner.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IAuthorizable } from "../../../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "@graphprotocol/interfaces/contracts/horizon/IAuthorizable.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/unit/payments/graph-tally-collector/signer/thawSigner.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/signer/thawSigner.t.sol index 3e62dd6ff..a868d44a4 100644 --- a/packages/horizon/test/unit/payments/graph-tally-collector/signer/thawSigner.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/signer/thawSigner.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IAuthorizable } from "../../../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "@graphprotocol/interfaces/contracts/horizon/IAuthorizable.sol"; import { GraphTallyTest } from "../GraphTallyCollector.t.sol"; diff --git a/packages/horizon/test/unit/shared/horizon-staking/HorizonStakingShared.t.sol b/packages/horizon/test/unit/shared/horizon-staking/HorizonStakingShared.t.sol index 526894264..be1c76b73 100644 --- a/packages/horizon/test/unit/shared/horizon-staking/HorizonStakingShared.t.sol +++ b/packages/horizon/test/unit/shared/horizon-staking/HorizonStakingShared.t.sol @@ -4,11 +4,14 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { GraphBaseTest } from "../../GraphBase.t.sol"; -import { IGraphPayments } from "../../../../contracts/interfaces/IGraphPayments.sol"; -import { IHorizonStakingBase } from "../../../../contracts/interfaces/internal/IHorizonStakingBase.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IHorizonStakingExtension } from "../../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; -import { IHorizonStakingTypes } from "../../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IHorizonStakingBase } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingBase.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; +import { + IHorizonStakingExtension +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; import { LinkedList } from "../../../../contracts/libraries/LinkedList.sol"; import { MathUtils } from "../../../../contracts/libraries/MathUtils.sol"; @@ -16,7 +19,7 @@ import { PPMMath } from "../../../../contracts/libraries/PPMMath.sol"; import { ExponentialRebates } from "../../../../contracts/staking/libraries/ExponentialRebates.sol"; abstract contract HorizonStakingSharedTest is GraphBaseTest { - using LinkedList for LinkedList.List; + using LinkedList for ILinkedList.List; using PPMMath for uint256; event Transfer(address indexed from, address indexed to, uint tokens); @@ -452,7 +455,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { function _thaw(address serviceProvider, address verifier, uint256 tokens) internal returns (bytes32) { // before Provision memory beforeProvision = staking.getProvision(serviceProvider, verifier); - LinkedList.List memory beforeThawRequestList = staking.getThawRequestList( + ILinkedList.List memory beforeThawRequestList = staking.getThawRequestList( IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, @@ -488,7 +491,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { IHorizonStakingTypes.ThawRequestType.Provision, thawRequestId ); - LinkedList.List memory afterThawRequestList = _getThawRequestList( + ILinkedList.List memory afterThawRequestList = _getThawRequestList( IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, @@ -535,7 +538,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { // before Provision memory beforeProvision = staking.getProvision(serviceProvider, verifier); ServiceProviderInternal memory beforeServiceProvider = _getStorage_ServiceProviderInternal(serviceProvider); - LinkedList.List memory beforeThawRequestList = staking.getThawRequestList( + ILinkedList.List memory beforeThawRequestList = staking.getThawRequestList( IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, @@ -581,7 +584,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { // after Provision memory afterProvision = staking.getProvision(serviceProvider, verifier); ServiceProviderInternal memory afterServiceProvider = _getStorage_ServiceProviderInternal(serviceProvider); - LinkedList.List memory afterThawRequestList = staking.getThawRequestList( + ILinkedList.List memory afterThawRequestList = staking.getThawRequestList( IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, @@ -643,7 +646,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { Provision provision; Provision provisionNewVerifier; ServiceProviderInternal serviceProvider; - LinkedList.List thawRequestList; + ILinkedList.List thawRequestList; } function _reprovision( @@ -708,7 +711,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { Provision memory afterProvision = staking.getProvision(serviceProvider, verifier); Provision memory afterProvisionNewVerifier = staking.getProvision(serviceProvider, newVerifier); ServiceProviderInternal memory afterServiceProvider = _getStorage_ServiceProviderInternal(serviceProvider); - LinkedList.List memory afterThawRequestList = staking.getThawRequestList( + ILinkedList.List memory afterThawRequestList = staking.getThawRequestList( IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, @@ -1011,7 +1014,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { struct BeforeValues_Undelegate { DelegationPoolInternalTest pool; DelegationInternal delegation; - LinkedList.List thawRequestList; + ILinkedList.List thawRequestList; uint256 delegatedTokens; } struct CalcValues_Undelegate { @@ -1092,7 +1095,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { beneficiary, legacy ); - LinkedList.List memory afterThawRequestList = staking.getThawRequestList( + ILinkedList.List memory afterThawRequestList = staking.getThawRequestList( thawRequestType, serviceProvider, verifier, @@ -1161,7 +1164,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { DelegationPoolInternalTest pool; DelegationPoolInternalTest newPool; DelegationInternal newDelegation; - LinkedList.List thawRequestList; + ILinkedList.List thawRequestList; uint256 senderBalance; uint256 stakingBalance; } @@ -1169,7 +1172,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { DelegationPoolInternalTest pool; DelegationPoolInternalTest newPool; DelegationInternal newDelegation; - LinkedList.List thawRequestList; + ILinkedList.List thawRequestList; uint256 senderBalance; uint256 stakingBalance; } @@ -2390,7 +2393,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { function calcThawRequestData( Params_CalcThawRequestData memory params ) private view returns (CalcValues_ThawRequestData memory) { - LinkedList.List memory thawRequestList = _getThawRequestList( + ILinkedList.List memory thawRequestList = _getThawRequestList( params.thawRequestType, params.serviceProvider, params.verifier, @@ -2475,7 +2478,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { address serviceProvider, address verifier, address owner - ) private view returns (LinkedList.List memory) { + ) private view returns (ILinkedList.List memory) { return staking.getThawRequestList(thawRequestType, serviceProvider, verifier, owner); } diff --git a/packages/horizon/test/unit/shared/payments-escrow/PaymentsEscrowShared.t.sol b/packages/horizon/test/unit/shared/payments-escrow/PaymentsEscrowShared.t.sol index 0e6c91b81..edd84f5cd 100644 --- a/packages/horizon/test/unit/shared/payments-escrow/PaymentsEscrowShared.t.sol +++ b/packages/horizon/test/unit/shared/payments-escrow/PaymentsEscrowShared.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IPaymentsEscrow } from "../../../../contracts/interfaces/IPaymentsEscrow.sol"; +import { IPaymentsEscrow } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsEscrow.sol"; import { GraphBaseTest } from "../../GraphBase.t.sol"; abstract contract PaymentsEscrowSharedTest is GraphBaseTest { diff --git a/packages/horizon/test/unit/staking/allocation/allocation.t.sol b/packages/horizon/test/unit/staking/allocation/allocation.t.sol index 64b830be0..fb0c40790 100644 --- a/packages/horizon/test/unit/staking/allocation/allocation.t.sol +++ b/packages/horizon/test/unit/staking/allocation/allocation.t.sol @@ -4,7 +4,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; -import { IHorizonStakingExtension } from "../../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { + IHorizonStakingExtension +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; contract HorizonStakingAllocationTest is HorizonStakingTest { /* diff --git a/packages/horizon/test/unit/staking/allocation/close.t.sol b/packages/horizon/test/unit/staking/allocation/close.t.sol index 5bb3bc979..68de999cd 100644 --- a/packages/horizon/test/unit/staking/allocation/close.t.sol +++ b/packages/horizon/test/unit/staking/allocation/close.t.sol @@ -4,7 +4,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; -import { IHorizonStakingExtension } from "../../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { + IHorizonStakingExtension +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; import { PPMMath } from "../../../../contracts/libraries/PPMMath.sol"; contract HorizonStakingCloseAllocationTest is HorizonStakingTest { diff --git a/packages/horizon/test/unit/staking/delegation/addToPool.t.sol b/packages/horizon/test/unit/staking/delegation/addToPool.t.sol index d07fbc713..a070bd803 100644 --- a/packages/horizon/test/unit/staking/delegation/addToPool.t.sol +++ b/packages/horizon/test/unit/staking/delegation/addToPool.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; contract HorizonStakingDelegationAddToPoolTest is HorizonStakingTest { diff --git a/packages/horizon/test/unit/staking/delegation/delegate.t.sol b/packages/horizon/test/unit/staking/delegation/delegate.t.sol index 48ff6abd7..bd5faac32 100644 --- a/packages/horizon/test/unit/staking/delegation/delegate.t.sol +++ b/packages/horizon/test/unit/staking/delegation/delegate.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/unit/staking/delegation/legacyWithdraw.t.sol b/packages/horizon/test/unit/staking/delegation/legacyWithdraw.t.sol index f18485fd5..bc70c0471 100644 --- a/packages/horizon/test/unit/staking/delegation/legacyWithdraw.t.sol +++ b/packages/horizon/test/unit/staking/delegation/legacyWithdraw.t.sol @@ -3,9 +3,11 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IHorizonStakingTypes } from "../../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; -import { IHorizonStakingExtension } from "../../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { + IHorizonStakingExtension +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; import { LinkedList } from "../../../../contracts/libraries/LinkedList.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/unit/staking/delegation/redelegate.t.sol b/packages/horizon/test/unit/staking/delegation/redelegate.t.sol index 27399328d..71afe7837 100644 --- a/packages/horizon/test/unit/staking/delegation/redelegate.t.sol +++ b/packages/horizon/test/unit/staking/delegation/redelegate.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/unit/staking/delegation/undelegate.t.sol b/packages/horizon/test/unit/staking/delegation/undelegate.t.sol index fcdca8107..0f58ec8d5 100644 --- a/packages/horizon/test/unit/staking/delegation/undelegate.t.sol +++ b/packages/horizon/test/unit/staking/delegation/undelegate.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/unit/staking/delegation/withdraw.t.sol b/packages/horizon/test/unit/staking/delegation/withdraw.t.sol index 7c2c1ec53..948961591 100644 --- a/packages/horizon/test/unit/staking/delegation/withdraw.t.sol +++ b/packages/horizon/test/unit/staking/delegation/withdraw.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IHorizonStakingTypes } from "../../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; -import { LinkedList } from "../../../../contracts/libraries/LinkedList.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; @@ -24,7 +24,7 @@ contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { useDelegation(delegationAmount) useUndelegate(withdrawShares) { - LinkedList.List memory thawingRequests = staking.getThawRequestList( + ILinkedList.List memory thawingRequests = staking.getThawRequestList( IHorizonStakingTypes.ThawRequestType.Delegation, users.indexer, subgraphDataServiceAddress, @@ -79,7 +79,7 @@ contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { ); _undelegate(users.indexer, delegation.shares); - LinkedList.List memory thawingRequests = staking.getThawRequestList( + ILinkedList.List memory thawingRequests = staking.getThawRequestList( IHorizonStakingTypes.ThawRequestType.Delegation, users.indexer, subgraphDataServiceLegacyAddress, diff --git a/packages/horizon/test/unit/staking/provision/parameters.t.sol b/packages/horizon/test/unit/staking/provision/parameters.t.sol index bc44876e5..f7c74f508 100644 --- a/packages/horizon/test/unit/staking/provision/parameters.t.sol +++ b/packages/horizon/test/unit/staking/provision/parameters.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; contract HorizonStakingProvisionParametersTest is HorizonStakingTest { /* diff --git a/packages/horizon/test/unit/staking/provision/thaw.t.sol b/packages/horizon/test/unit/staking/provision/thaw.t.sol index 6b57a7b70..7beabd1ad 100644 --- a/packages/horizon/test/unit/staking/provision/thaw.t.sol +++ b/packages/horizon/test/unit/staking/provision/thaw.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingTypes } from "../../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; contract HorizonStakingThawTest is HorizonStakingTest { diff --git a/packages/horizon/test/unit/staking/serviceProvider/serviceProvider.t.sol b/packages/horizon/test/unit/staking/serviceProvider/serviceProvider.t.sol index 053130db1..9d6a87fc0 100644 --- a/packages/horizon/test/unit/staking/serviceProvider/serviceProvider.t.sol +++ b/packages/horizon/test/unit/staking/serviceProvider/serviceProvider.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; -import { IGraphPayments } from "../../../../contracts/interfaces/IGraphPayments.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/unit/staking/slash/legacySlash.t.sol b/packages/horizon/test/unit/staking/slash/legacySlash.t.sol index d4dda3f2f..13da12ef1 100644 --- a/packages/horizon/test/unit/staking/slash/legacySlash.t.sol +++ b/packages/horizon/test/unit/staking/slash/legacySlash.t.sol @@ -3,7 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingExtension } from "../../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { + IHorizonStakingExtension +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/unit/staking/slash/slash.t.sol b/packages/horizon/test/unit/staking/slash/slash.t.sol index ffe76c5a8..e5c365d67 100644 --- a/packages/horizon/test/unit/staking/slash/slash.t.sol +++ b/packages/horizon/test/unit/staking/slash/slash.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/unit/staking/stake/withdraw.t.sol b/packages/horizon/test/unit/staking/stake/withdraw.t.sol index 5968838b4..eac19e416 100644 --- a/packages/horizon/test/unit/staking/stake/withdraw.t.sol +++ b/packages/horizon/test/unit/staking/stake/withdraw.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IHorizonStakingMain } from "../../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingMain } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; diff --git a/packages/horizon/test/unit/utilities/Authorizable.t.sol b/packages/horizon/test/unit/utilities/Authorizable.t.sol index 4528b339d..7a4198cc9 100644 --- a/packages/horizon/test/unit/utilities/Authorizable.t.sol +++ b/packages/horizon/test/unit/utilities/Authorizable.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import { Test } from "forge-std/Test.sol"; import { Authorizable } from "../../../contracts/utilities/Authorizable.sol"; -import { IAuthorizable } from "../../../contracts/interfaces/IAuthorizable.sol"; +import { IAuthorizable } from "@graphprotocol/interfaces/contracts/horizon/IAuthorizable.sol"; import { Bounder } from "../utils/Bounder.t.sol"; import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; diff --git a/packages/horizon/test/unit/utilities/GraphDirectoryImplementation.sol b/packages/horizon/test/unit/utilities/GraphDirectoryImplementation.sol index bf40a35b8..13b1daebb 100644 --- a/packages/horizon/test/unit/utilities/GraphDirectoryImplementation.sol +++ b/packages/horizon/test/unit/utilities/GraphDirectoryImplementation.sol @@ -3,15 +3,15 @@ pragma solidity 0.8.27; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IHorizonStaking } from "../../../contracts/interfaces/IHorizonStaking.sol"; -import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol"; -import { IPaymentsEscrow } from "../../../contracts/interfaces/IPaymentsEscrow.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IPaymentsEscrow } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsEscrow.sol"; import { IController } from "@graphprotocol/contracts/contracts/governance/IController.sol"; import { IEpochManager } from "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol"; import { IRewardsManager } from "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol"; import { ITokenGateway } from "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol"; -import { IGraphProxyAdmin } from "../../../contracts/interfaces/IGraphProxyAdmin.sol"; +import { IGraphProxyAdmin } from "@graphprotocol/interfaces/contracts/contracts/upgrades/IGraphProxyAdmin.sol"; import { ICuration } from "@graphprotocol/contracts/contracts/curation/ICuration.sol"; import { GraphDirectory } from "./../../../contracts/utilities/GraphDirectory.sol"; diff --git a/packages/horizon/tsconfig.json b/packages/horizon/tsconfig.json index c4bc0a427..b64264422 100644 --- a/packages/horizon/tsconfig.json +++ b/packages/horizon/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "dist", + "outDir": "dist" }, "include": [ "hardhat.config.ts", diff --git a/packages/common/.markdownlint.json b/packages/interfaces/.markdownlint.json similarity index 100% rename from packages/common/.markdownlint.json rename to packages/interfaces/.markdownlint.json diff --git a/packages/interfaces/README.md b/packages/interfaces/README.md new file mode 100644 index 000000000..d746072e7 --- /dev/null +++ b/packages/interfaces/README.md @@ -0,0 +1,13 @@ +# @graphprotocol/interfaces + +Contract interfaces for The Graph protocol. + +## Overview + +This package contains interfaces used in dependent packages, which makes building systems that interact with Balancer contracts simpler, as the implementation information is not included. + +## Installation + +```bash +pnpm add @graphprotocol/interfaces +``` diff --git a/packages/interfaces/contracts/contracts/arbitrum/IArbToken.sol b/packages/interfaces/contracts/contracts/arbitrum/IArbToken.sol new file mode 100644 index 000000000..35fd7beb3 --- /dev/null +++ b/packages/interfaces/contracts/contracts/arbitrum/IArbToken.sol @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: Apache-2.0 + +/* + * Copyright 2020, Offchain Labs, Inc. + * + * 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. + * + * Originally copied from: + * https://github.com/OffchainLabs/arbitrum/tree/e3a6307ad8a2dc2cad35728a2a9908cfd8dd8ef9/packages/arb-bridge-peripherals + * + * MODIFIED from Offchain Labs' implementation: + * - Changed solidity version to 0.7.6 (pablo@edgeandnode.com) + * + */ + +/** + * @title Minimum expected interface for L2 token that interacts with the L2 token bridge (this is the interface necessary + * for a custom token that interacts with the bridge, see TestArbCustomToken.sol for an example implementation). + */ +pragma solidity ^0.7.6 || 0.8.27; + +interface IArbToken { + /** + * @notice should increase token supply by amount, and should (probably) only be callable by the L1 bridge. + */ + function bridgeMint(address account, uint256 amount) external; + + /** + * @notice should decrease token supply by amount, and should (probably) only be callable by the L1 bridge. + */ + function bridgeBurn(address account, uint256 amount) external; + + /** + * @return address of layer 1 token + */ + function l1Address() external view returns (address); +} diff --git a/packages/interfaces/contracts/contracts/arbitrum/IBridge.sol b/packages/interfaces/contracts/contracts/arbitrum/IBridge.sol new file mode 100644 index 000000000..791c2b1a1 --- /dev/null +++ b/packages/interfaces/contracts/contracts/arbitrum/IBridge.sol @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: Apache-2.0 + +/* + * Copyright 2021, Offchain Labs, Inc. + * + * 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. + * + * Originally copied from: + * https://github.com/OffchainLabs/arbitrum/tree/e3a6307ad8a2dc2cad35728a2a9908cfd8dd8ef9/packages/arb-bridge-eth + * + * MODIFIED from Offchain Labs' implementation: + * - Changed solidity version to 0.7.6 (pablo@edgeandnode.com) + * + */ + +pragma solidity ^0.7.6 || 0.8.27; + +interface IBridge { + event MessageDelivered( + uint256 indexed messageIndex, + bytes32 indexed beforeInboxAcc, + address inbox, + uint8 kind, + address sender, + bytes32 messageDataHash + ); + + event BridgeCallTriggered(address indexed outbox, address indexed destAddr, uint256 amount, bytes data); + + event InboxToggle(address indexed inbox, bool enabled); + + event OutboxToggle(address indexed outbox, bool enabled); + + function deliverMessageToInbox( + uint8 kind, + address sender, + bytes32 messageDataHash + ) external payable returns (uint256); + + function executeCall( + address destAddr, + uint256 amount, + bytes calldata data + ) external returns (bool success, bytes memory returnData); + + // These are only callable by the admin + function setInbox(address inbox, bool enabled) external; + + function setOutbox(address inbox, bool enabled) external; + + // View functions + + function activeOutbox() external view returns (address); + + function allowedInboxes(address inbox) external view returns (bool); + + function allowedOutboxes(address outbox) external view returns (bool); + + function inboxAccs(uint256 index) external view returns (bytes32); + + function messageCount() external view returns (uint256); +} diff --git a/packages/interfaces/contracts/contracts/arbitrum/IInbox.sol b/packages/interfaces/contracts/contracts/arbitrum/IInbox.sol new file mode 100644 index 000000000..f216128cf --- /dev/null +++ b/packages/interfaces/contracts/contracts/arbitrum/IInbox.sol @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: Apache-2.0 + +/* + * Copyright 2021, Offchain Labs, Inc. + * + * 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. + * + * Originally copied from: + * https://github.com/OffchainLabs/arbitrum/tree/e3a6307ad8a2dc2cad35728a2a9908cfd8dd8ef9/packages/arb-bridge-eth + * + * MODIFIED from Offchain Labs' implementation: + * - Changed solidity version to 0.7.6 (pablo@edgeandnode.com) + * + */ + +pragma solidity ^0.7.6 || 0.8.27; + +import { IBridge } from "./IBridge.sol"; +import { IMessageProvider } from "./IMessageProvider.sol"; + +interface IInbox is IMessageProvider { + function sendL2Message(bytes calldata messageData) external returns (uint256); + + function sendUnsignedTransaction( + uint256 maxGas, + uint256 gasPriceBid, + uint256 nonce, + address destAddr, + uint256 amount, + bytes calldata data + ) external returns (uint256); + + function sendContractTransaction( + uint256 maxGas, + uint256 gasPriceBid, + address destAddr, + uint256 amount, + bytes calldata data + ) external returns (uint256); + + function sendL1FundedUnsignedTransaction( + uint256 maxGas, + uint256 gasPriceBid, + uint256 nonce, + address destAddr, + bytes calldata data + ) external payable returns (uint256); + + function sendL1FundedContractTransaction( + uint256 maxGas, + uint256 gasPriceBid, + address destAddr, + bytes calldata data + ) external payable returns (uint256); + + function createRetryableTicket( + address destAddr, + uint256 arbTxCallValue, + uint256 maxSubmissionCost, + address submissionRefundAddress, + address valueRefundAddress, + uint256 maxGas, + uint256 gasPriceBid, + bytes calldata data + ) external payable returns (uint256); + + function depositEth(uint256 maxSubmissionCost) external payable returns (uint256); + + function bridge() external view returns (IBridge); + + function pauseCreateRetryables() external; + + function unpauseCreateRetryables() external; + + function startRewriteAddress() external; + + function stopRewriteAddress() external; +} diff --git a/packages/interfaces/contracts/contracts/arbitrum/IMessageProvider.sol b/packages/interfaces/contracts/contracts/arbitrum/IMessageProvider.sol new file mode 100644 index 000000000..50b674c70 --- /dev/null +++ b/packages/interfaces/contracts/contracts/arbitrum/IMessageProvider.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: Apache-2.0 + +/* + * Copyright 2021, Offchain Labs, Inc. + * + * 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. + * + * Originally copied from: + * https://github.com/OffchainLabs/arbitrum/tree/e3a6307ad8a2dc2cad35728a2a9908cfd8dd8ef9/packages/arb-bridge-eth + * + * MODIFIED from Offchain Labs' implementation: + * - Changed solidity version to 0.7.6 (pablo@edgeandnode.com) + * + */ + +pragma solidity ^0.7.6 || 0.8.27; + +interface IMessageProvider { + event InboxMessageDelivered(uint256 indexed messageNum, bytes data); + + event InboxMessageDeliveredFromOrigin(uint256 indexed messageNum); +} diff --git a/packages/interfaces/contracts/contracts/arbitrum/IOutbox.sol b/packages/interfaces/contracts/contracts/arbitrum/IOutbox.sol new file mode 100644 index 000000000..49617a976 --- /dev/null +++ b/packages/interfaces/contracts/contracts/arbitrum/IOutbox.sol @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: Apache-2.0 + +/* + * Copyright 2021, Offchain Labs, Inc. + * + * 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. + * + * Originally copied from: + * https://github.com/OffchainLabs/arbitrum/tree/e3a6307ad8a2dc2cad35728a2a9908cfd8dd8ef9/packages/arb-bridge-eth + * + * MODIFIED from Offchain Labs' implementation: + * - Changed solidity version to 0.7.6 (pablo@edgeandnode.com) + * + */ + +pragma solidity ^0.7.6 || 0.8.27; + +interface IOutbox { + event OutboxEntryCreated( + uint256 indexed batchNum, + uint256 outboxEntryIndex, + bytes32 outputRoot, + uint256 numInBatch + ); + event OutBoxTransactionExecuted( + address indexed destAddr, + address indexed l2Sender, + uint256 indexed outboxEntryIndex, + uint256 transactionIndex + ); + + function l2ToL1Sender() external view returns (address); + + function l2ToL1Block() external view returns (uint256); + + function l2ToL1EthBlock() external view returns (uint256); + + function l2ToL1Timestamp() external view returns (uint256); + + function l2ToL1BatchNum() external view returns (uint256); + + function l2ToL1OutputId() external view returns (bytes32); + + function processOutgoingMessages(bytes calldata sendsData, uint256[] calldata sendLengths) external; + + function outboxEntryExists(uint256 batchNum) external view returns (bool); +} diff --git a/packages/interfaces/contracts/contracts/arbitrum/ITokenGateway.sol b/packages/interfaces/contracts/contracts/arbitrum/ITokenGateway.sol new file mode 100644 index 000000000..3b12e578e --- /dev/null +++ b/packages/interfaces/contracts/contracts/arbitrum/ITokenGateway.sol @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: Apache-2.0 + +/* + * Copyright 2020, Offchain Labs, Inc. + * + * 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. + * + * Originally copied from: + * https://github.com/OffchainLabs/arbitrum/tree/e3a6307ad8a2dc2cad35728a2a9908cfd8dd8ef9/packages/arb-bridge-peripherals + * + * MODIFIED from Offchain Labs' implementation: + * - Changed solidity version to 0.7.6 (pablo@edgeandnode.com) + * + */ + +pragma solidity ^0.7.6 || 0.8.27; + +interface ITokenGateway { + /// @notice event deprecated in favor of DepositInitiated and WithdrawalInitiated + // event OutboundTransferInitiated( + // address token, + // address indexed _from, + // address indexed _to, + // uint256 indexed _transferId, + // uint256 _amount, + // bytes _data + // ); + + /// @notice event deprecated in favor of DepositFinalized and WithdrawalFinalized + // event InboundTransferFinalized( + // address token, + // address indexed _from, + // address indexed _to, + // uint256 indexed _transferId, + // uint256 _amount, + // bytes _data + // ); + + function outboundTransfer( + address token, + address to, + uint256 amunt, + uint256 maxas, + uint256 gasPiceBid, + bytes calldata data + ) external payable returns (bytes memory); + + function finalizeInboundTransfer( + address token, + address from, + address to, + uint256 amount, + bytes calldata data + ) external payable; + + /** + * @notice Calculate the address used when bridging an ERC20 token + * @dev the L1 and L2 address oracles may not always be in sync. + * For example, a custom token may have been registered but not deployed or the contract self destructed. + * @param l1ERC20 address of L1 token + * @return L2 address of a bridged ERC20 token + */ + function calculateL2TokenAddress(address l1ERC20) external view returns (address); +} diff --git a/packages/interfaces/contracts/contracts/base/IMulticall.sol b/packages/interfaces/contracts/contracts/base/IMulticall.sol new file mode 100644 index 000000000..10f7fa469 --- /dev/null +++ b/packages/interfaces/contracts/contracts/base/IMulticall.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +/** + * @title Multicall interface + * @notice Enables calling multiple methods in a single call to the contract + */ +interface IMulticall { + /** + * @notice Call multiple functions in the current contract and return the data from all of them if they all succeed + * @param data The encoded function data for each of the calls to make to this contract + * @return results The results from each of the calls passed in via data + */ + function multicall(bytes[] calldata data) external returns (bytes[] memory results); +} diff --git a/packages/interfaces/contracts/contracts/curation/ICuration.sol b/packages/interfaces/contracts/contracts/curation/ICuration.sol new file mode 100644 index 000000000..cb6271991 --- /dev/null +++ b/packages/interfaces/contracts/contracts/curation/ICuration.sol @@ -0,0 +1,123 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +/** + * @title Curation Interface + * @dev Interface for the Curation contract (and L2Curation too) + */ +interface ICuration { + // -- Configuration -- + + /** + * @notice Update the default reserve ratio to `defaultReserveRatio` + * @param defaultReserveRatio Reserve ratio (in PPM) + */ + function setDefaultReserveRatio(uint32 defaultReserveRatio) external; + + /** + * @notice Update the minimum deposit amount needed to intialize a new subgraph + * @param minimumCurationDeposit Minimum amount of tokens required deposit + */ + function setMinimumCurationDeposit(uint256 minimumCurationDeposit) external; + + /** + * @notice Set the curation tax percentage to charge when a curator deposits GRT tokens. + * @param percentage Curation tax percentage charged when depositing GRT tokens + */ + function setCurationTaxPercentage(uint32 percentage) external; + + /** + * @notice Set the master copy to use as clones for the curation token. + * @param curationTokenMaster Address of implementation contract to use for curation tokens + */ + function setCurationTokenMaster(address curationTokenMaster) external; + + // -- Curation -- + + /** + * @notice Deposit Graph Tokens in exchange for signal of a SubgraphDeployment curation pool. + * @param subgraphDeploymentID Subgraph deployment pool from where to mint signal + * @param tokensIn Amount of Graph Tokens to deposit + * @param signalOutMin Expected minimum amount of signal to receive + * @return Amount of signal minted + * @return Amount of curation tax burned + */ + function mint( + bytes32 subgraphDeploymentID, + uint256 tokensIn, + uint256 signalOutMin + ) external returns (uint256, uint256); + + /** + * @notice Burn signal from the SubgraphDeployment curation pool + * @param subgraphDeploymentID SubgraphDeployment the curator is returning signal + * @param signalIn Amount of signal to return + * @param tokensOutMin Expected minimum amount of tokens to receive + * @return Tokens returned + */ + function burn(bytes32 subgraphDeploymentID, uint256 signalIn, uint256 tokensOutMin) external returns (uint256); + + /** + * @notice Assign Graph Tokens collected as curation fees to the curation pool reserve. + * @param subgraphDeploymentID SubgraphDeployment where funds should be allocated as reserves + * @param tokens Amount of Graph Tokens to add to reserves + */ + function collect(bytes32 subgraphDeploymentID, uint256 tokens) external; + + // -- Getters -- + + /** + * @notice Check if any GRT tokens are deposited for a SubgraphDeployment. + * @param subgraphDeploymentID SubgraphDeployment to check if curated + * @return True if curated, false otherwise + */ + function isCurated(bytes32 subgraphDeploymentID) external view returns (bool); + + /** + * @notice Get the amount of signal a curator has in a curation pool. + * @param curator Curator owning the signal tokens + * @param subgraphDeploymentID Subgraph deployment curation pool + * @return Amount of signal owned by a curator for the subgraph deployment + */ + function getCuratorSignal(address curator, bytes32 subgraphDeploymentID) external view returns (uint256); + + /** + * @notice Get the amount of signal in a curation pool. + * @param subgraphDeploymentID Subgraph deployment curation pool + * @return Amount of signal minted for the subgraph deployment + */ + function getCurationPoolSignal(bytes32 subgraphDeploymentID) external view returns (uint256); + + /** + * @notice Get the amount of token reserves in a curation pool. + * @param subgraphDeploymentID Subgraph deployment curation pool + * @return Amount of token reserves in the curation pool + */ + function getCurationPoolTokens(bytes32 subgraphDeploymentID) external view returns (uint256); + + /** + * @notice Calculate amount of signal that can be bought with tokens in a curation pool. + * This function considers and excludes the deposit tax. + * @param subgraphDeploymentID Subgraph deployment to mint signal + * @param tokensIn Amount of tokens used to mint signal + * @return Amount of signal that can be bought + * @return Amount of tokens that will be burned as curation tax + */ + function tokensToSignal(bytes32 subgraphDeploymentID, uint256 tokensIn) external view returns (uint256, uint256); + + /** + * @notice Calculate number of tokens to get when burning signal from a curation pool. + * @param subgraphDeploymentID Subgraph deployment to burn signal + * @param signalIn Amount of signal to burn + * @return Amount of tokens to get for the specified amount of signal + */ + function signalToTokens(bytes32 subgraphDeploymentID, uint256 signalIn) external view returns (uint256); + + /** + * @notice Tax charged when curators deposit funds. + * Parts per million. (Allows for 4 decimal points, 999,999 = 99.9999%) + * @return Curation tax percentage expressed in PPM + */ + function curationTaxPercentage() external view returns (uint32); +} diff --git a/packages/interfaces/contracts/contracts/curation/IGraphCurationToken.sol b/packages/interfaces/contracts/contracts/curation/IGraphCurationToken.sol new file mode 100644 index 000000000..644593f54 --- /dev/null +++ b/packages/interfaces/contracts/contracts/curation/IGraphCurationToken.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +import { IERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol"; + +interface IGraphCurationToken is IERC20Upgradeable { + function initialize(address owner) external; + + function burnFrom(address account, uint256 amount) external; + + function mint(address to, uint256 amount) external; +} diff --git a/packages/interfaces/contracts/contracts/discovery/IGNS.sol b/packages/interfaces/contracts/contracts/discovery/IGNS.sol new file mode 100644 index 000000000..80184ee81 --- /dev/null +++ b/packages/interfaces/contracts/contracts/discovery/IGNS.sol @@ -0,0 +1,218 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +/** + * @title Interface for GNS + */ +interface IGNS { + // -- Pool -- + + /** + * @dev The SubgraphData struct holds information about subgraphs + * and their signal; both nSignal (i.e. name signal at the GNS level) + * and vSignal (i.e. version signal at the Curation contract level) + */ + struct SubgraphData { + uint256 vSignal; // The token of the subgraph-deployment bonding curve + uint256 nSignal; // The token of the subgraph bonding curve + mapping(address => uint256) curatorNSignal; + bytes32 subgraphDeploymentID; + uint32 __DEPRECATED_reserveRatio; // solhint-disable-line var-name-mixedcase + bool disabled; + uint256 withdrawableGRT; + } + + /** + * @dev The LegacySubgraphKey struct holds the account and sequence ID + * used to generate subgraph IDs in legacy subgraphs. + */ + struct LegacySubgraphKey { + address account; + uint256 accountSeqID; + } + + // -- Configuration -- + + /** + * @notice Approve curation contract to pull funds. + */ + function approveAll() external; + + /** + * @notice Set the owner fee percentage. This is used to prevent a subgraph owner to drain all + * the name curators tokens while upgrading or deprecating and is configurable in parts per million. + * @param ownerTaxPercentage Owner tax percentage + */ + function setOwnerTaxPercentage(uint32 ownerTaxPercentage) external; + + // -- Publishing -- + + /** + * @notice Allows a graph account to set a default name + * @param graphAccount Account that is setting its name + * @param nameSystem Name system account already has ownership of a name in + * @param nameIdentifier The unique identifier that is used to identify the name in the system + * @param name The name being set as default + */ + function setDefaultName( + address graphAccount, + uint8 nameSystem, + bytes32 nameIdentifier, + string calldata name + ) external; + + /** + * @notice Allows a subgraph owner to update the metadata of a subgraph they have published + * @param subgraphID Subgraph ID + * @param subgraphMetadata IPFS hash for the subgraph metadata + */ + function updateSubgraphMetadata(uint256 subgraphID, bytes32 subgraphMetadata) external; + + /** + * @notice Publish a new subgraph. + * @param subgraphDeploymentID Subgraph deployment for the subgraph + * @param versionMetadata IPFS hash for the subgraph version metadata + * @param subgraphMetadata IPFS hash for the subgraph metadata + */ + function publishNewSubgraph( + bytes32 subgraphDeploymentID, + bytes32 versionMetadata, + bytes32 subgraphMetadata + ) external; + + /** + * @notice Publish a new version of an existing subgraph. + * @param subgraphID Subgraph ID + * @param subgraphDeploymentID Subgraph deployment ID of the new version + * @param versionMetadata IPFS hash for the subgraph version metadata + */ + function publishNewVersion(uint256 subgraphID, bytes32 subgraphDeploymentID, bytes32 versionMetadata) external; + + /** + * @notice Deprecate a subgraph. The bonding curve is destroyed, the vSignal is burned, and the GNS + * contract holds the GRT from burning the vSignal, which all curators can withdraw manually. + * Can only be done by the subgraph owner. + * @param subgraphID Subgraph ID + */ + function deprecateSubgraph(uint256 subgraphID) external; + + // -- Curation -- + + /** + * @notice Deposit GRT into a subgraph and mint signal. + * @param subgraphID Subgraph ID + * @param tokensIn The amount of tokens the nameCurator wants to deposit + * @param nSignalOutMin Expected minimum amount of name signal to receive + */ + function mintSignal(uint256 subgraphID, uint256 tokensIn, uint256 nSignalOutMin) external; + + /** + * @notice Burn signal for a subgraph and return the GRT. + * @param subgraphID Subgraph ID + * @param nSignal The amount of nSignal the nameCurator wants to burn + * @param tokensOutMin Expected minimum amount of tokens to receive + */ + function burnSignal(uint256 subgraphID, uint256 nSignal, uint256 tokensOutMin) external; + + /** + * @notice Move subgraph signal from sender to recipient + * @param subgraphID Subgraph ID + * @param recipient Address to send the signal to + * @param amount The amount of nSignal to transfer + */ + function transferSignal(uint256 subgraphID, address recipient, uint256 amount) external; + + /** + * @notice Withdraw tokens from a deprecated subgraph. + * When the subgraph is deprecated, any curator can call this function and + * withdraw the GRT they are entitled for its original deposit + * @param subgraphID Subgraph ID + */ + function withdraw(uint256 subgraphID) external; + + // -- Getters -- + + /** + * @notice Return the owner of a subgraph. + * @param tokenID Subgraph ID + * @return Owner address + */ + function ownerOf(uint256 tokenID) external view returns (address); + + /** + * @notice Return the total signal on the subgraph. + * @param subgraphID Subgraph ID + * @return Total signal on the subgraph + */ + function subgraphSignal(uint256 subgraphID) external view returns (uint256); + + /** + * @notice Return the total tokens on the subgraph at current value. + * @param subgraphID Subgraph ID + * @return Total tokens on the subgraph + */ + function subgraphTokens(uint256 subgraphID) external view returns (uint256); + + /** + * @notice Calculate subgraph signal to be returned for an amount of tokens. + * @param subgraphID Subgraph ID + * @param tokensIn Tokens being exchanged for subgraph signal + * @return Amount of subgraph signal and curation tax + */ + function tokensToNSignal(uint256 subgraphID, uint256 tokensIn) external view returns (uint256, uint256, uint256); + + /** + * @notice Calculate tokens returned for an amount of subgraph signal. + * @param subgraphID Subgraph ID + * @param nSignalIn Subgraph signal being exchanged for tokens + * @return Amount of tokens returned for an amount of subgraph signal + */ + function nSignalToTokens(uint256 subgraphID, uint256 nSignalIn) external view returns (uint256, uint256); + + /** + * @notice Calculate subgraph signal to be returned for an amount of subgraph deployment signal. + * @param subgraphID Subgraph ID + * @param vSignalIn Amount of subgraph deployment signal to exchange for subgraph signal + * @return Amount of subgraph signal that can be bought + */ + function vSignalToNSignal(uint256 subgraphID, uint256 vSignalIn) external view returns (uint256); + + /** + * @notice Calculate subgraph deployment signal to be returned for an amount of subgraph signal. + * @param subgraphID Subgraph ID + * @param nSignalIn Subgraph signal being exchanged for subgraph deployment signal + * @return Amount of subgraph deployment signal that can be returned + */ + function nSignalToVSignal(uint256 subgraphID, uint256 nSignalIn) external view returns (uint256); + + /** + * @notice Get the amount of subgraph signal a curator has. + * @param subgraphID Subgraph ID + * @param curator Curator address + * @return Amount of subgraph signal owned by a curator + */ + function getCuratorSignal(uint256 subgraphID, address curator) external view returns (uint256); + + /** + * @notice Return whether a subgraph is published. + * @param subgraphID Subgraph ID + * @return Return true if subgraph is currently published + */ + function isPublished(uint256 subgraphID) external view returns (bool); + + /** + * @notice Return whether a subgraph is a legacy subgraph (created before subgraph NFTs). + * @param subgraphID Subgraph ID + * @return Return true if subgraph is a legacy subgraph + */ + function isLegacySubgraph(uint256 subgraphID) external view returns (bool); + + /** + * @notice Returns account and sequence ID for a legacy subgraph (created before subgraph NFTs). + * @param subgraphID Subgraph ID + * @return account Account that created the subgraph (or 0 if it's not a legacy subgraph) + * @return seqID Sequence number for the subgraph + */ + function getLegacySubgraphKey(uint256 subgraphID) external view returns (address account, uint256 seqID); +} diff --git a/packages/interfaces/contracts/contracts/discovery/IServiceRegistry.sol b/packages/interfaces/contracts/contracts/discovery/IServiceRegistry.sol new file mode 100644 index 000000000..b3f5377c0 --- /dev/null +++ b/packages/interfaces/contracts/contracts/discovery/IServiceRegistry.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +interface IServiceRegistry { + struct IndexerService { + string url; + string geohash; + } + + function register(string calldata url, string calldata geohash) external; + + function registerFor(address indexer, string calldata url, string calldata geohash) external; + + function unregister() external; + + function unregisterFor(address indexer) external; + + function isRegistered(address indexer) external view returns (bool); +} diff --git a/packages/interfaces/contracts/contracts/discovery/ISubgraphNFT.sol b/packages/interfaces/contracts/contracts/discovery/ISubgraphNFT.sol new file mode 100644 index 000000000..0f7d5a73d --- /dev/null +++ b/packages/interfaces/contracts/contracts/discovery/ISubgraphNFT.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; + +interface ISubgraphNFT is IERC721 { + // -- Config -- + + function setMinter(address minter) external; + + function setTokenDescriptor(address tokenDescriptor) external; + + function setBaseURI(string memory baseURI) external; + + // -- Actions -- + + function mint(address to, uint256 tokenId) external; + + function burn(uint256 tokenId) external; + + function setSubgraphMetadata(uint256 tokenId, bytes32 subgraphMetadata) external; + + function tokenURI(uint256 tokenId) external view returns (string memory); +} diff --git a/packages/interfaces/contracts/contracts/discovery/ISubgraphNFTDescriptor.sol b/packages/interfaces/contracts/contracts/discovery/ISubgraphNFTDescriptor.sol new file mode 100644 index 000000000..429e22898 --- /dev/null +++ b/packages/interfaces/contracts/contracts/discovery/ISubgraphNFTDescriptor.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +/// @title Describes subgraph NFT tokens via URI +interface ISubgraphNFTDescriptor { + /// @notice Produces the URI describing a particular token ID for a Subgraph + /// @dev Note this URI may be data: URI with the JSON contents directly inlined + /// @param minter Address of the allowed minter + /// @param tokenId The ID of the subgraph NFT for which to produce a description, which may not be valid + /// @param baseURI The base URI that could be prefixed to the final URI + /// @param subgraphMetadata Subgraph metadata set for the subgraph + /// @return The URI of the ERC721-compliant metadata + function tokenURI( + address minter, + uint256 tokenId, + string calldata baseURI, + bytes32 subgraphMetadata + ) external view returns (string memory); +} diff --git a/packages/interfaces/contracts/contracts/discovery/erc1056/IEthereumDIDRegistry.sol b/packages/interfaces/contracts/contracts/discovery/erc1056/IEthereumDIDRegistry.sol new file mode 100644 index 000000000..c4bdf1ba8 --- /dev/null +++ b/packages/interfaces/contracts/contracts/discovery/erc1056/IEthereumDIDRegistry.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Apache-2.0 + +pragma solidity ^0.7.6 || 0.8.27; + +interface IEthereumDIDRegistry { + function identityOwner(address identity) external view returns (address); + + function setAttribute(address identity, bytes32 name, bytes calldata value, uint256 validity) external; +} diff --git a/packages/interfaces/contracts/contracts/disputes/IDisputeManager.sol b/packages/interfaces/contracts/contracts/disputes/IDisputeManager.sol new file mode 100644 index 000000000..eb86be5d0 --- /dev/null +++ b/packages/interfaces/contracts/contracts/disputes/IDisputeManager.sol @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity >=0.6.12 <0.8.0 || 0.8.27; +pragma abicoder v2; + +interface IDisputeManager { + // -- Dispute -- + + enum DisputeType { + Null, + IndexingDispute, + QueryDispute + } + + enum DisputeStatus { + Null, + Accepted, + Rejected, + Drawn, + Pending + } + + // Disputes contain info necessary for the Arbitrator to verify and resolve + struct Dispute { + address indexer; + address fisherman; + uint256 deposit; + bytes32 relatedDisputeID; + DisputeType disputeType; + DisputeStatus status; + } + + // -- Attestation -- + + // Receipt content sent from indexer in response to request + struct Receipt { + bytes32 requestCID; + bytes32 responseCID; + bytes32 subgraphDeploymentID; + } + + // Attestation sent from indexer in response to a request + struct Attestation { + bytes32 requestCID; + bytes32 responseCID; + bytes32 subgraphDeploymentID; + bytes32 r; + bytes32 s; + uint8 v; + } + + // -- Configuration -- + + function setArbitrator(address arbitrator) external; + + function setMinimumDeposit(uint256 minimumDeposit) external; + + function setFishermanRewardPercentage(uint32 percentage) external; + + function setSlashingPercentage(uint32 qryPercentage, uint32 idxPercentage) external; + + // -- Getters -- + + function isDisputeCreated(bytes32 disputeID) external view returns (bool); + + function encodeHashReceipt(Receipt memory receipt) external view returns (bytes32); + + function areConflictingAttestations( + Attestation memory attestation1, + Attestation memory attestation2 + ) external pure returns (bool); + + function getAttestationIndexer(Attestation memory attestation) external view returns (address); + + // -- Dispute -- + + function createQueryDispute(bytes calldata attestationData, uint256 deposit) external returns (bytes32); + + function createQueryDisputeConflict( + bytes calldata attestationData1, + bytes calldata attestationData2 + ) external returns (bytes32, bytes32); + + function createIndexingDispute(address allocationID, uint256 deposit) external returns (bytes32); + + function acceptDispute(bytes32 disputeID) external; + + function rejectDispute(bytes32 disputeID) external; + + function drawDispute(bytes32 disputeID) external; +} diff --git a/packages/interfaces/contracts/contracts/epochs/IEpochManager.sol b/packages/interfaces/contracts/contracts/epochs/IEpochManager.sol new file mode 100644 index 000000000..06f3fd70a --- /dev/null +++ b/packages/interfaces/contracts/contracts/epochs/IEpochManager.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +interface IEpochManager { + // -- Configuration -- + + function setEpochLength(uint256 epochLength) external; + + // -- Epochs + + function runEpoch() external; + + // -- Getters -- + + function isCurrentEpochRun() external view returns (bool); + + function blockNum() external view returns (uint256); + + function blockHash(uint256 block) external view returns (bytes32); + + function currentEpoch() external view returns (uint256); + + function currentEpochBlock() external view returns (uint256); + + function currentEpochBlockSinceStart() external view returns (uint256); + + function epochsSince(uint256 epoch) external view returns (uint256); + + function epochsSinceUpdate() external view returns (uint256); +} diff --git a/packages/interfaces/contracts/contracts/gateway/ICallhookReceiver.sol b/packages/interfaces/contracts/contracts/gateway/ICallhookReceiver.sol new file mode 100644 index 000000000..86bc654a0 --- /dev/null +++ b/packages/interfaces/contracts/contracts/gateway/ICallhookReceiver.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +/** + * @title Interface for contracts that can receive callhooks through the Arbitrum GRT bridge + * @dev Any contract that can receive a callhook on L2, sent through the bridge from L1, must + * be allowlisted by the governor, but also implement this interface that contains + * the function that will actually be called by the L2GraphTokenGateway. + */ +pragma solidity ^0.7.6 || 0.8.27; + +interface ICallhookReceiver { + /** + * @notice Receive tokens with a callhook from the bridge + * @param from Token sender in L1 + * @param amount Amount of tokens that were transferred + * @param data ABI-encoded callhook data + */ + function onTokenTransfer(address from, uint256 amount, bytes calldata data) external; +} diff --git a/packages/interfaces/contracts/contracts/governance/IController.sol b/packages/interfaces/contracts/contracts/governance/IController.sol new file mode 100644 index 000000000..2f6d3b6b7 --- /dev/null +++ b/packages/interfaces/contracts/contracts/governance/IController.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +interface IController { + function getGovernor() external view returns (address); + + // -- Registry -- + + function setContractProxy(bytes32 id, address contractAddress) external; + + function unsetContractProxy(bytes32 id) external; + + function updateController(bytes32 id, address controller) external; + + function getContractProxy(bytes32 id) external view returns (address); + + // -- Pausing -- + + function setPartialPaused(bool partialPaused) external; + + function setPaused(bool paused) external; + + function setPauseGuardian(address newPauseGuardian) external; + + function paused() external view returns (bool); + + function partialPaused() external view returns (bool); +} diff --git a/packages/interfaces/contracts/contracts/governance/IGoverned.sol b/packages/interfaces/contracts/contracts/governance/IGoverned.sol new file mode 100644 index 000000000..6b495d04c --- /dev/null +++ b/packages/interfaces/contracts/contracts/governance/IGoverned.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +/** + * @title IGoverned + * @dev Interface for the Governed contract. + */ +interface IGoverned { + // -- State getters -- + + function governor() external view returns (address); + + function pendingGovernor() external view returns (address); + + // -- External functions -- + + /** + * @notice Admin function to begin change of governor. + * @param _newGovernor Address of new `governor` + */ + function transferOwnership(address _newGovernor) external; + + /** + * @notice Admin function for pending governor to accept role and update governor. + */ + function acceptOwnership() external; + + // -- Events -- + + event NewPendingOwnership(address indexed from, address indexed to); + + event NewOwnership(address indexed from, address indexed to); +} diff --git a/packages/interfaces/contracts/contracts/governance/IManaged.sol b/packages/interfaces/contracts/contracts/governance/IManaged.sol new file mode 100644 index 000000000..9bfe57083 --- /dev/null +++ b/packages/interfaces/contracts/contracts/governance/IManaged.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +import { IController } from "./IController.sol"; + +/** + * @title Managed Interface + * @dev Interface for contracts that can be managed by a controller. + */ +interface IManaged { + /** + * @notice Set the controller that manages this contract + * @dev Only the current controller can set a new controller + * @param controller Address of the new controller + */ + function setController(address controller) external; + + /** + * @notice Sync protocol contract addresses from the Controller registry + * @dev This function will cache all the contracts using the latest addresses. + * Anyone can call the function whenever a Proxy contract change in the + * controller to ensure the protocol is using the latest version. + */ + function syncAllContracts() external; + + /** + * @notice Get the Controller that manages this contract + * @return The Controller as an IController interface + */ + function controller() external view returns (IController); +} diff --git a/packages/interfaces/contracts/contracts/l2/curation/IL2Curation.sol b/packages/interfaces/contracts/contracts/l2/curation/IL2Curation.sol new file mode 100644 index 000000000..18f6882cc --- /dev/null +++ b/packages/interfaces/contracts/contracts/l2/curation/IL2Curation.sol @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +/** + * @title Interface of the L2 Curation contract. + */ +interface IL2Curation { + /** + * @notice Set the subgraph service address. + * @param subgraphService Address of the SubgraphService contract + */ + function setSubgraphService(address subgraphService) external; + + /** + * @notice Deposit Graph Tokens in exchange for signal of a SubgraphDeployment curation pool. + * @dev This function charges no tax and can only be called by GNS in specific scenarios (for now + * only during an L1-L2 transfer). + * @param subgraphDeploymentID Subgraph deployment pool from where to mint signal + * @param tokensIn Amount of Graph Tokens to deposit + * @return Signal minted + */ + function mintTaxFree(bytes32 subgraphDeploymentID, uint256 tokensIn) external returns (uint256); + + /** + * @notice Calculate amount of signal that can be bought with tokens in a curation pool, + * without accounting for curation tax. + * @param subgraphDeploymentID Subgraph deployment for which to mint signal + * @param tokensIn Amount of tokens used to mint signal + * @return Amount of signal that can be bought + */ + function tokensToSignalNoTax(bytes32 subgraphDeploymentID, uint256 tokensIn) external view returns (uint256); + + /** + * @notice Calculate the amount of tokens that would be recovered if minting signal with + * the input tokens and then burning it. This can be used to compute rounding error. + * This function does not account for curation tax. + * @param subgraphDeploymentID Subgraph deployment for which to mint signal + * @param tokensIn Amount of tokens used to mint signal + * @return Amount of tokens that would be recovered after minting and burning signal + */ + function tokensToSignalToTokensNoTax( + bytes32 subgraphDeploymentID, + uint256 tokensIn + ) external view returns (uint256); +} diff --git a/packages/interfaces/contracts/contracts/l2/discovery/IL2GNS.sol b/packages/interfaces/contracts/contracts/l2/discovery/IL2GNS.sol new file mode 100644 index 000000000..12a1aeec9 --- /dev/null +++ b/packages/interfaces/contracts/contracts/l2/discovery/IL2GNS.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +import { ICallhookReceiver } from "../../gateway/ICallhookReceiver.sol"; + +/** + * @title Interface for the L2GNS contract. + */ +interface IL2GNS is ICallhookReceiver { + enum L1MessageCodes { + RECEIVE_SUBGRAPH_CODE, + RECEIVE_CURATOR_BALANCE_CODE + } + + /** + * @dev The SubgraphL2TransferData struct holds information + * about a subgraph related to its transfer from L1 to L2. + */ + struct SubgraphL2TransferData { + uint256 tokens; // GRT that will be sent to L2 to mint signal + mapping(address => bool) curatorBalanceClaimed; // True for curators whose balance has been claimed in L2 + bool l2Done; // Transfer finished on L2 side + uint256 subgraphReceivedOnL2BlockNumber; // Block number when the subgraph was received on L2 + } + + /** + * @notice Finish a subgraph transfer from L1. + * The subgraph must have been previously sent through the bridge + * using the sendSubgraphToL2 function on L1GNS. + * @param l2SubgraphID Subgraph ID in L2 (aliased from the L1 subgraph ID) + * @param subgraphDeploymentID Latest subgraph deployment to assign to the subgraph + * @param subgraphMetadata IPFS hash of the subgraph metadata + * @param versionMetadata IPFS hash of the version metadata + */ + function finishSubgraphTransferFromL1( + uint256 l2SubgraphID, + bytes32 subgraphDeploymentID, + bytes32 subgraphMetadata, + bytes32 versionMetadata + ) external; + + /** + * @notice Return the aliased L2 subgraph ID from a transferred L1 subgraph ID + * @param l1SubgraphID L1 subgraph ID + * @return L2 subgraph ID + */ + function getAliasedL2SubgraphID(uint256 l1SubgraphID) external pure returns (uint256); + + /** + * @notice Return the unaliased L1 subgraph ID from a transferred L2 subgraph ID + * @param l2SubgraphID L2 subgraph ID + * @return L1subgraph ID + */ + function getUnaliasedL1SubgraphID(uint256 l2SubgraphID) external pure returns (uint256); +} diff --git a/packages/interfaces/contracts/contracts/l2/gateway/IL2GraphTokenGateway.sol b/packages/interfaces/contracts/contracts/l2/gateway/IL2GraphTokenGateway.sol new file mode 100644 index 000000000..b1e088212 --- /dev/null +++ b/packages/interfaces/contracts/contracts/l2/gateway/IL2GraphTokenGateway.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +interface IL2GraphTokenGateway { + // Structs + struct OutboundCalldata { + address from; + bytes extraData; + } + + // Events + event DepositFinalized(address indexed l1Token, address indexed from, address indexed to, uint256 amount); + event WithdrawalInitiated( + address l1Token, + address indexed from, + address indexed to, + uint256 indexed l2ToL1Id, + uint256 exitNum, + uint256 amount + ); + event L2RouterSet(address l2Router); + event L1TokenAddressSet(address l1GRT); + event L1CounterpartAddressSet(address l1Counterpart); + + // Functions + function initialize(address controller) external; + + function setL2Router(address l2Router) external; + + function setL1TokenAddress(address l1GRT) external; + + function setL1CounterpartAddress(address l1Counterpart) external; + + function outboundTransfer( + address l1Token, + address to, + uint256 amount, + bytes calldata data + ) external returns (bytes memory); + + function finalizeInboundTransfer( + address l1Token, + address from, + address to, + uint256 amount, + bytes calldata data + ) external payable; + + function outboundTransfer( + address l1Token, + address to, + uint256 amount, + uint256 unused1, + uint256 unused2, + bytes calldata data + ) external payable returns (bytes memory); + + function calculateL2TokenAddress(address l1ERC20) external view returns (address); + + function getOutboundCalldata( + address token, + address from, + address to, + uint256 amount, + bytes memory data + ) external pure returns (bytes memory); +} diff --git a/packages/interfaces/contracts/contracts/l2/staking/IL2Staking.sol b/packages/interfaces/contracts/contracts/l2/staking/IL2Staking.sol new file mode 100644 index 000000000..0b1718571 --- /dev/null +++ b/packages/interfaces/contracts/contracts/l2/staking/IL2Staking.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +import { IStaking } from "../../staking/IStaking.sol"; +import { IL2StakingBase } from "./IL2StakingBase.sol"; +import { IL2StakingTypes } from "./IL2StakingTypes.sol"; + +/** + * @title Interface for the L2 Staking contract + * @notice This is the interface that should be used when interacting with the L2 Staking contract. + * It extends the IStaking interface with the functions that are specific to L2, adding the callhook receiver + * to receive transferred stake and delegation from L1. + * @dev Note that L2Staking doesn't actually inherit this interface. This is because of + * the custom setup of the Staking contract where part of the functionality is implemented + * in a separate contract (StakingExtension) to which calls are delegated through the fallback function. + */ +interface IL2Staking is IStaking, IL2StakingBase, IL2StakingTypes {} diff --git a/packages/interfaces/contracts/contracts/l2/staking/IL2StakingBase.sol b/packages/interfaces/contracts/contracts/l2/staking/IL2StakingBase.sol new file mode 100644 index 000000000..f5c33c2d0 --- /dev/null +++ b/packages/interfaces/contracts/contracts/l2/staking/IL2StakingBase.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +import { ICallhookReceiver } from "../../gateway/ICallhookReceiver.sol"; + +/** + * @title Base interface for the L2Staking contract. + * @notice This interface is used to define the callhook receiver interface that is implemented by L2Staking. + * @dev Note it includes only the L2-specific functionality, not the full IStaking interface. + */ +interface IL2StakingBase is ICallhookReceiver { + event TransferredDelegationReturnedToDelegator(address indexed indexer, address indexed delegator, uint256 amount); +} diff --git a/packages/interfaces/contracts/contracts/l2/staking/IL2StakingTypes.sol b/packages/interfaces/contracts/contracts/l2/staking/IL2StakingTypes.sol new file mode 100644 index 000000000..500694e89 --- /dev/null +++ b/packages/interfaces/contracts/contracts/l2/staking/IL2StakingTypes.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +interface IL2StakingTypes { + /// @dev Message codes for the L1 -> L2 bridge callhook + enum L1MessageCodes { + RECEIVE_INDEXER_STAKE_CODE, + RECEIVE_DELEGATION_CODE + } + + /// @dev Encoded message struct when receiving indexer stake through the bridge + struct ReceiveIndexerStakeData { + address indexer; + } + + /// @dev Encoded message struct when receiving delegation through the bridge + struct ReceiveDelegationData { + address indexer; + address delegator; + } +} diff --git a/packages/interfaces/contracts/contracts/l2/token/IL2GraphToken.sol b/packages/interfaces/contracts/contracts/l2/token/IL2GraphToken.sol new file mode 100644 index 000000000..92b12946d --- /dev/null +++ b/packages/interfaces/contracts/contracts/l2/token/IL2GraphToken.sol @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +import { IGraphToken } from "../../token/IGraphToken.sol"; + +interface IL2GraphToken is IGraphToken { + // Events + event BridgeMinted(address indexed account, uint256 amount); + event BridgeBurned(address indexed account, uint256 amount); + event GatewaySet(address gateway); + event L1AddressSet(address l1Address); + + // Public state variables (view functions) + function gateway() external view returns (address); + function l1Address() external view returns (address); + + // Functions + function initialize(address owner) external; + + /** + * @notice Set the gateway address. + * @param gw Address of the gateway + */ + function setGateway(address gw) external; + + /** + * @notice Set the L1 address. + * @param addr Address of the L1 contract + */ + function setL1Address(address addr) external; + + /** + * @notice Mint tokens for a bridge transfer. + * @param account Address to mint tokens to + * @param amount Amount of tokens to mint + */ + function bridgeMint(address account, uint256 amount) external; + + /** + * @notice Burn tokens for a bridge transfer. + * @param account Address to burn tokens from + * @param amount Amount of tokens to burn + */ + function bridgeBurn(address account, uint256 amount) external; +} diff --git a/packages/interfaces/contracts/contracts/rewards/IRewardsIssuer.sol b/packages/interfaces/contracts/contracts/rewards/IRewardsIssuer.sol new file mode 100644 index 000000000..0f1ed9d8f --- /dev/null +++ b/packages/interfaces/contracts/contracts/rewards/IRewardsIssuer.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +interface IRewardsIssuer { + /** + * @dev Get allocation data to calculate rewards issuance + * + * @param allocationId The allocation Id + * @return isActive Whether the allocation is active or not + * @return indexer The indexer address + * @return subgraphDeploymentId Subgraph deployment id for the allocation + * @return tokens Amount of allocated tokens + * @return accRewardsPerAllocatedToken Rewards snapshot + * @return accRewardsPending Snapshot of accumulated rewards from previous allocation resizing, pending to be claimed + */ + function getAllocationData( + address allocationId + ) + external + view + returns ( + bool isActive, + address indexer, + bytes32 subgraphDeploymentId, + uint256 tokens, + uint256 accRewardsPerAllocatedToken, + uint256 accRewardsPending + ); + + /** + * @notice Return the total amount of tokens allocated to subgraph. + * @param subgraphDeploymentId Deployment Id for the subgraph + * @return Total tokens allocated to subgraph + */ + function getSubgraphAllocatedTokens(bytes32 subgraphDeploymentId) external view returns (uint256); +} diff --git a/packages/interfaces/contracts/contracts/rewards/IRewardsManager.sol b/packages/interfaces/contracts/contracts/rewards/IRewardsManager.sol new file mode 100644 index 000000000..32b618f60 --- /dev/null +++ b/packages/interfaces/contracts/contracts/rewards/IRewardsManager.sol @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +interface IRewardsManager { + /** + * @dev Stores accumulated rewards and snapshots related to a particular SubgraphDeployment. + */ + struct Subgraph { + uint256 accRewardsForSubgraph; + uint256 accRewardsForSubgraphSnapshot; + uint256 accRewardsPerSignalSnapshot; + uint256 accRewardsPerAllocatedToken; + } + + // -- Config -- + + function setIssuancePerBlock(uint256 issuancePerBlock) external; + + function setMinimumSubgraphSignal(uint256 minimumSubgraphSignal) external; + + function setSubgraphService(address subgraphService) external; + + // -- Denylist -- + + function setSubgraphAvailabilityOracle(address subgraphAvailabilityOracle) external; + + function setDenied(bytes32 subgraphDeploymentID, bool deny) external; + + function isDenied(bytes32 subgraphDeploymentID) external view returns (bool); + + // -- Getters -- + + function getNewRewardsPerSignal() external view returns (uint256); + + function getAccRewardsPerSignal() external view returns (uint256); + + function getAccRewardsForSubgraph(bytes32 subgraphDeploymentID) external view returns (uint256); + + function getAccRewardsPerAllocatedToken(bytes32 subgraphDeploymentID) external view returns (uint256, uint256); + + function getRewards(address rewardsIssuer, address allocationID) external view returns (uint256); + + function calcRewards(uint256 tokens, uint256 accRewardsPerAllocatedToken) external pure returns (uint256); + + // -- Updates -- + + function updateAccRewardsPerSignal() external returns (uint256); + + function takeRewards(address allocationID) external returns (uint256); + + // -- Hooks -- + + function onSubgraphSignalUpdate(bytes32 subgraphDeploymentID) external returns (uint256); + + function onSubgraphAllocationUpdate(bytes32 subgraphDeploymentID) external returns (uint256); +} diff --git a/packages/interfaces/contracts/contracts/staking/IL1GraphTokenLockTransferTool.sol b/packages/interfaces/contracts/contracts/staking/IL1GraphTokenLockTransferTool.sol new file mode 100644 index 000000000..aca3b0ffd --- /dev/null +++ b/packages/interfaces/contracts/contracts/staking/IL1GraphTokenLockTransferTool.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +/** + * @title Interface for the L1GraphTokenLockTransferTool contract + * @dev This interface defines the function to get the L2 wallet address for a given L1 token lock wallet. + * The Transfer Tool contract is implemented in the token-distribution repo: https://github.com/graphprotocol/token-distribution/pull/64 + * and is only included here to provide support in L1Staking for the transfer of stake and delegation + * owned by token lock contracts. See GIP-0046 for details: https://forum.thegraph.com/t/4023 + */ +interface IL1GraphTokenLockTransferTool { + /** + * @notice Pulls ETH from an L1 wallet's account to use for L2 ticket gas. + * @dev This function is only callable by the staking contract. + * @param l1Wallet Address of the L1 token lock wallet + * @param amount Amount of ETH to pull from the transfer tool contract + */ + function pullETH(address l1Wallet, uint256 amount) external; + + /** + * @notice Get the L2 token lock wallet address for a given L1 token lock wallet + * @dev In the actual L1GraphTokenLockTransferTool contract, this is simply the default getter for a public mapping variable. + * @param l1Wallet Address of the L1 token lock wallet + * @return Address of the L2 token lock wallet if the wallet has an L2 counterpart, or address zero if + * the wallet doesn't have an L2 counterpart (or is not known to be a token lock wallet). + */ + function l2WalletAddress(address l1Wallet) external view returns (address); +} diff --git a/packages/interfaces/contracts/contracts/staking/IL1Staking.sol b/packages/interfaces/contracts/contracts/staking/IL1Staking.sol new file mode 100644 index 000000000..fd7859220 --- /dev/null +++ b/packages/interfaces/contracts/contracts/staking/IL1Staking.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +import { IStaking } from "./IStaking.sol"; +import { IL1StakingBase } from "./IL1StakingBase.sol"; + +/** + * @title Interface for the L1 Staking contract + * @notice This is the interface that should be used when interacting with the L1 Staking contract. + * It extends the IStaking interface with the functions that are specific to L1, adding the transfer tools + * to send stake and delegation to L2. + * @dev Note that L1Staking doesn't actually inherit this interface. This is because of + * the custom setup of the Staking contract where part of the functionality is implemented + * in a separate contract (StakingExtension) to which calls are delegated through the fallback function. + */ +interface IL1Staking is IStaking, IL1StakingBase {} diff --git a/packages/interfaces/contracts/contracts/staking/IL1StakingBase.sol b/packages/interfaces/contracts/contracts/staking/IL1StakingBase.sol new file mode 100644 index 000000000..9ed037258 --- /dev/null +++ b/packages/interfaces/contracts/contracts/staking/IL1StakingBase.sol @@ -0,0 +1,148 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +import { IL1GraphTokenLockTransferTool } from "./IL1GraphTokenLockTransferTool.sol"; + +/** + * @title Base interface for the L1Staking contract. + * @notice This interface is used to define the transfer tools that are implemented in L1Staking. + * @dev Note it includes only the L1-specific functionality, not the full IStaking interface. + */ +interface IL1StakingBase { + /// @dev Emitted when an indexer transfers their stake to L2. + /// This can happen several times as indexers can transfer partial stake. + event IndexerStakeTransferredToL2( + address indexed indexer, + address indexed l2Indexer, + uint256 transferredStakeTokens + ); + + /// @dev Emitted when a delegator transfers their delegation to L2 + event DelegationTransferredToL2( + address indexed delegator, + address indexed l2Delegator, + address indexed indexer, + address l2Indexer, + uint256 transferredDelegationTokens + ); + + /// @dev Emitted when the L1GraphTokenLockTransferTool is set + event L1GraphTokenLockTransferToolSet(address l1GraphTokenLockTransferTool); + + /// @dev Emitted when a delegator unlocks their tokens ahead of time because the indexer has transferred to L2 + event StakeDelegatedUnlockedDueToL2Transfer(address indexed indexer, address indexed delegator); + + /** + * @notice Set the L1GraphTokenLockTransferTool contract address + * @dev This function can only be called by the governor. + * @param l1GraphTokenLockTransferTool Address of the L1GraphTokenLockTransferTool contract + */ + function setL1GraphTokenLockTransferTool(IL1GraphTokenLockTransferTool l1GraphTokenLockTransferTool) external; + + /** + * @notice Send an indexer's stake to L2. + * @dev This function can only be called by the indexer (not an operator). + * It will validate that the remaining stake is sufficient to cover all the allocated + * stake, so the indexer might have to close some allocations before transferring. + * It will also check that the indexer's stake is not locked for withdrawal. + * Since the indexer address might be an L1-only contract, the function takes a beneficiary + * address that will be the indexer's address in L2. + * The caller must provide an amount of ETH to use for the L2 retryable ticket, that + * must be at least `maxSubmissionCost + gasPriceBid * maxGas`. + * @param l2Beneficiary Address of the indexer in L2. If the indexer has previously transferred stake, this must match the previously-used value. + * @param amount Amount of stake GRT to transfer to L2 + * @param maxGas Max gas to use for the L2 retryable ticket + * @param gasPriceBid Gas price bid for the L2 retryable ticket + * @param maxSubmissionCost Max submission cost for the L2 retryable ticket + */ + function transferStakeToL2( + address l2Beneficiary, + uint256 amount, + uint256 maxGas, + uint256 gasPriceBid, + uint256 maxSubmissionCost + ) external payable; + + /** + * @notice Send an indexer's stake to L2, from a GraphTokenLockWallet vesting contract. + * @dev This function can only be called by the indexer (not an operator). + * It will validate that the remaining stake is sufficient to cover all the allocated + * stake, so the indexer might have to close some allocations before transferring. + * It will also check that the indexer's stake is not locked for withdrawal. + * The L2 beneficiary for the stake will be determined by calling the L1GraphTokenLockTransferTool contract, + * so the caller must have previously transferred tokens through that first + * (see GIP-0046 for details: https://forum.thegraph.com/t/4023). + * The ETH for the L2 gas will be pulled from the L1GraphTokenLockTransferTool, so the owner of + * the GraphTokenLockWallet must have previously deposited at least `maxSubmissionCost + gasPriceBid * maxGas` + * ETH into the L1GraphTokenLockTransferTool contract (using its depositETH function). + * @param amount Amount of stake GRT to transfer to L2 + * @param maxGas Max gas to use for the L2 retryable ticket + * @param gasPriceBid Gas price bid for the L2 retryable ticket + * @param maxSubmissionCost Max submission cost for the L2 retryable ticket + */ + function transferLockedStakeToL2( + uint256 amount, + uint256 maxGas, + uint256 gasPriceBid, + uint256 maxSubmissionCost + ) external; + + /** + * @notice Send a delegator's delegated tokens to L2 + * @dev This function can only be called by the delegator. + * This function will validate that the indexer has transferred their stake using transferStakeToL2, + * and that the delegation is not locked for undelegation. + * Since the delegator's address might be an L1-only contract, the function takes a beneficiary + * address that will be the delegator's address in L2. + * The caller must provide an amount of ETH to use for the L2 retryable ticket, that + * must be at least `maxSubmissionCost + gasPriceBid * maxGas`. + * @param indexer Address of the indexer (in L1, before transferring to L2) + * @param l2Beneficiary Address of the delegator in L2 + * @param maxGas Max gas to use for the L2 retryable ticket + * @param gasPriceBid Gas price bid for the L2 retryable ticket + * @param maxSubmissionCost Max submission cost for the L2 retryable ticket + */ + function transferDelegationToL2( + address indexer, + address l2Beneficiary, + uint256 maxGas, + uint256 gasPriceBid, + uint256 maxSubmissionCost + ) external payable; + + /** + * @notice Send a delegator's delegated tokens to L2, for a GraphTokenLockWallet vesting contract + * @dev This function can only be called by the delegator. + * This function will validate that the indexer has transferred their stake using transferStakeToL2, + * and that the delegation is not locked for undelegation. + * The L2 beneficiary for the delegation will be determined by calling the L1GraphTokenLockTransferTool contract, + * so the caller must have previously transferred tokens through that first + * (see GIP-0046 for details: https://forum.thegraph.com/t/4023). + * The ETH for the L2 gas will be pulled from the L1GraphTokenLockTransferTool, so the owner of + * the GraphTokenLockWallet must have previously deposited at least `maxSubmissionCost + gasPriceBid * maxGas` + * ETH into the L1GraphTokenLockTransferTool contract (using its depositETH function). + * @param indexer Address of the indexer (in L1, before transferring to L2) + * @param maxGas Max gas to use for the L2 retryable ticket + * @param gasPriceBid Gas price bid for the L2 retryable ticket + * @param maxSubmissionCost Max submission cost for the L2 retryable ticket + */ + function transferLockedDelegationToL2( + address indexer, + uint256 maxGas, + uint256 gasPriceBid, + uint256 maxSubmissionCost + ) external; + + /** + * @notice Unlock a delegator's delegated tokens, if the indexer has transferred to L2 + * @dev This function can only be called by the delegator. + * This function will validate that the indexer has transferred their stake using transferStakeToL2, + * and that the indexer has no remaining stake in L1. + * The tokens must previously be locked for undelegation by calling `undelegate()`, + * and can be withdrawn with `withdrawDelegated()` immediately after calling this. + * @param indexer Address of the indexer (in L1, before transferring to L2) + */ + function unlockDelegationToTransferredIndexer(address indexer) external; +} diff --git a/packages/interfaces/contracts/contracts/staking/IStaking.sol b/packages/interfaces/contracts/contracts/staking/IStaking.sol new file mode 100644 index 000000000..c18e382b3 --- /dev/null +++ b/packages/interfaces/contracts/contracts/staking/IStaking.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +import { IStakingBase } from "./IStakingBase.sol"; +import { IStakingExtension } from "./IStakingExtension.sol"; +import { IMulticall } from "../base/IMulticall.sol"; +import { IManaged } from "../governance/IManaged.sol"; + +/** + * @title Interface for the Staking contract + * @notice This is the interface that should be used when interacting with the Staking contract. + * @dev Note that Staking doesn't actually inherit this interface. This is because of + * the custom setup of the Staking contract where part of the functionality is implemented + * in a separate contract (StakingExtension) to which calls are delegated through the fallback function. + */ +interface IStaking is IStakingBase, IStakingExtension, IMulticall, IManaged {} diff --git a/packages/interfaces/contracts/contracts/staking/IStakingBase.sol b/packages/interfaces/contracts/contracts/staking/IStakingBase.sol new file mode 100644 index 000000000..d7728d049 --- /dev/null +++ b/packages/interfaces/contracts/contracts/staking/IStakingBase.sol @@ -0,0 +1,400 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +import { IStakingData } from "./IStakingData.sol"; + +/** + * @title Base interface for the Staking contract. + * @dev This interface includes only what's implemented in the base Staking contract. + * It does not include the L1 and L2 specific functionality. It also does not include + * several functions that are implemented in the StakingExtension contract, and are called + * via delegatecall through the fallback function. See IStaking.sol for an interface + * that includes the full functionality. + */ +interface IStakingBase is IStakingData { + /** + * @dev Emitted when `indexer` stakes `tokens` amount. + */ + event StakeDeposited(address indexed indexer, uint256 tokens); + + /** + * @dev Emitted when `indexer` unstaked and locked `tokens` amount until `until` block. + */ + event StakeLocked(address indexed indexer, uint256 tokens, uint256 until); + + /** + * @dev Emitted when `indexer` withdrew `tokens` staked. + */ + event StakeWithdrawn(address indexed indexer, uint256 tokens); + + /** + * @dev Emitted when `indexer` allocated `tokens` amount to `subgraphDeploymentID` + * during `epoch`. + * `allocationID` indexer derived address used to identify the allocation. + * `metadata` additional information related to the allocation. + */ + event AllocationCreated( + address indexed indexer, + bytes32 indexed subgraphDeploymentID, + uint256 epoch, + uint256 tokens, + address indexed allocationID, + bytes32 metadata + ); + + /** + * @dev Emitted when `indexer` close an allocation in `epoch` for `allocationID`. + * An amount of `tokens` get unallocated from `subgraphDeploymentID`. + * This event also emits the POI (proof of indexing) submitted by the indexer. + * `isPublic` is true if the sender was someone other than the indexer. + */ + event AllocationClosed( + address indexed indexer, + bytes32 indexed subgraphDeploymentID, + uint256 epoch, + uint256 tokens, + address indexed allocationID, + address sender, + bytes32 poi, + bool isPublic + ); + + /** + * @dev Emitted when `indexer` collects a rebate on `subgraphDeploymentID` for `allocationID`. + * `epoch` is the protocol epoch the rebate was collected on + * The rebate is for `tokens` amount which are being provided by `assetHolder`; `queryFees` + * is the amount up for rebate after `curationFees` are distributed and `protocolTax` is burnt. + * `queryRebates` is the amount distributed to the `indexer` with `delegationFees` collected + * and sent to the delegation pool. + */ + event RebateCollected( + address assetHolder, + address indexed indexer, + bytes32 indexed subgraphDeploymentID, + address indexed allocationID, + uint256 epoch, + uint256 tokens, + uint256 protocolTax, + uint256 curationFees, + uint256 queryFees, + uint256 queryRebates, + uint256 delegationRewards + ); + + /** + * @dev Emitted when `indexer` update the delegation parameters for its delegation pool. + */ + event DelegationParametersUpdated( + address indexed indexer, + uint32 indexingRewardCut, + uint32 queryFeeCut, + uint32 __DEPRECATED_cooldownBlocks // solhint-disable-line var-name-mixedcase + ); + + /** + * @dev Emitted when `indexer` set `operator` access. + */ + event SetOperator(address indexed indexer, address indexed operator, bool allowed); + + /** + * @dev Emitted when `indexer` set an address to receive rewards. + */ + event SetRewardsDestination(address indexed indexer, address indexed destination); + + /** + * @dev Emitted when `extensionImpl` was set as the address of the StakingExtension contract + * to which extended functionality is delegated. + */ + event ExtensionImplementationSet(address indexed extensionImpl); + + /** + * @dev Possible states an allocation can be. + * States: + * - Null = indexer == address(0) + * - Active = not Null && tokens > 0 + * - Closed = Active && closedAtEpoch != 0 + */ + enum AllocationState { + Null, + Active, + Closed + } + + /** + * @notice Initialize this contract. + * @param controller Address of the controller that manages this contract + * @param minimumIndexerStake Minimum amount of tokens that an indexer must stake + * @param thawingPeriod Number of blocks that tokens get locked after unstaking + * @param protocolPercentage Percentage of query fees that are burned as protocol fee (in PPM) + * @param curationPercentage Percentage of query fees that are given to curators (in PPM) + * @param maxAllocationEpochs The maximum number of epochs that an allocation can be active + * @param delegationUnbondingPeriod The period in epochs that tokens get locked after undelegating + * @param delegationRatio The ratio between an indexer's own stake and the delegation they can use + * @param rebatesParameters Alpha and lambda parameters for rebates function + * @param extensionImpl Address of the StakingExtension implementation + */ + function initialize( + address controller, + uint256 minimumIndexerStake, + uint32 thawingPeriod, + uint32 protocolPercentage, + uint32 curationPercentage, + uint32 maxAllocationEpochs, + uint32 delegationUnbondingPeriod, + uint32 delegationRatio, + RebatesParameters calldata rebatesParameters, + address extensionImpl + ) external; + + /** + * @notice Set the address of the StakingExtension implementation. + * @dev This function can only be called by the governor. + * @param extensionImpl Address of the StakingExtension implementation + */ + function setExtensionImpl(address extensionImpl) external; + + /** + * @notice Set the address of the counterpart (L1 or L2) staking contract. + * @dev This function can only be called by the governor. + * @param counterpart Address of the counterpart staking contract in the other chain, without any aliasing. + */ + function setCounterpartStakingAddress(address counterpart) external; + + /** + * @notice Set the minimum stake needed to be an Indexer + * @dev This function can only be called by the governor. + * @param minimumIndexerStake Minimum amount of tokens that an indexer must stake + */ + function setMinimumIndexerStake(uint256 minimumIndexerStake) external; + + /** + * @notice Set the number of blocks that tokens get locked after unstaking + * @dev This function can only be called by the governor. + * @param thawingPeriod Number of blocks that tokens get locked after unstaking + */ + function setThawingPeriod(uint32 thawingPeriod) external; + + /** + * @notice Set the curation percentage of query fees sent to curators. + * @dev This function can only be called by the governor. + * @param percentage Percentage of query fees sent to curators + */ + function setCurationPercentage(uint32 percentage) external; + + /** + * @notice Set a protocol percentage to burn when collecting query fees. + * @dev This function can only be called by the governor. + * @param percentage Percentage of query fees to burn as protocol fee + */ + function setProtocolPercentage(uint32 percentage) external; + + /** + * @notice Set the max time allowed for indexers to allocate on a subgraph + * before others are allowed to close the allocation. + * @dev This function can only be called by the governor. + * @param maxAllocationEpochs Allocation duration limit in epochs + */ + function setMaxAllocationEpochs(uint32 maxAllocationEpochs) external; + + /** + * @notice Set the rebate parameters + * @dev This function can only be called by the governor. + * @param alphaNumerator Numerator of `alpha` + * @param alphaDenominator Denominator of `alpha` + * @param lambdaNumerator Numerator of `lambda` + * @param lambdaDenominator Denominator of `lambda` + */ + function setRebateParameters( + uint32 alphaNumerator, + uint32 alphaDenominator, + uint32 lambdaNumerator, + uint32 lambdaDenominator + ) external; + + /** + * @notice Authorize or unauthorize an address to be an operator for the caller. + * @param operator Address to authorize or unauthorize + * @param allowed Whether the operator is authorized or not + */ + function setOperator(address operator, bool allowed) external; + + /** + * @notice Deposit tokens on the indexer's stake. + * The amount staked must be over the minimumIndexerStake. + * @param tokens Amount of tokens to stake + */ + function stake(uint256 tokens) external; + + /** + * @notice Deposit tokens on the Indexer stake, on behalf of the Indexer. + * The amount staked must be over the minimumIndexerStake. + * @param indexer Address of the indexer + * @param tokens Amount of tokens to stake + */ + function stakeTo(address indexer, uint256 tokens) external; + + /** + * @notice Unstake tokens from the indexer stake, lock them until the thawing period expires. + * @dev NOTE: The function accepts an amount greater than the currently staked tokens. + * If that happens, it will try to unstake the max amount of tokens it can. + * The reason for this behaviour is to avoid time conditions while the transaction + * is in flight. + * @param tokens Amount of tokens to unstake + */ + function unstake(uint256 tokens) external; + + /** + * @notice Withdraw indexer tokens once the thawing period has passed. + */ + function withdraw() external; + + /** + * @notice Set the destination where to send rewards for an indexer. + * @param destination Rewards destination address. If set to zero, rewards will be restaked + */ + function setRewardsDestination(address destination) external; + + /** + * @notice Set the delegation parameters for the caller. + * @param indexingRewardCut Percentage of indexing rewards left for the indexer + * @param queryFeeCut Percentage of query fees left for the indexer + */ + function setDelegationParameters( + uint32 indexingRewardCut, + uint32 queryFeeCut, + uint32 // cooldownBlocks, deprecated + ) external; + + /** + * @notice Allocate available tokens to a subgraph deployment. + * @param subgraphDeploymentID ID of the SubgraphDeployment where tokens will be allocated + * @param tokens Amount of tokens to allocate + * @param allocationID The allocation identifier + * @param metadata IPFS hash for additional information about the allocation + * @param proof A 65-bytes Ethereum signed message of `keccak256(indexerAddress,allocationID)` + */ + function allocate( + bytes32 subgraphDeploymentID, + uint256 tokens, + address allocationID, + bytes32 metadata, + bytes calldata proof + ) external; + + /** + * @notice Allocate available tokens to a subgraph deployment from and indexer's stake. + * The caller must be the indexer or the indexer's operator. + * @param indexer Indexer address to allocate funds from. + * @param subgraphDeploymentID ID of the SubgraphDeployment where tokens will be allocated + * @param tokens Amount of tokens to allocate + * @param allocationID The allocation identifier + * @param metadata IPFS hash for additional information about the allocation + * @param proof A 65-bytes Ethereum signed message of `keccak256(indexerAddress,allocationID)` + */ + function allocateFrom( + address indexer, + bytes32 subgraphDeploymentID, + uint256 tokens, + address allocationID, + bytes32 metadata, + bytes calldata proof + ) external; + + /** + * @notice Close an allocation and free the staked tokens. + * To be eligible for rewards a proof of indexing must be presented. + * Presenting a bad proof is subject to slashable condition. + * To opt out of rewards set poi to 0x0 + * @param allocationID The allocation identifier + * @param poi Proof of indexing submitted for the allocated period + */ + function closeAllocation(address allocationID, bytes32 poi) external; + + /** + * @notice Collect query fees from state channels and assign them to an allocation. + * Funds received are only accepted from a valid sender. + * @dev To avoid reverting on the withdrawal from channel flow this function will: + * 1) Accept calls with zero tokens. + * 2) Accept calls after an allocation passed the dispute period, in that case, all + * the received tokens are burned. + * @param tokens Amount of tokens to collect + * @param allocationID Allocation where the tokens will be assigned + */ + function collect(uint256 tokens, address allocationID) external; + + /** + * @notice Return true if operator is allowed for indexer. + * @param operator Address of the operator + * @param indexer Address of the indexer + * @return True if operator is allowed for indexer, false otherwise + */ + function isOperator(address operator, address indexer) external view returns (bool); + + /** + * @notice Getter that returns if an indexer has any stake. + * @param indexer Address of the indexer + * @return True if indexer has staked tokens + */ + function hasStake(address indexer) external view returns (bool); + + /** + * @notice Get the total amount of tokens staked by the indexer. + * @param indexer Address of the indexer + * @return Amount of tokens staked by the indexer + */ + function getIndexerStakedTokens(address indexer) external view returns (uint256); + + /** + * @notice Get the total amount of tokens available to use in allocations. + * This considers the indexer stake and delegated tokens according to delegation ratio + * @param indexer Address of the indexer + * @return Amount of tokens available to allocate including delegation + */ + function getIndexerCapacity(address indexer) external view returns (uint256); + + /** + * @notice Return the allocation by ID. + * @param allocationID Address used as allocation identifier + * @return Allocation data + */ + function getAllocation(address allocationID) external view returns (Allocation memory); + + /** + * @dev New function to get the allocation data for the rewards manager + * @dev Note that this is only to make tests pass, as the staking contract with + * this changes will never get deployed. HorizonStaking is taking it's place. + */ + function getAllocationData( + address allocationID + ) external view returns (bool, address, bytes32, uint256, uint256, uint256); + + /** + * @dev New function to get the allocation active status for the rewards manager + * @dev Note that this is only to make tests pass, as the staking contract with + * this changes will never get deployed. HorizonStaking is taking it's place. + */ + function isActiveAllocation(address allocationID) external view returns (bool); + + /** + * @notice Return the current state of an allocation + * @param allocationID Allocation identifier + * @return AllocationState enum with the state of the allocation + */ + function getAllocationState(address allocationID) external view returns (AllocationState); + + /** + * @notice Return if allocationID is used. + * @param allocationID Address used as signer by the indexer for an allocation + * @return True if allocationID already used + */ + function isAllocation(address allocationID) external view returns (bool); + + /** + * @notice Return the total amount of tokens allocated to subgraph. + * @param subgraphDeploymentID Deployment ID for the subgraph + * @return Total tokens allocated to subgraph + */ + function getSubgraphAllocatedTokens(bytes32 subgraphDeploymentID) external view returns (uint256); +} diff --git a/packages/interfaces/contracts/contracts/staking/IStakingData.sol b/packages/interfaces/contracts/contracts/staking/IStakingData.sol new file mode 100644 index 000000000..7db4d0ca1 --- /dev/null +++ b/packages/interfaces/contracts/contracts/staking/IStakingData.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +/** + * @title Staking Data interface + * @dev This interface defines some structures used by the Staking contract. + */ +interface IStakingData { + /** + * @dev Allocate GRT tokens for the purpose of serving queries of a subgraph deployment + * An allocation is created in the allocate() function and closed in closeAllocation() + */ + struct Allocation { + address indexer; + bytes32 subgraphDeploymentID; + uint256 tokens; // Tokens allocated to a SubgraphDeployment + uint256 createdAtEpoch; // Epoch when it was created + uint256 closedAtEpoch; // Epoch when it was closed + uint256 collectedFees; // Collected fees for the allocation + uint256 __DEPRECATED_effectiveAllocation; // solhint-disable-line var-name-mixedcase + uint256 accRewardsPerAllocatedToken; // Snapshot used for reward calc + uint256 distributedRebates; // Collected rebates that have been rebated + } + + // -- Delegation Data -- + + /** + * @dev Delegation pool information. One per indexer. + */ + struct DelegationPool { + uint32 __DEPRECATED_cooldownBlocks; // solhint-disable-line var-name-mixedcase + uint32 indexingRewardCut; // in PPM + uint32 queryFeeCut; // in PPM + uint256 updatedAtBlock; // Block when the pool was last updated + uint256 tokens; // Total tokens as pool reserves + uint256 shares; // Total shares minted in the pool + mapping(address => Delegation) delegators; // Mapping of delegator => Delegation + } + + /** + * @dev Individual delegation data of a delegator in a pool. + */ + struct Delegation { + uint256 shares; // Shares owned by a delegator in the pool + uint256 tokensLocked; // Tokens locked for undelegation + uint256 tokensLockedUntil; // Epoch when locked tokens can be withdrawn + } + + /** + * @dev Rebates parameters. Used to avoid stack too deep errors in Staking initialize function. + */ + struct RebatesParameters { + uint32 alphaNumerator; + uint32 alphaDenominator; + uint32 lambdaNumerator; + uint32 lambdaDenominator; + } +} diff --git a/packages/interfaces/contracts/contracts/staking/IStakingExtension.sol b/packages/interfaces/contracts/contracts/staking/IStakingExtension.sol new file mode 100644 index 000000000..0a13ab744 --- /dev/null +++ b/packages/interfaces/contracts/contracts/staking/IStakingExtension.sol @@ -0,0 +1,292 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +import { IStakingData } from "./IStakingData.sol"; +import { IStakes } from "./libs/IStakes.sol"; + +/** + * @title Interface for the StakingExtension contract + * @dev This interface defines the events and functions implemented + * in the StakingExtension contract, which is used to extend the functionality + * of the Staking contract while keeping it within the 24kB mainnet size limit. + * In particular, this interface includes delegation functions and various storage + * getters. + */ +interface IStakingExtension is IStakingData { + /** + * @dev DelegationPool struct as returned by delegationPools(), since + * the original DelegationPool in IStakingData.sol contains a nested mapping. + */ + struct DelegationPoolReturn { + uint32 __DEPRECATED_cooldownBlocks; // solhint-disable-line var-name-mixedcase + uint32 indexingRewardCut; // in PPM + uint32 queryFeeCut; // in PPM + uint256 updatedAtBlock; // Block when the pool was last updated + uint256 tokens; // Total tokens as pool reserves + uint256 shares; // Total shares minted in the pool + } + + /** + * @dev Emitted when `delegator` delegated `tokens` to the `indexer`, the delegator + * gets `shares` for the delegation pool proportionally to the tokens staked. + */ + event StakeDelegated(address indexed indexer, address indexed delegator, uint256 tokens, uint256 shares); + + /** + * @dev Emitted when `delegator` undelegated `tokens` from `indexer`. + * Tokens get locked for withdrawal after a period of time. + */ + event StakeDelegatedLocked( + address indexed indexer, + address indexed delegator, + uint256 tokens, + uint256 shares, + uint256 until + ); + + /** + * @dev Emitted when `delegator` withdrew delegated `tokens` from `indexer`. + */ + event StakeDelegatedWithdrawn(address indexed indexer, address indexed delegator, uint256 tokens); + + /** + * @dev Emitted when `indexer` was slashed for a total of `tokens` amount. + * Tracks `reward` amount of tokens given to `beneficiary`. + */ + event StakeSlashed(address indexed indexer, uint256 tokens, uint256 reward, address beneficiary); + + /** + * @dev Emitted when `caller` set `slasher` address as `allowed` to slash stakes. + */ + event SlasherUpdate(address indexed caller, address indexed slasher, bool allowed); + + /** + * @notice Set the delegation ratio. + * If set to 10 it means the indexer can use up to 10x the indexer staked amount + * from their delegated tokens + * @dev This function is only callable by the governor + * @param delegationRatio Delegation capacity multiplier + */ + function setDelegationRatio(uint32 delegationRatio) external; + + /** + * @notice Set the time, in epochs, a Delegator needs to wait to withdraw tokens after undelegating. + * @dev This function is only callable by the governor + * @param delegationUnbondingPeriod Period in epochs to wait for token withdrawals after undelegating + */ + function setDelegationUnbondingPeriod(uint32 delegationUnbondingPeriod) external; + + /** + * @notice Set a delegation tax percentage to burn when delegated funds are deposited. + * @dev This function is only callable by the governor + * @param percentage Percentage of delegated tokens to burn as delegation tax, expressed in parts per million + */ + function setDelegationTaxPercentage(uint32 percentage) external; + + /** + * @notice Set or unset an address as allowed slasher. + * @dev This function can only be called by the governor. + * @param slasher Address of the party allowed to slash indexers + * @param allowed True if slasher is allowed + */ + function setSlasher(address slasher, bool allowed) external; + + /** + * @notice Delegate tokens to an indexer. + * @param indexer Address of the indexer to which tokens are delegated + * @param tokens Amount of tokens to delegate + * @return Amount of shares issued from the delegation pool + */ + function delegate(address indexer, uint256 tokens) external returns (uint256); + + /** + * @notice Undelegate tokens from an indexer. Tokens will be locked for the unbonding period. + * @param indexer Address of the indexer to which tokens had been delegated + * @param shares Amount of shares to return and undelegate tokens + * @return Amount of tokens returned for the shares of the delegation pool + */ + function undelegate(address indexer, uint256 shares) external returns (uint256); + + /** + * @notice Withdraw undelegated tokens once the unbonding period has passed, and optionally + * re-delegate to a new indexer. + * @param indexer Withdraw available tokens delegated to indexer + * @param newIndexer Re-delegate to indexer address if non-zero, withdraw if zero address + */ + function withdrawDelegated(address indexer, address newIndexer) external returns (uint256); + + /** + * @notice Slash the indexer stake. Delegated tokens are not subject to slashing. + * @dev Can only be called by the slasher role. + * @param indexer Address of indexer to slash + * @param tokens Amount of tokens to slash from the indexer stake + * @param reward Amount of reward tokens to send to a beneficiary + * @param beneficiary Address of a beneficiary to receive a reward for the slashing + */ + function slash(address indexer, uint256 tokens, uint256 reward, address beneficiary) external; + + /** + * @notice Return the delegation from a delegator to an indexer. + * @param indexer Address of the indexer where funds have been delegated + * @param delegator Address of the delegator + * @return Delegation data + */ + function getDelegation(address indexer, address delegator) external view returns (Delegation memory); + + /** + * @notice Return whether the delegator has delegated to the indexer. + * @param indexer Address of the indexer where funds have been delegated + * @param delegator Address of the delegator + * @return True if delegator has tokens delegated to the indexer + */ + function isDelegator(address indexer, address delegator) external view returns (bool); + + /** + * @notice Returns amount of delegated tokens ready to be withdrawn after unbonding period. + * @param delegation Delegation of tokens from delegator to indexer + * @return Amount of tokens to withdraw + */ + function getWithdraweableDelegatedTokens(Delegation memory delegation) external view returns (uint256); + + /** + * @notice Getter for the delegationRatio, i.e. the delegation capacity multiplier: + * If delegation ratio is 100, and an Indexer has staked 5 GRT, + * then they can use up to 500 GRT from the delegated stake + * @return Delegation ratio + */ + function delegationRatio() external view returns (uint32); + + /** + * @notice Getter for delegationUnbondingPeriod: + * Time in epochs a delegator needs to wait to withdraw delegated stake + * @return Delegation unbonding period in epochs + */ + function delegationUnbondingPeriod() external view returns (uint32); + + /** + * @notice Getter for delegationTaxPercentage: + * Percentage of tokens to tax a delegation deposit, expressed in parts per million + * @return Delegation tax percentage in parts per million + */ + function delegationTaxPercentage() external view returns (uint32); + + /** + * @notice Getter for delegationPools[_indexer]: + * gets the delegation pool structure for a particular indexer. + * @param indexer Address of the indexer for which to query the delegation pool + * @return Delegation pool as a DelegationPoolReturn struct + */ + function delegationPools(address indexer) external view returns (DelegationPoolReturn memory); + + /** + * @notice Getter for operatorAuth[_indexer][_maybeOperator]: + * returns true if the operator is authorized to operate on behalf of the indexer. + * @param indexer The indexer address for which to query authorization + * @param maybeOperator The address that may or may not be an operator + * @return True if the operator is authorized to operate on behalf of the indexer + */ + function operatorAuth(address indexer, address maybeOperator) external view returns (bool); + + /** + * @notice Getter for rewardsDestination[_indexer]: + * returns the address where the indexer's rewards are sent. + * @param indexer The indexer address for which to query the rewards destination + * @return The address where the indexer's rewards are sent, zero if none is set in which case rewards are re-staked + */ + function rewardsDestination(address indexer) external view returns (address); + + /** + * @notice Getter for subgraphAllocations[_subgraphDeploymentId]: + * returns the amount of tokens allocated to a subgraph deployment. + * @param subgraphDeploymentId The subgraph deployment for which to query the allocations + * @return The amount of tokens allocated to the subgraph deployment + */ + function subgraphAllocations(bytes32 subgraphDeploymentId) external view returns (uint256); + + /** + * @notice Getter for slashers[_maybeSlasher]: + * returns true if the address is a slasher, i.e. an entity that can slash indexers + * @param maybeSlasher Address for which to check the slasher role + * @return True if the address is a slasher + */ + function slashers(address maybeSlasher) external view returns (bool); + + /** + * @notice Getter for minimumIndexerStake: the minimum + * amount of GRT that an indexer needs to stake. + * @return Minimum indexer stake in GRT + */ + function minimumIndexerStake() external view returns (uint256); + + /** + * @notice Getter for thawingPeriod: the time in blocks an + * indexer needs to wait to unstake tokens. + * @return Thawing period in blocks + */ + function thawingPeriod() external view returns (uint32); + + /** + * @notice Getter for curationPercentage: the percentage of + * query fees that are distributed to curators. + * @return Curation percentage in parts per million + */ + function curationPercentage() external view returns (uint32); + + /** + * @notice Getter for protocolPercentage: the percentage of + * query fees that are burned as protocol fees. + * @return Protocol percentage in parts per million + */ + function protocolPercentage() external view returns (uint32); + + /** + * @notice Getter for maxAllocationEpochs: the maximum time in epochs + * that an allocation can be open before anyone is allowed to close it. This + * also caps the effective allocation when sending the allocation's query fees + * to the rebate pool. + * @return Maximum allocation period in epochs + */ + function maxAllocationEpochs() external view returns (uint32); + + /** + * @notice Getter for the numerator of the rebates alpha parameter + * @return Alpha numerator + */ + function alphaNumerator() external view returns (uint32); + + /** + * @notice Getter for the denominator of the rebates alpha parameter + * @return Alpha denominator + */ + function alphaDenominator() external view returns (uint32); + + /** + * @notice Getter for the numerator of the rebates lambda parameter + * @return Lambda numerator + */ + function lambdaNumerator() external view returns (uint32); + + /** + * @notice Getter for the denominator of the rebates lambda parameter + * @return Lambda denominator + */ + function lambdaDenominator() external view returns (uint32); + + /** + * @notice Getter for stakes[_indexer]: + * gets the stake information for an indexer as a IStakes.Indexer struct. + * @param indexer Indexer address for which to query the stake information + * @return Stake information for the specified indexer, as a IStakes.Indexer struct + */ + function stakes(address indexer) external view returns (IStakes.Indexer memory); + + /** + * @notice Getter for allocations[_allocationID]: + * gets an allocation's information as an IStakingData.Allocation struct. + * @param allocationID Allocation ID for which to query the allocation information + * @return The specified allocation, as an IStakingData.Allocation struct + */ + function allocations(address allocationID) external view returns (IStakingData.Allocation memory); +} diff --git a/packages/interfaces/contracts/contracts/staking/libs/IStakes.sol b/packages/interfaces/contracts/contracts/staking/libs/IStakes.sol new file mode 100644 index 000000000..701336409 --- /dev/null +++ b/packages/interfaces/contracts/contracts/staking/libs/IStakes.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; +pragma abicoder v2; + +interface IStakes { + struct Indexer { + uint256 tokensStaked; // Tokens on the indexer stake (staked by the indexer) + uint256 tokensAllocated; // Tokens used in allocations + uint256 tokensLocked; // Tokens locked for withdrawal subject to thawing period + uint256 tokensLockedUntil; // Block when locked tokens can be withdrawn + } +} diff --git a/packages/interfaces/contracts/contracts/token/IGraphToken.sol b/packages/interfaces/contracts/contracts/token/IGraphToken.sol new file mode 100644 index 000000000..8d5d1b845 --- /dev/null +++ b/packages/interfaces/contracts/contracts/token/IGraphToken.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +interface IGraphToken is IERC20 { + // -- Mint and Burn -- + + function burn(uint256 amount) external; + + function burnFrom(address from, uint256 amount) external; + + function mint(address to, uint256 amount) external; + + // -- Mint Admin -- + + function addMinter(address account) external; + + function removeMinter(address account) external; + + function renounceMinter() external; + + function isMinter(address account) external view returns (bool); + + // -- Permit -- + + /** + * @notice Permit the spender to spend tokens on behalf of the owner. + * @param owner Address of the token owner + * @param spender Address of the token spender + * @param value Amount of tokens to spend + * @param deadline Expiration timestamp for the permit + * @param v Recovery byte of the signature + * @param r R value of the signature + * @param s S value of the signature + */ + function permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) external; + + // -- Allowance -- + + function increaseAllowance(address spender, uint256 addedValue) external returns (bool); + + function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); +} diff --git a/packages/interfaces/contracts/contracts/upgrades/IGraphProxy.sol b/packages/interfaces/contracts/contracts/upgrades/IGraphProxy.sol new file mode 100644 index 000000000..108708c03 --- /dev/null +++ b/packages/interfaces/contracts/contracts/upgrades/IGraphProxy.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity ^0.7.6 || 0.8.27; + +interface IGraphProxy { + function admin() external returns (address); + + function setAdmin(address newAdmin) external; + + function implementation() external returns (address); + + function pendingImplementation() external returns (address); + + function upgradeTo(address newImplementation) external; + + function acceptUpgrade() external; + + function acceptUpgradeAndCall(bytes calldata data) external; +} diff --git a/packages/interfaces/contracts/contracts/upgrades/IGraphProxyAdmin.sol b/packages/interfaces/contracts/contracts/upgrades/IGraphProxyAdmin.sol new file mode 100644 index 000000000..44e0df0e4 --- /dev/null +++ b/packages/interfaces/contracts/contracts/upgrades/IGraphProxyAdmin.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity 0.8.27; + +import { IGraphProxy } from "./IGraphProxy.sol"; +import { IGoverned } from "../governance/IGoverned.sol"; + +/** + * @title IGraphProxyAdmin + * @dev GraphProxyAdmin contract interface + * @dev Note that this interface is not used by the contract implementation, just used for types and abi generation + * @custom:security-contact Please email security+contracts@thegraph.com if you find any + * bugs. We may have an active bug bounty program. + */ +interface IGraphProxyAdmin is IGoverned { + function getProxyImplementation(IGraphProxy proxy) external view returns (address); + + function getProxyPendingImplementation(IGraphProxy proxy) external view returns (address); + + function getProxyAdmin(IGraphProxy proxy) external view returns (address); + + function changeProxyAdmin(IGraphProxy proxy, address newAdmin) external; + + function upgrade(IGraphProxy proxy, address implementation) external; + + function upgradeTo(IGraphProxy proxy, address implementation) external; + + function upgradeToAndCall(IGraphProxy proxy, address implementation, bytes calldata data) external; + + function acceptProxy(IGraphProxy proxy) external; + + function acceptProxyAndCall(IGraphProxy proxy, bytes calldata data) external; + + // storage + function governor() external view returns (address); +} diff --git a/packages/horizon/contracts/data-service/interfaces/IDataService.sol b/packages/interfaces/contracts/data-service/IDataService.sol similarity index 99% rename from packages/horizon/contracts/data-service/interfaces/IDataService.sol rename to packages/interfaces/contracts/data-service/IDataService.sol index 017d90b80..778987f71 100644 --- a/packages/horizon/contracts/data-service/interfaces/IDataService.sol +++ b/packages/interfaces/contracts/data-service/IDataService.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IGraphPayments } from "../../interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "../horizon/IGraphPayments.sol"; /** * @title Interface of the base {DataService} contract as defined by the Graph Horizon specification. diff --git a/packages/horizon/contracts/data-service/interfaces/IDataServiceFees.sol b/packages/interfaces/contracts/data-service/IDataServiceFees.sol similarity index 100% rename from packages/horizon/contracts/data-service/interfaces/IDataServiceFees.sol rename to packages/interfaces/contracts/data-service/IDataServiceFees.sol diff --git a/packages/horizon/contracts/data-service/interfaces/IDataServicePausable.sol b/packages/interfaces/contracts/data-service/IDataServicePausable.sol similarity index 100% rename from packages/horizon/contracts/data-service/interfaces/IDataServicePausable.sol rename to packages/interfaces/contracts/data-service/IDataServicePausable.sol diff --git a/packages/horizon/contracts/data-service/interfaces/IDataServiceRescuable.sol b/packages/interfaces/contracts/data-service/IDataServiceRescuable.sol similarity index 100% rename from packages/horizon/contracts/data-service/interfaces/IDataServiceRescuable.sol rename to packages/interfaces/contracts/data-service/IDataServiceRescuable.sol diff --git a/packages/horizon/contracts/interfaces/IAuthorizable.sol b/packages/interfaces/contracts/horizon/IAuthorizable.sol similarity index 96% rename from packages/horizon/contracts/interfaces/IAuthorizable.sol rename to packages/interfaces/contracts/horizon/IAuthorizable.sol index cd6553fa7..7a7a77798 100644 --- a/packages/horizon/contracts/interfaces/IAuthorizable.sol +++ b/packages/interfaces/contracts/horizon/IAuthorizable.sol @@ -92,6 +92,12 @@ interface IAuthorizable { */ error AuthorizableSignerStillThawing(uint256 currentTimestamp, uint256 thawEndTimestamp); + /** + * @notice The period after which a signer can be revoked after thawing + * @return The period in seconds + */ + function REVOKE_AUTHORIZATION_THAWING_PERIOD() external view returns (uint256); + /** * @notice Authorize a signer to sign on behalf of the authorizer * @dev Requirements: diff --git a/packages/horizon/contracts/interfaces/IGraphPayments.sol b/packages/interfaces/contracts/horizon/IGraphPayments.sol similarity index 94% rename from packages/horizon/contracts/interfaces/IGraphPayments.sol rename to packages/interfaces/contracts/horizon/IGraphPayments.sol index 2fe37d86e..7a583f883 100644 --- a/packages/horizon/contracts/interfaces/IGraphPayments.sol +++ b/packages/interfaces/contracts/horizon/IGraphPayments.sol @@ -58,6 +58,12 @@ interface IGraphPayments { */ error GraphPaymentsInvalidCut(uint256 cut); + /** + * @notice Returns the protocol payment cut + * @return The protocol payment cut in PPM + */ + function PROTOCOL_PAYMENT_CUT() external view returns (uint256); + /** * @notice Initialize the contract */ diff --git a/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol b/packages/interfaces/contracts/horizon/IGraphTallyCollector.sol similarity index 97% rename from packages/horizon/contracts/interfaces/IGraphTallyCollector.sol rename to packages/interfaces/contracts/horizon/IGraphTallyCollector.sol index cb665bda5..86d0ebc3a 100644 --- a/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol +++ b/packages/interfaces/contracts/horizon/IGraphTallyCollector.sol @@ -3,6 +3,7 @@ pragma solidity 0.8.27; import { IPaymentsCollector } from "./IPaymentsCollector.sol"; import { IGraphPayments } from "./IGraphPayments.sol"; +import { IAuthorizable } from "./IAuthorizable.sol"; /** * @title Interface for the {GraphTallyCollector} contract @@ -13,7 +14,7 @@ import { IGraphPayments } from "./IGraphPayments.sol"; * @custom:security-contact Please email security+contracts@thegraph.com if you find any * bugs. We may have an active bug bounty program. */ -interface IGraphTallyCollector is IPaymentsCollector { +interface IGraphTallyCollector is IPaymentsCollector, IAuthorizable { /** * @notice The Receipt Aggregate Voucher (RAV) struct * @param collectionId The ID of the collection "bucket" the RAV belongs to. Note that multiple RAVs can be collected for the same collection id. diff --git a/packages/horizon/contracts/interfaces/IHorizonStaking.sol b/packages/interfaces/contracts/horizon/IHorizonStaking.sol similarity index 100% rename from packages/horizon/contracts/interfaces/IHorizonStaking.sol rename to packages/interfaces/contracts/horizon/IHorizonStaking.sol diff --git a/packages/horizon/contracts/interfaces/IPaymentsCollector.sol b/packages/interfaces/contracts/horizon/IPaymentsCollector.sol similarity index 100% rename from packages/horizon/contracts/interfaces/IPaymentsCollector.sol rename to packages/interfaces/contracts/horizon/IPaymentsCollector.sol diff --git a/packages/horizon/contracts/interfaces/IPaymentsEscrow.sol b/packages/interfaces/contracts/horizon/IPaymentsEscrow.sol similarity index 96% rename from packages/horizon/contracts/interfaces/IPaymentsEscrow.sol rename to packages/interfaces/contracts/horizon/IPaymentsEscrow.sol index eb3b262e8..601783b12 100644 --- a/packages/horizon/contracts/interfaces/IPaymentsEscrow.sol +++ b/packages/interfaces/contracts/horizon/IPaymentsEscrow.sol @@ -143,6 +143,18 @@ interface IPaymentsEscrow { */ error PaymentsEscrowInvalidZeroTokens(); + /** + * @notice The maximum thawing period for escrow funds withdrawal + * @return The maximum thawing period in seconds + */ + function MAX_WAIT_PERIOD() external view returns (uint256); + + /** + * @notice The thawing period for escrow funds withdrawal + * @return The thawing period in seconds + */ + function WITHDRAW_ESCROW_THAWING_PERIOD() external view returns (uint256); + /** * @notice Initialize the contract */ diff --git a/packages/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol b/packages/interfaces/contracts/horizon/internal/IHorizonStakingBase.sol similarity index 98% rename from packages/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol rename to packages/interfaces/contracts/horizon/internal/IHorizonStakingBase.sol index fb642fe84..ba050ae3a 100644 --- a/packages/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol +++ b/packages/interfaces/contracts/horizon/internal/IHorizonStakingBase.sol @@ -5,7 +5,7 @@ pragma solidity 0.8.27; import { IHorizonStakingTypes } from "./IHorizonStakingTypes.sol"; import { IGraphPayments } from "../IGraphPayments.sol"; -import { LinkedList } from "../../libraries/LinkedList.sol"; +import { ILinkedList } from "./ILinkedList.sol"; /** * @title Interface for the {HorizonStakingBase} contract. @@ -166,7 +166,7 @@ interface IHorizonStakingBase { address serviceProvider, address verifier, address owner - ) external view returns (LinkedList.List memory); + ) external view returns (ILinkedList.List memory); /** * @notice Gets the amount of thawed tokens that can be releasedfor a given provision. diff --git a/packages/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol b/packages/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol similarity index 98% rename from packages/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol rename to packages/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol index de39ab52c..d590a76a5 100644 --- a/packages/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol +++ b/packages/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.27; -import { IRewardsIssuer } from "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol"; +import { IRewardsIssuer } from "../../contracts/rewards/IRewardsIssuer.sol"; /** * @title Interface for {HorizonStakingExtension} contract. diff --git a/packages/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol b/packages/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol similarity index 99% rename from packages/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol rename to packages/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol index 71cf7b3b4..1a84bcd67 100644 --- a/packages/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol +++ b/packages/interfaces/contracts/horizon/internal/IHorizonStakingMain.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.27; -import { IGraphPayments } from "../../interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "../IGraphPayments.sol"; import { IHorizonStakingTypes } from "./IHorizonStakingTypes.sol"; /** diff --git a/packages/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol b/packages/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol similarity index 100% rename from packages/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol rename to packages/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol diff --git a/packages/interfaces/contracts/horizon/internal/ILinkedList.sol b/packages/interfaces/contracts/horizon/internal/ILinkedList.sol new file mode 100644 index 000000000..4a993df29 --- /dev/null +++ b/packages/interfaces/contracts/horizon/internal/ILinkedList.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity 0.8.27; + +/** + * @title Interface for the {LinkedList} library contract. + * @custom:security-contact Please email security+contracts@thegraph.com if you find any + * bugs. We may have an active bug bounty program. + */ +interface ILinkedList { + /** + * @notice Represents a linked list + * @param head The head of the list + * @param tail The tail of the list + * @param nonce A nonce, which can optionally be used to generate unique ids + * @param count The number of items in the list + */ + struct List { + bytes32 head; + bytes32 tail; + uint256 nonce; + uint256 count; + } + + /** + * @notice Thrown when trying to remove an item from an empty list + */ + error LinkedListEmptyList(); + + /** + * @notice Thrown when trying to add an item to a list that has reached the maximum number of elements + */ + error LinkedListMaxElementsExceeded(); + + /** + * @notice Thrown when trying to traverse a list with more iterations than elements + */ + error LinkedListInvalidIterations(); + + /** + * @notice Thrown when trying to add an item with id equal to bytes32(0) + */ + error LinkedListInvalidZeroId(); +} diff --git a/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol b/packages/interfaces/contracts/subgraph-service/IDisputeManager.sol similarity index 98% rename from packages/subgraph-service/contracts/interfaces/IDisputeManager.sol rename to packages/interfaces/contracts/subgraph-service/IDisputeManager.sol index 611009bef..9ab321cd1 100644 --- a/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol +++ b/packages/interfaces/contracts/subgraph-service/IDisputeManager.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.27; -import { Attestation } from "../libraries/Attestation.sol"; +import { IAttestation } from "./internal/IAttestation.sol"; /** * @title IDisputeManager @@ -584,14 +584,14 @@ interface IDisputeManager { * @param receipt Receipt returned by indexer and submitted by fisherman * @return Message hash used to sign the receipt */ - function encodeReceipt(Attestation.Receipt memory receipt) external view returns (bytes32); + function encodeReceipt(IAttestation.Receipt memory receipt) external view returns (bytes32); /** * @notice Returns the indexer that signed an attestation. * @param attestation Attestation * @return indexer address */ - function getAttestationIndexer(Attestation.State memory attestation) external view returns (address); + function getAttestationIndexer(IAttestation.State memory attestation) external view returns (address); /** * @notice Get the stake snapshot for an indexer. @@ -607,7 +607,7 @@ interface IDisputeManager { * @return Whether the attestations are conflicting */ function areConflictingAttestations( - Attestation.State memory attestation1, - Attestation.State memory attestation2 + IAttestation.State memory attestation1, + IAttestation.State memory attestation2 ) external pure returns (bool); } diff --git a/packages/subgraph-service/contracts/interfaces/ISubgraphService.sol b/packages/interfaces/contracts/subgraph-service/ISubgraphService.sol similarity index 96% rename from packages/subgraph-service/contracts/interfaces/ISubgraphService.sol rename to packages/interfaces/contracts/subgraph-service/ISubgraphService.sol index 5c35296f2..bf48a2a2f 100644 --- a/packages/subgraph-service/contracts/interfaces/ISubgraphService.sol +++ b/packages/interfaces/contracts/subgraph-service/ISubgraphService.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IDataServiceFees } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; +import { IDataServiceFees } from "../data-service/IDataServiceFees.sol"; +import { IGraphPayments } from "../horizon/IGraphPayments.sol"; -import { Allocation } from "../libraries/Allocation.sol"; -import { LegacyAllocation } from "../libraries/LegacyAllocation.sol"; +import { IAllocation } from "./internal/IAllocation.sol"; +import { ILegacyAllocation } from "./internal/ILegacyAllocation.sol"; /** * @title Interface for the {SubgraphService} contract @@ -263,7 +263,7 @@ interface ISubgraphService is IDataServiceFees { * @param allocationId The id of the allocation * @return The allocation details */ - function getAllocation(address allocationId) external view returns (Allocation.State memory); + function getAllocation(address allocationId) external view returns (IAllocation.State memory); /** * @notice Gets the details of a legacy allocation @@ -271,7 +271,7 @@ interface ISubgraphService is IDataServiceFees { * @param allocationId The id of the allocation * @return The legacy allocation details */ - function getLegacyAllocation(address allocationId) external view returns (LegacyAllocation.State memory); + function getLegacyAllocation(address allocationId) external view returns (ILegacyAllocation.State memory); /** * @notice Encodes the allocation proof for EIP712 signing diff --git a/packages/interfaces/contracts/subgraph-service/internal/IAllocation.sol b/packages/interfaces/contracts/subgraph-service/internal/IAllocation.sol new file mode 100644 index 000000000..97b4f1176 --- /dev/null +++ b/packages/interfaces/contracts/subgraph-service/internal/IAllocation.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity 0.8.27; + +/** + * @title Interface for the {Allocation} library contract. + * @custom:security-contact Please email security+contracts@thegraph.com if you find any + * bugs. We may have an active bug bounty program. + */ +interface IAllocation { + /** + * @notice Allocation details + * @param indexer The indexer that owns the allocation + * @param subgraphDeploymentId The subgraph deployment id the allocation is for + * @param tokens The number of tokens allocated + * @param createdAt The timestamp when the allocation was created + * @param closedAt The timestamp when the allocation was closed + * @param lastPOIPresentedAt The timestamp when the last POI was presented + * @param accRewardsPerAllocatedToken The accumulated rewards per allocated token + * @param accRewardsPending The accumulated rewards that are pending to be claimed due allocation resize + * @param createdAtEpoch The epoch when the allocation was created + */ + struct State { + address indexer; + bytes32 subgraphDeploymentId; + uint256 tokens; + uint256 createdAt; + uint256 closedAt; + uint256 lastPOIPresentedAt; + uint256 accRewardsPerAllocatedToken; + uint256 accRewardsPending; + uint256 createdAtEpoch; + } + + /** + * @notice Thrown when attempting to create an allocation with an existing id + * @param allocationId The allocation id + */ + error AllocationAlreadyExists(address allocationId); + + /** + * @notice Thrown when trying to perform an operation on a non-existent allocation + * @param allocationId The allocation id + */ + error AllocationDoesNotExist(address allocationId); + + /** + * @notice Thrown when trying to perform an operation on a closed allocation + * @param allocationId The allocation id + * @param closedAt The timestamp when the allocation was closed + */ + error AllocationClosed(address allocationId, uint256 closedAt); +} diff --git a/packages/interfaces/contracts/subgraph-service/internal/IAttestation.sol b/packages/interfaces/contracts/subgraph-service/internal/IAttestation.sol new file mode 100644 index 000000000..e425a917a --- /dev/null +++ b/packages/interfaces/contracts/subgraph-service/internal/IAttestation.sol @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity 0.8.27; + +/** + * @title Interface for the {Attestation} library contract. + * @custom:security-contact Please email security+contracts@thegraph.com if you find any + * bugs. We may have an active bug bounty program. + */ +interface IAttestation { + /** + * @notice Receipt content sent from the service provider in response to request + * @param requestCID The request CID + * @param responseCID The response CID + * @param subgraphDeploymentId The subgraph deployment id + */ + struct Receipt { + bytes32 requestCID; + bytes32 responseCID; + bytes32 subgraphDeploymentId; + } + + /** + * @notice Attestation sent from the service provider in response to a request + * @param requestCID The request CID + * @param responseCID The response CID + * @param subgraphDeploymentId The subgraph deployment id + * @param r The r value of the signature + * @param s The s value of the signature + * @param v The v value of the signature + */ + struct State { + bytes32 requestCID; + bytes32 responseCID; + bytes32 subgraphDeploymentId; + bytes32 r; + bytes32 s; + uint8 v; + } + + /** + * @notice The error thrown when the attestation data length is invalid + * @param length The length of the attestation data + * @param expectedLength The expected length of the attestation data + */ + error AttestationInvalidBytesLength(uint256 length, uint256 expectedLength); +} diff --git a/packages/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol b/packages/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol new file mode 100644 index 000000000..74405a439 --- /dev/null +++ b/packages/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +pragma solidity 0.8.27; + +/** + * @title Interface for the {LegacyAllocation} library contract. + * @custom:security-contact Please email security+contracts@thegraph.com if you find any + * bugs. We may have an active bug bounty program. + */ +interface ILegacyAllocation { + /** + * @notice Legacy allocation details + * @dev Note that we are only storing the indexer and subgraphDeploymentId. The main point of tracking legacy allocations + * is to prevent them from being re used on the Subgraph Service. We don't need to store the rest of the allocation details. + * @param indexer The indexer that owns the allocation + * @param subgraphDeploymentId The subgraph deployment id the allocation is for + */ + struct State { + address indexer; + bytes32 subgraphDeploymentId; + } + + /** + * @notice Thrown when attempting to migrate an allocation with an existing id + * @param allocationId The allocation id + */ + error LegacyAllocationAlreadyExists(address allocationId); + + /** + * @notice Thrown when trying to get a non-existent allocation + * @param allocationId The allocation id + */ + error LegacyAllocationDoesNotExist(address allocationId); +} diff --git a/packages/interfaces/contracts/toolshed/IControllerToolshed.sol b/packages/interfaces/contracts/toolshed/IControllerToolshed.sol new file mode 100644 index 000000000..e4dbd8d41 --- /dev/null +++ b/packages/interfaces/contracts/toolshed/IControllerToolshed.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +import { IController } from "../contracts/governance/IController.sol"; +import { IGoverned } from "../contracts/governance/IGoverned.sol"; + +interface IControllerToolshed is IController, IGoverned {} diff --git a/packages/interfaces/contracts/toolshed/IEpochManagerToolshed.sol b/packages/interfaces/contracts/toolshed/IEpochManagerToolshed.sol new file mode 100644 index 000000000..427df1f64 --- /dev/null +++ b/packages/interfaces/contracts/toolshed/IEpochManagerToolshed.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +import { IEpochManager } from "../contracts/epochs/IEpochManager.sol"; + +interface IEpochManagerToolshed is IEpochManager { + function epochLength() external view returns (uint256); +} diff --git a/packages/interfaces/contracts/toolshed/IGNSToolshed.sol b/packages/interfaces/contracts/toolshed/IGNSToolshed.sol new file mode 100644 index 000000000..ecc42c34e --- /dev/null +++ b/packages/interfaces/contracts/toolshed/IGNSToolshed.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +import { IGNS } from "../contracts/discovery/IGNS.sol"; + +interface IGNSToolshed is IGNS { + function subgraphNFT() external view returns (address); +} diff --git a/packages/interfaces/contracts/toolshed/IHorizonStakingToolshed.sol b/packages/interfaces/contracts/toolshed/IHorizonStakingToolshed.sol new file mode 100644 index 000000000..b021d3af9 --- /dev/null +++ b/packages/interfaces/contracts/toolshed/IHorizonStakingToolshed.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +import { IHorizonStaking } from "../horizon/IHorizonStaking.sol"; +import { IMulticall } from "../contracts/base/IMulticall.sol"; + +interface IHorizonStakingToolshed is IHorizonStaking, IMulticall {} diff --git a/packages/interfaces/contracts/toolshed/IL2CurationToolshed.sol b/packages/interfaces/contracts/toolshed/IL2CurationToolshed.sol new file mode 100644 index 000000000..3b3ffd2da --- /dev/null +++ b/packages/interfaces/contracts/toolshed/IL2CurationToolshed.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +import { IL2Curation } from "../contracts/l2/curation/IL2Curation.sol"; + +interface IL2CurationToolshed is IL2Curation { + function subgraphService() external view returns (address); +} diff --git a/packages/interfaces/contracts/toolshed/IRewardsManagerToolshed.sol b/packages/interfaces/contracts/toolshed/IRewardsManagerToolshed.sol new file mode 100644 index 000000000..31cbb27e6 --- /dev/null +++ b/packages/interfaces/contracts/toolshed/IRewardsManagerToolshed.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +import { IRewardsManager } from "../contracts/rewards/IRewardsManager.sol"; + +interface IRewardsManagerToolshed is IRewardsManager { + function subgraphService() external view returns (address); +} diff --git a/packages/interfaces/contracts/toolshed/IServiceRegistryToolshed.sol b/packages/interfaces/contracts/toolshed/IServiceRegistryToolshed.sol new file mode 100644 index 000000000..0c31f776e --- /dev/null +++ b/packages/interfaces/contracts/toolshed/IServiceRegistryToolshed.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.7.6 || 0.8.27; + +import { IServiceRegistry } from "../contracts/discovery/IServiceRegistry.sol"; + +interface IServiceRegistryToolshed is IServiceRegistry { + function services(address indexer) external view returns (IServiceRegistry.IndexerService memory); +} diff --git a/packages/interfaces/hardhat.config.ts b/packages/interfaces/hardhat.config.ts new file mode 100644 index 000000000..869544e67 --- /dev/null +++ b/packages/interfaces/hardhat.config.ts @@ -0,0 +1,12 @@ +import '@nomicfoundation/hardhat-toolbox' + +const config = { + solidity: { + compilers: [{ version: '0.8.27' }, { version: '0.7.6' }], + }, + typechain: { + outDir: 'types', + }, +} + +module.exports = config diff --git a/packages/interfaces/package.json b/packages/interfaces/package.json new file mode 100644 index 000000000..e46bf0e76 --- /dev/null +++ b/packages/interfaces/package.json @@ -0,0 +1,44 @@ +{ + "name": "@graphprotocol/interfaces", + "version": "0.1.0", + "description": "Contract interfaces for The Graph protocol", + "main": "./dist/src/index.js", + "types": "./dist/types/index.d.ts", + "exports": { + ".": { + "default": "./dist/src/index.js", + "types": "./dist/types/index.d.ts" + } + }, + "files": [ + "artifacts/**/*", + "contracts/**/*", + "types/**/*", + "README.md" + ], + "author": "The Graph Team", + "license": "GPL-2.0-or-later", + "scripts": { + "clean": "rm -rf dist cache artifacts types", + "lint": "pnpm lint:ts; pnpm lint:sol; pnpm lint:json", + "lint:ts": "eslint --fix --cache '**/*.{js,ts,cjs,mjs,jsx,tsx}'; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", + "lint:sol": "solhint --fix --noPrompt --noPoster 'contracts/**/*.sol'; prettier -w --cache --log-level warn 'contracts/**/*.sol'", + "lint:json": "prettier -w --cache --log-level warn '**/*.json'", + "format": "prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx,json,md,yaml,yml}'", + "build": "hardhat compile && tsc", + "build:clean": "pnpm clean && pnpm build", + "watch": "tsc --watch" + }, + "devDependencies": { + "@defi-wonderland/natspec-smells": "^1.1.6", + "@nomicfoundation/hardhat-toolbox": "^4.0.0", + "@openzeppelin/contracts": "3.4.1", + "@openzeppelin/contracts-upgradeable": "3.4.2", + "ethers": "6.13.7", + "hardhat": "^2.24.0", + "markdownlint-cli": "^0.45.0", + "prettier": "^3.5.3", + "prettier-plugin-solidity": "^2.0.0", + "solhint": "5.1.0" + } +} diff --git a/packages/common/prettier.config.cjs b/packages/interfaces/prettier.config.cjs similarity index 100% rename from packages/common/prettier.config.cjs rename to packages/interfaces/prettier.config.cjs diff --git a/packages/interfaces/src/index.ts b/packages/interfaces/src/index.ts new file mode 100644 index 000000000..051f853a0 --- /dev/null +++ b/packages/interfaces/src/index.ts @@ -0,0 +1,174 @@ +import { ContractRunner, Interface } from 'ethers' + +import { factories } from '../types' + +export * from '../types' + +/** + * Interface representing a static contract factory with methods to create interfaces and connect to contracts + * @template ContractType - The type of the contract instance + * @template InterfaceType - The type of the contract interface + */ +interface ContractFactoryStatic { + readonly abi: unknown[] + createInterface(): InterfaceType + connect(address: string, runner?: ContractRunner | null): ContractType +} + +/** + * Gets the contract interface for a given contract name + * @param {string} contractName - The name of the contract to get the interface for + * @returns {Interface} The contract interface + * @throws {Error} If no interface is found for the given contract name + */ +export function getInterface(contractName: string): Interface { + const alternatives = getContractNameAlternatives(contractName) + for (const alternative of alternatives) { + const factory = collectFactoriesMap(factories)[alternative] + if (factory) { + return factory.createInterface() + } + } + throw new Error(`No interface found for contract ${contractName}`) +} + +/** + * Loads and merges interfaces from multiple contract names. + * + * @param names Array of contract names + * @returns Merged ethers.js Interface + */ +export function getMergedInterface(names: string[]): Interface { + const abis = names.map((name) => { + const iface = getInterface(name) + return (iface as Interface).fragments + }) + + const mergedFragments = abis.flat() + + return new Interface(mergedFragments) +} + +/** + * Gets the ABI for a given contract name + * @param {string} contractName - The name of the contract to get the ABI for + * @returns {unknown[]} The contract ABI + * @throws {Error} If no ABI is found for the given contract name + */ +export function getAbi(contractName: string): unknown[] { + const alternatives = getContractNameAlternatives(contractName) + for (const alternative of alternatives) { + const factory = collectFactoriesMap(factories)[alternative] + if (factory) { + return factory.abi + } + } + throw new Error(`No abi found for contract ${contractName}`) +} + +/** + * Collects all contract factories from the given object into a map by recursively traversing the object structure. + * Handles factory name overrides and normalizes contract names by removing '__factory' suffix. + * + * @param {unknown} obj - The object containing contract factories to be collected + * @returns {Record} A map of contract names to their factory instances + * @private + */ +export function collectFactoriesMap(obj: unknown): Record { + const factoriesMap: Record = {} + + // For factory name 'x', use contract name 'y' + const factoryNameOverrides: Record = { + 'contracts.contracts.disputes.IDisputeManager__factory': 'ILegacyDisputeManager', + } + + // For contract name 'x', also create an entry for alias 'y' in the factory map + const factoryNameAliases: Record = { + IServiceRegistry: 'ILegacyServiceRegistry', + } + + function recurse(value: unknown, path: string[] = []) { + if (typeof value !== 'object' || value === null) { + return + } + + const entries = Object.entries(value) + + for (const [key, val] of entries) { + const currentPath = [...path, key] + const currentPathString = currentPath.join('.') + + if (key.endsWith('__factory')) { + const descriptor = Object.getOwnPropertyDescriptor(value, key) + const factory = descriptor?.get ? descriptor.get.call(value) : val + + const contractName = factoryNameOverrides[currentPathString] + ? factoryNameOverrides[currentPathString] + : key.replace(/__factory$/, '') + + if (factoriesMap[contractName]) { + console.log( + `⚠️ Duplicate factory for contract "${contractName}" found at path "${currentPathString}". Keeping the first occurrence. If both are needed add overrides.`, + ) + continue + } + + // Add main entry + factoriesMap[contractName] = factory as ContractFactoryStatic + + // If alias exists, add alias entry too + if (factoryNameAliases[contractName]) { + const aliasName = factoryNameAliases[contractName] + + if (factoriesMap[aliasName]) { + console.log( + `⚠️ Duplicate factory for alias "${aliasName}" derived from "${contractName}". Keeping the first occurrence.`, + ) + } else { + factoriesMap[aliasName] = factory as ContractFactoryStatic + } + } + } else if (typeof val === 'object' && val !== null) { + recurse(val, currentPath) + } + } + } + + recurse(obj) + + return factoriesMap +} + +/** + * Gets alternative names for a contract to handle interface naming conventions + * For any given value passed to it, returns `ContractName` and `IContractName` + * Note that this function will apply toolshed overrides, this returns a more complete interface + * @param {string} contractName - The original contract name + * @returns {string[]} Array of possible contract names including interface variants + * @private + */ +function getContractNameAlternatives(contractName: string): string[] { + const nameOverrides: Record = { + Controller: 'ControllerToolshed', + EpochManager: 'EpochManagerToolshed', + GNS: 'GNSToolshed', + HorizonStaking: 'HorizonStakingToolshed', + L2Curation: 'L2CurationToolshed', + RewardsManager: 'RewardsManagerToolshed', + ServiceRegistry: 'ServiceRegistryToolshed', + } + + if (nameOverrides[contractName]) { + contractName = nameOverrides[contractName] + } + + const alternatives: string[] = [contractName] + + if (contractName.startsWith('I')) { + alternatives.push(contractName.replace('I', '')) + } else { + alternatives.push(`I${contractName}`) + } + + return alternatives +} diff --git a/packages/interfaces/tsconfig.json b/packages/interfaces/tsconfig.json new file mode 100644 index 000000000..d131dc31a --- /dev/null +++ b/packages/interfaces/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["hardhat.config.ts", "src/**/*.ts", "types/**/*.ts"] +} diff --git a/packages/sdk/.markdownlint.json b/packages/sdk/.markdownlint.json deleted file mode 100644 index 18947b0be..000000000 --- a/packages/sdk/.markdownlint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../.markdownlint.json" -} diff --git a/packages/sdk/.mocharc.json b/packages/sdk/.mocharc.json deleted file mode 100644 index 79ba35ddf..000000000 --- a/packages/sdk/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require": "ts-node/register/files", - "ignore": ["test/fixture-projects/**/*"], - "timeout": 6000 -} diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md deleted file mode 100644 index 20a787d51..000000000 --- a/packages/sdk/CHANGELOG.md +++ /dev/null @@ -1,14 +0,0 @@ -# @graphprotocol/sdk - -## 0.5.0 - -### Minor Changes - -- 554af2c: feat(utils): add utility to parse subgraph ids - -### Patch Changes - -- c5641c5: Ensure L2 aliased addresses are the correct length -- Updated dependencies -- Updated dependencies [554af2c] - - @graphprotocol/contracts@6.2.0 diff --git a/packages/sdk/package.json b/packages/sdk/package.json deleted file mode 100644 index 978ce63f3..000000000 --- a/packages/sdk/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "@graphprotocol/sdk", - "version": "0.6.0", - "description": "TypeScript based SDK to interact with The Graph protocol contracts", - "main": "types/index.js", - "types": "types/index.d.ts", - "exports": { - ".": { - "default": "./types/index.js", - "types": "./types/index.d.ts" - }, - "./gre": { - "default": "./types/gre/index.js", - "types": "./types/gre/index.d.ts" - } - }, - "repository": "git@github.com:graphprotocol/sdk.git", - "author": "tomas@edgeandnode.com", - "license": "MIT", - "dependencies": { - "@arbitrum/sdk": "~3.1.13", - "@ethersproject/abstract-provider": "^5.8.0", - "@ethersproject/experimental": "^5.7.0", - "@ethersproject/providers": "^5.8.0", - "@graphprotocol/common-ts": "^2.0.7", - "@graphprotocol/contracts": "workspace:^", - "@nomicfoundation/hardhat-network-helpers": "^1.0.9", - "@nomiclabs/hardhat-ethers": "^2.2.3", - "debug": "^4.3.4", - "ethers": "^5.7.0", - "hardhat": "^2.24.0", - "hardhat-secure-accounts": "0.0.6", - "inquirer": "^8.0.0", - "lodash": "^4.17.21", - "yaml": "^1.10.2" - }, - "devDependencies": { - "@eslint/js": "^9.28.0", - "@types/chai": "^4.3.9", - "@types/chai-as-promised": "^7.1.7", - "@types/debug": "^4.1.10", - "@types/inquirer": "^8.0.0", - "@types/lodash": "^4.14.200", - "@types/mocha": "^10.0.3", - "@types/node": "^20.17.50", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", - "eslint": "^9.28.0", - "globals": "16.1.0", - "markdownlint-cli": "0.45.0", - "prettier": "^3.5.3", - "ts-node": "^10.9.1", - "typescript": "^5.8.3" - }, - "scripts": { - "lint": "pnpm lint:ts; pnpm lint:md; pnpm lint:json", - "lint:ts": "eslint '**/*.{js,ts,cjs,mjs,jsx,tsx}' --fix --cache; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", - "lint:sol": "solhint --fix --noPrompt --noPoster 'contracts/**/*.sol'; prettier -w --cache --log-level warn 'contracts/**/*.sol'", - "lint:md": "markdownlint --fix --ignore-path ../../.gitignore '**/*.md'; prettier -w --cache --log-level warn '**/*.md'", - "lint:json": "prettier -w --cache --log-level warn '**/*.json'", - "prettier": "prettier --write '**/*.{js,ts,cjs,mjs,jsx,tsx}'", - "test:gre": "cd src/gre && mocha --exit --recursive 'test/**/*.test.ts' && cd ..", - "clean": "rm -rf cache types", - "build": "tsc", - "build:clean": "pnpm clean && pnpm build" - }, - "files": [ - "types/*", - "src/*", - "README.md", - "CHANGELOG.md", - "LICENSE" - ] -} diff --git a/packages/sdk/prettier.config.cjs b/packages/sdk/prettier.config.cjs deleted file mode 100644 index 4e8dcf4f3..000000000 --- a/packages/sdk/prettier.config.cjs +++ /dev/null @@ -1,5 +0,0 @@ -const baseConfig = require('../../prettier.config.cjs') - -module.exports = { - ...baseConfig, -} diff --git a/packages/sdk/src/chain/id.ts b/packages/sdk/src/chain/id.ts deleted file mode 100644 index 433a1c037..000000000 --- a/packages/sdk/src/chain/id.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { GraphChainList } from './list' -import type { GraphChainId, GraphL1ChainId, GraphL2ChainId } from './types' -import { isGraphChainId, isGraphL1ChainId, isGraphL2ChainId } from './types' - -/** A list of all L1 chain ids supported by the protocol */ -export const l1Chains: GraphL1ChainId[] = GraphChainList.map((c) => c.l1.id) -/** A list of all L2 chain ids supported by the protocol */ -export const l2Chains: GraphL2ChainId[] = GraphChainList.map((c) => c.l2.id) -/** A list of all chain ids supported by the protocol */ -export const chains: GraphChainId[] = [...l1Chains, ...l2Chains] - -/** - * Gets the L2 chain id that corresponds to the given L1 chain id - * @param chainId The L1 chain id - * @returns The L2 chain id - * - * @throws Error if the given chain id is not a valid L1 chain id - */ -export const l1ToL2 = (chainId: number): GraphChainId => { - if (!isGraphL1ChainId(chainId)) throw new Error(`Invalid L1 chain id: ${chainId}`) - const pair = GraphChainList.find((cp) => cp.l1.id === chainId) - if (pair === undefined) { - throw new Error(`Could not find L2 chain id for L1 chain id: ${chainId}`) - } - return pair.l2.id -} -/** - * Gets the L1 chain id that corresponds to the given L2 chain id - * @param chainId The L2 chain id - * @returns The L1 chain id - * - * @throws Error if the given chain id is not a valid L2 chain id - */ -export const l2ToL1 = (chainId: number): GraphChainId => { - if (!isGraphL2ChainId(chainId)) throw new Error(`Invalid L2 chain id: ${chainId}`) - const pair = GraphChainList.find((cp) => cp.l2.id === chainId) - if (pair === undefined) { - throw new Error(`Could not find L1 chain id for L2 chain id: ${chainId}`) - } - return pair.l1.id -} -/** - * Gets the counterpart chain id to the given L1 or L2 chain id - * @param chainId The chain id - * @returns The counterpart chain id - * - * @throws Error if the given chain id is not a valid chain id - */ -export const counterpart = (chainId: number): GraphChainId => { - if (!isGraphChainId(chainId)) throw new Error(`Invalid chain id: ${chainId}`) - return isGraphL1ChainId(chainId) ? l1ToL2(chainId) : l2ToL1(chainId) -} diff --git a/packages/sdk/src/chain/index.ts b/packages/sdk/src/chain/index.ts deleted file mode 100644 index 3ea96085a..000000000 --- a/packages/sdk/src/chain/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -export { chains, counterpart, l1Chains, l1ToL2, l2Chains, l2ToL1 } from './id' -export { chainNames, counterpartName, l1ChainNames, l1ToL2Name, l2ChainNames, l2ToL1Name } from './name' -export type { GraphChainId, GraphL1ChainId, GraphL1ChainName, GraphL2ChainId, GraphL2ChainName } from './types' -export { - isGraphChainId, - isGraphChainL1Localhost, - isGraphChainL2Localhost, - isGraphChainName, - isGraphL1ChainId, - isGraphL1ChainName, - isGraphL2ChainId, - isGraphL2ChainName, -} from './types' diff --git a/packages/sdk/src/chain/list.ts b/packages/sdk/src/chain/list.ts deleted file mode 100644 index 471fd0407..000000000 --- a/packages/sdk/src/chain/list.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Master chain list for all the chain pairs supported by the Graph Protocol - * See {@link GraphChainPair} for details on the structure of a chain pair - * @enum - */ -export const GraphChainList = [ - { - l1: { - id: 1, - name: 'mainnet', - }, - l2: { - id: 42161, - name: 'arbitrum-one', - }, - }, - { - l1: { - id: 4, - name: 'rinkeby', - }, - l2: { - id: 421611, - name: 'arbitrum-rinkeby', - }, - }, - { - l1: { - id: 11155111, - name: 'sepolia', - }, - l2: { - id: 421614, - name: 'arbitrum-sepolia', - }, - }, - { - l1: { - id: 5, - name: 'goerli', - }, - l2: { - id: 421613, - name: 'arbitrum-goerli', - }, - }, - { - l1: { - id: 1337, - name: 'localnitrol1', - }, - l2: { - id: 412346, - name: 'localnitrol2', - }, - }, -] as const diff --git a/packages/sdk/src/chain/name.ts b/packages/sdk/src/chain/name.ts deleted file mode 100644 index 658e1d3e4..000000000 --- a/packages/sdk/src/chain/name.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { GraphChainList } from './list' -import type { GraphChainName, GraphL1ChainName, GraphL2ChainName } from './types' -import { isGraphChainName, isGraphL1ChainName, isGraphL2ChainName } from './types' - -/** A list of all L1 chain names supported by the protocol */ -export const l1ChainNames: GraphL1ChainName[] = GraphChainList.map((c) => c.l1.name) -/** A list of all L2 chain names supported by the protocol */ -export const l2ChainNames: GraphL2ChainName[] = GraphChainList.map((c) => c.l2.name) -/** A list of all chain names supported by the protocol */ -export const chainNames: GraphChainName[] = [...l1ChainNames, ...l2ChainNames] - -/** - * Gets the L2 chain name that corresponds to the given L1 chain name - * @param name The L1 chain name - * @returns The L2 chain name - * - * @throws Error if the given chain name is not a valid L1 chain name - */ -export const l1ToL2Name = (name: string): GraphChainName => { - if (!isGraphL1ChainName(name)) throw new Error(`Invalid L1 chain name: ${name}`) - const pair = GraphChainList.find((cp) => cp.l1.name === name) - if (pair === undefined) { - throw new Error(`Could not find L2 chain name for L1 chain name: ${name}`) - } - return pair.l2.name -} -/** - * Gets the L1 chain name that corresponds to the given L2 chain name - * @param name The L2 chain name - * @returns The L1 chain name - * - * @throws Error if the given chain name is not a valid L2 chain name - */ -export const l2ToL1Name = (name: string): GraphChainName => { - if (!isGraphL2ChainName(name)) throw new Error(`Invalid L2 chain name: ${name}`) - const pair = GraphChainList.find((cp) => cp.l2.name === name) - if (pair === undefined) { - throw new Error(`Could not find L1 chain name for L2 chain name: ${name}`) - } - return pair.l1.name -} -/** - * Gets the counterpart chain name to the given L1 or L2 chain name - * @param chainId The chain name - * @returns The counterpart chain name - * - * @throws Error if the given chain name is not a valid chain name - */ -export const counterpartName = (name: string): GraphChainName => { - if (!isGraphChainName(name)) throw new Error(`Invalid chain name: ${name}`) - return isGraphL1ChainName(name) ? l1ToL2Name(name) : l2ToL1Name(name) -} diff --git a/packages/sdk/src/chain/types.ts b/packages/sdk/src/chain/types.ts deleted file mode 100644 index 9caf122fc..000000000 --- a/packages/sdk/src/chain/types.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { l1Chains, l2Chains } from './id' -import type { GraphChainList } from './list' -import { l1ChainNames, l2ChainNames } from './name' - -/** - * A chain pair is an object containing a valid L1 and L2 chain pairing - * - * @example - * { - * l1: { - * id: 1, - * name: 'mainnet', - * }, - * l2: { - * id: 42161, - * name: 'arbitrum-one', - * }, - * } - */ -export type GraphChainPair = (typeof GraphChainList)[number] - -/** L1 chain ids supported by the protocol */ -export type GraphL1ChainId = GraphChainPair['l1']['id'] -/** L2 chain ids supported by the protocol */ -export type GraphL2ChainId = GraphChainPair['l2']['id'] -/** L1 and L2 chain ids supported by the protocol */ -export type GraphChainId = GraphL1ChainId | GraphL2ChainId - -/** L1 chain names supported by the protocol */ -export type GraphL1ChainName = GraphChainPair['l1']['name'] -/** L2 chain names supported by the protocol */ -export type GraphL2ChainName = GraphChainPair['l2']['name'] -/** L1 and L2 chain names supported by the protocol */ -export type GraphChainName = GraphL1ChainName | GraphL2ChainName - -// ** Type guards ** - -/** Type guard for {@link GraphL1ChainId} */ -export function isGraphL1ChainId(value: unknown): value is GraphL1ChainId { - return typeof value === 'number' && l1Chains.includes(value as GraphL1ChainId) -} -/** Type guard for {@link GraphL2ChainId} */ -export function isGraphL2ChainId(value: unknown): value is GraphL2ChainId { - return typeof value === 'number' && l2Chains.includes(value as GraphL2ChainId) -} -/** Type guard for {@link GraphChainId} */ -export function isGraphChainId(value: unknown): value is GraphChainId { - return typeof value === 'number' && (isGraphL1ChainId(value) || isGraphL2ChainId(value)) -} - -export function isGraphChainL1Localhost(value: unknown): value is GraphChainId { - return typeof value === 'number' && value === 1337 -} - -/** Type guard for {@link GraphL1ChainName} */ -export function isGraphL1ChainName(value: unknown): value is GraphL1ChainName { - return typeof value === 'string' && l1ChainNames.includes(value as GraphL1ChainName) -} -/** Type guard for {@link GraphL2ChainName} */ -export function isGraphL2ChainName(value: unknown): value is GraphL2ChainName { - return typeof value === 'string' && l2ChainNames.includes(value as GraphL2ChainName) -} -/** Type guard for {@link GraphChainName} */ -export function isGraphChainName(value: unknown): value is GraphChainName { - return typeof value === 'string' && (isGraphL1ChainName(value) || isGraphL2ChainName(value)) -} - -export function isGraphChainL2Localhost(value: unknown): value is GraphChainId { - return typeof value === 'number' && value === 1337 -} diff --git a/packages/sdk/src/deployments/index.ts b/packages/sdk/src/deployments/index.ts deleted file mode 100644 index b9487d4e9..000000000 --- a/packages/sdk/src/deployments/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -export { AddressBook, SimpleAddressBook } from './lib/address-book' -export { writeConfig } from './lib/config' -export { loadContractAt } from './lib/contracts/load' -export { DeployType } from './lib/types/deploy' - -// Export configuration and contract types -export type { ABRefReplace, ContractConfig, ContractConfigCall, ContractConfigParam } from './lib/types/config' -export type { ContractList, ContractParam } from './lib/types/contract' - -// Graph Network Contracts -export * from './network/actions/bridge-config' -export * from './network/actions/bridge-to-l1' -export * from './network/actions/bridge-to-l2' -export * from './network/actions/disputes' -export * from './network/actions/gns' -export * from './network/actions/governed' -export * from './network/actions/graph-token' -export * from './network/actions/pause' -export * from './network/actions/staking' -export type { GraphNetworkAction } from './network/actions/types' -export { GraphNetworkAddressBook } from './network/deployment/address-book' -export { - getDefaults, - GraphNetworkConfigContractList, - GraphNetworkConfigGeneralParams, - updateContractParams, - updateGeneralParams, -} from './network/deployment/config' -export { deploy, deployGraphNetwork, deployMockGraphNetwork } from './network/deployment/contracts/deploy' -export type { GraphNetworkContractName } from './network/deployment/contracts/list' -export { - GraphNetworkContractNameList, - GraphNetworkGovernedContractNameList, - GraphNetworkL1ContractNameList, - GraphNetworkL2ContractNameList, - isGraphNetworkContractName, -} from './network/deployment/contracts/list' -export type { GraphNetworkContracts } from './network/deployment/contracts/load' -export { loadGraphNetworkContracts } from './network/deployment/contracts/load' diff --git a/packages/sdk/src/deployments/lib/address-book.ts b/packages/sdk/src/deployments/lib/address-book.ts deleted file mode 100644 index 98c5be8f0..000000000 --- a/packages/sdk/src/deployments/lib/address-book.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { AssertionError } from 'assert' -import fs from 'fs' - -import { assertObject } from '../../utils/assertions' -import { logInfo } from '../logger' -import type { AddressBookEntry, AddressBookJson } from './types/address-book' - -/** - * Format JSON content using Prettier to match project formatting standards - */ -function formatJsonWithPrettier(content: string): string { - try { - // Try to use prettier if available - const prettier = require('prettier') - // Look for prettier config starting from the contracts package directory - const configPath = require('path').resolve(__dirname, '../../../..') - const prettierConfig = prettier.resolveConfigSync(configPath) || {} - return prettier.format(content, { - ...prettierConfig, - parser: 'json', - }) - } catch (error) { - // Fallback to standard JSON formatting if prettier is not available - const errorMessage = error instanceof Error ? error.message : String(error) - logInfo(`Prettier formatting failed: ${errorMessage}, using standard JSON formatting`) - return content - } -} - -/** - * An abstract class to manage the address book - * Must be extended and implement `assertChainId` and `assertAddressBookJson` - */ -export abstract class AddressBook { - // The path to the address book file - public file: string - - // The chain id of the network the address book should be loaded for - public chainId: ChainId - - // The raw contents of the address book file - public addressBook: AddressBookJson - - public strictAssert: boolean - - /** - * Constructor for the `AddressBook` class - * - * @param _file the path to the address book file - * @param _chainId the chain id of the network the address book should be loaded for - * - * @throws AssertionError if the target file is not a valid address book - * @throws Error if the target file does not exist - */ - constructor(_file: string, _chainId: number, strictAssert = false) { - this.strictAssert = strictAssert - this.file = _file - if (!fs.existsSync(this.file)) throw new Error(`Address book path provided does not exist!`) - - logInfo(`Loading address book for chainId ${_chainId} from ${this.file}`) - this.assertChainId(_chainId) - this.chainId = _chainId - - // Ensure file is a valid address book - this.addressBook = JSON.parse(fs.readFileSync(this.file, 'utf8') || '{}') - this.assertAddressBookJson(this.addressBook) - - // If the address book is empty for this chain id, initialize it with an empty object - if (!this.addressBook[this.chainId]) { - this.addressBook[this.chainId] = {} as Record - } - } - - abstract assertChainId(chainId: string | number): asserts chainId is ChainId - - abstract assertAddressBookJson(json: unknown): asserts json is AddressBookJson - - // Assertion helper: call from `assertAddressBookJson` implementation - _assertAddressBookJson(json: unknown): asserts json is AddressBookJson { - assertObject(json, 'Assertion failed: address book is not an object') - - const contractList = json[this.chainId] - try { - assertObject(contractList, 'Assertion failed: chain contract list is not an object') - } catch (error) { - if (this.strictAssert) throw error - else return - } - - const contractNames = Object.keys(contractList) - for (const contractName of contractNames) { - this._assertAddressBookEntry(contractList[contractName]) - } - } - - _assertAddressBookEntry(json: unknown): asserts json is AddressBookEntry { - assertObject(json) - - try { - if (typeof json.address !== 'string') throw new AssertionError({ message: 'Invalid address' }) - if (json.constructorArgs && !Array.isArray(json.constructorArgs)) - throw new AssertionError({ message: 'Invalid constructorArgs' }) - if (json.initArgs && !Array.isArray(json.initArgs)) throw new AssertionError({ message: 'Invalid initArgs' }) - if (json.creationCodeHash && typeof json.creationCodeHash !== 'string') - throw new AssertionError({ message: 'Invalid creationCodeHash' }) - if (json.runtimeCodeHash && typeof json.runtimeCodeHash !== 'string') - throw new AssertionError({ message: 'Invalid runtimeCodeHash' }) - if (json.txHash && typeof json.txHash !== 'string') throw new AssertionError({ message: 'Invalid txHash' }) - if (json.proxy && typeof json.proxy !== 'boolean') throw new AssertionError({ message: 'Invalid proxy' }) - if (json.implementation && typeof json.implementation !== 'object') - throw new AssertionError({ message: 'Invalid implementation' }) - if (json.libraries && typeof json.libraries !== 'object') - throw new AssertionError({ message: 'Invalid libraries' }) - } catch (error) { - if (this.strictAssert) throw error - else return - } - } - /** - * List entry names in the address book - * - * @returns a list with all the names of the entries in the address book - */ - listEntries(): ContractName[] { - return Object.keys(this.addressBook[this.chainId]) as ContractName[] - } - - /** - * Get an entry from the address book - * - * @param name the name of the contract to get - * @returns the address book entry for the contract - * Returns an empty address book entry if the contract is not found - */ - getEntry(name: ContractName): AddressBookEntry { - try { - return this.addressBook[this.chainId][name] - } catch { - // TODO: should we throw instead? - // We could use ethers.constants.AddressZero but it's a costly import - return { address: '0x0000000000000000000000000000000000000000' } - } - } - - /** - * Save an entry to the address book - * - * @param name the name of the contract to save - * @param entry the address book entry for the contract - */ - setEntry(name: ContractName, entry: AddressBookEntry): void { - this.addressBook[this.chainId][name] = entry - try { - const jsonContent = JSON.stringify(this.addressBook, null, 2) - // Format with prettier to match project standards - const formattedContent = formatJsonWithPrettier(jsonContent) - fs.writeFileSync(this.file, formattedContent) - } catch (e: unknown) { - if (e instanceof Error) console.log(`Error saving artifacts: ${e.message}`) - else console.log(`Error saving artifacts: ${e}`) - } - } -} - -export class SimpleAddressBook extends AddressBook { - assertChainId(chainId: string | number): asserts chainId is number {} - assertAddressBookJson(json: unknown): asserts json is AddressBookJson {} -} diff --git a/packages/sdk/src/deployments/lib/config.ts b/packages/sdk/src/deployments/lib/config.ts deleted file mode 100644 index 9f82b880b..000000000 --- a/packages/sdk/src/deployments/lib/config.ts +++ /dev/null @@ -1,157 +0,0 @@ -import fs from 'fs' -import YAML from 'yaml' -import { Scalar, YAMLMap } from 'yaml/types' - -import { AddressBook } from './address-book' -import type { ABRefReplace, ContractConfig, ContractConfigCall, ContractConfigParam } from './types/config' -import type { ContractParam } from './types/contract' - -// TODO: tidy this up -const ABRefMatcher = /\${{([A-Z]\w.+)}}/ - -function parseConfigValue(value: string, addressBook: AddressBook, deployerAddress: string) { - return isAddressBookRef(value) - ? parseAddressBookRef(addressBook, value, [{ ref: 'Env.deployer', replace: deployerAddress }]) - : value -} - -function isAddressBookRef(value: string): boolean { - return ABRefMatcher.test(value) -} - -function parseAddressBookRef(addressBook: AddressBook, value: string, abInject: ABRefReplace[]): string { - const valueMatch = ABRefMatcher.exec(value) - if (valueMatch === null) { - throw new Error('Could not parse address book reference') - } - const ref = valueMatch[1] - const [contractName, contractAttr] = ref.split('.') - - // This is a convention to inject variables into the config, for example the deployer address - const inject = abInject.find((ab) => ab.ref === ref) - if (inject) { - return inject.replace - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const entry = addressBook.getEntry(contractName) as { [key: string]: any } - return entry[contractAttr] -} - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function readConfig(path: string, retainMetadata = false): any { - const file = fs.readFileSync(path, 'utf8') - return retainMetadata ? YAML.parseDocument(file) : YAML.parse(file) -} - -export function writeConfig(path: string, data: string): void { - fs.writeFileSync(path, data) -} - -export function loadCallParams( - values: Array, - addressBook: AddressBook, - deployerAddress: string, -): Array { - return values.map((value) => parseConfigValue(value as string, addressBook, deployerAddress)) -} - -export function getContractConfig( - config: Record, - addressBook: AddressBook, - name: string, - deployerAddress: string, -): ContractConfig { - const contractConfig = ((config.contracts as Record)[name] as Record) || {} - const contractParams: Array = [] - const contractCalls: Array = [] - let proxy = false - - const optsList = Object.entries(contractConfig) as Array> - for (const [name, value] of optsList) { - // Process constructor params - if (name.startsWith('init')) { - const initList = Object.entries(contractConfig.init as Record) as Array> - for (const [initName, initValue] of initList) { - contractParams.push({ - name: initName, - value: parseConfigValue(initValue, addressBook, deployerAddress), - }) - } - continue - } - - // Process contract calls - if (name.startsWith('calls')) { - for (const entry of contractConfig.calls as Array>) { - const fn = entry['fn'] as string - const params = Object.values(entry).slice(1) as Array // skip fn - contractCalls.push({ fn, params }) - } - continue - } - - // Process proxy - if (name.startsWith('proxy')) { - proxy = Boolean(value) - continue - } - } - - return { - params: contractParams, - calls: contractCalls, - proxy, - } -} - -// YAML helper functions -const getNode = (doc: YAML.Document.Parsed, path: string[]): YAMLMap | undefined => { - try { - let node: YAMLMap | undefined - for (const p of path) { - node = node === undefined ? doc.get(p) : node.get(p) - } - return node - } catch { - throw new Error(`Could not find node: ${path}.`) - } -} - -function getItem(node: YAMLMap, key: string): Scalar { - if (!node.has(key)) { - throw new Error(`Could not find item: ${key}.`) - } - return node.get(key, true) as Scalar -} - -function getItemFromPath(doc: YAML.Document.Parsed, path: string) { - const splitPath = path.split('/') - const itemKey = splitPath.pop() - if (itemKey === undefined) { - throw new Error('Badly formed path.') - } - - const node = getNode(doc, splitPath) - if (node === undefined) { - return undefined - } - - const item = getItem(node, itemKey) - return item -} - -export const getItemValue = (doc: YAML.Document.Parsed, path: string): unknown => { - const item = getItemFromPath(doc, path) - return item?.value -} - -export const updateItemValue = (doc: YAML.Document.Parsed, path: string, value: unknown): boolean => { - const item = getItemFromPath(doc, path) - if (item === undefined) { - throw new Error(`Could not find item: ${path}.`) - } - const updated = item.value !== value - item.value = value - return updated -} diff --git a/packages/sdk/src/deployments/lib/contracts/load.ts b/packages/sdk/src/deployments/lib/contracts/load.ts deleted file mode 100644 index 92e26d6f8..000000000 --- a/packages/sdk/src/deployments/lib/contracts/load.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { Contract, providers, Signer } from 'ethers' - -import { AddressBook } from '../address-book' -import { loadArtifact } from '../deploy/artifacts' -import type { ContractList } from '../types/contract' -import { getWrappedConnect, wrapCalls } from './wrap' - -/** - * Loads a contract instance for a given contract name and address - * - * @param name Name of the contract - * @param address Address of the contract - * @param signerOrProvider Signer or provider to use - * @returns the loaded contract - */ -export const loadContractAt = ( - name: string, - address: string, - artifactsPath?: string | string[], - signerOrProvider?: Signer | providers.Provider, -): Contract => { - return new Contract(address, loadArtifact(name, artifactsPath).abi, signerOrProvider) -} - -/** - * Loads a contract from an address book - * - * @param name Name of the contract - * @param addressBook Address book to use - * @param signerOrProvider Signer or provider to use - * @param enableTxLogging Enable transaction logging to console and output file. Defaults to `true` - * @param optional If true, the contract is optional and will not throw if it cannot be loaded - * @returns the loaded contract - * - * @throws Error if the contract could not be loaded - */ -export function loadContract( - name: ContractName, - addressBook: AddressBook, - artifactsPath: string | string[], - signerOrProvider?: Signer | providers.Provider, - enableTxLogging = true, - preloadedContract?: Contract, -): Contract { - const contractEntry = addressBook.getEntry(name) - - try { - let contract = preloadedContract ?? loadContractAt(name, contractEntry.address, artifactsPath) - - if (enableTxLogging) { - contract.connect = getWrappedConnect(contract, name) - contract = wrapCalls(contract, name) - } - - if (signerOrProvider) { - contract = contract.connect(signerOrProvider) - } - - return contract - } catch (err: unknown) { - if (err instanceof Error) { - throw new Error(`Could not load contract ${name} - ${err.message}`) - } else { - throw new Error(`Could not load contract ${name}`) - } - } -} - -/** - * Loads all contracts from an address book - * - * @param addressBook Address book to use - * @param signerOrProvider Signer or provider to use - * @param enableTxLogging Enable transaction logging to console and output file. Defaults to `true` - * @returns the loaded contracts - */ -export const loadContracts = ( - addressBook: AddressBook, - artifactsPath: string | string[], - signerOrProvider?: Signer | providers.Provider, - enableTXLogging = true, - optionalContractNames?: string[], -): ContractList => { - const contracts = {} as ContractList - for (const contractName of addressBook.listEntries()) { - try { - const contract = loadContract(contractName, addressBook, artifactsPath, signerOrProvider, enableTXLogging) - contracts[contractName] = contract - } catch (error) { - if (optionalContractNames?.includes(contractName)) { - console.log(`Skipping optional contract ${contractName}`) - continue - } else { - throw error - } - } - } - - return contracts -} diff --git a/packages/sdk/src/deployments/lib/contracts/log.ts b/packages/sdk/src/deployments/lib/contracts/log.ts deleted file mode 100644 index d0371e102..000000000 --- a/packages/sdk/src/deployments/lib/contracts/log.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { ContractReceipt, ContractTransaction } from 'ethers' -import fs from 'fs' - -import { logInfo } from '../../logger' -import type { ContractParam } from '../types/contract' - -export function logContractCall(tx: ContractTransaction, contractName: string, fn: string, args: Array) { - const msg: string[] = [] - msg.push(`> Sending transaction: ${contractName}.${fn}`) - msg.push(` = Sender: ${tx.from}`) - msg.push(` = Contract: ${tx.to}`) - msg.push(` = Params: [ ${args} ]`) - msg.push(` = TxHash: ${tx.hash}`) - - logToConsoleAndFile(msg) -} - -export function logContractDeploy(tx: ContractTransaction, contractName: string, args: Array) { - const msg: string[] = [] - msg.push(`> Deploying contract: ${contractName}`) - msg.push(` = Sender: ${tx.from}`) - msg.push(` = Params: [ ${args} ]`) - msg.push(` = TxHash: ${tx.hash}`) - logToConsoleAndFile(msg) -} - -export function logContractDeployReceipt(receipt: ContractReceipt, creationCodeHash: string, runtimeCodeHash: string) { - const msg: string[] = [] - msg.push(` = Contract deployed at: ${receipt.contractAddress}`) - msg.push(` = CreationCodeHash: ${creationCodeHash}`) - msg.push(` = RuntimeCodeHash: ${runtimeCodeHash}`) - logToConsoleAndFile(msg) - logContractReceipt(receipt) -} - -export function logContractReceipt(receipt: ContractReceipt) { - const msg: string[] = [] - msg.push(receipt.status ? ` ✔ Transaction succeeded!` : ` ✖ Transaction failed!`) - logToConsoleAndFile(msg) -} - -export function logToConsoleAndFile(msg: string[]) { - const isoDate = new Date().toISOString() - const fileName = `tx-${isoDate.substring(0, 10)}.log` - - msg.map((line) => { - logInfo(line) - fs.appendFileSync(fileName, `[${isoDate}] ${line}\n`) - }) -} diff --git a/packages/sdk/src/deployments/lib/contracts/wrap.ts b/packages/sdk/src/deployments/lib/contracts/wrap.ts deleted file mode 100644 index 33c1c5845..000000000 --- a/packages/sdk/src/deployments/lib/contracts/wrap.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type { Provider } from '@ethersproject/providers' -import type { Contract, ContractFunction, ContractTransaction, Signer } from 'ethers' -import lodash from 'lodash' - -import type { ContractParam } from '../types/contract' -import { logContractCall, logContractReceipt } from './log' - -class WrappedContract { - // The meta-class properties - [key: string]: ContractFunction | unknown -} - -function isContractTransaction(call: ContractTransaction | unknown): call is ContractTransaction { - return typeof call === 'object' && (call as ContractTransaction).hash !== undefined -} - -/** - * Modifies a contract connect function to return a contract wrapped with {@link wrapCalls} - * - * @param contract Contract to wrap - * @param contractName Name of the contract - * @returns the contract connect function - */ -export function getWrappedConnect( - contract: Contract, - contractName: string, -): (signerOrProvider: string | Provider | Signer) => Contract { - const call = contract.connect.bind(contract) - const override = (signerOrProvider: string | Provider | Signer): Contract => { - const connectedContract = call(signerOrProvider) - connectedContract.connect = getWrappedConnect(connectedContract, contractName) - return wrapCalls(connectedContract, contractName) - } - return override -} - -/** - * Wraps contract calls with a modified call function that logs the tx details - * - * @remarks - * The override function will: - * 1. Make the contract call - * 2. Wait for tx confirmation using `provider.waitForTransaction()` - * 3. Log the tx details and the receipt details, both to the console and to a file - * - * @param contract Contract to be wrapped - * @param contractName Name of the contract - * @returns the wrapped contract - */ -export function wrapCalls(contract: Contract, contractName: string): Contract { - const wrappedContract = lodash.cloneDeep(contract) as WrappedContract - - for (const fn of Object.keys(contract.functions)) { - const call = contract.functions[fn] - const override = async (...args: Array): Promise => { - const response = await call(...args) - - // If it's a read only call, return the response - if (!isContractTransaction(response)) { - return Array.isArray(response) && response.length === 1 ? response[0] : response - } - - // Otherwise it's a tx, log the details - logContractCall(response, contractName, fn, args) - - // And wait for confirmation - const receipt = await contract.provider.waitForTransaction(response.hash) - logContractReceipt(receipt) - - // Finally return the tx response - return response - } - - wrappedContract[fn] = override - ;(wrappedContract.functions as Record)[fn] = override - } - - return wrappedContract as Contract -} diff --git a/packages/sdk/src/deployments/lib/deploy/artifacts.ts b/packages/sdk/src/deployments/lib/deploy/artifacts.ts deleted file mode 100644 index abe90a52e..000000000 --- a/packages/sdk/src/deployments/lib/deploy/artifacts.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { artifactsDir } from '@graphprotocol/contracts' -import * as fs from 'fs' -import { Artifacts } from 'hardhat/internal/artifacts' -import type { Artifact } from 'hardhat/types' -import * as path from 'path' - -// Cache for contract path mappings to avoid repeated directory walking -const contractPathCache = new Map>() - -/** - * Load a contract's artifact from the build output folder - * This function works like an API - it finds artifacts using module resolution, - * not relative to the calling code's location. - * @param name Name of the contract - * @param buildDir Path to the build output folder(s). Optional override for module resolution. - * @returns The artifact corresponding to the contract name - */ -export const loadArtifact = (name: string, buildDir?: string[] | string): Artifact => { - let artifacts: Artifacts | undefined - let artifact: Artifact | undefined - - // Use imported artifacts directory if no buildDir provided or empty - if (!buildDir || (Array.isArray(buildDir) && buildDir.length === 0)) { - buildDir = [artifactsDir] - } - - if (typeof buildDir === 'string') { - buildDir = [buildDir] - } - - for (const dir of buildDir) { - try { - artifacts = new Artifacts(dir) - - // When using instrumented artifacts, try fully qualified name first to avoid conflicts - if (buildDir.length > 0 && buildDir[0] !== artifactsDir && name.indexOf(':') === -1) { - const localQualifiedName = getCachedContractPath(name, dir) - if (localQualifiedName) { - try { - artifact = artifacts.readArtifactSync(localQualifiedName) - break - } catch { - // Fall back to original name if fully qualified doesn't work - } - } - } - - artifact = artifacts.readArtifactSync(name) - break - } catch (error) { - const message = error instanceof Error ? error.message : error - console.error(`Could not load artifact ${name} from ${dir} - ${message}`) - } - } - - if (artifact === undefined) { - throw new Error(`Could not load artifact ${name}`) - } - - return artifact -} - -/** - * Get the fully qualified contract path using a cached lookup. - * Builds and caches the contract path mapping once per artifacts directory for performance. - * @param contractName Name of the contract to find - * @param artifactsDir Path to the artifacts directory - * @returns Fully qualified contract path or null if not found - */ -function getCachedContractPath(contractName: string, artifactsDir: string): string | null { - // Check if we have a cache for this artifacts directory - let dirCache = contractPathCache.get(artifactsDir) - - if (!dirCache) { - // Build cache for this directory - dirCache = buildContractPathCache(artifactsDir) - contractPathCache.set(artifactsDir, dirCache) - } - - return dirCache.get(contractName) || null -} - -/** - * Build a complete cache of all contract paths in an artifacts directory. - * Walks the directory tree once and maps contract names to their fully qualified paths. - * @param artifactsDir Path to the artifacts directory - * @returns Map of contract names to fully qualified paths - */ -function buildContractPathCache(artifactsDir: string): Map { - const cache = new Map() - - try { - const contractsDir = path.join(artifactsDir, 'contracts') - if (!fs.existsSync(contractsDir)) { - return cache - } - - // Walk the entire directory tree once and cache all contracts - walkDirectoryAndCache(contractsDir, contractsDir, cache) - } catch { - // Return empty cache on error - } - - return cache -} - -// Recursively walk directory and cache all contract paths -function walkDirectoryAndCache(dir: string, contractsDir: string, cache: Map): void { - try { - const entries = fs.readdirSync(dir, { withFileTypes: true }) - - for (const entry of entries) { - const fullPath = path.join(dir, entry.name) - - if (entry.isDirectory()) { - // Check if this is a .sol directory that might contain contracts - if (entry.name.endsWith('.sol')) { - // Look for all .json files in this directory (excluding .dbg.json) - try { - const contractFiles = fs.readdirSync(fullPath, { withFileTypes: true }) - for (const contractFile of contractFiles) { - if ( - contractFile.isFile() && - contractFile.name.endsWith('.json') && - !contractFile.name.endsWith('.dbg.json') - ) { - const contractName = contractFile.name.replace('.json', '') - const relativePath = path.relative(contractsDir, fullPath) - const qualifiedName = `contracts/${relativePath.replace(/\.sol$/, '')}.sol:${contractName}` - cache.set(contractName, qualifiedName) - } - } - } catch { - // Skip directories we can't read - } - } - - // Recursively search subdirectories - walkDirectoryAndCache(fullPath, contractsDir, cache) - } - } - } catch { - // Skip directories we can't read - } -} diff --git a/packages/sdk/src/deployments/lib/deploy/contract.ts b/packages/sdk/src/deployments/lib/deploy/contract.ts deleted file mode 100644 index b89b09365..000000000 --- a/packages/sdk/src/deployments/lib/deploy/contract.ts +++ /dev/null @@ -1,125 +0,0 @@ -import type { Signer } from 'ethers' - -import { hashHexString } from '../../../utils/hash' -import { logInfo } from '../../logger' -import { AddressBook } from '../address-book' -import { logContractDeploy, logContractDeployReceipt } from '../contracts/log' -import type { DeployAddressBookFunction, DeployData, DeployFunction, DeployResult } from '../types/deploy' -import { loadArtifact } from './artifacts' -import { getContractFactory } from './factory' - -/** - * Deploys a contract - * - * @remarks This function will autolink, that means it will automatically deploy external libraries - * and link them to the contract if needed - * - * @param sender Signer to deploy the contract with, must be already connected to a provider - * @param name Name of the contract to deploy - * @param args Contract constructor arguments - * @param autolink Wether or not to autolink. Defaults to true. - * @returns the deployed contract and deployment metadata associated to it - * - * @throws Error if the sender is not connected to a provider - */ -export const deployContract: DeployFunction = async ( - sender: Signer, - contractData: DeployData, -): Promise => { - const name = contractData.name - const args = contractData.args ?? [] - const opts = contractData.opts ?? {} - const artifactsPath = contractData.artifactsPath - - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - // Autolink - const libraries = {} as Record - if (opts?.autolink ?? true) { - const artifact = loadArtifact(name, artifactsPath) - if (artifact.linkReferences && Object.keys(artifact.linkReferences).length > 0) { - for (const fileReferences of Object.values(artifact.linkReferences)) { - for (const libName of Object.keys(fileReferences)) { - const deployResult = await deployContract(sender, { - name: libName, - args: [], - opts: { autolink: false }, - artifactsPath: artifactsPath, - }) - libraries[libName] = deployResult.contract.address - } - } - } - } - - // Deploy - const factory = getContractFactory(name, libraries, artifactsPath) - const contract = await factory.connect(sender).deploy(...args) - const txHash = contract.deployTransaction.hash - logContractDeploy(contract.deployTransaction, name, args) - const receipt = await sender.provider.waitForTransaction(txHash) - - // Receipt - const creationCodeHash = hashHexString(factory.bytecode) - const runtimeCodeHash = hashHexString(await sender.provider.getCode(contract.address)) - logContractDeployReceipt(receipt, creationCodeHash, runtimeCodeHash) - - return { contract, creationCodeHash, runtimeCodeHash, txHash, libraries } -} - -/** - * Deploys a contract and saves the deployment result to the address book - * - * @remarks Same as {@link deployContract} but this variant will also save the deployment result to the address book. - * - * @param sender Signer to deploy the contract with, must be already connected to a provider - * @param name Name of the contract to deploy - * @param args Contract constructor arguments - * @param addressBook Address book to save the deployment result to - * @returns the deployed contract and deployment metadata associated to it - * - * @throws Error if the sender is not connected to a provider - */ -export const deployContractAndSave: DeployAddressBookFunction = async ( - sender: Signer, - contractData: DeployData, - addressBook: AddressBook, -): Promise => { - const name = contractData.name - const args = contractData.args ?? [] - - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - // Deploy the contract - const deployResult = await deployContract(sender, { - name: name, - args: args, - artifactsPath: contractData.artifactsPath, - }) - - const constructorArgs = args.map((e) => { - if (Array.isArray(e)) { - return e.map((e) => e.toString()) - } else { - return e.toString() - } - }) - - // Save address entry - addressBook.setEntry(name, { - address: deployResult.contract.address, - constructorArgs: constructorArgs, - creationCodeHash: deployResult.creationCodeHash, - runtimeCodeHash: deployResult.runtimeCodeHash, - txHash: deployResult.txHash, - libraries: - deployResult.libraries && Object.keys(deployResult.libraries).length > 0 ? deployResult.libraries : undefined, - }) - logInfo('> Contract saved to address book') - - return deployResult -} diff --git a/packages/sdk/src/deployments/lib/deploy/deploy.ts b/packages/sdk/src/deployments/lib/deploy/deploy.ts deleted file mode 100644 index ddae70e63..000000000 --- a/packages/sdk/src/deployments/lib/deploy/deploy.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { Signer } from 'ethers' -import { providers } from 'ethers' - -import { assertObject } from '../../../utils/assertions' -import { hashHexString } from '../../../utils/hash' -import type { AddressBook } from '../address-book' -import type { DeployData, DeployResult } from '../types/deploy' -import { DeployType, isDeployType } from '../types/deploy' -import { loadArtifact } from './artifacts' -import { deployContract, deployContractAndSave } from './contract' - -/** - * Checks wether a contract is deployed or not - * - * @param name Name of the contract to check - * @param proxyName Name of the contract proxy if there is one - * @param address Address of the contract - * @param addressBook Address book to use - * @param provider Provider to use - * @param checkCreationCode Check the creation code of the contract. Defaults to `true` - * @returns `true` if the contract is deployed, `false` otherwise. - */ -export const isContractDeployed = async ( - name: string, - proxyName: string, - address: string | undefined, - addressBook: AddressBook, - provider: providers.Provider, - artifactsPath?: string | string[], - checkCreationCode = true, -): Promise => { - console.info(`Checking for valid ${name} contract...`) - if (!address || address === '') { - console.warn('This contract is not in our address book.') - return false - } - - const addressEntry = addressBook.getEntry(name) - - // If the contract is behind a proxy we check the Proxy artifact instead - const artifact = - addressEntry.proxy === true ? loadArtifact(proxyName, artifactsPath) : loadArtifact(name, artifactsPath) - - if (checkCreationCode) { - const savedCreationCodeHash = addressEntry.creationCodeHash - const creationCodeHash = hashHexString(artifact.bytecode) - if (!savedCreationCodeHash || savedCreationCodeHash !== creationCodeHash) { - console.warn(`creationCodeHash in our address book doesn't match ${name} artifacts`) - console.info(`${savedCreationCodeHash} !== ${creationCodeHash}`) - return false - } - } - - const savedRuntimeCodeHash = addressEntry.runtimeCodeHash - const runtimeCodeHash = hashHexString(await provider.getCode(address)) - if (runtimeCodeHash === hashHexString('0x00') || runtimeCodeHash === hashHexString('0x')) { - console.warn('No runtimeCode exists at the address in our address book') - return false - } - if (savedRuntimeCodeHash !== runtimeCodeHash) { - console.warn(`runtimeCodeHash for ${address} does not match what's in our address book`) - console.info(`${savedRuntimeCodeHash} !== ${runtimeCodeHash}`) - return false - } - return true -} - -export const deploy = async ( - type: DeployType | unknown, - sender: Signer, - contractData: DeployData, - addressBook?: AddressBook, - _proxyData?: DeployData, -): Promise => { - if (!isDeployType(type)) { - throw new Error('Please provide the correct option for deploy type') - } - - switch (type) { - case DeployType.Deploy: - console.info(`Deploying contract ${contractData.name}...`) - return await deployContract(sender, contractData) - case DeployType.DeployAndSave: - console.info(`Deploying contract ${contractData.name} and saving to address book...`) - assertObject(addressBook) - return await deployContractAndSave(sender, contractData, addressBook) - case DeployType.DeployWithProxy: - case DeployType.DeployWithProxyAndSave: - case DeployType.DeployImplementationAndSave: - throw new Error(`Base SDK does not implement ${type} deployments.`) - default: - throw new Error('Please provide the correct option for deploy type') - } -} diff --git a/packages/sdk/src/deployments/lib/deploy/factory.ts b/packages/sdk/src/deployments/lib/deploy/factory.ts deleted file mode 100644 index f465a8085..000000000 --- a/packages/sdk/src/deployments/lib/deploy/factory.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { ContractFactory } from 'ethers' -import type { Artifact } from 'hardhat/types' - -import type { Libraries } from '../types/artifacts' -import { loadArtifact } from './artifacts' - -/** - * Gets a contract factory for a given contract name - * - * @param name Name of the contract - * @param libraries Libraries to link - * @param artifactsPath Path to artifacts directory - * @returns the contract factory - */ -export const getContractFactory = ( - name: string, - libraries?: Libraries, - artifactsPath?: string | string[], -): ContractFactory => { - const artifact = loadArtifact(name, artifactsPath) - // Fixup libraries - if (libraries && Object.keys(libraries).length > 0) { - artifact.bytecode = linkLibraries(artifact, libraries) - } - return new ContractFactory(artifact.abi, artifact.bytecode) -} - -const linkLibraries = (artifact: Artifact, libraries?: Libraries): string => { - let bytecode = artifact.bytecode - - if (libraries) { - if (artifact.linkReferences) { - for (const fileReferences of Object.values(artifact.linkReferences)) { - for (const [libName, fixups] of Object.entries(fileReferences)) { - const addr = libraries[libName] - if (addr === undefined) { - continue - } - - for (const fixup of fixups) { - bytecode = - bytecode.substr(0, 2 + fixup.start * 2) + - addr.substr(2) + - bytecode.substr(2 + (fixup.start + fixup.length) * 2) - } - } - } - } - } - return bytecode -} diff --git a/packages/sdk/src/deployments/lib/types/address-book.ts b/packages/sdk/src/deployments/lib/types/address-book.ts deleted file mode 100644 index ea0861bfb..000000000 --- a/packages/sdk/src/deployments/lib/types/address-book.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { DeployResult } from './deploy' - -// TODO: doc this - -// JSON format: -// { -// "": { -// "": {} -// ... -// } -// } -export type AddressBookJson = Record< - ChainId, - Record -> - -export type ConstructorArg = string | Array - -export type AddressBookEntry = { - address: string - constructorArgs?: Array - initArgs?: Array - proxy?: boolean - implementation?: AddressBookEntry -} & Partial> diff --git a/packages/sdk/src/deployments/lib/types/artifacts.ts b/packages/sdk/src/deployments/lib/types/artifacts.ts deleted file mode 100644 index 384e861ab..000000000 --- a/packages/sdk/src/deployments/lib/types/artifacts.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface Libraries { - [libraryName: string]: string -} diff --git a/packages/sdk/src/deployments/lib/types/config.ts b/packages/sdk/src/deployments/lib/types/config.ts deleted file mode 100644 index f62f6e2ee..000000000 --- a/packages/sdk/src/deployments/lib/types/config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { ContractParam } from './contract' - -export type ContractConfigParam = { name: string; value: string } -export type ContractConfigCall = { fn: string; params: Array } -export interface ContractConfig { - params: Array - calls: Array - proxy: boolean -} - -export interface ABRefReplace { - ref: string - replace: string -} diff --git a/packages/sdk/src/deployments/lib/types/contract.ts b/packages/sdk/src/deployments/lib/types/contract.ts deleted file mode 100644 index 700689445..000000000 --- a/packages/sdk/src/deployments/lib/types/contract.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { BigNumber, Contract } from 'ethers' - -export type ContractList = Partial> - -export type ContractParam = string | BigNumber | number | Array diff --git a/packages/sdk/src/deployments/lib/types/deploy.ts b/packages/sdk/src/deployments/lib/types/deploy.ts deleted file mode 100644 index 4cbbb1124..000000000 --- a/packages/sdk/src/deployments/lib/types/deploy.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { AddressBook } from '../address-book' -import { isSomeEnum } from '../../../utils/type-guard' - -import type { Contract, Signer } from 'ethers' -import type { ContractParam } from './contract' -import type { Libraries } from './artifacts' - -export enum DeployType { - Deploy = 'deploy', - DeployAndSave = 'deploy-save', - DeployWithProxy = 'deploy-with-proxy', - DeployWithProxyAndSave = 'deploy-with-proxy-save', - DeployImplementationAndSave = 'deploy-implementation-save', -} - -export type DeployData = { - name: string - args?: Array - opts?: Record - artifactsPath?: string | string[] -} - -export type DeployResult = { - contract: Contract - creationCodeHash: string - runtimeCodeHash: string - txHash: string - libraries?: Libraries -} - -// Utility type to add parameters to a function interface -// https://stackoverflow.com/a/69668215 -type AddParameters any, TParameters extends [...args: any]> = ( - ...args: [...Parameters, ...TParameters] -) => ReturnType - -export type DeployFunction = (sender: Signer, contract: DeployData) => Promise - -export type DeployAddressBookFunction = ( - sender: Signer, - contract: DeployData, - addressBook: AddressBook, -) => Promise -export type DeployAddressBookWithProxyFunction = AddParameters - -// ** Type guards ** -export function isDeployType(value: unknown): value is DeployType { - return isSomeEnum(DeployType)(value) -} diff --git a/packages/sdk/src/deployments/logger.ts b/packages/sdk/src/deployments/logger.ts deleted file mode 100644 index b5ff377ad..000000000 --- a/packages/sdk/src/deployments/logger.ts +++ /dev/null @@ -1,11 +0,0 @@ -import debug from 'debug' - -const LOG_BASE = 'graph:deployments' -export const logDebug = debug(`${LOG_BASE}:debug`) -export const logInfo = debug(`${LOG_BASE}:info`) -export const logWarn = debug(`${LOG_BASE}:warn`) -export const logError = debug(`${LOG_BASE}:error`) - -// if (process.env.DEBUG === undefined) { -// debug.enable(`${LOG_BASE}:info`) -// } diff --git a/packages/sdk/src/deployments/network/actions/bridge-config.ts b/packages/sdk/src/deployments/network/actions/bridge-config.ts deleted file mode 100644 index d28e89f03..000000000 --- a/packages/sdk/src/deployments/network/actions/bridge-config.ts +++ /dev/null @@ -1,119 +0,0 @@ -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' - -import { SimpleAddressBook } from '../../lib/address-book' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import type { GraphNetworkAction } from './types' - -export const configureL1Bridge: GraphNetworkAction<{ - l2GRTAddress: string - l2GRTGatewayAddress: string - l2GNSAddress: string - l2StakingAddress: string - arbAddressBookPath: string - chainId: number -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l2GRTAddress: string - l2GRTGatewayAddress: string - l2GNSAddress: string - l2StakingAddress: string - arbAddressBookPath: string - chainId: number - }, -): Promise => { - const { l2GRTAddress, l2GRTGatewayAddress, l2GNSAddress, l2StakingAddress, arbAddressBookPath, chainId } = args - console.info(`>>> Setting L1 Bridge Configuration <<<\n`) - - const arbAddressBook = new SimpleAddressBook(arbAddressBookPath, chainId) - - const gateway = contracts.L1GraphTokenGateway! - - // Gateway - console.info('L2 GRT address: ' + l2GRTAddress) - await gateway.connect(signer).setL2TokenAddress(l2GRTAddress) - - console.info('L2 Gateway address: ' + l2GRTGatewayAddress) - await gateway.connect(signer).setL2CounterpartAddress(l2GRTGatewayAddress) - - // Escrow - const bridgeEscrow = contracts.BridgeEscrow! - console.info('Escrow address: ' + bridgeEscrow.address) - await gateway.connect(signer).setEscrowAddress(bridgeEscrow.address) - await bridgeEscrow.connect(signer).approveAll(gateway.address) - - const l1Inbox = arbAddressBook.getEntry('IInbox') - const l1Router = arbAddressBook.getEntry('L1GatewayRouter') - console.info('L1 Inbox address: ' + l1Inbox.address + ' and L1 Router address: ' + l1Router.address) - await gateway.connect(signer).setArbitrumAddresses(l1Inbox.address, l1Router.address) - - // GNS - const gns = contracts.L1GNS! - console.info('GNS address: ' + gns.address) - console.info('L2 GNS address: ' + l2GNSAddress) - await gns.connect(signer).setCounterpartGNSAddress(l2GNSAddress) - await gateway.connect(signer).addToCallhookAllowlist(gns.address) - - // Staking - const staking = contracts.L1Staking! - console.info('Staking address: ' + staking.address) - console.info('L2 Staking address: ' + l2StakingAddress) - await staking.connect(signer).setCounterpartStakingAddress(l2StakingAddress) - await gateway.connect(signer).addToCallhookAllowlist(staking.address) -} - -export const configureL2Bridge: GraphNetworkAction<{ - l1GRTAddress: string - l1GRTGatewayAddress: string - l1GNSAddress: string - l1StakingAddress: string - arbAddressBookPath: string - chainId: number -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l1GRTAddress: string - l1GRTGatewayAddress: string - l1GNSAddress: string - l1StakingAddress: string - arbAddressBookPath: string - chainId: number - }, -): Promise => { - const { l1GRTAddress, l1GRTGatewayAddress, l1GNSAddress, l1StakingAddress, arbAddressBookPath, chainId } = args - console.info(`>>> Setting L2 Bridge Configuration <<<\n`) - - const arbAddressBook = new SimpleAddressBook(arbAddressBookPath, chainId) - - const gateway = contracts.L2GraphTokenGateway! - const token = contracts.L2GraphToken! - - // Gateway - console.info('L1 GRT address: ' + l1GRTAddress) - await gateway.connect(signer).setL1TokenAddress(l1GRTAddress) - await token.connect(signer).setL1Address(l1GRTAddress) - - console.info('L1 Gateway address: ' + l1GRTGatewayAddress) - await gateway.connect(signer).setL1CounterpartAddress(l1GRTGatewayAddress) - - const l2Router = arbAddressBook.getEntry('L2GatewayRouter') - console.info('L2 Router address: ' + l2Router.address) - await gateway.connect(signer).setL2Router(l2Router.address) - - console.info('L2 Gateway address: ' + gateway.address) - await token.connect(signer).setGateway(gateway.address) - - // GNS - const gns = contracts.L2GNS! - console.info('GNS address: ' + gns.address) - console.info('L1 GNS address: ' + l1GNSAddress) - await gns.connect(signer).setCounterpartGNSAddress(l1GNSAddress) - - // Staking - const staking = contracts.L2Staking! - console.info('Staking address: ' + staking.address) - console.info('L1 Staking address: ' + l1StakingAddress) - await staking.connect(signer).setCounterpartStakingAddress(l1StakingAddress) -} diff --git a/packages/sdk/src/deployments/network/actions/bridge-to-l1.ts b/packages/sdk/src/deployments/network/actions/bridge-to-l1.ts deleted file mode 100644 index cc6251e3c..000000000 --- a/packages/sdk/src/deployments/network/actions/bridge-to-l1.ts +++ /dev/null @@ -1,196 +0,0 @@ -import { L2ToL1MessageStatus, L2ToL1MessageWriter, L2TransactionReceipt } from '@arbitrum/sdk' -import type { L2GraphToken, L2GraphTokenGateway } from '@graphprotocol/contracts' -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { BigNumber } from 'ethers' -import { Contract, providers } from 'ethers' - -import { getL2ToL1MessageReader, getL2ToL1MessageWriter } from '../../../utils/arbitrum' -import { wait as waitFn } from '../../../utils/time' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import type { GraphNetworkAction } from './types' - -const LEGACY_L2_GRT_ADDRESS = '0x23A941036Ae778Ac51Ab04CEa08Ed6e2FE103614' -const LEGACY_L2_GATEWAY_ADDRESS = '0x09e9222e96e7b4ae2a407b98d48e330053351eee' - -const FOURTEEN_DAYS_IN_SECONDS = 24 * 3600 * 14 -const BLOCK_SEARCH_THRESHOLD = 6 * 3600 - -export const startSendToL1: GraphNetworkAction<{ - l1Provider: providers.Provider - amount: BigNumber - recipient: string - legacyToken: boolean -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l1Provider: providers.Provider - amount: BigNumber - recipient: string - legacyToken?: boolean - }, -): Promise => { - const { l1Provider, amount, recipient, legacyToken } = args - const l2Provider = contracts.GraphToken.provider - - console.info(`>>> Sending tokens to L1 <<<\n`) - console.info(`Will send ${amount} GRT to ${recipient}`) - - // GRT - const GraphToken = legacyToken - ? (new Contract(LEGACY_L2_GRT_ADDRESS, contracts.GraphToken.interface, signer) as L2GraphToken) - : contracts.GraphToken - console.info(`Using L2 GRT ${GraphToken.address}`) - - // Gateway - const GraphTokenGateway = ( - legacyToken - ? new Contract(LEGACY_L2_GATEWAY_ADDRESS, contracts.GraphTokenGateway.interface, signer) - : contracts.GraphTokenGateway - ) as L2GraphTokenGateway - console.info(`Using L2 gateway ${GraphTokenGateway.address}`) - const l1GraphTokenAddress = await GraphTokenGateway.l1Counterpart() - - // Check sender balance - const senderBalance = await GraphToken.balanceOf(signer.address) - if (senderBalance.lt(amount)) { - throw new Error('Sender balance is insufficient for the transfer') - } - - if (!legacyToken) { - console.info('Approving token transfer') - await GraphToken.connect(signer).approve(GraphTokenGateway.address, amount) - } - console.info('Sending outbound transfer transaction') - const tx = await GraphTokenGateway['outboundTransfer(address,address,uint256,bytes)']( - l1GraphTokenAddress, - recipient, - amount, - '0x', - ) - const receipt = await tx.wait() - - const l2ToL1Message = await getL2ToL1MessageReader(receipt, l1Provider, l2Provider) - const l2Receipt = new L2TransactionReceipt(receipt) - - const ethBlockNum = await l2ToL1Message.getFirstExecutableBlock(l2Provider) - if (ethBlockNum === null) { - console.info(`L2 to L1 message can or already has been executed. If not finalized call`) - } else { - console.info(`The transaction generated an L2 to L1 message in outbox with eth block number:`) - console.info(ethBlockNum.toString()) - console.info(`After the dispute period is finalized (in ~1 week), you can finalize this by calling`) - } - console.info(`finish-send-to-l1 with the following txhash:`) - console.info(l2Receipt.transactionHash) -} - -export const finishSendToL1: GraphNetworkAction<{ - l1Provider: providers.Provider - legacyToken: boolean - txHash?: string - wait?: boolean - retryDelaySeconds?: number -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l1Provider: providers.Provider - legacyToken: boolean - txHash?: string - wait?: boolean - retryDelaySeconds?: number - }, -): Promise => { - const { l1Provider, legacyToken, wait, retryDelaySeconds } = args - let txHash = args.txHash - const l2Provider = contracts.GraphToken.provider - - console.info(`>>> Finishing transaction sending tokens to L1 <<<\n`) - - // Gateway - const GraphTokenGateway = ( - legacyToken - ? new Contract(LEGACY_L2_GATEWAY_ADDRESS, contracts.GraphTokenGateway.interface, signer) - : contracts.GraphTokenGateway - ) as L2GraphTokenGateway - console.info(`Using L2 gateway ${GraphTokenGateway.address}`) - - if (txHash === undefined) { - console.info(`Looking for withdrawals initiated by ${signer.address} in roughly the last 14 days`) - const fromBlock = await searchForArbBlockByTimestamp( - l2Provider, - Math.round(Date.now() / 1000) - FOURTEEN_DAYS_IN_SECONDS, - ) - const filt = GraphTokenGateway.filters.WithdrawalInitiated(null, signer.address) - const allEvents = await GraphTokenGateway.queryFilter(filt, BigNumber.from(fromBlock).toHexString()) - if (allEvents.length == 0) { - throw new Error('No withdrawals found') - } - txHash = allEvents[allEvents.length - 1].transactionHash - } - - console.info(`Getting receipt from transaction ${txHash}`) - const l2ToL1Message = await getL2ToL1MessageWriter(txHash, l1Provider, l2Provider, signer) - - if (wait) { - const retryDelayMs = (retryDelaySeconds ?? 60) * 1000 - console.info('Waiting for outbox entry to be created, this can take a full week...') - await waitUntilOutboxEntryCreatedWithCb(l2ToL1Message, l2Provider, retryDelayMs, () => { - console.info('Still waiting...') - }) - } else { - const status = await l2ToL1Message.status(l2Provider) - if (status == L2ToL1MessageStatus.EXECUTED) { - throw new Error('Message already executed!') - } else if (status != L2ToL1MessageStatus.CONFIRMED) { - throw new Error( - `Transaction is not confirmed, status is ${status} when it should be ${L2ToL1MessageStatus.CONFIRMED}. Has the dispute period passed?`, - ) - } - } - - console.info('Executing outbox transaction') - const tx = await l2ToL1Message.execute(l2Provider) - const outboxExecuteReceipt = await tx.wait() - console.info('Transaction succeeded! tx hash:') - console.info(outboxExecuteReceipt.transactionHash) -} - -const searchForArbBlockByTimestamp = async (l2Provider: providers.Provider, timestamp: number): Promise => { - let step = 131072 - let block = await l2Provider.getBlock('latest') - while (block.timestamp > timestamp) { - while (block.number - step < 0) { - step = Math.round(step / 2) - } - block = await l2Provider.getBlock(block.number - step) - } - while (step > 1 && Math.abs(block.timestamp - timestamp) > BLOCK_SEARCH_THRESHOLD) { - step = Math.round(step / 2) - if (block.timestamp - timestamp > 0) { - block = await l2Provider.getBlock(block.number - step) - } else { - block = await l2Provider.getBlock(block.number + step) - } - } - return block.number -} - -const waitUntilOutboxEntryCreatedWithCb = async ( - msg: L2ToL1MessageWriter, - provider: providers.Provider, - retryDelay: number, - callback: () => void, -) => { - let done = false - while (!done) { - const status = await msg.status(provider) - if (status == L2ToL1MessageStatus.CONFIRMED || status == L2ToL1MessageStatus.EXECUTED) { - done = true - } else { - callback() - await waitFn(retryDelay) - } - } -} diff --git a/packages/sdk/src/deployments/network/actions/bridge-to-l2.ts b/packages/sdk/src/deployments/network/actions/bridge-to-l2.ts deleted file mode 100644 index ed78baed4..000000000 --- a/packages/sdk/src/deployments/network/actions/bridge-to-l2.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { L1ToL2MessageStatus, L1ToL2MessageWriter, L1TransactionReceipt } from '@arbitrum/sdk' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { BigNumber, providers, utils } from 'ethers' - -import { estimateRetryableTxGas, getL1ToL2MessageWriter } from '../../../utils/arbitrum' -import { GraphNetworkContracts } from '../deployment/contracts/load' -import { setGRTAllowance } from './graph-token' -import { GraphNetworkAction } from './types' - -export const sendToL2: GraphNetworkAction<{ - l2Provider: providers.Provider - amount: BigNumber - recipient: string - calldata?: string - maxGas: BigNumber - gasPriceBid: BigNumber - maxSubmissionCost: BigNumber -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - l2Provider: providers.Provider - amount: BigNumber - recipient: string - calldata?: string - maxGas: BigNumber - gasPriceBid: BigNumber - maxSubmissionCost: BigNumber - }, -): Promise => { - const { l2Provider, amount, recipient } = args - const l1Provider = contracts.GraphToken.provider - const calldata = args.calldata ?? '0x' - - console.info(`>>> Sending tokens to L2 <<<\n`) - - const l1GatewayAddress = contracts.GraphTokenGateway.address - const l2GatewayAddress = await contracts.L1GraphTokenGateway!.l2Counterpart() - - console.info(`Will send ${amount} GRT to ${recipient}`) - console.info(`Using L1 gateway ${l1GatewayAddress} and L2 gateway ${l2GatewayAddress}`) - await setGRTAllowance(contracts, signer, { spender: l1GatewayAddress, allowance: amount }) - - // estimate L2 ticket - // See https://github.com/OffchainLabs/arbitrum/blob/master/packages/arb-ts/src/lib/bridge.ts - const depositCalldata = await contracts.L1GraphTokenGateway!.getOutboundCalldata( - contracts.GraphToken.address, - signer.address, - recipient, - amount, - calldata, - ) - const { maxGas, gasPriceBid, maxSubmissionCost } = await estimateRetryableTxGas( - l1Provider, - l2Provider, - l1GatewayAddress, - l2GatewayAddress, - depositCalldata, - { - maxGas: args.maxGas, - gasPriceBid: args.gasPriceBid, - maxSubmissionCost: args.maxSubmissionCost, - }, - ) - const ethValue = maxSubmissionCost.add(gasPriceBid.mul(maxGas)) - console.info( - `Using maxGas:${maxGas}, gasPriceBid:${gasPriceBid}, maxSubmissionCost:${maxSubmissionCost} = tx value: ${ethValue}`, - ) - - // build transaction - console.info('Sending outbound transfer transaction') - const txData = utils.defaultAbiCoder.encode(['uint256', 'bytes'], [maxSubmissionCost, calldata]) - const tx = await contracts - .L1GraphTokenGateway!.connect(signer) - .outboundTransfer(contracts.GraphToken.address, recipient, amount, maxGas, gasPriceBid, txData, { - value: ethValue, - }) - const receipt = await tx.wait() - - // get l2 ticket status - if (receipt.status == 1) { - console.info('Waiting for message to propagate to L2...') - try { - const l1ToL2Message = await getL1ToL2MessageWriter(receipt, l1Provider, l2Provider) - await checkAndRedeemMessage(l1ToL2Message) - } catch (e) { - console.error('Auto redeem failed') - console.error(e) - console.error('You can re-attempt using redeem-send-to-l2 with the following txHash:') - console.error(receipt.transactionHash) - } - } -} - -export const redeemSendToL2: GraphNetworkAction<{ - txHash: string - l2Provider: providers.Provider -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { - txHash: string - l2Provider: providers.Provider - }, -): Promise => { - console.info(`>>> Redeeming pending tokens on L2 <<<\n`) - const l1Provider = contracts.GraphToken.provider - const l2Provider = args.l2Provider - - const receipt = await l1Provider.getTransactionReceipt(args.txHash) - const l1Receipt = new L1TransactionReceipt(receipt) - const l1ToL2Messages = await l1Receipt.getL1ToL2Messages(signer.connect(l2Provider)) - const l1ToL2Message = l1ToL2Messages[0] - - console.info('Checking message status in L2...') - await checkAndRedeemMessage(l1ToL2Message) -} - -const logAutoRedeemReason = (autoRedeemRec: unknown) => { - if (autoRedeemRec == null) { - console.info(`Auto redeem was not attempted.`) - return - } - console.info(`Auto redeem reverted.`) -} - -const checkAndRedeemMessage = async (l1ToL2Message: L1ToL2MessageWriter) => { - console.info(`Waiting for status of ${l1ToL2Message.retryableCreationId}`) - const res = await l1ToL2Message.waitForStatus() - console.info('Getting auto redeem attempt') - const autoRedeemRec = await l1ToL2Message.getAutoRedeemAttempt() - const l2TxReceipt = res.status === L1ToL2MessageStatus.REDEEMED ? res.l2TxReceipt : autoRedeemRec - let l2TxHash = l2TxReceipt ? l2TxReceipt.transactionHash : 'null' - if (res.status === L1ToL2MessageStatus.FUNDS_DEPOSITED_ON_L2) { - /** Message wasn't auto-redeemed! */ - console.warn('Funds were deposited on L2 but the retryable ticket was not redeemed') - logAutoRedeemReason(autoRedeemRec) - console.info('Attempting to redeem...') - await l1ToL2Message.redeem(process.env.CI ? { gasLimit: 2_000_000 } : {}) - const redeemAttempt = await l1ToL2Message.getSuccessfulRedeem() - if (redeemAttempt.status == L1ToL2MessageStatus.REDEEMED) { - l2TxHash = redeemAttempt.l2TxReceipt ? redeemAttempt.l2TxReceipt.transactionHash : 'null' - } else { - throw new Error(`Unexpected L1ToL2MessageStatus after redeem attempt: ${res.status}`) - } - } else if (res.status != L1ToL2MessageStatus.REDEEMED) { - throw new Error(`Unexpected L1ToL2MessageStatus ${res.status}`) - } - console.info(`Transfer successful: ${l2TxHash}`) -} diff --git a/packages/sdk/src/deployments/network/actions/disputes.ts b/packages/sdk/src/deployments/network/actions/disputes.ts deleted file mode 100644 index d44c18ae6..000000000 --- a/packages/sdk/src/deployments/network/actions/disputes.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { - Attestation, - createAttestation, - encodeAttestation as encodeAttestationLib, - Receipt, -} from '@graphprotocol/common-ts' - -import { GraphChainId } from '../../../chain' - -export async function buildAttestation( - receipt: Receipt, - signer: string, - disputeManagerAddress: string, - chainId: GraphChainId, -) { - return await createAttestation(signer, chainId, disputeManagerAddress, receipt, '0') -} - -export function encodeAttestation(attestation: Attestation): string { - return encodeAttestationLib(attestation) -} diff --git a/packages/sdk/src/deployments/network/actions/gns.ts b/packages/sdk/src/deployments/network/actions/gns.ts deleted file mode 100644 index a690fe5fa..000000000 --- a/packages/sdk/src/deployments/network/actions/gns.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { BigNumber, ethers } from 'ethers' - -import { randomHexBytes } from '../../../utils/bytes' -import { buildSubgraphId } from '../../../utils/subgraph' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import { setGRTAllowances } from './graph-token' -import type { GraphNetworkAction } from './types' - -export const mintSignal: GraphNetworkAction<{ subgraphId: string; amount: BigNumber }> = async ( - contracts: GraphNetworkContracts, - curator: SignerWithAddress, - args: { - subgraphId: string - amount: BigNumber - }, -): Promise => { - const { subgraphId, amount } = args - - // Approve - await setGRTAllowances(contracts, curator, [{ spender: contracts.GNS.address, allowance: amount }]) - - // Add signal - console.log( - `\nCurator ${curator.address} add ${ethers.utils.formatEther(amount)} in signal to subgraphId ${subgraphId}..`, - ) - const tx = await contracts.GNS.connect(curator).mintSignal(subgraphId, amount, 0, { - gasLimit: 4_000_000, - }) - await tx.wait() -} - -export const publishNewSubgraph: GraphNetworkAction<{ deploymentId: string; chainId: number }, string> = async ( - contracts: GraphNetworkContracts, - publisher: SignerWithAddress, - args: { deploymentId: string; chainId: number }, -): Promise => { - const { deploymentId, chainId } = args - - console.log(`\nPublishing new subgraph with deploymentId ${deploymentId}...`) - const subgraphId = await buildSubgraphId( - publisher.address, - await contracts.GNS.nextAccountSeqID(publisher.address), - chainId, - ) - const tx = await contracts.GNS.connect(publisher).publishNewSubgraph( - deploymentId, - randomHexBytes(), - randomHexBytes(), - { gasLimit: 4_000_000 }, - ) - await tx.wait() - - return subgraphId -} - -export const recreatePreviousSubgraphId: GraphNetworkAction< - { - owner: string - previousIndex: number - chainId: number - }, - string -> = async ( - contracts: GraphNetworkContracts, - _signer: SignerWithAddress, - args: { owner: string; previousIndex: number; chainId: number }, -): Promise => { - const { owner, previousIndex, chainId } = args - const seqID = (await contracts.GNS.nextAccountSeqID(owner)).sub(previousIndex) - return buildSubgraphId(owner, seqID, chainId) -} diff --git a/packages/sdk/src/deployments/network/actions/governed.ts b/packages/sdk/src/deployments/network/actions/governed.ts deleted file mode 100644 index e9ce59c92..000000000 --- a/packages/sdk/src/deployments/network/actions/governed.ts +++ /dev/null @@ -1,64 +0,0 @@ -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { Contract, ContractTransaction, ethers } from 'ethers' - -import type { GraphNetworkContractName } from '../deployment/contracts/list' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import type { GraphNetworkAction } from './types' - -type GovernedContract = Contract & { - pendingGovernor?: (_overrides: ethers.CallOverrides) => Promise - acceptOwnership?: (_overrides: ethers.CallOverrides) => Promise -} - -export const acceptOwnership: GraphNetworkAction< - { - contractName: GraphNetworkContractName - }, - ContractTransaction | undefined -> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { contractName: GraphNetworkContractName }, -): Promise => { - const { contractName } = args - const contract = contracts[contractName] - - if (!contract) { - throw new Error(`Contract ${contractName} not found`) - } - - // Safely call pendingGovernor with proper error handling for coverage environment - const contractWithSigner = (contract as GovernedContract).connect(signer) - - let pendingGovernor: string - try { - pendingGovernor = await contractWithSigner.pendingGovernor() - } catch (error) { - const errorMessage = error instanceof Error ? error.message : String(error) - console.log(`Contract ${contractName} at ${contract.address} failed to call pendingGovernor(): ${errorMessage}`) - console.log(`Skipping ownership acceptance for this contract`) - return - } - - if (pendingGovernor === ethers.constants.AddressZero) { - console.log(`No pending governor for ${contract.address}`) - return - } - - if (pendingGovernor === signer.address) { - console.log(`Accepting ownership of ${contract.address}`) - - try { - const tx = await contractWithSigner.acceptOwnership() - await tx.wait() - return tx - } catch (error) { - const errorMessage = error instanceof Error ? error.message : String(error) - console.log(`Contract ${contractName} at ${contract.address} failed to call acceptOwnership(): ${errorMessage}`) - console.log(`Skipping ownership acceptance for this contract`) - return - } - } else { - console.log(`Signer ${signer.address} is not the pending governor of ${contract.address}, it is ${pendingGovernor}`) - } -} diff --git a/packages/sdk/src/deployments/network/actions/graph-token.ts b/packages/sdk/src/deployments/network/actions/graph-token.ts deleted file mode 100644 index 3ad7de4b0..000000000 --- a/packages/sdk/src/deployments/network/actions/graph-token.ts +++ /dev/null @@ -1,72 +0,0 @@ -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { BigNumber, ethers } from 'ethers' - -import type { GraphNetworkAction, GraphNetworkContracts } from '../..' - -export const setGRTBalances: GraphNetworkAction< - { - address: string - balance: BigNumber - }[] -> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { address: string; balance: BigNumber }[], -): Promise => { - for (const arg of args) { - await setGRTBalance(contracts, signer, { address: arg.address, balance: arg.balance }) - } -} - -export const setGRTBalance: GraphNetworkAction<{ - address: string - balance: BigNumber -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { address: string; balance: BigNumber }, -): Promise => { - const { address, balance } = args - - const currentBalance = await contracts.GraphToken.balanceOf(address) - const balanceDif = BigNumber.from(balance).sub(currentBalance) - - if (balanceDif.gt(0)) { - console.log(`Funding ${address} with ${ethers.utils.formatEther(balanceDif)} GRT...`) - const tx = await contracts.GraphToken.connect(signer).transfer(address, balanceDif) - await tx.wait() - } -} - -export const setGRTAllowances: GraphNetworkAction<{ spender: string; allowance: BigNumber }[]> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { spender: string; allowance: BigNumber }[], -): Promise => { - for (const arg of args) { - await setGRTAllowance(contracts, signer, { - spender: arg.spender, - allowance: arg.allowance, - }) - } -} - -export const setGRTAllowance: GraphNetworkAction<{ - spender: string - allowance: BigNumber -}> = async ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: { spender: string; allowance: BigNumber }, -): Promise => { - const { spender, allowance } = args - - const currentAllowance = await contracts.GraphToken.allowance(signer.address, spender) - if (!currentAllowance.eq(allowance)) { - console.log( - `Approving ${spender} with ${ethers.utils.formatEther(allowance)} GRT on behalf of ${signer.address}...`, - ) - const tx = await contracts.GraphToken.connect(signer).approve(spender, allowance) - await tx.wait() - } -} diff --git a/packages/sdk/src/deployments/network/actions/pause.ts b/packages/sdk/src/deployments/network/actions/pause.ts deleted file mode 100644 index e5a7cc994..000000000 --- a/packages/sdk/src/deployments/network/actions/pause.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' - -import { GraphNetworkContracts } from '../deployment/contracts/load' -import { GraphNetworkAction } from './types' - -export const setPausedProtocol: GraphNetworkAction<{ paused: boolean }> = async ( - contracts: GraphNetworkContracts, - governorOrPauseGuardian: SignerWithAddress, - args: { paused: boolean }, -): Promise => { - const { paused } = args - const { Controller } = contracts - - console.log(`\nSetting protocol paused to ${paused}...`) - const tx = await Controller.connect(governorOrPauseGuardian).setPaused(paused) - await tx.wait() -} - -export const setPausedBridge: GraphNetworkAction<{ paused: boolean }> = async ( - contracts: GraphNetworkContracts, - governorOrPauseGuardian: SignerWithAddress, - args: { paused: boolean }, -): Promise => { - const { paused } = args - const { GraphTokenGateway } = contracts - - console.log(`\nSetting bridge ${GraphTokenGateway.address} paused to ${paused}...`) - const tx = await GraphTokenGateway.connect(governorOrPauseGuardian).setPaused(paused) - await tx.wait() -} diff --git a/packages/sdk/src/deployments/network/actions/staking.ts b/packages/sdk/src/deployments/network/actions/staking.ts deleted file mode 100644 index 4d94964ee..000000000 --- a/packages/sdk/src/deployments/network/actions/staking.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { BigNumber, ethers } from 'ethers' - -import { ChannelKey } from '../../../utils' -import { randomHexBytes } from '../../../utils/bytes' -import type { GraphNetworkContracts } from '../deployment/contracts/load' -import { setGRTAllowances } from './graph-token' -import type { GraphNetworkAction } from './types' - -export const stake: GraphNetworkAction<{ amount: BigNumber }> = async ( - contracts: GraphNetworkContracts, - indexer: SignerWithAddress, - args: { amount: BigNumber }, -) => { - const { amount } = args - - // Approve - await setGRTAllowances(contracts, indexer, [{ spender: contracts.Staking.address, allowance: amount }]) - const allowance = await contracts.GraphToken.allowance(indexer.address, contracts.Staking.address) - console.log(`Allowance: ${ethers.utils.formatEther(allowance)}`) - - // Stake - console.log(`\nStaking ${ethers.utils.formatEther(amount)} tokens...`) - const tx = await contracts.Staking.connect(indexer).stake(amount) - await tx.wait() -} - -export const allocateFrom: GraphNetworkAction<{ - channelKey: ChannelKey - subgraphDeploymentID: string - amount: BigNumber -}> = async ( - contracts: GraphNetworkContracts, - indexer: SignerWithAddress, - args: { channelKey: ChannelKey; subgraphDeploymentID: string; amount: BigNumber }, -): Promise => { - const { channelKey, subgraphDeploymentID, amount } = args - - const allocationId = channelKey.address - const proof = await channelKey.generateProof(indexer.address) - const metadata = ethers.constants.HashZero - - console.log(`\nAllocating ${amount} tokens on ${allocationId}...`) - const extraArgs: ethers.Overrides = {} - if (process.env.CI) { - extraArgs.gasLimit = BigNumber.from('400000') - } - const tx = await contracts.Staking.connect(indexer).allocateFrom( - indexer.address, - subgraphDeploymentID, - amount, - allocationId, - metadata, - proof, - extraArgs, - ) - await tx.wait() -} - -export const closeAllocation: GraphNetworkAction<{ allocationId: string }> = async ( - contracts: GraphNetworkContracts, - indexer: SignerWithAddress, - args: { allocationId: string }, -): Promise => { - const { allocationId } = args - - const poi = randomHexBytes() - - console.log(`\nClosing ${allocationId}...`) - const tx = await contracts.Staking.connect(indexer).closeAllocation(allocationId, poi, { - gasLimit: 4_000_000, - }) - await tx.wait() -} diff --git a/packages/sdk/src/deployments/network/actions/types.ts b/packages/sdk/src/deployments/network/actions/types.ts deleted file mode 100644 index 10d6486f9..000000000 --- a/packages/sdk/src/deployments/network/actions/types.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' - -import type { GraphNetworkContracts } from '../deployment/contracts/load' - -export type GraphNetworkAction = ( - contracts: GraphNetworkContracts, - signer: SignerWithAddress, - args: A, -) => Promise diff --git a/packages/sdk/src/deployments/network/deployment/address-book.ts b/packages/sdk/src/deployments/network/deployment/address-book.ts deleted file mode 100644 index 22f5d9cb2..000000000 --- a/packages/sdk/src/deployments/network/deployment/address-book.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GraphChainId, isGraphChainId } from '../../..' -import { AddressBook } from '../../lib/address-book' -import type { AddressBookJson } from '../../lib/types/address-book' -import { GraphNetworkContractName, isGraphNetworkContractName } from './contracts/list' - -export class GraphNetworkAddressBook extends AddressBook { - assertChainId(chainId: string | number): asserts chainId is GraphChainId { - if (!isGraphChainId(chainId)) { - throw new Error(`ChainId not supported: ${chainId}`) - } - } - - // Asserts the provided object is a valid address book - // Logs warnings for unsupported chain ids or invalid contract names - // TODO: should we enforce json format here and throw instead of just logging? - assertAddressBookJson(json: unknown): asserts json is AddressBookJson { - this._assertAddressBookJson(json) - - // // Validate contract names - const contractList = json[this.chainId] - - const contractNames = contractList ? Object.keys(contractList) : [] - for (const contract of contractNames) { - if (!isGraphNetworkContractName(contract)) { - const message = `Detected invalid GraphNetworkContract in address book: ${contract}, for chainId ${this.chainId}` - if (this.strictAssert) { - throw new Error(message) - } else { - console.error(message) - } - } - } - } -} diff --git a/packages/sdk/src/deployments/network/deployment/config.ts b/packages/sdk/src/deployments/network/deployment/config.ts deleted file mode 100644 index 78be9c3e9..000000000 --- a/packages/sdk/src/deployments/network/deployment/config.ts +++ /dev/null @@ -1,169 +0,0 @@ -import YAML from 'yaml' - -import { toBN } from '../../../utils' -import { getItemValue, updateItemValue } from '../../lib/config' -import type { GraphNetworkContractName } from './contracts/list' -import type { GraphNetworkContracts } from './contracts/load' - -interface GeneralParam { - contract: GraphNetworkContractName // contract where the param is defined - name: string // name of the parameter -} - -interface Contract { - name: string - initParams: ContractInitParam[] -} - -interface ContractInitParam { - name: string // as declared in config.yml - type: 'number' | 'BigNumber' // as returned by the contract - getter?: string // name of function to get the value from the contract. Defaults to 'name' - format?: 'number' // some parameters are stored in different formats than what the contract reports. -} - -const epochManager: Contract = { - name: 'EpochManager', - initParams: [{ name: 'lengthInBlocks', type: 'BigNumber', getter: 'epochLength', format: 'number' }], -} - -const curation: Contract = { - name: 'Curation', - initParams: [ - { name: 'reserveRatio', type: 'number', getter: 'defaultReserveRatio' }, - { name: 'curationTaxPercentage', type: 'number' }, - { name: 'minimumCurationDeposit', type: 'BigNumber' }, - ], -} - -const disputeManager: Contract = { - name: 'DisputeManager', - initParams: [ - { name: 'minimumDeposit', type: 'BigNumber' }, - { name: 'fishermanRewardPercentage', type: 'number' }, - { name: 'idxSlashingPercentage', type: 'number' }, - { name: 'qrySlashingPercentage', type: 'number' }, - ], -} - -const staking: Contract = { - name: 'Staking', - initParams: [ - { name: 'minimumIndexerStake', type: 'BigNumber' }, - { name: 'thawingPeriod', type: 'number' }, - { name: 'protocolPercentage', type: 'number' }, - { name: 'curationPercentage', type: 'number' }, - { name: 'maxAllocationEpochs', type: 'number' }, - { name: 'delegationUnbondingPeriod', type: 'number' }, - { name: 'delegationRatio', type: 'number' }, - { name: 'rebateAlphaNumerator', type: 'number', getter: 'alphaNumerator' }, - { name: 'rebateAlphaDenominator', type: 'number', getter: 'alphaDenominator' }, - { name: 'rebateLambdaNumerator', type: 'number', getter: 'lambdaNumerator' }, - { name: 'rebateLambdaDenominator', type: 'number', getter: 'lambdaDenominator' }, - ], -} - -const rewardsManager: Contract = { - name: 'RewardsManager', - initParams: [{ name: 'issuancePerBlock', type: 'BigNumber' }], -} - -export const GraphNetworkConfigContractList: Contract[] = [ - epochManager, - curation, - disputeManager, - staking, - rewardsManager, -] - -export const GraphNetworkConfigGeneralParams: GeneralParam[] = [ - { - contract: 'DisputeManager', - name: 'arbitrator', - }, - { - contract: 'Controller', - name: 'governor', - }, - { - contract: 'AllocationExchange', - name: 'authority', - }, -] - -export const updateGeneralParams = async ( - contracts: GraphNetworkContracts, - param: GeneralParam, - config: YAML.Document.Parsed, -) => { - // TODO: can we fix this? - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - const value = await contracts[param.contract][param.name]() - const updated = updateItemValue(config, `general/${param.name}`, value) - if (updated) { - console.log(`\t- Updated ${param.name} to ${value}`) - } -} - -export const updateContractParams = async ( - contracts: GraphNetworkContracts, - contract: Contract, - config: YAML.Document.Parsed, -) => { - for (const param of contract.initParams) { - // TODO: can we fix this? - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - let value = await contracts[contract.name][param.getter ?? param.name]() - if (param.type === 'BigNumber') { - if (param.format === 'number') { - value = value.toNumber() - } else { - value = value.toString() - } - } - - const updated = updateItemValue(config, `contracts/${contract.name}/init/${param.name}`, value) - if (updated) { - console.log(`\t- Updated ${param.name} to ${value}`) - } - } -} - -export const getDefaults = (config: YAML.Document.Parsed, isL1: boolean) => { - const staking = isL1 ? 'L1Staking' : 'L2Staking' - return { - curation: { - reserveRatio: getItemValue(config, 'contracts/Curation/init/reserveRatio'), - minimumCurationDeposit: getItemValue(config, 'contracts/Curation/init/minimumCurationDeposit'), - l2MinimumCurationDeposit: toBN(1), - curationTaxPercentage: getItemValue(config, 'contracts/Curation/init/curationTaxPercentage'), - }, - dispute: { - minimumDeposit: getItemValue(config, 'contracts/DisputeManager/init/minimumDeposit'), - fishermanRewardPercentage: getItemValue(config, 'contracts/DisputeManager/init/fishermanRewardPercentage'), - qrySlashingPercentage: getItemValue(config, 'contracts/DisputeManager/init/qrySlashingPercentage'), - idxSlashingPercentage: getItemValue(config, 'contracts/DisputeManager/init/idxSlashingPercentage'), - }, - epochs: { - lengthInBlocks: getItemValue(config, 'contracts/EpochManager/init/lengthInBlocks'), - }, - staking: { - minimumIndexerStake: getItemValue(config, `contracts/${staking}/init/minimumIndexerStake`), - maxAllocationEpochs: getItemValue(config, `contracts/${staking}/init/maxAllocationEpochs`), - thawingPeriod: getItemValue(config, `contracts/${staking}/init/thawingPeriod`), - delegationUnbondingPeriod: getItemValue(config, `contracts/${staking}/init/delegationUnbondingPeriod`), - alphaNumerator: getItemValue(config, `contracts/${staking}/init/rebateParameters/alphaNumerator`), - alphaDenominator: getItemValue(config, `contracts/${staking}/init/rebateParameters/alphaDenominator`), - lambdaNumerator: getItemValue(config, `contracts/${staking}/init/rebateParameters/lambdaNumerator`), - lambdaDenominator: getItemValue(config, `contracts/${staking}/init/rebateParameters/lambdaDenominator`), - }, - token: { - initialSupply: getItemValue(config, 'contracts/GraphToken/init/initialSupply'), - }, - rewards: { - issuancePerBlock: '114155251141552511415', - }, - } -} diff --git a/packages/sdk/src/deployments/network/deployment/contracts/deploy.ts b/packages/sdk/src/deployments/network/deployment/contracts/deploy.ts deleted file mode 100644 index 2e5dcf4dd..000000000 --- a/packages/sdk/src/deployments/network/deployment/contracts/deploy.ts +++ /dev/null @@ -1,317 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type { ContractTransaction, providers, Signer } from 'ethers' -import { Contract, ethers, Wallet } from 'ethers' -import * as path from 'path' - -import { type GraphChainId, isGraphL1ChainId, isGraphL2ChainId } from '../../../../chain' -import { setCode } from '../../../../helpers/code' -import { assertObject } from '../../../../utils/assertions' -import { confirm } from '../../../../utils/prompt' -import type { AddressBook } from '../../../lib/address-book' -import { getContractConfig, loadCallParams, readConfig } from '../../../lib/config' -import { logContractCall, logContractReceipt } from '../../../lib/contracts/log' -import { deployContract, deployContractAndSave } from '../../../lib/deploy/contract' -import { isContractDeployed } from '../../../lib/deploy/deploy' -import type { DeployData, DeployResult } from '../../../lib/types/deploy' -import { DeployType, isDeployType } from '../../../lib/types/deploy' -import { logDebug } from '../../../logger' -import { acceptOwnership } from '../../actions/governed' -import { setPausedProtocol } from '../../actions/pause' -import { GraphNetworkAddressBook } from '../address-book' -import { - type GraphNetworkContractName, - GraphNetworkGovernedContractNameList, - GraphNetworkL1ContractNameList, - GraphNetworkL2ContractNameList, - GraphNetworkSharedContractNameList, -} from './list' -import { GraphNetworkContracts, loadGraphNetworkContracts } from './load' -import { deployContractImplementationAndSave, deployContractWithProxy, deployContractWithProxyAndSave } from './proxy' - -export async function deployGraphNetwork( - addressBookFileName: string, - graphConfigFileName: string, - chainId: GraphChainId, - deployer: SignerWithAddress, - provider: providers.Provider, - opts?: { - governor?: SignerWithAddress - skipConfirmation?: boolean - forceDeploy?: boolean - buildAcceptTx?: boolean - l2Deploy?: boolean - enableTxLogging?: boolean - artifactsDir?: string | string[] - }, -): Promise { - // Validate addressBookFileName - should not start with '.' to avoid path confusion - if (addressBookFileName.startsWith('.')) { - throw new Error( - `addressBookFileName should be a filename, not a relative path. Got: ${addressBookFileName}. Use just the filename like 'addresses-local.json'`, - ) - } - - // Validate graphConfigFileName - should not start with '.' to avoid path confusion - if (graphConfigFileName.startsWith('.')) { - throw new Error( - `graphConfigFileName should be a filename, not a relative path. Got: ${graphConfigFileName}. Use just the filename like 'graph.hardhat.yml'`, - ) - } - - const { addressBookDir, configDir } = require('@graphprotocol/contracts') - const addressBookPath = path.join(addressBookDir, addressBookFileName) - const graphConfigPath = path.join(configDir, graphConfigFileName) - - // Opts - const governor = opts?.governor ?? undefined - const skipConfirmation = opts?.skipConfirmation ?? false - const forceDeploy = opts?.forceDeploy ?? false - const buildAcceptTx = opts?.buildAcceptTx ?? false - const l2Deploy = opts?.l2Deploy ?? false - const enableTxLogging = opts?.enableTxLogging ?? true - - // Snapshot deployer - const beforeDeployerNonce = await deployer.getTransactionCount() - const beforeDeployerBalance = await deployer.getBalance() - - // Ensure action - const sure = await confirm('Are you sure you want to migrate contracts?', skipConfirmation) - if (!sure) return - - // Build list of contracts to deploy - // We force AllocationExchange to the end, it requires GraphToken and Staking to be deployed beforehand - const contractList: GraphNetworkContractName[] = [ - ...GraphNetworkSharedContractNameList.filter((c) => c !== 'AllocationExchange'), - ] - if (!l2Deploy && isGraphL1ChainId(chainId)) { - contractList.push(...GraphNetworkL1ContractNameList) - } - if (l2Deploy || isGraphL2ChainId(chainId)) { - contractList.push(...GraphNetworkL2ContractNameList) - } - contractList.push('AllocationExchange') - - logDebug(`>>> Migrating contracts <<<\n`) - - //////////////////////////////////////// - // Deploy contracts - //////////////////////////////////////// - - logDebug(`>>> Contracts deployment\n`) - - const graphConfig = readConfig(graphConfigPath) - const addressBook = new GraphNetworkAddressBook(addressBookPath, chainId) - - const pendingContractCalls = [] - const contracts = [] - for (const name of contractList) { - // Get address book info - const addressEntry = addressBook.getEntry(name) - const savedAddress = addressEntry && addressEntry.address - - logDebug(`= Deploy: ${name}`) - - // Check if contract already deployed - if (!forceDeploy) { - const isDeployed = await isContractDeployed( - name, - 'GraphProxy', - savedAddress, - addressBook, - provider, - opts?.artifactsDir, - ) - if (isDeployed) { - logDebug(`${name} is up to date, no action required`) - logDebug(`Address: ${savedAddress}\n`) - continue - } - } - - // Get config and deploy contract - const contractConfig = getContractConfig(graphConfig, addressBook, name, deployer.address) - const contract = await deploy( - contractConfig.proxy ? DeployType.DeployWithProxyAndSave : DeployType.DeployAndSave, - deployer, - { - name: name, - args: contractConfig.params.map((a) => a.value), - artifactsPath: opts?.artifactsDir, - }, - addressBook, - { - name: 'GraphProxy', - opts: { - buildAcceptTx: buildAcceptTx, - }, - artifactsPath: opts?.artifactsDir, - }, - ) - contracts.push({ contract: contract, name: name }) - logDebug('') - - // Defer contract calls after deploying every contract - if (contractConfig.calls) { - pendingContractCalls.push({ name, contract, calls: contractConfig.calls }) - } - } - logDebug('Contract deployments done! Contract calls are next') - - //////////////////////////////////////// - // Run contracts calls - //////////////////////////////////////// - logDebug('') - logDebug(`>>> Contracts calls\n`) - if (pendingContractCalls.length > 0) { - for (const entry of pendingContractCalls) { - if (entry.calls.length == 0) continue - - logDebug(`= Config: ${entry.name}`) - for (const call of entry.calls) { - logDebug(`* Calling ${call.fn}`) - try { - const params = loadCallParams(call.params, addressBook, deployer.address) - logDebug(`- Params: ${params.join(', ')}`) - const overrides = process.env.CI ? { gasLimit: 2_000_000 } : {} - const response: ContractTransaction = await entry.contract.contract - .connect(deployer) - .functions[call.fn](...params, overrides) - logContractCall(response, entry.name, call.fn, params) - const receipt = await entry.contract.contract.provider.waitForTransaction(response.hash) - logContractReceipt(receipt) - } catch (error) { - // TODO: can we clean this up? - // Fallback for StakingExtension methods - if (['L1Staking', 'L2Staking'].includes(entry.name)) { - const StakingExtension = contracts.find((c) => c.name === 'StakingExtension') - if (StakingExtension === undefined) { - throw new Error('StakingExtension not found') - } - const ExtendedStaking = new Contract( - entry.contract.contract.address, - StakingExtension.contract.contract.interface, - deployer, - ) - await ExtendedStaking.connect(deployer).functions[call.fn]( - ...loadCallParams(call.params, addressBook, deployer.address), - ) - } else { - throw error - } - } - } - logDebug('') - } - } else { - logDebug('Nothing to do') - } - - //////////////////////////////////////// - // Load contracts - //////////////////////////////////////// - const loadedContracts = loadGraphNetworkContracts(addressBookFileName, chainId, provider, opts?.artifactsDir, { - l2Load: l2Deploy, - enableTxLogging: enableTxLogging, - }) - - //////////////////////////////////////// - // Post deploy - //////////////////////////////////////// - // If a governor was provided, accept ownership of contracts and unpause the protocol - if (governor) { - const txs: ContractTransaction[] = [] - for (const contract of GraphNetworkGovernedContractNameList) { - const tx = await acceptOwnership(loadedContracts, governor, { contractName: contract }) - if (tx) { - txs.push() - } - } - await Promise.all(txs.map((tx) => tx.wait())) - await setPausedProtocol(loadedContracts, governor, { paused: false }) - } - - //////////////////////////////////////// - // Print summary - //////////////////////////////////////// - logDebug('') - logDebug(`>>> Summary\n`) - logDebug('All done!') - - const afterDeployerNonce = await deployer.getTransactionCount() - const afterDeployerBalance = await deployer.getBalance() - - const spent = ethers.utils.formatEther(beforeDeployerBalance.sub(afterDeployerBalance)) - const nTx = afterDeployerNonce - beforeDeployerNonce - logDebug(`Sent ${nTx} transaction${nTx === 1 ? '' : 's'} & spent ${ethers.constants.EtherSymbol} ${spent}`) - - return loadedContracts -} - -export async function deployMockGraphNetwork(l2Deploy: boolean) { - // Contract list - const contractList: GraphNetworkContractName[] = [ - ...GraphNetworkSharedContractNameList.filter((c) => c !== 'AllocationExchange'), - ] - contractList.push(...(l2Deploy ? GraphNetworkL2ContractNameList : GraphNetworkL1ContractNameList)) - contractList.push('AllocationExchange') - - const contracts: Partial> = {} - for (const name of contractList) { - const fake = Wallet.createRandom() - await setCode(fake.address, '0x1234') - contracts[name] = new Contract(fake.address, [], fake) - } - - return contracts as GraphNetworkContracts -} - -export const deploy = async ( - type: DeployType | unknown, - sender: Signer, - contractData: DeployData, - addressBook?: AddressBook, - proxyData?: DeployData, -): Promise => { - if (!isDeployType(type)) { - throw new Error('Please provide the correct option for deploy type') - } - - switch (type) { - case DeployType.Deploy: - logDebug(`Deploying contract ${contractData.name}...`) - return await deployContract(sender, contractData) - case DeployType.DeployAndSave: - logDebug(`Deploying contract ${contractData.name} and saving to address book...`) - assertObject(addressBook) - return await deployContractAndSave(sender, contractData, addressBook) - case DeployType.DeployWithProxy: - logDebug(`Deploying contract ${contractData.name} with proxy ...`) - assertObject(addressBook) - validateProxyData(proxyData) - // TODO - for some reason proxyData's type is not being narrowed down to DeployData - // so we force non-null assertion - return await deployContractWithProxy(sender, contractData, addressBook, proxyData!) - case DeployType.DeployWithProxyAndSave: - logDebug(`Deploying contract ${contractData.name} with proxy and saving to address book...`) - assertObject(addressBook) - validateProxyData(proxyData) - // TODO - for some reason proxyData's type is not being narrowed down to DeployData - // so we force non-null assertion - return await deployContractWithProxyAndSave(sender, contractData, addressBook, proxyData!) - case DeployType.DeployImplementationAndSave: - logDebug(`Deploying contract ${contractData.name} implementation and saving to address book...`) - assertObject(addressBook) - validateProxyData(proxyData) - // TODO - for some reason proxyData's type is not being narrowed down to DeployData - // so we force non-null assertion - return await deployContractImplementationAndSave(sender, contractData, addressBook, proxyData!) - default: - throw new Error('Please provide the correct option for deploy type') - } -} - -function validateProxyData(proxyData: DeployData | undefined): void { - if (!proxyData) { - throw new Error('Proxy data not provided!') - } -} diff --git a/packages/sdk/src/deployments/network/deployment/contracts/list.ts b/packages/sdk/src/deployments/network/deployment/contracts/list.ts deleted file mode 100644 index dd1066fb7..000000000 --- a/packages/sdk/src/deployments/network/deployment/contracts/list.ts +++ /dev/null @@ -1,58 +0,0 @@ -// List of contract names for the Graph Network - -export const GraphNetworkSharedContractNameList = [ - 'GraphProxyAdmin', - 'BancorFormula', - 'Controller', - 'EpochManager', - 'GraphCurationToken', - 'ServiceRegistry', - 'SubgraphNFTDescriptor', - 'SubgraphNFT', - 'StakingExtension', - 'RewardsManager', - 'DisputeManager', - 'AllocationExchange', -] as const -export const GraphNetworkOptionalContractNameList = [ - 'IENS', - 'ENS', - 'IEthereumDIDRegistry', - 'EthereumDIDRegistry', -] as const -export const GraphNetworkL1ContractNameList = [ - 'GraphToken', - 'Curation', - 'L1GNS', - 'L1Staking', - 'L1GraphTokenGateway', - 'BridgeEscrow', -] as const -export const GraphNetworkL2ContractNameList = [ - 'L2GraphToken', - 'L2Curation', - 'L2GNS', - 'L2Staking', - 'L2GraphTokenGateway', - 'SubgraphAvailabilityManager', -] as const - -export const GraphNetworkContractNameList = [ - ...GraphNetworkSharedContractNameList, - ...GraphNetworkOptionalContractNameList, - ...GraphNetworkL1ContractNameList, - ...GraphNetworkL2ContractNameList, -] as const - -export type GraphNetworkContractName = (typeof GraphNetworkContractNameList)[number] - -export function isGraphNetworkContractName(name: unknown): name is GraphNetworkContractName { - return typeof name === 'string' && GraphNetworkContractNameList.includes(name as GraphNetworkContractName) -} - -export const GraphNetworkGovernedContractNameList: GraphNetworkContractName[] = [ - 'GraphToken', - 'Controller', - 'GraphProxyAdmin', - 'SubgraphNFT', -] diff --git a/packages/sdk/src/deployments/network/deployment/contracts/load.ts b/packages/sdk/src/deployments/network/deployment/contracts/load.ts deleted file mode 100644 index a8be98781..000000000 --- a/packages/sdk/src/deployments/network/deployment/contracts/load.ts +++ /dev/null @@ -1,207 +0,0 @@ -import type { - AllocationExchange, - BancorFormula, - BridgeEscrow, - Controller, - Curation, - DisputeManager, - EpochManager, - GraphCurationToken, - GraphProxyAdmin, - GraphToken, - IENS, - L1GNS, - L1GraphTokenGateway, - L1Staking, - L2Curation, - L2GNS, - L2GraphToken, - L2GraphTokenGateway, - L2Staking, - RewardsManager, - ServiceRegistry, - StakingExtension, - SubgraphAvailabilityManager, - SubgraphNFT, - SubgraphNFTDescriptor, -} from '@graphprotocol/contracts' -import { Contract, providers, Signer } from 'ethers' -import * as path from 'path' - -import type { GraphChainId } from '../../../..' -import { isGraphChainId, isGraphL1ChainId } from '../../../..' -import { mergeABIs } from '../../../../utils/abi' -import { assertObject } from '../../../../utils/assertions' -import { loadContract, loadContracts } from '../../../lib/contracts/load' -import { loadArtifact } from '../../../lib/deploy/artifacts' -import { ContractList } from '../../../lib/types/contract' -import { GraphNetworkAddressBook } from '../address-book' -import type { GraphNetworkContractName } from './list' -import { - GraphNetworkL1ContractNameList, - GraphNetworkL2ContractNameList, - GraphNetworkOptionalContractNameList, - GraphNetworkSharedContractNameList, - isGraphNetworkContractName, -} from './list' - -export type L1ExtendedStaking = L1Staking & StakingExtension -export type L2ExtendedStaking = L2Staking & StakingExtension - -export interface GraphNetworkContracts extends ContractList { - EpochManager: EpochManager - DisputeManager: DisputeManager - ServiceRegistry: ServiceRegistry - RewardsManager: RewardsManager - GraphProxyAdmin: GraphProxyAdmin - Controller: Controller - BancorFormula: BancorFormula - AllocationExchange: AllocationExchange - SubgraphNFT: SubgraphNFT - SubgraphNFTDescriptor: SubgraphNFTDescriptor - GraphCurationToken: GraphCurationToken - StakingExtension: StakingExtension - IENS?: IENS - SubgraphAvailabilityManager: SubgraphAvailabilityManager - - // Only L1 - L1GraphToken?: GraphToken - L1Staking?: L1Staking - L1GNS?: L1GNS - L1Curation?: Curation - L1GraphTokenGateway?: L1GraphTokenGateway - BridgeEscrow?: BridgeEscrow - - // Only L2 - L2GraphToken?: L2GraphToken - L2Staking?: L2Staking - L2GNS?: L2GNS - L2Curation?: L2Curation - L2GraphTokenGateway?: L2GraphTokenGateway - - // Alias - GNS: L1GNS | L2GNS - Staking: L1ExtendedStaking | L2ExtendedStaking - GraphToken: GraphToken | L2GraphToken - Curation: Curation | L2Curation - GraphTokenGateway: L1GraphTokenGateway | L2GraphTokenGateway - - // Iterator - [Symbol.iterator]: () => Generator -} - -export function loadGraphNetworkContracts( - addressBookFileName: string, - chainId: number, - signerOrProvider?: Signer | providers.Provider, - artifactsPath?: string | string[], - opts?: { - enableTxLogging?: boolean - strictAssert?: boolean - l2Load?: boolean - }, -): GraphNetworkContracts { - if (!isGraphChainId(chainId)) { - throw new Error(`ChainId not supported: ${chainId}`) - } - - // Validate addressBookFileName - should not start with '.' to avoid path confusion - if (addressBookFileName.startsWith('.')) { - throw new Error( - `addressBookFileName should be a filename, not a path. Got: ${addressBookFileName}. Use just the filename like 'addresses-local.json'`, - ) - } - - const { addressBookDir } = require('@graphprotocol/contracts') - const addressBookPath = path.join(addressBookDir, addressBookFileName) - - const addressBook = new GraphNetworkAddressBook(addressBookPath, chainId) - const contracts = loadContracts( - addressBook, - artifactsPath ?? [], // Pass empty array since loadContractAt now ignores this - signerOrProvider, - opts?.enableTxLogging ?? true, - GraphNetworkOptionalContractNameList as unknown as GraphNetworkContractName[], // This is ugly but safe - ) - - assertGraphNetworkContracts(contracts, chainId, opts?.strictAssert) - - // Alias - // One of L1/L2 should always be defined so we can safely assert the types - const loadL1 = isGraphL1ChainId(chainId) && !opts?.l2Load - contracts.GraphToken = loadL1 ? contracts.GraphToken! : contracts.L2GraphToken! - contracts.GNS = loadL1 ? contracts.L1GNS! : contracts.L2GNS! - contracts.Curation = loadL1 ? contracts.Curation! : contracts.L2Curation! - contracts.GraphTokenGateway = loadL1 ? contracts.L1GraphTokenGateway! : contracts.L2GraphTokenGateway! - - // Staking is a special snowflake! - // Since staking contract is a proxy for StakingExtension we need to manually - // merge the ABIs and override the contract instance - const stakingName = loadL1 ? 'L1Staking' : 'L2Staking' - const staking = contracts[stakingName] - if (staking) { - const stakingOverride = loadContract( - stakingName, - addressBook, - artifactsPath ?? [], // Use provided artifacts path or empty array - signerOrProvider, - opts?.enableTxLogging ?? true, - new Contract( - staking.address, - mergeABIs(loadArtifact(stakingName, artifactsPath).abi, loadArtifact('StakingExtension', artifactsPath).abi), - signerOrProvider, - ), - ) as L1ExtendedStaking | L2ExtendedStaking - contracts.Staking = stakingOverride - if (loadL1) contracts.L1Staking = stakingOverride as L1ExtendedStaking - if (!loadL1) contracts.L2Staking = stakingOverride as L2ExtendedStaking - } - - // Iterator - contracts[Symbol.iterator] = function* () { - for (const key of Object.keys(this)) { - yield this[key as GraphNetworkContractName] as Contract - } - } - - return contracts -} - -function assertGraphNetworkContracts( - contracts: unknown, - chainId: GraphChainId, - strictAssert?: boolean, -): asserts contracts is GraphNetworkContracts { - assertObject(contracts) - - // Allow loading contracts not defined in GraphNetworkContractNameList but raise a warning - const contractNames = Object.keys(contracts) - if (!contractNames.every((c) => isGraphNetworkContractName(c))) { - console.warn(`Loaded invalid GraphNetworkContract: ${contractNames.filter((c) => !isGraphNetworkContractName(c))}`) - } - - // Assert that all shared GraphNetworkContracts were loaded - for (const contractName of GraphNetworkSharedContractNameList) { - if (!contracts[contractName]) { - const errMessage = `Missing GraphNetworkContract: ${contractName} for chainId ${chainId}` - console.error(errMessage) - if (strictAssert) { - throw new Error(errMessage) - } - } - } - - // Assert that L1/L2 specific GraphNetworkContracts were loaded - const layerSpecificContractNames = isGraphL1ChainId(chainId) - ? GraphNetworkL1ContractNameList - : GraphNetworkL2ContractNameList - for (const contractName of layerSpecificContractNames) { - if (!contracts[contractName]) { - const errMessage = `Missing GraphNetworkContract: ${contractName} for chainId ${chainId}` - console.error(errMessage) - if (strictAssert) { - throw new Error(errMessage) - } - } - } -} diff --git a/packages/sdk/src/deployments/network/deployment/contracts/proxy.ts b/packages/sdk/src/deployments/network/deployment/contracts/proxy.ts deleted file mode 100644 index 3c070be95..000000000 --- a/packages/sdk/src/deployments/network/deployment/contracts/proxy.ts +++ /dev/null @@ -1,248 +0,0 @@ -import type { Contract, Signer } from 'ethers' - -import { hashHexString } from '../../../../utils/hash' -import { AddressBook } from '../../../lib/address-book' -import { loadContractAt } from '../../../lib/contracts/load' -import { loadArtifact } from '../../../lib/deploy/artifacts' -import { deployContract, deployContractAndSave } from '../../../lib/deploy/contract' -import type { ContractParam } from '../../../lib/types/contract' -import type { DeployAddressBookWithProxyFunction, DeployData, DeployResult } from '../../../lib/types/deploy' -import { logDebug } from '../../../logger' - -/** - * Deploys a contract with a proxy - * - * @remarks Sets a contract as the proxy admin - * @remarks The proxy admin needs to - * @remarks This function can deploy any proxy contract as long as the constructor has the following signature: - * `constructor(address implementation, address admin)` - * - * @param sender Signer to deploy the contract with, must be already connected to a provider - * @param name Name of the contract to deploy - * @param args Contract constructor arguments - * @param proxyName Name of the proxy contract to deploy - * @param proxyAdmin Contract to be used as the proxy admin - * @param buildAcceptTx If set to true it will build the accept tx and print it to the console. Defaults to `false` - * @returns the deployed contract with the proxy address - * - * @throws Error if the sender is not connected to a provider - */ -export const deployContractWithProxy: DeployAddressBookWithProxyFunction = async ( - sender: Signer, - contractData: DeployData, - addressBook: AddressBook, - proxyData: DeployData, -): Promise => { - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - const proxyAdmin = getProxyAdmin(addressBook, contractData.artifactsPath) - - // Deploy implementation - const implDeployResult = await deployContract(sender, { - name: contractData.name, - args: [], - artifactsPath: contractData.artifactsPath, - }) - - // Deploy proxy - const { contract: proxy } = await deployContract(sender, { - name: proxyData.name, - args: [implDeployResult.contract.address, proxyAdmin.address], - opts: { autolink: false }, - artifactsPath: proxyData.artifactsPath, - }) - - // Accept implementation upgrade - await proxyAdminAcceptUpgrade( - sender, - implDeployResult.contract, - contractData.args ?? [], - proxyAdmin, - proxy.address, - proxyData.opts?.buildAcceptTx ?? false, - ) - - // Use interface of contract but with the proxy address - implDeployResult.contract = implDeployResult.contract.attach(proxy.address) - return implDeployResult -} - -/** - * Deploys a contract with a proxy and saves the deployment result to the address book - * - * @remarks Same as {@link deployContractWithProxy} but this variant will also save the deployment result to the address book. - * - * @param proxyName Name of the proxy contract to deploy - * @param proxyAdmin Proxy admin contract - * @param name Name of the contract to deploy - * @param args Contract constructor arguments - * @param sender Signer to deploy the contract with, must be already connected to a provider - * @param buildAcceptTx If set to true it will build the accept tx and print it to the console. Defaults to `false` - * @returns the deployed contract with the proxy address - * - * @throws Error if the sender is not connected to a provider - */ -export const deployContractWithProxyAndSave: DeployAddressBookWithProxyFunction = async ( - sender: Signer, - contractData: DeployData, - addressBook: AddressBook, - proxyData: DeployData, -): Promise => { - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - const proxyAdmin = getProxyAdmin(addressBook, contractData.artifactsPath) - - // Deploy implementation - const implDeployResult = await deployContractAndSave( - sender, - { - name: contractData.name, - args: [], - artifactsPath: contractData.artifactsPath, - }, - addressBook, - ) - - // Deploy proxy - const { contract: proxy } = await deployContract(sender, { - name: proxyData.name, - args: [implDeployResult.contract.address, proxyAdmin.address], - opts: { autolink: false }, - artifactsPath: proxyData.artifactsPath, - }) - - // Accept implementation upgrade - await proxyAdminAcceptUpgrade( - sender, - implDeployResult.contract, - contractData.args ?? [], - proxyAdmin, - proxy.address, - proxyData.opts?.buildAcceptTx ?? false, - ) - - // Overwrite address entry with proxy - const artifact = loadArtifact(proxyData.name, proxyData.artifactsPath) - const contractEntry = addressBook.getEntry(contractData.name) - - addressBook.setEntry(contractData.name, { - address: proxy.address, - initArgs: contractData.args?.length === 0 ? undefined : contractData.args?.map((e) => e.toString()), - creationCodeHash: hashHexString(artifact.bytecode), - runtimeCodeHash: hashHexString(await sender.provider.getCode(proxy.address)), - txHash: proxy.deployTransaction.hash, - proxy: true, - implementation: contractEntry, - }) - logDebug('> Contract saved to address book') - - // Use interface of contract but with the proxy address - implDeployResult.contract = implDeployResult.contract.attach(proxy.address) - return implDeployResult -} - -export const deployContractImplementationAndSave: DeployAddressBookWithProxyFunction = async ( - sender: Signer, - contractData: DeployData, - addressBook: AddressBook, - proxyData: DeployData, -): Promise => { - if (!sender.provider) { - throw Error('Sender must be connected to a provider') - } - - const proxyAdmin = getProxyAdmin(addressBook, contractData.artifactsPath) - - // Deploy implementation - const implDeployResult = await deployContract(sender, { - name: contractData.name, - args: [], - artifactsPath: contractData.artifactsPath, - }) - - // Get proxy entry - const contractEntry = addressBook.getEntry(contractData.name) - - // Accept implementation upgrade - await proxyAdminAcceptUpgrade( - sender, - implDeployResult.contract, - contractData.args ?? [], - proxyAdmin, - contractEntry.address, - proxyData.opts?.buildAcceptTx ?? false, - ) - - // Save address entry - contractEntry.implementation = { - address: implDeployResult.contract.address, - constructorArgs: contractData.args?.length === 0 ? undefined : contractData.args?.map((e) => e.toString()), - creationCodeHash: implDeployResult.creationCodeHash, - runtimeCodeHash: implDeployResult.runtimeCodeHash, - txHash: implDeployResult.txHash, - libraries: - implDeployResult.libraries && Object.keys(implDeployResult.libraries).length > 0 - ? implDeployResult.libraries - : undefined, - } - addressBook.setEntry(contractData.name, contractEntry) - logDebug('> Contract saved to address book') - - // Use interface of contract but with the proxy address - implDeployResult.contract = implDeployResult.contract.attach(contractEntry.address) - return implDeployResult -} - -/** - * Accepts an upgrade for a proxy contract managed by a proxy admin - * - * @remarks Initializes the implementation if init arguments are provided - * - * @privateRemarks This function is highly specific to the graph protocol proxy system - * - * @param sender Signer to make the call to the proxy admin contract - * @param contract Implementation contract - * @param args Implementation initialization arguments - * @param proxyAdmin Proxy admin contract - * @param buildAcceptTx If set to true it will build the accept tx and print it to the console. Defaults to `false` - */ -const proxyAdminAcceptUpgrade = async ( - sender: Signer, - contract: Contract, - args: Array, - proxyAdmin: Contract, - proxyAddress: string, - buildAcceptTx = false, -) => { - const initTx = args ? await contract.populateTransaction.initialize(...args) : null - const acceptFunctionName = initTx ? 'acceptProxyAndCall' : 'acceptProxy' - const acceptFunctionParams = initTx ? [contract.address, proxyAddress, initTx.data] : [contract.address, proxyAddress] - - if (buildAcceptTx) { - console.info( - ` - Copy this data in the Gnosis Multisig UI, or a similar app and call ${acceptFunctionName} - -------------------------------------------------------------------------------------- - > Contract Address: ${proxyAdmin.address} - > Implementation: ${contract.address} - > Proxy: ${proxyAddress} - > Data: ${initTx && initTx.data} - `, - ) - } else { - await proxyAdmin.connect(sender)[acceptFunctionName](...acceptFunctionParams) - } -} - -// Get the proxy admin to own the proxy for this contract -function getProxyAdmin(addressBook: AddressBook, artifactsPath?: string | string[]): Contract { - const proxyAdminEntry = addressBook.getEntry('GraphProxyAdmin') - if (!proxyAdminEntry) { - throw new Error('GraphProxyAdmin not detected in the config, must be deployed first!') - } - return loadContractAt('GraphProxyAdmin', proxyAdminEntry.address, artifactsPath) -} diff --git a/packages/sdk/src/gre/README.md b/packages/sdk/src/gre/README.md deleted file mode 100644 index f698d85f6..000000000 --- a/packages/sdk/src/gre/README.md +++ /dev/null @@ -1,322 +0,0 @@ -# Graph Runtime Environment (GRE) - -GRE is a hardhat plugin that extends hardhat's runtime environment to inject additional functionality related to the usage of the Graph Protocol. - -## Features - -- Provides a simple interface to interact with protocol contracts -- Exposes protocol configuration via graph config file and address book -- Provides account management methods for convenience -- Detailed logging of transactions to file -- Multichain! Supports both L1 and L2 layers of the protocol simultaneously -- Integrates seamlessly with [hardhat-secure-accounts](https://www.npmjs.com/package/hardhat-secure-accounts) -- Convenience method to create tasks that use GRE - -## Usage - -### Example - -Import GRE using `import '@graphprotocol/sdk/gre'` on your hardhat config file and then: - -```js -// Use L2 governor account to set the L1 token address on the L2 gateway -const { l1, l2 } = hre.graph() - -const { GraphToken } = l1.contracts - -const { L2GraphTokenGateway } = l2.contracts -const { governor } = await l2.getNamedAccounts() - -const tx = L2GraphTokenGateway.connect(governor).setL1TokenAddress(GraphToken.address) -``` - -**Note**: Project must run hardhat@~2.14.0 due to - -#### Network selection - -GRE supports both the L1 and L2 networks of the Graph Protocol by default. It will use hardhat's network defined via `--network` as the "main" network and then automatically detect which is the appropriate counterpart network in L1 or L2. - -Example: - -```bash -# L1: goerli and L2: arbitrum-goerli -hh console --network goerli - -# L1: mainnet and L2: arbitrum-one -hh console --network arbitrum-one - -# L1: mainnet and L2: arbitrum-one > same as previous -hh console --network mainnet -``` - -#### Configuration - -To use GRE you'll need to configure the target networks. That is done via either hardhat's config file using the `networks` [config field](https://hardhat.org/hardhat-runner/docs/config#json-rpc-based-networks) or by passing the appropriate arguments to `hre.graph()` initializer. - -**Note**: The "main" network, defined by hardhat's `--network` flag _MUST_ be properly configured for GRE to initialize successfully. It's not necessary to configure the counterpart network if you don't plan on using it. - -### Hardhat: Network config - -```js -networks: { - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456` - accounts: { - mnemonic: 'test test test test test test test test test test test test', - }, - graphConfig: 'config/graph.goerli.yml' - }, -} -``` - -Fields: - -- **(_REQUIRED_) chainId**: the chainId of the network. This field is not required by hardhat but it's used by GRE to simplify the API. -- **(_REQUIRED_) url**: the RPC endpoint of the network. -- **(_OPTIONAL_) accounts**: the accounts to use on the network. These will be used by the account management functions on GRE. -- **(_OPTIONAL_) graphConfig**: the path to the graph config file for the network. - -### Hardhat: Graph config - -Additionally, the plugin adds a new config field to hardhat's config file: `graphConfig`. This can be used used to define defaults for the graph config file. - -```js -... -networks: { -... -}, -graph: { - addressBook: 'addresses.json' - l1GraphConfig: 'config/graph.mainnet.yml' - l2GraphConfig: 'config/graph.arbitrum-one.yml' -} -... -``` - -Fields: - -- **(_OPTIONAL_) addressBook**: the path to the address book. -- **(_REQUIRED_) l1GraphConfig**: default path to the graph config file for L1 networks. This will be used if the `graphConfig` field is not defined on the network config. -- **(_REQUIRED_) l2GraphConfig**: default path to the graph config file for L2 networks. This will be used if the `graphConfig` field is not defined on the network config. - -### Options: Graph initializer - -The GRE initializer also allows you to set the address book and the graph config files like so: - -```js -const graph = hre.graph({ - addressBook: 'addresses.json', - l1GraphConfig: 'config/graph.mainnet.yml' - l2GraphConfig: 'config/graph.arbitrum-one.yml' -}) - -// Here graphConfig will apply only to the "main" network given by --network -const graph = hre.graph({ - addressBook: 'addresses.json', - graphConfig: 'config/graph.mainnet.yml' -}) -``` - -### Config priority - -The path to the graph config and the address book can be set in multiple ways. The plugin will use the following order to determine the path to the graph config file: - -1. `hre.graph({ ... })` init parameters `l1GraphConfigPath` and `l2GraphConfigPath` -2. `hre.graph({ ...})` init parameter graphConfigPath (but only for the "main" network) -3. `networks..graphConfig` network config parameter `graphConfig` in hardhat config file -4. `graph.lGraphConfig` graph config parameters `l1GraphConfig` and `l2GraphConfig` in hardhat config file - -The priority for the address book is: - -1. `hre.graph({ ... })` init parameter `addressBook` -2. `graph.addressBook` graph config parameter `addressBook` in hardhat config file - -### Graph task convenience method - -GRE accepts a few parameters when being initialized. When using GRE in the context of a hardhat task these parameters would typically be configured as task options. - -In order to simplify the creation of hardhat tasks that will make use of GRE and would require several options to be defined we provide a convenience method: `greTask`. This is a drop in replacement for hardhat's `task` that includes GRE related boilerplate, you can still customize the task as you would do with `task`. - -you avoid having to define GRE's options on all of your tasks. - -Here is an example of a task using this convenience method: - -```ts -import { greTask } from '../../gre/gre' - -greTask('hello-world', 'Say hi!', async (args, hre) => { - console.log('hello world') - const graph = hre.graph(args) -}) -``` - -```bash -✗ npx hardhat hello-world --help -Hardhat version 2.10.1 - -Usage: hardhat [GLOBAL OPTIONS] test-graph [--address-book ] [--disable-secure-accounts] [--graph-config ] [--l1-graph-config ] [--l2-graph-config ] - -OPTIONS: - - --address-book Path to the address book file. - --disable-secure-accounts Disable secure accounts. - --enable-tx-logging Enable transaction logging. - --graph-config Path to the graph config file for the network specified using --network. - --l1-graph-config Path to the graph config file for the L1 network. - --l2-graph-config Path to the graph config file for the L2 network. - -hello-world: Say hi! - -For global options help run: hardhat help -``` - -### Transaction Logging - -By default all transactions executed via GRE will be logged to a file. The file will be created on the first transaction with the following convention `tx-.log`. Here is a sample log file: - -```text -[2024-01-15T14:33:26.747Z] > Sending transaction: GraphToken.addMinter -[2024-01-15T14:33:26.747Z] = Sender: 0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1 -[2024-01-15T14:33:26.747Z] = Contract: 0x428aAe4Fa354c21600b6ec0077F2a6855C7dcbC8 -[2024-01-15T14:33:26.747Z] = Params: [ 0x05eA50dc2C0389117A067D393e0395ACc32c53b6 ] -[2024-01-15T14:33:26.747Z] = TxHash: 0xa9096e5f9f9a2208202ac3a8b895561dc3f781fa7e19350b0855098a08d193f7 -[2024-01-15T14:33:26.750Z] ✔ Transaction succeeded! -[2024-01-15T14:33:26.777Z] > Sending transaction: GraphToken.renounceMinter -[2024-01-15T14:33:26.777Z] = Sender: 0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1 -[2024-01-15T14:33:26.777Z] = Contract: 0x428aAe4Fa354c21600b6ec0077F2a6855C7dcbC8 -[2024-01-15T14:33:26.777Z] = Params: [ ] -[2024-01-15T14:33:26.777Z] = TxHash: 0x48233b256a1f98cb3fecc3dd48d7f7c0175042142e1ca7b9b1f9fc91169bb588 -[2024-01-15T14:33:26.780Z] ✔ Transaction succeeded! -``` - -If you want to disable transaction logging you can do so by setting the `enableTxLogging` option to `false` when initializing GRE: `g=graph({ disableSecureAccounts: true })` - -## API - -GRE exposes functionality via a simple API: - -```js -const graph = hre.graph() - -// To access the L1 object -graph.l1 - -// To access the L2 object -graph.l2 -``` - -The interface for both `l1` and `l2` objects looks like this: - -```ts -export interface GraphNetworkEnvironment { - chainId: number - contracts: NetworkContracts - provider: EthersProviderWrapper - graphConfig: any - addressBook: AddressBook - getNamedAccounts: () => Promise - getTestAccounts: () => Promise - getDeployer: () => Promise -} -``` - -### ChainId - -The chainId of the network. - -### Contracts - -Returns an object with all the contracts available in the network. Connects using a provider created with the URL specified in hardhat's network configuration (it doesn't use the usual hardhat `hre.ethers.provider`). - -```js -> const graph = hre.graph() - -// Print curation default reserve ratio on L1 -> await g.l1.contracts.Curation.defaultReserveRatio() -500000 -``` - -### Graph Config - -Returns an object that grants raw access to the YAML parse of the graph config file for the protocol. The graph config file is a YAML file that contains all the parameters with which the protocol was deployed. - -> TODO: add better APIs to interact with the graph config file. - -### Address Book - -Returns an object that allows interacting with the address book. - -```js -> const graph = hre.graph() -> graph.l1.addressBook.getEntry('Curation') -{ - address: '0xE59B4820dDE28D2c235Bd9A73aA4e8716Cb93E9B', - initArgs: [ - '0x48eD7AfbaB432d1Fc6Ea84EEC70E745d9DAcaF3B', - '0x2DFDC3e11E035dD96A4aB30Ef67fab4Fb6EC01f2', - '0x8bEd0a89F18a801Da9dEA994D475DEa74f75A059', - '500000', - '10000', - '1000000000000000000' - ], - creationCodeHash: '0x25a7b6cafcebb062169bc25fca9bcce8f23bd7411235859229ae3cc99b9a7d58', - runtimeCodeHash: '0xaf2d63813a0e5059f63ec46e1b280eb9d129d5ad548f0cdd1649d9798fde10b6', - txHash: '0xf1b1f0f28b80068bcc9fd6ef475be6324a8b23cbdb792f7344f05ce00aa997d7', - proxy: true, - implementation: { - address: '0xAeaA2B058539750b740E858f97159E6856948670', - creationCodeHash: '0x022576ab4b739ee17dab126ea7e5a6814bda724aa0e4c6735a051b38a76bd597', - runtimeCodeHash: '0xc7b1f9bef01ef92779aab0ae9be86376c47584118c508f5b4e612a694a4aab93', - txHash: '0x400bfb7b6c384363b859a66930590507ddca08ebedf64b20c4b5f6bc8e76e125' - } -} -``` - -**Account management: getNamedAccounts** -Returns an object with all the named accounts available in the network. Named accounts are accounts that have special roles in the protocol, they are defined in the graph config file. - -```js -> const graph = hre.graph() -> const namedAccounts = await g.l1.getNamedAccounts() -> namedAccounts.governor.address -'0xf1135bFF22512FF2A585b8d4489426CE660f204c' -``` - -The accounts are initialized from the graph config file but if the correct mnemonic or private key is provided via hardhat network configuration then they will be fully capable of signing transactions. Accounts are already connected to the network provider. - -**Account management: getTestAccounts** -Returns an object with accounts which can be used for testing/interacting with the protocol. These are obtained from hardhat's network configuration using the provided mnemonic or private key. Accounts are already connected to the network provider. - -**Account management: getDeployer** -Returns an object with the would-be deployer account. The deployer is by convention the first (index 0) account derived from the mnemonic or private key provided via hardhat network configuration. Deployer account is already connected to the network provider. - -It's important to note that the deployer is not a named account as it's derived from the provided mnemonic so it won't necessarily match the actual deployer for a given deployment. It's the account that would be used to deploy the protocol with the current configuration. It's not possible at the moment to recover the actual deployer account from a deployed protocol. - -**Account management: getWallets** -Returns an object with wallets derived from the mnemonic or private key provided via hardhat network configuration. These wallets are not connected to a provider. - -**Account management: getWallet** -Returns a wallet derived from the mnemonic or private key provided via hardhat network configuration that matches a given address. This wallet is not connected to a provider. - -### Integration with hardhat-secure-accounts - -[hardhat-secure-accounts](https://www.npmjs.com/package/hardhat-secure-accounts) is a hardhat plugin that allows you to use encrypted keystore files to store your private keys. GRE has built-in support to use this plugin. By default is enabled but can be disabled by setting the `disableSecureAccounts` option to `true` when instantiating the GRE object. When enabled, each time you call any of the account management methods you will be prompted for an account name and password to unlock: - -```js -// Without secure accounts -> const graph = hre.graph({ disableSecureAccounts: true }) -> const deployer = await g.l1.getDeployer() -> deployer.address -'0xBc7f4d3a85B820fDB1058FD93073Eb6bc9AAF59b' - -// With secure accounts -> const graph = hre.graph() -> const deployer = await g.l1.getDeployer() -== Using secure accounts, please unlock an account for L1(goerli) -Available accounts: goerli-deployer, arbitrum-goerli-deployer, rinkeby-deployer, test-mnemonic -Choose an account to unlock (use tab to autocomplete): test-mnemonic -Enter the password for this account: ************ -> deployer.address -'0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1' -``` diff --git a/packages/sdk/src/gre/accounts.ts b/packages/sdk/src/gre/accounts.ts deleted file mode 100644 index f4c72657f..000000000 --- a/packages/sdk/src/gre/accounts.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { Wallet } from 'ethers' -import { derivePrivateKeys } from 'hardhat/internal/core/providers/util' -import { HttpNetworkHDAccountsConfig, NetworksConfig } from 'hardhat/types' - -import { getItemValue, readConfig } from '../deployments/lib/config' -import { GREPluginError } from './helpers/error' -import { getNetworkName } from './helpers/network' -import type { AccountNames, NamedAccounts } from './types' - -const namedAccountList: AccountNames[] = [ - 'arbitrator', - 'governor', - 'authority', - 'availabilityOracle', - 'pauseGuardian', - 'allocationExchangeOwner', -] - -export async function getNamedAccounts( - provider: EthersProviderWrapper, - graphConfigPath: string, -): Promise { - const namedAccounts = namedAccountList.reduce( - async (accountsPromise, name) => { - const accounts = await accountsPromise - let address: string | undefined - try { - address = getItemValue(readConfig(graphConfigPath, true), `general/${name}`) as string | undefined - } catch { - // Skip if not found - } - if (address) { - accounts[name] = await SignerWithAddress.create(provider.getSigner(address)) - } - return accounts - }, - Promise.resolve({} as NamedAccounts), - ) - - return namedAccounts -} - -export async function getDeployer(provider: EthersProviderWrapper): Promise { - const signer = provider.getSigner(0) - return SignerWithAddress.create(signer) -} - -export async function getTestAccounts( - provider: EthersProviderWrapper, - graphConfigPath: string, -): Promise { - // Get list of privileged accounts we don't want as test accounts - const namedAccounts = await getNamedAccounts(provider, graphConfigPath) - const blacklist = namedAccountList.reduce((accounts: string[], name) => { - const account = namedAccounts[name] - if (account) { - accounts.push(account.address) - } - return accounts - }, []) - blacklist.push((await getDeployer(provider)).address) - - // Get signers and filter out blacklisted accounts - const accounts = await provider.listAccounts() - const signers = await Promise.all( - accounts.map(async (account) => await SignerWithAddress.create(provider.getSigner(account))), - ) - - return signers.filter((s) => { - return !blacklist.includes(s.address) - }) -} - -export async function getAllAccounts(provider: EthersProviderWrapper): Promise { - const accounts = await provider.listAccounts() - return await Promise.all(accounts.map(async (account) => await SignerWithAddress.create(provider.getSigner(account)))) -} - -export async function getWallets( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, -): Promise { - const networkName = getNetworkName(networks, chainId, mainNetworkName) - if (networkName === undefined) { - throw new GREPluginError(`Could not find networkName for chainId: ${chainId}!`) - } - const accounts = networks[networkName].accounts - const mnemonic = (accounts as HttpNetworkHDAccountsConfig).mnemonic - - if (mnemonic) { - const privateKeys = derivePrivateKeys(mnemonic, "m/44'/60'/0'/0/", 0, 20, '') - return privateKeys.map((privateKey) => new Wallet(privateKey)) - } - - return [] -} - -export async function getWallet( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, - address: string, -): Promise { - const wallets = await getWallets(networks, chainId, mainNetworkName) - const found = wallets.find((w) => w.address === address) - if (found === undefined) { - throw new GREPluginError(`Could not find wallet for address: ${address}!`) - } - return found -} diff --git a/packages/sdk/src/gre/config.ts b/packages/sdk/src/gre/config.ts deleted file mode 100644 index 35298b11f..000000000 --- a/packages/sdk/src/gre/config.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' -import fs from 'fs' -import { HardhatRuntimeEnvironment } from 'hardhat/types/runtime' -import path from 'path' - -import { counterpart, isGraphChainId, isGraphL1ChainId, isGraphL2ChainId } from '..' -import { GREPluginError } from './helpers/error' -import { logDebug } from './helpers/logger' -import { getNetworkConfig } from './helpers/network' -import { normalizePath } from './helpers/utils' -import { getDefaultProvider } from './providers' -import type { GraphRuntimeEnvironmentOptions } from './types' - -interface GREChains { - l1ChainId: number - l2ChainId: number - isHHL1: boolean - isHHL2: boolean -} - -interface GREProviders { - l1Provider: EthersProviderWrapper | undefined - l2Provider: EthersProviderWrapper | undefined -} - -interface GREGraphConfigs { - l1GraphConfigPath: string | undefined - l2GraphConfigPath: string | undefined -} - -export function getAddressBookPath(hre: HardhatRuntimeEnvironment, opts: GraphRuntimeEnvironmentOptions): string { - logDebug('== Getting address book path') - logDebug(`Graph base dir: ${hre.config.paths.graph}`) - logDebug(`1) opts.addressBook: ${opts.addressBook}`) - logDebug(`2) hre.network.config.addressBook: ${hre.network.config?.addressBook}`) - logDebug(`3) hre.config.graph.addressBook: ${hre.config.graph?.addressBook}`) - - let addressBookFileName = opts.addressBook ?? hre.network.config?.addressBook ?? hre.config.graph?.addressBook - - if (addressBookFileName === undefined) { - throw new GREPluginError('Must set a an addressBook path!') - } - - // If it's a relative or absolute path, extract just the filename - addressBookFileName = path.basename(addressBookFileName) - - // Use module resolution to find the contracts package directory - try { - const contractsModulePath = require.resolve('@graphprotocol/contracts') - const contractsPackageDir = path.dirname(contractsModulePath) - const addressBookPath = path.join(contractsPackageDir, addressBookFileName) - - if (!fs.existsSync(addressBookPath)) { - throw new GREPluginError(`Address book not found: ${addressBookPath}`) - } - - logDebug(`Address book path found: ${addressBookPath}`) - return addressBookPath - } catch (error) { - throw new GREPluginError(`Could not resolve @graphprotocol/contracts package: ${error}`) - } -} - -export function getChains(mainChainId: number | undefined): GREChains { - logDebug('== Getting chain ids') - logDebug(`Hardhat chain id: ${mainChainId}`) - - if (!isGraphChainId(mainChainId)) { - throw new GREPluginError(`Chain ${mainChainId} is not supported!`) - } - - // If mainChainId is supported there is a supported counterpart chainId so both chains are not undefined - mainChainId = mainChainId! - - const secondaryChainId = counterpart(mainChainId) - logDebug(`Secondary chain id: ${secondaryChainId}`) - - const isHHL1 = isGraphL1ChainId(mainChainId) - const isHHL2 = isGraphL2ChainId(mainChainId) - const l1ChainId = isHHL1 ? mainChainId : secondaryChainId - const l2ChainId = isHHL2 ? mainChainId : secondaryChainId - - logDebug(`L1 chain id: ${l1ChainId} - Is HHL1: ${isHHL1}`) - logDebug(`L2 chain id: ${l2ChainId} - Is HHL2: ${isHHL2}`) - - return { - l1ChainId, - l2ChainId, - isHHL1, - isHHL2, - } -} - -export function getDefaultProviders( - hre: HardhatRuntimeEnvironment, - l1ChainId: number, - l2ChainId: number, - isHHL1: boolean, -): GREProviders { - logDebug('== Getting providers') - - const l1Provider = getDefaultProvider(hre.config.networks, l1ChainId, hre.network, isHHL1, 'L1') - const l2Provider = getDefaultProvider(hre.config.networks, l2ChainId, hre.network, !isHHL1, 'L2') - - return { - l1Provider, - l2Provider, - } -} - -export function getGraphConfigPaths( - hre: HardhatRuntimeEnvironment, - opts: GraphRuntimeEnvironmentOptions, - l1ChainId: number, - l2ChainId: number, - isHHL1: boolean, -): GREGraphConfigs { - logDebug('== Getting graph config paths') - logDebug(`Graph base dir: ${hre.config.paths.graph}`) - - const l1Network = getNetworkConfig(hre.config.networks, l1ChainId, hre.network.name) - const l2Network = getNetworkConfig(hre.config.networks, l2ChainId, hre.network.name) - - // Priority is as follows: - // - hre.graph() init parameter l1GraphConfigPath/l2GraphConfigPath - // - hre.graph() init parameter graphConfigPath (only for layer corresponding to hh network) - // - hh network config - // - hh graph config (layer specific: l1GraphConfig, l2GraphConfig) - let l1GraphConfigPath = - opts.l1GraphConfig ?? - (isHHL1 ? opts.graphConfig : undefined) ?? - l1Network?.graphConfig ?? - hre.config.graph.l1GraphConfig - - logDebug(`> L1 graph config`) - logDebug(`1) opts.l1GraphConfig: ${opts.l1GraphConfig}`) - logDebug(`2) opts.graphConfig: ${isHHL1 ? opts.graphConfig : undefined}`) - logDebug(`3) l1Network.graphConfig: ${l1Network?.graphConfig}`) - logDebug(`4) hre.config.graph.l1GraphConfig: ${hre.config.graph.l1GraphConfig}`) - - if (isHHL1 && l1GraphConfigPath === undefined) { - throw new GREPluginError('Must specify a graph config file for L1!') - } - - if (l1GraphConfigPath !== undefined) { - l1GraphConfigPath = normalizePath(l1GraphConfigPath, hre.config.paths.graph) - } - - let l2GraphConfigPath = - opts.l2GraphConfig ?? - (!isHHL1 ? opts.graphConfig : undefined) ?? - l2Network?.graphConfig ?? - hre.config.graph.l2GraphConfig - - logDebug(`> L2 graph config`) - logDebug(`1) opts.l2GraphConfig: ${opts.l2GraphConfig}`) - logDebug(`2) opts.graphConfig: ${!isHHL1 ? opts.graphConfig : undefined}`) - logDebug(`3) l2Network.graphConfig: ${l2Network?.graphConfig}`) - logDebug(`4) hre.config.graph.l2GraphConfig: ${hre.config.graph.l2GraphConfig}`) - - if (!isHHL1 && l2GraphConfigPath === undefined) { - throw new GREPluginError('Must specify a graph config file for L2!') - } - - if (l2GraphConfigPath !== undefined) { - l2GraphConfigPath = normalizePath(l2GraphConfigPath, hre.config.paths.graph) - } - - for (const configPath of [l1GraphConfigPath, l2GraphConfigPath]) { - if (configPath !== undefined && !fs.existsSync(configPath)) { - throw new GREPluginError(`Graph config file not found: ${configPath}`) - } - } - - logDebug(`L1 graph config path: ${l1GraphConfigPath}`) - logDebug(`L2 graph config path: ${l2GraphConfigPath}`) - - return { - l1GraphConfigPath: l1GraphConfigPath, - l2GraphConfigPath: l2GraphConfigPath, - } -} diff --git a/packages/sdk/src/gre/gre.ts b/packages/sdk/src/gre/gre.ts deleted file mode 100644 index bc5253473..000000000 --- a/packages/sdk/src/gre/gre.ts +++ /dev/null @@ -1,195 +0,0 @@ -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' -import { Wallet } from 'ethers' -import { lazyFunction, lazyObject } from 'hardhat/plugins' -import { HardhatConfig, HardhatRuntimeEnvironment, HardhatUserConfig } from 'hardhat/types' -import path from 'path' - -import { GraphNetworkAddressBook, loadGraphNetworkContracts } from '..' -import { getDefaults } from '..' -import { readConfig } from '../deployments/lib/config' -import { getAllAccounts, getDeployer, getNamedAccounts, getTestAccounts, getWallet, getWallets } from './accounts' -import { getAddressBookPath, getChains, getDefaultProviders, getGraphConfigPaths } from './config' -import { logDebug, logWarn } from './helpers/logger' -import { getSecureAccountsProvider } from './providers' -import type { GraphNetworkEnvironment, GraphRuntimeEnvironment, GraphRuntimeEnvironmentOptions } from './types' - -export const greExtendConfig = (config: HardhatConfig, userConfig: Readonly) => { - // Source for the path convention: - // https://github.com/NomicFoundation/hardhat-ts-plugin-boilerplate/blob/d450d89f4b6ed5d26a8ae32b136b9c55d2aadab5/src/index.ts - const userPath = userConfig.paths?.graph - - let newPath: string - if (userPath === undefined) { - newPath = config.paths.root - } else { - if (path.isAbsolute(userPath)) { - newPath = userPath - } else { - newPath = path.normalize(path.join(config.paths.root, userPath)) - } - } - - config.paths.graph = newPath -} - -export const greExtendEnvironment = (hre: HardhatRuntimeEnvironment) => { - hre.graph = (opts: GraphRuntimeEnvironmentOptions = {}) => { - logDebug('*** Initializing Graph Runtime Environment (GRE) ***') - logDebug(`Main network: ${hre.network.name}`) - - logDebug('== Features') - - // Tx logging - const enableTxLogging = opts.enableTxLogging ?? true - logDebug(`Tx logging: ${enableTxLogging ? 'enabled' : 'disabled'}`) - - // Secure accounts - const secureAccounts = !(opts.disableSecureAccounts ?? hre.config.graph?.disableSecureAccounts ?? false) - logDebug(`Secure accounts: ${secureAccounts ? 'enabled' : 'disabled'}`) - - // Forking - const fork = opts.fork ?? hre.config.graph?.fork ?? false - logDebug(`Forking: ${fork ? 'enabled' : 'disabled'}`) - - if (fork && hre.network.config.accounts !== 'remote') { - console.log(hre.network.config.accounts) - - logWarn('Forking is enabled but the network is not configured to use remote accounts') - } - - const { l1ChainId, l2ChainId, isHHL1 } = getChains(hre.network.config.chainId) - - // Default providers for L1 and L2 - const { l1Provider, l2Provider } = getDefaultProviders(hre, l1ChainId, l2ChainId, isHHL1) - - // Getters to unlock secure account providers for L1 and L2 - const l1UnlockProvider = (caller: string) => - getSecureAccountsProvider( - hre.accounts, - hre.config.networks, - l1ChainId, - hre.network.name, - isHHL1, - 'L1', - caller, - opts.l1AccountName, - opts.l1AccountPassword, - ) - - const l2UnlockProvider = (caller: string) => - getSecureAccountsProvider( - hre.accounts, - hre.config.networks, - l2ChainId, - hre.network.name, - !isHHL1, - 'L2', - caller, - opts.l2AccountName, - opts.l2AccountPassword, - ) - - const addressBookPath = getAddressBookPath(hre, opts) - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths(hre, opts, l1ChainId, l2ChainId, isHHL1) - - // Wallet functions - const l1GetWallets = () => getWallets(hre.config.networks, l1ChainId, hre.network.name) - const l1GetWallet = (address: string) => getWallet(hre.config.networks, l1ChainId, hre.network.name, address) - const l2GetWallets = () => getWallets(hre.config.networks, l2ChainId, hre.network.name) - const l2GetWallet = (address: string) => getWallet(hre.config.networks, l2ChainId, hre.network.name, address) - - // Build the Graph Runtime Environment (GRE) - const l1Graph: GraphNetworkEnvironment | null = buildGraphNetworkEnvironment( - l1ChainId, - l1Provider, - l1GraphConfigPath, - addressBookPath, - isHHL1, - enableTxLogging, - secureAccounts, - fork, - l1GetWallets, - l1GetWallet, - l1UnlockProvider, - ) - - const l2Graph: GraphNetworkEnvironment | null = buildGraphNetworkEnvironment( - l2ChainId, - l2Provider, - l2GraphConfigPath, - addressBookPath, - isHHL1, - enableTxLogging, - secureAccounts, - fork, - l2GetWallets, - l2GetWallet, - l2UnlockProvider, - ) - - const gre: GraphRuntimeEnvironment = { - ...(isHHL1 ? (l1Graph as GraphNetworkEnvironment) : (l2Graph as GraphNetworkEnvironment)), - l1: l1Graph, - l2: l2Graph, - } - - logDebug('GRE initialized successfully!') - logDebug(`Main network: L${isHHL1 ? '1' : '2'}`) - logDebug(`Secondary network: ${gre.l2 !== null ? (isHHL1 ? 'L2' : 'L1') : 'not initialized'}`) - return gre - } -} - -function buildGraphNetworkEnvironment( - chainId: number, - provider: EthersProviderWrapper | undefined, - graphConfigPath: string | undefined, - addressBookPath: string, - isHHL1: boolean, - enableTxLogging: boolean, - secureAccounts: boolean, - fork: boolean, - getWallets: () => Promise, - getWallet: (address: string) => Promise, - unlockProvider: (caller: string) => Promise, -): GraphNetworkEnvironment | null { - if (graphConfigPath === undefined) { - logWarn(`No graph config file provided for chain: ${chainId}. ${isHHL1 ? 'L2' : 'L1'} will not be initialized.`) - return null - } - - if (provider === undefined) { - logWarn(`No provider URL found for: ${chainId}. ${isHHL1 ? 'L2' : 'L1'} will not be initialized.`) - return null - } - - // Upgrade provider to secure accounts if feature is enabled - const getUpdatedProvider = async (caller: string) => (secureAccounts ? await unlockProvider(caller) : provider) - - return { - chainId: chainId, - provider: provider, - addressBook: lazyObject(() => new GraphNetworkAddressBook(addressBookPath, chainId)), - graphConfig: lazyObject(() => { - const config = readConfig(graphConfigPath, true) - config.defaults = getDefaults(config, isHHL1) - return config - }), - contracts: lazyObject(() => - loadGraphNetworkContracts(addressBookPath, chainId, provider, undefined, { - enableTxLogging, - }), - ), - getWallets: lazyFunction(() => () => getWallets()), - getWallet: lazyFunction(() => (address: string) => getWallet(address)), - getDeployer: lazyFunction(() => async () => getDeployer(await getUpdatedProvider('getDeployer'))), - getNamedAccounts: lazyFunction( - () => async () => - getNamedAccounts(fork ? provider : await getUpdatedProvider('getNamedAccounts'), graphConfigPath), - ), - getTestAccounts: lazyFunction( - () => async () => getTestAccounts(await getUpdatedProvider('getTestAccounts'), graphConfigPath), - ), - getAllAccounts: lazyFunction(() => async () => getAllAccounts(await getUpdatedProvider('getAllAccounts'))), - } -} diff --git a/packages/sdk/src/gre/helpers/argv.ts b/packages/sdk/src/gre/helpers/argv.ts deleted file mode 100644 index fa701e7bc..000000000 --- a/packages/sdk/src/gre/helpers/argv.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { GraphRuntimeEnvironmentOptions } from '../types' - -export function getGREOptsFromArgv(): GraphRuntimeEnvironmentOptions { - const argv = process.argv.slice(2) - - const getArgv = (index: number): string | undefined => - argv[index] && argv[index] !== 'undefined' ? argv[index] : undefined - - return { - addressBook: getArgv(0), - graphConfig: getArgv(1), - l1GraphConfig: getArgv(2), - l2GraphConfig: getArgv(3), - disableSecureAccounts: getArgv(4) === 'true', - fork: getArgv(5) === 'true', - } -} diff --git a/packages/sdk/src/gre/helpers/error.ts b/packages/sdk/src/gre/helpers/error.ts deleted file mode 100644 index 56995b4d5..000000000 --- a/packages/sdk/src/gre/helpers/error.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { HardhatPluginError } from 'hardhat/plugins' - -import { logError } from './logger' - -export class GREPluginError extends HardhatPluginError { - constructor(message: string) { - super('GraphRuntimeEnvironment', message) - logError(message) - } -} diff --git a/packages/sdk/src/gre/helpers/logger.ts b/packages/sdk/src/gre/helpers/logger.ts deleted file mode 100644 index a768d6b04..000000000 --- a/packages/sdk/src/gre/helpers/logger.ts +++ /dev/null @@ -1,7 +0,0 @@ -import debug from 'debug' - -const LOG_BASE = 'hardhat:gre' - -export const logDebug = debug(`${LOG_BASE}:debug`) -export const logWarn = debug(`${LOG_BASE}:warn`) -export const logError = debug(`${LOG_BASE}:error`) diff --git a/packages/sdk/src/gre/helpers/network.ts b/packages/sdk/src/gre/helpers/network.ts deleted file mode 100644 index 25e2d4cd7..000000000 --- a/packages/sdk/src/gre/helpers/network.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { NetworkConfig, NetworksConfig } from 'hardhat/types/config' - -import { counterpartName } from '../..' -import { GREPluginError } from './error' -import { logDebug, logWarn } from './logger' - -export function getNetworkConfig( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, -): (NetworkConfig & { name: string }) | undefined { - const candidateNetworks = Object.keys(networks) - .map((n) => ({ ...networks[n], name: n })) - .filter((n) => n.chainId === chainId) - - if (candidateNetworks.length > 1) { - logWarn(`Found multiple networks with chainId ${chainId}, trying to use main network name to desambiguate`) - - const filteredByMainNetworkName = candidateNetworks.filter((n) => n.name === mainNetworkName) - - if (filteredByMainNetworkName.length === 1) { - logDebug(`Found network with chainId ${chainId} and name ${mainNetworkName}`) - return filteredByMainNetworkName[0] - } else { - logWarn(`Could not desambiguate with main network name, trying secondary network name`) - const secondaryNetworkName = counterpartName(mainNetworkName) - const filteredBySecondaryNetworkName = candidateNetworks.filter((n) => n.name === secondaryNetworkName) - - if (filteredBySecondaryNetworkName.length === 1) { - logDebug(`Found network with chainId ${chainId} and name ${mainNetworkName}`) - return filteredBySecondaryNetworkName[0] - } else { - throw new GREPluginError(`Could not desambiguate network with chainID ${chainId}. Use case not supported!`) - } - } - } else if (candidateNetworks.length === 1) { - return candidateNetworks[0] - } else { - return undefined - } -} - -export function getNetworkName(networks: NetworksConfig, chainId: number, mainNetworkName: string): string | undefined { - const network = getNetworkConfig(networks, chainId, mainNetworkName) - return network?.name -} diff --git a/packages/sdk/src/gre/helpers/utils.ts b/packages/sdk/src/gre/helpers/utils.ts deleted file mode 100644 index 3fcf810d7..000000000 --- a/packages/sdk/src/gre/helpers/utils.ts +++ /dev/null @@ -1,8 +0,0 @@ -import path from 'path' - -export function normalizePath(_path: string, graphPath?: string): string { - if (!path.isAbsolute(_path) && graphPath !== undefined) { - _path = path.join(graphPath, _path) - } - return _path -} diff --git a/packages/sdk/src/gre/index.ts b/packages/sdk/src/gre/index.ts deleted file mode 100644 index d739b745a..000000000 --- a/packages/sdk/src/gre/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Plugin dependencies -import 'hardhat-secure-accounts' -// This import is needed to let the TypeScript compiler know that it should include your type -// extensions in your npm package's types file. -import './type-extensions' - -import { extendConfig, extendEnvironment } from 'hardhat/config' - -import { greExtendConfig, greExtendEnvironment } from './gre' - -// ** Graph Runtime Environment (GRE) extensions for the HRE ** -extendConfig(greExtendConfig) -extendEnvironment(greExtendEnvironment) - -// Exports -export { getGREOptsFromArgv } from './helpers/argv' -export { greTask as greTask } from './task' -export * from './types' diff --git a/packages/sdk/src/gre/providers.ts b/packages/sdk/src/gre/providers.ts deleted file mode 100644 index e35dbc771..000000000 --- a/packages/sdk/src/gre/providers.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' -import { HARDHAT_NETWORK_NAME } from 'hardhat/plugins' -import { HttpNetworkConfig, NetworksConfig } from 'hardhat/types/config' -import { Network } from 'hardhat/types/runtime' -import { AccountsRuntimeEnvironment } from 'hardhat-secure-accounts/dist/src/type-extensions' - -import { GREPluginError } from './helpers/error' -import { logDebug } from './helpers/logger' -import { getNetworkConfig, getNetworkName } from './helpers/network' - -export const getDefaultProvider = ( - networks: NetworksConfig, - chainId: number, - network: Network, - isMainProvider: boolean, - chainLabel: string, -): EthersProviderWrapper | undefined => { - // Don't recreate provider if we are on hardhat network. This avoids issues with - // hardhat node not responding to requests from the recreated provider - if (network.name === 'hardhat') { - logDebug(`Hardhat network detected; using default provider for ${chainLabel}(${network.name})`) - return new EthersProviderWrapper(network.provider) - } - - const { networkConfig, networkName } = getNetworkData(networks, chainId, network.name, isMainProvider, chainLabel) - - if (networkConfig === undefined || networkName === undefined) { - return undefined - } - - logDebug(`Creating provider for ${chainLabel}(${networkName})`) - const ethersProviderWrapper = new EthersProviderWrapper(network.provider) - return ethersProviderWrapper -} - -export const getSecureAccountsProvider = async ( - accounts: AccountsRuntimeEnvironment, - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, - isMainProvider: boolean, - chainLabel: string, - caller: string, - accountName?: string, - accountPassword?: string, -): Promise => { - const { networkConfig, networkName } = getNetworkData(networks, chainId, mainNetworkName, isMainProvider, chainLabel) - - if (networkConfig === undefined || networkName === undefined) { - throw new GREPluginError( - `Could not get secure accounts provider for ${chainLabel}(${networkName})! - Caller is ${caller}`, - ) - } - - logDebug(`Using secure accounts provider for ${chainLabel}(${networkName}) - Caller is ${caller}`) - if (accountName === undefined || accountPassword === undefined) { - console.log( - `== Using secure accounts, please unlock an account for ${chainLabel}(${networkName}) - Caller is ${caller}`, - ) - } - - return await accounts.getProvider( - { name: networkName, config: networkConfig } as Network, - accountName, - accountPassword, - ) -} - -const getNetworkData = ( - networks: NetworksConfig, - chainId: number, - mainNetworkName: string, - isMainProvider: boolean, - chainLabel: string, -): { networkConfig: HttpNetworkConfig | undefined; networkName: string | undefined } => { - const networkConfig = getNetworkConfig(networks, chainId, mainNetworkName) as HttpNetworkConfig - const networkName = getNetworkName(networks, chainId, mainNetworkName) - - logDebug(`Provider url for ${chainLabel}(${networkName}): ${networkConfig?.url}`) - - // Ensure at least main provider is configured - // For Hardhat network we don't need url to create a provider - if ( - isMainProvider && - (networkConfig === undefined || networkConfig.url === undefined) && - networkName !== HARDHAT_NETWORK_NAME - ) { - throw new GREPluginError(`Must set a provider url for chain: ${chainId}!`) - } - - return { networkConfig, networkName } -} diff --git a/packages/sdk/src/gre/task.ts b/packages/sdk/src/gre/task.ts deleted file mode 100644 index ca6690b7a..000000000 --- a/packages/sdk/src/gre/task.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { task } from 'hardhat/config' -import { ActionType, ConfigurableTaskDefinition } from 'hardhat/types/runtime' - -function grePrefix(text: string): string { - return `[GRE] ${text}` -} - -export function greTask( - name: string, - description?: string | undefined, - action?: ActionType | undefined, -): ConfigurableTaskDefinition { - return task(name, description, action) - .addOptionalParam('addressBook', grePrefix('Path to the address book file.')) - .addOptionalParam( - 'graphConfig', - grePrefix( - 'Path to the graph config file for the network specified using --network. Lower priority than --l1GraphConfig and --l2GraphConfig.', - ), - ) - .addOptionalParam('l1GraphConfig', grePrefix('Path to the graph config file for the L1 network.')) - .addOptionalParam('l2GraphConfig', grePrefix('Path to the graph config file for the L2 network.')) - .addFlag('disableSecureAccounts', grePrefix('Disable secure accounts plugin.')) - .addFlag('enableTxLogging', grePrefix('Enable transaction logging.')) - .addFlag('fork', grePrefix('Wether or not the network is a fork.')) -} diff --git a/packages/sdk/src/gre/test/accounts.test.ts b/packages/sdk/src/gre/test/accounts.test.ts deleted file mode 100644 index 009a4a602..000000000 --- a/packages/sdk/src/gre/test/accounts.test.ts +++ /dev/null @@ -1,223 +0,0 @@ -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import chai, { expect } from 'chai' -import chaiAsPromised from 'chai-as-promised' -import { ethers } from 'ethers' - -import type { AccountNames, GraphRuntimeEnvironment } from '../types' -import { useEnvironment } from './helpers' - -chai.use(chaiAsPromised) - -const mnemonic = 'pumpkin orient can short never warm truth legend cereal tourist craft skin' - -describe('GRE usage > account management', function () { - // Tests that loop through all the wallets take more than the default timeout - this.timeout(10_000) - - useEnvironment('graph-config', 'hardhat') - - let graph: GraphRuntimeEnvironment - - beforeEach(function () { - graph = this.hre.graph() - }) - - describe('getWallets', function () { - it('should return 20 wallets', async function () { - const wallets = await graph.getWallets() - expect(wallets.length).to.equal(20) - }) - - it('should derive wallets from hardhat config mnemonic', async function () { - const wallets = await graph.getWallets() - - for (let i = 0; i < wallets.length; i++) { - const derived = ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${i}`) - expect(wallets[i].address).to.equal(derived.address) - } - }) - - it('should return wallets capable of signing messages', async function () { - const wallets = await graph.getWallets() - - for (const wallet of wallets) { - await expect(wallet.signMessage('test')).to.eventually.be.fulfilled - } - }) - - it('should return wallets not connected to a provider', async function () { - const wallets = await graph.getWallets() - - for (const wallet of wallets) { - expect(wallet.provider).to.be.null - } - }) - }) - - describe('getWallet', function () { - it('should return wallet if provided address can be derived from mnemonic', async function () { - for (let i = 0; i < 20; i++) { - const derived = ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${i}`) - const wallet = await graph.getWallet(derived.address) - expect(wallet.address).to.equal(derived.address) - } - }) - - it('should return wallet capable of signing messages', async function () { - for (let i = 0; i < 20; i++) { - const derived = ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${i}`) - const wallet = await graph.getWallet(derived.address) - await expect(wallet.signMessage('test')).to.eventually.be.fulfilled - } - }) - - it('should return wallet not connected to a provider', async function () { - for (let i = 0; i < 20; i++) { - const derived = ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${i}`) - const wallet = await graph.getWallet(derived.address) - expect(wallet.provider).to.be.null - } - }) - - it('should throw if provided address cant be derived from mnemonic', async function () { - const getWallet = graph.getWallet('0x0000000000000000000000000000000000000000') - await expect(getWallet).to.eventually.be.rejectedWith(/Could not find wallet for address: /) - }) - }) -}) - -describe('GRE usage > secure accounts', function () { - useEnvironment('graph-config', 'hardhat') - - let graph: GraphRuntimeEnvironment - let graphSecureAccounts: GraphRuntimeEnvironment - - beforeEach(function () { - graph = this.hre.graph({ - disableSecureAccounts: true, - }) - - graphSecureAccounts = this.hre.graph({ - disableSecureAccounts: false, - l1AccountName: 'test-account', - l1AccountPassword: 'batman-with-cheese', - l2AccountName: 'test-account-l2', - l2AccountPassword: 'batman-with-cheese', - }) - }) - - describe('getDeployer', function () { - it('should return different accounts', async function () { - const deployer = await graph.l1!.getDeployer() - const deployerSecureAccount = await graphSecureAccounts.l1!.getDeployer() - - expect(deployer.address).not.to.equal(deployerSecureAccount.address) - expect(deployer.address).to.equal('0x2770fb12b368a9aBf4A02DB34B0F6057fC03BD0d') - expect(deployerSecureAccount.address).to.equal('0xC108fda1b5b2903751594298769Efd4904b146bD') - }) - - it('should return accounts capable of signing messages', async function () { - const deployer = await graph.l1!.getDeployer() - const deployerSecureAccount = await graphSecureAccounts.l1!.getDeployer() - - await expect(deployer.signMessage('test')).to.eventually.be.fulfilled - await expect(deployerSecureAccount.signMessage('test')).to.eventually.be.fulfilled - }) - }) - - describe('getNamedAccounts', function () { - it('should return the same accounts', async function () { - const accounts = await graph.l1!.getNamedAccounts() - const secureAccounts = await graphSecureAccounts.l1!.getNamedAccounts() - - const accountNames = Object.keys(accounts) as AccountNames[] - const secureAccountNames = Object.keys(secureAccounts) - - expect(accountNames.length).to.equal(secureAccountNames.length) - - for (const name of accountNames) { - const account = accounts[name] - const secureAccount = secureAccounts[name] - - expect(account.address).to.equal(secureAccount.address) - } - }) - - it('should return accounts incapable of signing messages', async function () { - const accounts = await graph.l1!.getNamedAccounts() - const secureAccounts = await graphSecureAccounts.l1!.getNamedAccounts() - - const accountNames = Object.keys(accounts) as AccountNames[] - - for (const name of accountNames) { - const account = accounts[name] - const secureAccount = secureAccounts[name] - - await expect(account.signMessage('test')).to.eventually.be.rejectedWith(/unknown account/) - await expect(secureAccount.signMessage('test')).to.eventually.be.rejected - const tx = account.sendTransaction({ - to: ethers.constants.AddressZero, - value: ethers.utils.parseEther('0'), - }) - await expect(tx).to.eventually.be.rejected - } - }) - }) - - describe('getTestAccounts', function () { - it('should return different accounts', async function () { - const accounts = await graph.l1!.getTestAccounts() - const secureAccounts = await graphSecureAccounts.l1!.getTestAccounts() - - expect(accounts.length).to.equal(secureAccounts.length) - - for (let i = 0; i < accounts.length; i++) { - expect(accounts[i].address).not.to.equal(secureAccounts[i].address) - } - }) - - it('should return accounts capable of signing messages', async function () { - const accounts = await graph.l1!.getTestAccounts() - const secureAccounts = await graphSecureAccounts.l1!.getTestAccounts() - - for (let i = 0; i < accounts.length; i++) { - await expect(accounts[i].signMessage('test')).to.eventually.be.fulfilled - await expect(secureAccounts[i].signMessage('test')).to.eventually.be.fulfilled - } - }) - }) -}) - -describe('GRE usage > fork', function () { - useEnvironment('graph-config', 'hardhat') - - let graph: GraphRuntimeEnvironment - - beforeEach(function () { - graph = this.hre.graph({ - fork: true, - }) - }) - describe('getNamedAccounts', function () { - it('should allow impersonating named accounts', async function () { - const accounts = await graph.l1!.getNamedAccounts() - const secureAccounts = await graph.l1!.getNamedAccounts() - - const accountNames = Object.keys(accounts) as AccountNames[] - - for (const name of accountNames) { - const account: SignerWithAddress = accounts[name] - const secureAccount: SignerWithAddress = secureAccounts[name] - - await expect(account.signMessage('test')).to.eventually.be.rejectedWith(/unknown account/) - await expect(secureAccount.signMessage('test')).to.eventually.be.rejected - - const tx = account.sendTransaction({ - to: ethers.constants.AddressZero, - value: ethers.utils.parseEther('0'), - }) - await expect(tx).to.eventually.be.fulfilled - } - }) - }) -}) diff --git a/packages/sdk/src/gre/test/config.test.ts b/packages/sdk/src/gre/test/config.test.ts deleted file mode 100644 index 27302228d..000000000 --- a/packages/sdk/src/gre/test/config.test.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { expect } from 'chai' -import path from 'path' - -import { getAddressBookPath, getChains, getDefaultProviders, getGraphConfigPaths } from '../config' -import { getNetworkName } from '../helpers/network' -import { useEnvironment } from './helpers' - -describe('GRE init functions', function () { - describe('getAddressBookPath with graph-config project', function () { - useEnvironment('graph-config') - - it('should use opts parameter if available', function () { - const addressBook = getAddressBookPath(this.hre, { - addressBook: 'addresses-opts.json', - }) - expect(path.basename(addressBook)).to.equal('addresses-opts.json') - }) - - it('should use HH graph config if opts parameter not available ', function () { - const addressBook = getAddressBookPath(this.hre, {}) - expect(path.basename(addressBook)).to.equal('addresses-hre.json') - }) - }) - - describe('getAddressBookPath with default-config project', function () { - useEnvironment('default-config') - - it('should throw if no address book is specified', function () { - expect(() => getAddressBookPath(this.hre, {})).to.throw('Must set a an addressBook path!') - }) - }) - - describe('getAddressBookPath with graph-config-bad project', function () { - useEnvironment('graph-config-bad') - - it("should throw if address book doesn't exist", function () { - expect(() => getAddressBookPath(this.hre, {})).to.throw(/Address book not found: /) - }) - }) - - describe('getChains', function () { - it('should return L1 and L2 chain ids for a supported L1 chain', function () { - const { l1ChainId, l2ChainId, isHHL1, isHHL2 } = getChains(5) // Goerli - - expect(l1ChainId).to.equal(5) - expect(l2ChainId).to.equal(421613) - expect(isHHL1).to.equal(true) - expect(isHHL2).to.equal(false) - }) - it('should return L1 and L2 chain ids for a supported L2 chain', function () { - const { l1ChainId, l2ChainId, isHHL1, isHHL2 } = getChains(42161) // Arbitrum One - - expect(l1ChainId).to.equal(1) - expect(l2ChainId).to.equal(42161) - expect(isHHL1).to.equal(false) - expect(isHHL2).to.equal(true) - }) - it('should throw if provided chain is not supported', function () { - const badChainId = 999 - expect(() => getChains(badChainId)).to.throw(`Chain ${badChainId} is not supported!`) - }) - }) - - describe('getDefaultProviders with graph-config project', function () { - useEnvironment('graph-config') - - it('should return L1 and L2 providers for supported networks (HH L1)', function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 5, 421613, true) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.an('object') - }) - - it('should return L1 and L2 providers for supported networks (HH L2)', function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 5, 421613, false) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.an('object') - }) - - it('should return only L1 provider if L2 is not supported (HH L1)', function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 5, 123456, true) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.undefined - }) - - it('should return only L2 provider if L1 is not supported (HH L2)', function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 123456, 421613, false) - expect(l1Provider).to.be.undefined - expect(l2Provider).to.be.an('object') - }) - }) - - describe('getDefaultProviders with graph-config-bad project', function () { - useEnvironment('graph-config-bad') - - it('should throw if main network is not defined in hardhat config (HH L1)', function () { - expect(() => getDefaultProviders(this.hre, 4, 421611, true)).to.throw(/Must set a provider url for chain: /) - }) - - it('should throw if main network is not defined in hardhat config (HH L2)', function () { - expect(() => getDefaultProviders(this.hre, 5, 421613, false)).to.throw(/Must set a provider url for chain: /) - }) - }) - - describe('getProviders with graph-config-desambiguate project', function () { - useEnvironment('graph-config-desambiguate', 'localnitrol1') - - it('should use main network name to desambiguate if multiple chains are defined with same chainId', async function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 1337, 412346, true) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.an('object') - - const l1NetworkName = getNetworkName(this.hre.config.networks, 1337, 'localnitrol1') - const l2NetworkName = getNetworkName(this.hre.config.networks, 412346, 'localnitrol1') - expect(l1NetworkName).to.equal('localnitrol1') - expect(l2NetworkName).to.equal('localnitrol2') - }) - }) - - describe('getProviders with graph-config-desambiguate project', function () { - useEnvironment('graph-config-desambiguate', 'localnitrol2') - - it('should use secondary network name to desambiguate if multiple chains are defined with same chainId', async function () { - const { l1Provider, l2Provider } = getDefaultProviders(this.hre, 1337, 412346, true) - expect(l1Provider).to.be.an('object') - expect(l2Provider).to.be.an('object') - - const l1NetworkName = getNetworkName(this.hre.config.networks, 1337, 'localnitrol2') - const l2NetworkName = getNetworkName(this.hre.config.networks, 412346, 'localnitrol2') - expect(l1NetworkName).to.equal('localnitrol1') - expect(l2NetworkName).to.equal('localnitrol2') - }) - }) - - describe('getGraphConfigPaths with graph-config-full project', function () { - useEnvironment('graph-config-full') - - it('should use opts parameters if available', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { l1GraphConfig: 'config/graph.opts.yml', l2GraphConfig: 'config/graph.arbitrum-opts.yml' }, - 5, - 421613, - true, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.opts.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-opts.yml') - }) - - it('should use opts graphConfig parameter only for main network if available (HH L1)', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { graphConfig: 'config/graph.opts.yml' }, - 4, - 421611, - true, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.opts.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-hre.yml') - }) - - it('should use opts graphConfig parameter only for main network if available (HH L2)', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { graphConfig: 'config/graph.arbitrum-opts.yml' }, - 4, - 421611, - false, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.hre.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-opts.yml') - }) - - it('should ignore graphConfig parameter if both config paths are provided (HH L1)', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { - graphConfig: 'config/graph.opts2.yml', - l1GraphConfig: 'config/graph.opts.yml', - l2GraphConfig: 'config/graph.arbitrum-opts.yml', - }, - 5, - 421613, - true, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.opts.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-opts.yml') - }) - - it('should ignore graphConfig parameter if both config paths are provided (HH L2)', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths( - this.hre, - { - graphConfig: 'config/graph.opts2.yml', - l1GraphConfig: 'config/graph.opts.yml', - l2GraphConfig: 'config/graph.arbitrum-opts.yml', - }, - 5, - 421613, - false, - ) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.opts.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-opts.yml') - }) - - it('should use network specific config if no opts given', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths(this.hre, {}, 1, 42161, false) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.mainnet.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-goerli.yml') - }) - - it('should use graph generic config if nothing else given', function () { - const { l1GraphConfigPath, l2GraphConfigPath } = getGraphConfigPaths(this.hre, {}, 4, 421611, false) - expect(l1GraphConfigPath).not.to.be.undefined - expect(l2GraphConfigPath).not.to.be.undefined - expect(path.basename(l1GraphConfigPath!)).to.equal('graph.hre.yml') - expect(path.basename(l2GraphConfigPath!)).to.equal('graph.arbitrum-hre.yml') - }) - }) - - describe('getGraphConfigPaths with graph-config-bad project', function () { - useEnvironment('graph-config-bad') - - it('should throw if no config file for main network (HH L1)', function () { - expect(() => getGraphConfigPaths(this.hre, {}, 5, 421611, true)).to.throw( - 'Must specify a graph config file for L1!', - ) - }) - - it('should throw if no config file for main network (HH L2)', function () { - expect(() => getGraphConfigPaths(this.hre, {}, 5, 421611, false)).to.throw( - 'Must specify a graph config file for L2!', - ) - }) - - it('should throw if config file does not exist', function () { - expect(() => getGraphConfigPaths(this.hre, {}, 1, 421611, true)).to.throw(/Graph config file not found: /) - }) - }) -}) diff --git a/packages/sdk/src/gre/test/files/addresses-hre.json b/packages/sdk/src/gre/test/files/addresses-hre.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/addresses-opts.json b/packages/sdk/src/gre/test/files/addresses-opts.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.arbitrum-goerli.yml b/packages/sdk/src/gre/test/files/config/graph.arbitrum-goerli.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.arbitrum-hre.yml b/packages/sdk/src/gre/test/files/config/graph.arbitrum-hre.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.arbitrum-opts.yml b/packages/sdk/src/gre/test/files/config/graph.arbitrum-opts.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.goerli.yml b/packages/sdk/src/gre/test/files/config/graph.goerli.yml deleted file mode 100644 index fccf5797c..000000000 --- a/packages/sdk/src/gre/test/files/config/graph.goerli.yml +++ /dev/null @@ -1,7 +0,0 @@ -general: - arbitrator: &arbitrator '0xFD01aa87BeB04D0ac764FC298aCFd05FfC5439cD' # Arbitration Council - governor: &governor '0xf1135bFF22512FF2A585b8d4489426CE660f204c' # Graph Council - authority: &authority '0x52e498aE9B8A5eE2A5Cd26805F06A9f29A7F489F' # Authority that signs payment vouchers - availabilityOracle: &availabilityOracle '0x14053D40ea2E81D3AB0739728a54ab84F21200F9' # Subgraph Availability Oracle - pauseGuardian: &pauseGuardian '0x6855D551CaDe60754D145fb5eDCD90912D860262' # Protocol pause guardian - allocationExchangeOwner: &allocationExchangeOwner '0xf1135bFF22512FF2A585b8d4489426CE660f204c' # Allocation Exchange owner diff --git a/packages/sdk/src/gre/test/files/config/graph.hre.yml b/packages/sdk/src/gre/test/files/config/graph.hre.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.mainnet.yml b/packages/sdk/src/gre/test/files/config/graph.mainnet.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.opts.yml b/packages/sdk/src/gre/test/files/config/graph.opts.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/files/config/graph.opts2.yml b/packages/sdk/src/gre/test/files/config/graph.opts2.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/sdk/src/gre/test/fixture-projects/default-config/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/default-config/hardhat.config.ts deleted file mode 100644 index 17de4a585..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/default-config/hardhat.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - networks: { - mainnet: { - chainId: 1, - url: `https://mainnet.infura.io/v3/123456`, - }, - }, -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config-bad/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/graph-config-bad/hardhat.config.ts deleted file mode 100644 index 314b3a5d1..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config-bad/hardhat.config.ts +++ /dev/null @@ -1,43 +0,0 @@ -import '../../..' - -module.exports = { - paths: { - graph: '../../files', - }, - solidity: '0.8.9', - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - }, - mainnet: { - chainId: 1, - graphConfig: 'config/graph.mainnet-does-not-exist.yml', - url: `https://mainnet.infura.io/v3/123456`, - }, - 'arbitrum-one': { - chainId: 42161, - url: 'https://arb1.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-does-not-exist.yml', - }, - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456`, - }, - // 'arbitrum-goerli': { - // chainId: 421613, - // url: 'https://goerli-rollup.arbitrum.io/rpc', - // }, - // rinkeby: { - // chainId: 4, - // url: `https://goerli.infura.io/v3/123456`, - // }, - 'arbitrum-rinkeby': { - chainId: 421611, - url: `https://goerli.infura.io/v3/123456`, - }, - }, - graph: { - addressBook: 'addresses-does-not-exist.json', - }, -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config-desambiguate/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/graph-config-desambiguate/hardhat.config.ts deleted file mode 100644 index 8fcfb1dd0..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config-desambiguate/hardhat.config.ts +++ /dev/null @@ -1,59 +0,0 @@ -import '../../..' - -module.exports = { - paths: { - graph: '../../files', - }, - solidity: '0.8.9', - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - }, - localhost: { - chainId: 1337, - url: `http://127.0.0.1:8545`, - }, - localnitrol1: { - chainId: 1337, - url: `http://127.0.0.1:8545`, - }, - localnitrol2: { - chainId: 412346, - url: `http://127.0.0.1:8547`, - }, - mainnet: { - chainId: 1, - graphConfig: 'config/graph.mainnet.yml', - url: `https://mainnet.infura.io/v3/123456`, - }, - 'arbitrum-one': { - chainId: 42161, - url: 'https://arb1.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-goerli.yml', - }, - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456`, - graphConfig: 'config/graph.goerli.yml', - }, - 'arbitrum-goerli': { - chainId: 421613, - url: 'https://goerli-rollup.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-goerli.yml', - }, - rinkeby: { - chainId: 4, - url: `https://goerli.infura.io/v3/123456`, - }, - 'arbitrum-rinkeby': { - chainId: 421611, - url: `https://goerli.infura.io/v3/123456`, - }, - }, - graph: { - addressBook: 'addresses-hre.json', - l1GraphConfig: 'config/graph.hre.yml', - l2GraphConfig: 'config/graph.arbitrum-hre.yml', - }, -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config-full/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/graph-config-full/hardhat.config.ts deleted file mode 100644 index 2bad7705c..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config-full/hardhat.config.ts +++ /dev/null @@ -1,47 +0,0 @@ -import '../../..' - -module.exports = { - paths: { - graph: '../../files', - }, - solidity: '0.8.9', - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - }, - mainnet: { - chainId: 1, - graphConfig: 'config/graph.mainnet.yml', - url: `https://mainnet.infura.io/v3/123456`, - }, - 'arbitrum-one': { - chainId: 42161, - url: 'https://arb1.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-goerli.yml', - }, - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456`, - graphConfig: 'config/graph.goerli.yml', - }, - 'arbitrum-goerli': { - chainId: 421613, - url: 'https://goerli-rollup.arbitrum.io/rpc', - graphConfig: 'config/graph.arbitrum-goerli.yml', - }, - rinkeby: { - chainId: 4, - url: `https://goerli.infura.io/v3/123456`, - }, - 'arbitrum-rinkeby': { - chainId: 421611, - url: `https://goerli.infura.io/v3/123456`, - }, - }, - graph: { - addressBook: 'addresses-hre.json', - l1GraphConfig: 'config/graph.hre.yml', - l2GraphConfig: 'config/graph.arbitrum-hre.yml', - }, -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account-l2.json b/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account-l2.json deleted file mode 100644 index ab1ae36bb..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account-l2.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "address": "5baa8472c470a400f830e2458ddb97b13cc8eb32", - "id": "ead5a876-efae-4cdf-aeab-ab81907427c8", - "version": 3, - "Crypto": { - "cipher": "aes-128-ctr", - "cipherparams": { "iv": "5e90eb61380cee63382bd8c935eea554" }, - "ciphertext": "67800c67ab32b8baf2df4a697aa1108ee7f91b5a182ff2e29fa562009e1bbd9f", - "kdf": "scrypt", - "kdfparams": { - "salt": "415db4971651654fb4b381f86525c273e4c7470a69307f7c83f71ec38aca7d12", - "n": 131072, - "dklen": 32, - "p": 1, - "r": 8 - }, - "mac": "f5611372940c7da01e774aaf35046a5b3c4eec050d482b9f0912707ba645e681" - }, - "x-ethers": { - "client": "ethers.js", - "gethFilename": "UTC--2022-08-25T14-48-23.0Z--5baa8472c470a400f830e2458ddb97b13cc8eb32", - "mnemonicCounter": "b84bf04ecd5d0ab111950ee4cf168d86", - "mnemonicCiphertext": "672a53846059b4e8bae97747d684529a", - "path": "m/44'/60'/0'/0/0", - "locale": "en", - "version": "0.1" - } -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account.json b/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account.json deleted file mode 100644 index de055e684..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config/.accounts/test-account.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "address": "c108fda1b5b2903751594298769efd4904b146bd", - "id": "37ec99f7-8244-4982-b2d4-173c244784f3", - "version": 3, - "Crypto": { - "cipher": "aes-128-ctr", - "cipherparams": { "iv": "1eb9d55c0882a50e7988a09e674c2402" }, - "ciphertext": "822fd907f44e48d15d500433200ac244b70487813982936a88c0830fa9cd66b6", - "kdf": "scrypt", - "kdfparams": { - "salt": "f6d158afdf9a11d3353fbe736cbb769626c8428015603c6449ca1fa0b42e3c2e", - "n": 131072, - "dklen": 32, - "p": 1, - "r": 8 - }, - "mac": "1af4526f4e62b6722226ee1c3a18d7f5dfff0d5b7862ca123989e7a464153f28" - }, - "x-ethers": { - "client": "ethers.js", - "gethFilename": "UTC--2022-08-24T12-27-39.0Z--c108fda1b5b2903751594298769efd4904b146bd", - "mnemonicCounter": "3bd3b82c7148351fe0cdc005a631d445", - "mnemonicCiphertext": "f2bc1c5598c60fe265bf7908344fde6d", - "path": "m/44'/60'/0'/0/0", - "locale": "en", - "version": "0.1" - } -} diff --git a/packages/sdk/src/gre/test/fixture-projects/graph-config/hardhat.config.ts b/packages/sdk/src/gre/test/fixture-projects/graph-config/hardhat.config.ts deleted file mode 100644 index 48faa5586..000000000 --- a/packages/sdk/src/gre/test/fixture-projects/graph-config/hardhat.config.ts +++ /dev/null @@ -1,48 +0,0 @@ -import '../../..' - -module.exports = { - paths: { - graph: '../../files', - accounts: '.accounts', - }, - solidity: '0.8.9', - defaultNetwork: 'hardhat', - networks: { - hardhat: { - chainId: 1337, - accounts: { - mnemonic: 'pumpkin orient can short never warm truth legend cereal tourist craft skin', - }, - }, - mainnet: { - chainId: 1, - graphConfig: 'config/graph.mainnet.yml', - url: `https://mainnet.infura.io/v3/123456`, - }, - 'arbitrum-one': { - chainId: 42161, - url: 'https://arb1.arbitrum.io/rpc', - }, - goerli: { - chainId: 5, - url: `https://goerli.infura.io/v3/123456`, - }, - 'arbitrum-goerli': { - chainId: 421613, - url: 'https://goerli-rollup.arbitrum.io/rpc', - }, - localhost: { - chainId: 1337, - url: 'http://127.0.0.1:8545', - }, - 'arbitrum-rinkeby': { - chainId: 421611, - url: 'http://127.0.0.1:8545', - }, - }, - graph: { - addressBook: 'addresses-hre.json', - l1GraphConfig: 'config/graph.goerli.yml', - l2GraphConfig: 'config/graph.arbitrum-goerli.yml', - }, -} diff --git a/packages/sdk/src/gre/test/gre.test.ts b/packages/sdk/src/gre/test/gre.test.ts deleted file mode 100644 index 5b9cadfd3..000000000 --- a/packages/sdk/src/gre/test/gre.test.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { expect } from 'chai' - -import { useEnvironment } from './helpers' - -describe('GRE usage', function () { - describe('graph-config project setting --network to an L1', function () { - useEnvironment('graph-config', 'mainnet') - - it('should return L1 and L2 configured objects', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.an('object') - expect(g.l2).to.be.an('object') - expect(g.l1?.chainId).to.equal(1) - expect(g.l2?.chainId).to.equal(42161) - expect(g.chainId).to.equal(1) - }) - }) - - describe('graph-config project setting --network to an L2', function () { - useEnvironment('graph-config', 'arbitrum-goerli') - - it('should return L1 and L2 configured objects', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.an('object') - expect(g.l2).to.be.an('object') - expect(g.l1?.chainId).to.equal(5) - expect(g.l2?.chainId).to.equal(421613) - expect(g.chainId).to.equal(421613) - }) - }) - - describe('graph-config project setting --network to hardhat network', function () { - useEnvironment('graph-config', 'hardhat') - - it('should return L1 configured object and L2 unconfigured', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.an('object') - expect(g.l2).to.be.null - expect(g.l1?.chainId).to.equal(1337) - expect(g.chainId).to.equal(1337) - }) - }) - - describe('graph-config project setting --network to an L1 with no configured counterpart', function () { - useEnvironment('graph-config', 'localhost') - - it('should return L1 configured object and L2 unconfigured', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.an('object') - expect(g.l2).to.be.null - expect(g.l1?.chainId).to.equal(1337) - expect(g.chainId).to.equal(1337) - }) - }) - - describe('graph-config project setting --network to an L2 with no configured counterpart', function () { - useEnvironment('graph-config', 'arbitrum-rinkeby') - - it('should return L2 configured object and L1 unconfigured', function () { - const g = this.hre.graph() - - expect(g).to.be.an('object') - expect(g.l1).to.be.null - expect(g.l2).to.be.an('object') - expect(g.l2?.chainId).to.equal(421611) - expect(g.chainId).to.equal(421611) - }) - }) - - describe('default-config project', function () { - useEnvironment('default-config', 'mainnet') - - it('should throw', function () { - expect(() => this.hre.graph()).to.throw() - }) - }) -}) diff --git a/packages/sdk/src/gre/test/helpers.ts b/packages/sdk/src/gre/test/helpers.ts deleted file mode 100644 index 81c97cd9b..000000000 --- a/packages/sdk/src/gre/test/helpers.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { resetHardhatContext } from 'hardhat/plugins-testing' -import { HardhatRuntimeEnvironment } from 'hardhat/types' -import path from 'path' - -declare module 'mocha' { - interface Context { - hre: HardhatRuntimeEnvironment - } -} - -export function useEnvironment(fixtureProjectName: string, network?: string): void { - beforeEach('Loading hardhat environment', function () { - process.chdir(path.join(__dirname, 'fixture-projects', fixtureProjectName)) - - if (network !== undefined) { - process.env.HARDHAT_NETWORK = network - } - this.hre = require('hardhat') - }) - - afterEach('Resetting hardhat', function () { - resetHardhatContext() - delete process.env.HARDHAT_NETWORK - }) -} diff --git a/packages/sdk/src/gre/type-extensions.ts b/packages/sdk/src/gre/type-extensions.ts deleted file mode 100644 index a653a09fc..000000000 --- a/packages/sdk/src/gre/type-extensions.ts +++ /dev/null @@ -1,49 +0,0 @@ -// To extend one of Hardhat's types, you need to import the module where it has been defined, and redeclare it. -import 'hardhat/types/config' -import 'hardhat/types/runtime' - -import type { GraphRuntimeEnvironment, GraphRuntimeEnvironmentOptions } from './types' - -declare module 'hardhat/types/runtime' { - export interface HardhatRuntimeEnvironment { - graph: (opts?: GraphRuntimeEnvironmentOptions) => GraphRuntimeEnvironment - } -} - -declare module 'hardhat/types/config' { - export interface HardhatConfig { - graph: Omit - } - - export interface HardhatUserConfig { - graph: Omit - } - - export interface HardhatNetworkConfig { - graphConfig?: string - addressBook?: string - } - - export interface HardhatNetworkUserConfig { - graphConfig?: string - addressBook?: string - } - - export interface HttpNetworkConfig { - graphConfig?: string - addressBook?: string - } - - export interface HttpNetworkUserConfig { - graphConfig?: string - addressBook?: string - } - - export interface ProjectPathsConfig { - graph?: string - } - - export interface ProjectPathsUserConfig { - graph?: string - } -} diff --git a/packages/sdk/src/gre/types.ts b/packages/sdk/src/gre/types.ts deleted file mode 100644 index 5191723d2..000000000 --- a/packages/sdk/src/gre/types.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { EthersProviderWrapper } from '@nomiclabs/hardhat-ethers/internal/ethers-provider-wrapper' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { Wallet } from 'ethers' -import YAML from 'yaml' - -import { GraphNetworkAddressBook, GraphNetworkContracts } from '..' - -export interface GraphRuntimeEnvironmentOptions { - addressBook?: string - l1GraphConfig?: string - l2GraphConfig?: string - graphConfig?: string - enableTxLogging?: boolean - disableSecureAccounts?: boolean - fork?: boolean - - // These are mostly for testing purposes - l1AccountName?: string - l2AccountName?: string - l1AccountPassword?: string - l2AccountPassword?: string -} - -export type AccountNames = - | 'arbitrator' - | 'governor' - | 'authority' - | 'availabilityOracle' - | 'pauseGuardian' - | 'allocationExchangeOwner' - -export type NamedAccounts = { - [name in AccountNames]: SignerWithAddress -} - -export interface GraphNetworkEnvironment { - chainId: number - provider: EthersProviderWrapper - contracts: GraphNetworkContracts - graphConfig: YAML.Document.Parsed - addressBook: GraphNetworkAddressBook - getNamedAccounts: () => Promise - getTestAccounts: () => Promise - getAllAccounts: () => Promise - getDeployer: () => Promise - getWallets: () => Promise - getWallet: (address: string) => Promise -} - -export interface GraphRuntimeEnvironment extends GraphNetworkEnvironment { - l1: GraphNetworkEnvironment | null - l2: GraphNetworkEnvironment | null -} diff --git a/packages/sdk/src/helpers/arbitrum.ts b/packages/sdk/src/helpers/arbitrum.ts deleted file mode 100644 index 6f8152a50..000000000 --- a/packages/sdk/src/helpers/arbitrum.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { addCustomNetwork } from '@arbitrum/sdk' -import type { BridgeMock, InboxMock, OutboxMock } from '@graphprotocol/contracts' -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import { ethers, providers, Wallet } from 'ethers' -import fs from 'fs' - -import { deploy, DeployType } from '../deployments' -import { applyL1ToL2Alias } from '../utils/arbitrum/' -import { setCode } from './code' -import { impersonateAccount } from './impersonate' - -export interface L1ArbitrumMocks { - bridgeMock: BridgeMock - inboxMock: InboxMock - outboxMock: OutboxMock - routerMock: Wallet -} - -export interface L2ArbitrumMocks { - routerMock: Wallet -} - -export async function deployL1MockBridge( - deployer: SignerWithAddress, - arbitrumAddressBook: string, - provider: providers.Provider, -): Promise { - // Deploy mock contracts - const bridgeMock = (await deploy(DeployType.Deploy, deployer, { name: 'BridgeMock' })).contract as BridgeMock - const inboxMock = (await deploy(DeployType.Deploy, deployer, { name: 'InboxMock' })).contract as InboxMock - const outboxMock = (await deploy(DeployType.Deploy, deployer, { name: 'OutboxMock' })).contract as OutboxMock - - // "deploy" router - set dummy code so that it appears as a contract - const routerMock = Wallet.createRandom() - await setCode(routerMock.address, '0x1234') - - // Configure mock contracts - await bridgeMock.connect(deployer).setInbox(inboxMock.address, true) - await bridgeMock.connect(deployer).setOutbox(outboxMock.address, true) - await inboxMock.connect(deployer).setBridge(bridgeMock.address) - await outboxMock.connect(deployer).setBridge(bridgeMock.address) - - // Update address book - const deployment = fs.existsSync(arbitrumAddressBook) ? JSON.parse(fs.readFileSync(arbitrumAddressBook, 'utf-8')) : {} - const addressBook = { - '1337': { - L1GatewayRouter: { - address: routerMock.address, - }, - IInbox: { - address: inboxMock.address, - }, - }, - '412346': { - L2GatewayRouter: { - address: deployment['412346']?.L2GatewayRouter?.address ?? '', - }, - }, - } - - fs.writeFileSync(arbitrumAddressBook, JSON.stringify(addressBook)) - - return { - bridgeMock: bridgeMock.connect(provider), - inboxMock: inboxMock.connect(provider), - outboxMock: outboxMock.connect(provider), - routerMock: routerMock.connect(provider), - } -} - -export async function deployL2MockBridge( - deployer: SignerWithAddress, - arbitrumAddressBook: string, - provider: providers.Provider, -): Promise { - // "deploy" router - set dummy code so that it appears as a contract - const routerMock = Wallet.createRandom() - await setCode(routerMock.address, '0x1234') - - // Update address book - const deployment = fs.existsSync(arbitrumAddressBook) ? JSON.parse(fs.readFileSync(arbitrumAddressBook, 'utf-8')) : {} - const addressBook = { - '1337': { - L1GatewayRouter: { - address: deployment['1337']?.L1GatewayRouter?.address, - }, - IInbox: { - address: deployment['1337']?.IInbox?.address, - }, - }, - '412346': { - L2GatewayRouter: { - address: routerMock.address, - }, - }, - } - - fs.writeFileSync(arbitrumAddressBook, JSON.stringify(addressBook)) - - return { - routerMock: routerMock.connect(provider), - } -} - -export async function getL2SignerFromL1(l1Address: string): Promise { - const l2Address = applyL1ToL2Alias(l1Address) - return impersonateAccount(l2Address) -} - -export function addLocalNetwork(deploymentFile: string) { - if (!fs.existsSync(deploymentFile)) { - throw new Error(`Deployment file not found: ${deploymentFile}`) - } - const deployment = JSON.parse(fs.readFileSync(deploymentFile, 'utf-8')) - addCustomNetwork({ - customL1Network: deployment.l1Network, - customL2Network: deployment.l2Network, - }) -} - -// Use prefunded genesis address to fund accounts -// See: https://docs.arbitrum.io/node-running/how-tos/local-dev-node#default-endpoints-and-addresses -export async function fundLocalAccounts(accounts: SignerWithAddress[], provider: providers.Provider) { - for (const account of accounts) { - const amount = ethers.utils.parseEther('10') - const wallet = new Wallet('b6b15c8cb491557369f3c7d2c287b053eb229daa9c22138887752191c9520659') - const tx = await wallet.connect(provider).sendTransaction({ - value: amount, - to: account.address, - }) - await tx.wait() - } -} diff --git a/packages/sdk/src/helpers/balance.ts b/packages/sdk/src/helpers/balance.ts deleted file mode 100644 index 88ab4153b..000000000 --- a/packages/sdk/src/helpers/balance.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { setBalance as hardhatSetBalance } from '@nomicfoundation/hardhat-network-helpers' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type { BigNumber } from 'ethers' - -export async function setBalance(address: string, balance: BigNumber | number, funder?: SignerWithAddress) { - try { - await hardhatSetBalance(address, balance) - } catch (error) { - if (funder === undefined) throw error - await funder.sendTransaction({ to: address, value: balance }) - } -} - -export async function setBalances(args: { address: string; balance: BigNumber }[], funder?: SignerWithAddress) { - for (let i = 0; i < args.length; i++) { - await setBalance(args[i].address, args[i].balance, funder) - } -} diff --git a/packages/sdk/src/helpers/code.ts b/packages/sdk/src/helpers/code.ts deleted file mode 100644 index f1797caf0..000000000 --- a/packages/sdk/src/helpers/code.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { setCode as hardhatSetCode } from '@nomicfoundation/hardhat-network-helpers' - -export async function setCode(address: string, code: string): Promise { - return hardhatSetCode(address, code) -} diff --git a/packages/sdk/src/helpers/epoch.ts b/packages/sdk/src/helpers/epoch.ts deleted file mode 100644 index 0996316f5..000000000 --- a/packages/sdk/src/helpers/epoch.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { EpochManager } from '@graphprotocol/contracts' - -import { mine } from './mine' - -export type PartialEpochManager = Pick - -export async function mineEpoch(epochManager: PartialEpochManager, epochs?: number): Promise { - epochs = epochs ?? 1 - for (let i = 0; i < epochs; i++) { - epochManager - await _mineEpoch(epochManager) - } -} - -async function _mineEpoch(epochManager: PartialEpochManager): Promise { - const blocksSinceEpoch = await epochManager.currentEpochBlockSinceStart() - const epochLen = await epochManager.epochLength() - return mine(epochLen.sub(blocksSinceEpoch)) -} diff --git a/packages/sdk/src/helpers/impersonate.ts b/packages/sdk/src/helpers/impersonate.ts deleted file mode 100644 index 8f7858322..000000000 --- a/packages/sdk/src/helpers/impersonate.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { impersonateAccount as hardhatImpersonateAccount } from '@nomicfoundation/hardhat-network-helpers' -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' - -export async function impersonateAccount(address: string): Promise { - const hre = await import('hardhat') - await hardhatImpersonateAccount(address) - - // This allows the dynamic import to work on both ts and js - const ethers = hre.ethers ?? hre.default.ethers - return ethers.getSigner(address) -} diff --git a/packages/sdk/src/helpers/index.ts b/packages/sdk/src/helpers/index.ts deleted file mode 100644 index 2403831a7..000000000 --- a/packages/sdk/src/helpers/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './arbitrum' -export * from './balance' -export * from './code' -export * from './epoch' -export * from './impersonate' -export * from './mine' -export * from './snapshot' -export * from './time' diff --git a/packages/sdk/src/helpers/mine.ts b/packages/sdk/src/helpers/mine.ts deleted file mode 100644 index 02b81d0bd..000000000 --- a/packages/sdk/src/helpers/mine.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { mine as hardhatMine, mineUpTo as hardhatMineUpTo } from '@nomicfoundation/hardhat-network-helpers' -import type { BigNumber } from 'ethers' - -export async function mine( - blocks?: string | number | BigNumber, - interval?: string | number | BigNumber, -): Promise { - return hardhatMine(blocks, { interval }) -} - -export async function mineUpTo(blockNumber: string | number | BigNumber): Promise { - return hardhatMineUpTo(blockNumber) -} - -export async function setAutoMine(autoMine: boolean): Promise { - const hre = await import('hardhat') - - // This allows the dynamic import to work on both ts and js - const network = hre.network ?? hre.default.network - return network.provider.send('evm_setAutomine', [autoMine]) -} - -export async function setIntervalMining(interval: number): Promise { - const hre = await import('hardhat') - - // This allows the dynamic import to work on both ts and js - const network = hre.network ?? hre.default.network - return network.provider.send('evm_setIntervalMining', [interval]) -} diff --git a/packages/sdk/src/helpers/snapshot.ts b/packages/sdk/src/helpers/snapshot.ts deleted file mode 100644 index 62d0b91a8..000000000 --- a/packages/sdk/src/helpers/snapshot.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { SnapshotRestorer, takeSnapshot as hardhatTakeSnapshot } from '@nomicfoundation/hardhat-network-helpers' - -export async function takeSnapshot(): Promise { - return hardhatTakeSnapshot() -} - -export async function restoreSnapshot(snapshot: SnapshotRestorer): Promise { - return snapshot.restore() -} - -export type { SnapshotRestorer } from '@nomicfoundation/hardhat-network-helpers' diff --git a/packages/sdk/src/helpers/time.ts b/packages/sdk/src/helpers/time.ts deleted file mode 100644 index 427678ae1..000000000 --- a/packages/sdk/src/helpers/time.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { time } from '@nomicfoundation/hardhat-network-helpers' - -export async function latestBlock(): Promise { - return time.latestBlock() -} diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts deleted file mode 100644 index 3bc0457f5..000000000 --- a/packages/sdk/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './chain' -export * from './deployments' -export * as helpers from './helpers' -export * from './utils' diff --git a/packages/sdk/src/utils/abi.ts b/packages/sdk/src/utils/abi.ts deleted file mode 100644 index fc21be582..000000000 --- a/packages/sdk/src/utils/abi.ts +++ /dev/null @@ -1,13 +0,0 @@ -interface ABIItem { - name?: string - [key: string]: unknown -} - -export function mergeABIs(abi1: ABIItem[], abi2: ABIItem[]) { - for (const item of abi2) { - if (abi1.find((v) => v.name === item.name) === undefined) { - abi1.push(item) - } - } - return abi1 -} diff --git a/packages/sdk/src/utils/address.ts b/packages/sdk/src/utils/address.ts deleted file mode 100644 index 0ca1a5d33..000000000 --- a/packages/sdk/src/utils/address.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { getAddress } from 'ethers/lib/utils' - -import { randomHexBytes } from './bytes' - -export const randomAddress = (): string => getAddress(randomHexBytes(20)) diff --git a/packages/sdk/src/utils/allocation.ts b/packages/sdk/src/utils/allocation.ts deleted file mode 100644 index 552ea73b6..000000000 --- a/packages/sdk/src/utils/allocation.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { Signer } from 'ethers' -import { utils, Wallet } from 'ethers' - -export enum AllocationState { - Null, - Active, - Closed, - Finalized, - Claimed, -} - -export interface ChannelKey { - privKey: string - pubKey: string - address: string - wallet: Signer - generateProof: (address: string) => Promise -} - -export const deriveChannelKey = (): ChannelKey => { - const w = Wallet.createRandom() - return { - privKey: w.privateKey, - pubKey: w.publicKey, - address: w.address, - wallet: w, - generateProof: (indexerAddress: string): Promise => { - const messageHash = utils.solidityKeccak256(['address', 'address'], [indexerAddress, w.address]) - const messageHashBytes = utils.arrayify(messageHash) - return w.signMessage(messageHashBytes) - }, - } -} diff --git a/packages/sdk/src/utils/arbitrum/address.ts b/packages/sdk/src/utils/arbitrum/address.ts deleted file mode 100644 index 89e2fb489..000000000 --- a/packages/sdk/src/utils/arbitrum/address.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { hexZeroPad } from 'ethers/lib/utils' - -import { toBN } from '../units' - -// Adapted from: -// https://github.com/livepeer/arbitrum-lpt-bridge/blob/e1a81edda3594e434dbcaa4f1ebc95b7e67ecf2a/utils/arbitrum/messaging.ts#L118 -export const applyL1ToL2Alias = (l1Address: string): string => { - const offset = toBN('0x1111000000000000000000000000000000001111') - const l1AddressAsNumber = toBN(l1Address) - const l2AddressAsNumber = l1AddressAsNumber.add(offset) - - const mask = toBN(2).pow(160) - return hexZeroPad(l2AddressAsNumber.mod(mask).toHexString(), 20) -} diff --git a/packages/sdk/src/utils/arbitrum/gas.ts b/packages/sdk/src/utils/arbitrum/gas.ts deleted file mode 100644 index 147bcc2fc..000000000 --- a/packages/sdk/src/utils/arbitrum/gas.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { L1ToL2MessageGasEstimator } from '@arbitrum/sdk' -import type { L1ToL2MessageNoGasParams } from '@arbitrum/sdk/dist/lib/message/L1ToL2MessageCreator' -import type { GasOverrides } from '@arbitrum/sdk/dist/lib/message/L1ToL2MessageGasEstimator' -import type { BigNumber, providers } from 'ethers' -import { parseEther } from 'ethers/lib/utils' - -export interface L2GasParams { - maxGas: BigNumber - gasPriceBid: BigNumber - maxSubmissionCost: BigNumber -} - -/** - * Estimate gas parameters for a retryable ticket creation - * - * @remark Uses Arbitrum's SDK to estimate the parameters - * - * @param l1Provider Provider for the L1 network (ethereum) - * @param l2Provider Provider for the L2 network (arbitrum) - * @param gatewayAddress Address where the tickets will be sent from in L1 - * @param l2Dest Address of the destination in L2 - * @param depositCalldata Calldata to be sent to L2 - * @param opts Gas parameters to be used if not auto-estimated - * @returns estimated gas parameters - */ -export const estimateRetryableTxGas = async ( - l1Provider: providers.Provider, - l2Provider: providers.Provider, - gatewayAddress: string, - l2Dest: string, - depositCalldata: string, - opts: L2GasParams, -): Promise => { - const autoEstimate = opts && (!opts.maxGas || !opts.gasPriceBid || !opts.maxSubmissionCost) - if (!autoEstimate) { - return opts - } - - console.info('Estimating retryable ticket gas:') - const baseFee = (await l1Provider.getBlock('latest')).baseFeePerGas - const gasEstimator = new L1ToL2MessageGasEstimator(l2Provider) - const retryableEstimateData: L1ToL2MessageNoGasParams = { - from: gatewayAddress, - to: l2Dest, - data: depositCalldata, - l2CallValue: parseEther('0'), - excessFeeRefundAddress: gatewayAddress, - callValueRefundAddress: gatewayAddress, - } - - const estimateOpts: GasOverrides = {} - if (opts.maxGas) estimateOpts.gasLimit = { base: opts.maxGas } - if (opts.maxSubmissionCost) estimateOpts.maxSubmissionFee = { base: opts.maxSubmissionCost } - if (opts.gasPriceBid) estimateOpts.maxFeePerGas = { base: opts.gasPriceBid } - - const gasParams = await gasEstimator.estimateAll( - retryableEstimateData, - baseFee as BigNumber, - l1Provider, - estimateOpts, - ) - - return { - maxGas: opts.maxGas ?? gasParams.gasLimit, - gasPriceBid: opts.gasPriceBid ?? gasParams.maxFeePerGas, - maxSubmissionCost: opts.maxSubmissionCost ?? gasParams.maxSubmissionCost, - } -} diff --git a/packages/sdk/src/utils/arbitrum/index.ts b/packages/sdk/src/utils/arbitrum/index.ts deleted file mode 100644 index 9e449cf5c..000000000 --- a/packages/sdk/src/utils/arbitrum/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { applyL1ToL2Alias } from './address' -export { estimateRetryableTxGas, type L2GasParams } from './gas' -export * from './message' diff --git a/packages/sdk/src/utils/arbitrum/message.ts b/packages/sdk/src/utils/arbitrum/message.ts deleted file mode 100644 index c0f52909d..000000000 --- a/packages/sdk/src/utils/arbitrum/message.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { - L1ToL2MessageReader, - L1ToL2MessageStatus, - L1ToL2MessageWriter, - L1TransactionReceipt, - L2ToL1MessageReader, - L2ToL1MessageStatus, - L2ToL1MessageWriter, - L2TransactionReceipt, -} from '@arbitrum/sdk' -import type { Provider } from '@ethersproject/abstract-provider' -import type { providers, Signer } from 'ethers' - -// L1 -> L2 -export async function getL1ToL2MessageWriter( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - return (await getL1ToL2Message(txHashOrReceipt, l1Provider, l2Provider)) as L1ToL2MessageWriter -} - -export async function getL1ToL2MessageReader( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - return await getL1ToL2Message(txHashOrReceipt, l1Provider, l2Provider) -} - -export async function getL1ToL2MessageStatus( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - const message = await getL1ToL2Message(txHashOrReceipt, l1Provider, l2Provider) - return await message.status() -} - -async function getL1ToL2Message( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - const txReceipt = - typeof txHashOrReceipt === 'string' ? await l1Provider.getTransactionReceipt(txHashOrReceipt) : txHashOrReceipt - const l1Receipt = new L1TransactionReceipt(txReceipt) - const l1ToL2Messages = await l1Receipt.getL1ToL2Messages(l2Provider) - return l1ToL2Messages[0] -} - -// L2 -> L1 -export async function getL2ToL1MessageWriter( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, - signer: Signer, -): Promise { - return (await getL2ToL1Message(txHashOrReceipt, l1Provider, l2Provider, signer)) as L2ToL1MessageWriter -} - -export async function getL2ToL1MessageReader( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - return await getL2ToL1Message(txHashOrReceipt, l1Provider, l2Provider) -} - -export async function getL2ToL1MessageStatus( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, -): Promise { - const message = await getL2ToL1Message(txHashOrReceipt, l1Provider, l2Provider) - return await message.status(l2Provider) -} - -async function getL2ToL1Message( - txHashOrReceipt: string | providers.TransactionReceipt, - l1Provider: Provider, - l2Provider: Provider, - signer?: Signer, -) { - const txReceipt = - typeof txHashOrReceipt === 'string' ? await l2Provider.getTransactionReceipt(txHashOrReceipt) : txHashOrReceipt - const l1SignerOrProvider = signer ? signer.connect(l1Provider) : l1Provider - const l2Receipt = new L2TransactionReceipt(txReceipt) - const l2ToL1Messages = await l2Receipt.getL2ToL1Messages(l1SignerOrProvider) - return l2ToL1Messages[0] -} diff --git a/packages/sdk/src/utils/assertions.ts b/packages/sdk/src/utils/assertions.ts deleted file mode 100644 index 94ed3742e..000000000 --- a/packages/sdk/src/utils/assertions.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { AssertionError } from 'assert' - -export function assertObject(value: unknown, errorMessage?: string): asserts value is Record { - if (typeof value !== 'object' || value == null) - throw new AssertionError({ - message: errorMessage ?? 'Not an object', - }) -} diff --git a/packages/sdk/src/utils/bytes.ts b/packages/sdk/src/utils/bytes.ts deleted file mode 100644 index 551be450c..000000000 --- a/packages/sdk/src/utils/bytes.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ethers } from 'ethers' -import { hexlify, randomBytes } from 'ethers/lib/utils' - -export const randomHexBytes = (n = 32): string => hexlify(randomBytes(n)) - -export const base58ToHex = (base58: string): string => { - return ethers.utils.hexlify(ethers.utils.base58.decode(base58)) -} diff --git a/packages/sdk/src/utils/eip712.ts b/packages/sdk/src/utils/eip712.ts deleted file mode 100644 index c277829de..000000000 --- a/packages/sdk/src/utils/eip712.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { eip712 } from '@graphprotocol/common-ts/dist/attestations' -import { BigNumber, BytesLike, Signature } from 'ethers' -import { keccak256, SigningKey } from 'ethers/lib/utils' - -export interface Permit { - owner: string - spender: string - value: BigNumber - nonce: BigNumber - deadline: BigNumber -} - -const PERMIT_TYPE_HASH = eip712.typeHash( - 'Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)', -) - -export function signPermit( - signer: BytesLike, - chainId: number, - contractAddress: string, - permit: Permit, - salt: string, -): Signature { - const domainSeparator = eip712.domainSeparator({ - name: 'Graph Token', - version: '0', - chainId, - verifyingContract: contractAddress, - salt: salt, - }) - const hashEncodedPermit = hashEncodePermit(permit) - const message = eip712.encode(domainSeparator, hashEncodedPermit) - const messageHash = keccak256(message) - const signingKey = new SigningKey(signer) - return signingKey.signDigest(messageHash) -} - -function hashEncodePermit(permit: Permit) { - return eip712.hashStruct( - PERMIT_TYPE_HASH, - ['address', 'address', 'uint256', 'uint256', 'uint256'], - [permit.owner, permit.spender, permit.value, permit.nonce, permit.deadline], - ) -} diff --git a/packages/sdk/src/utils/hash.ts b/packages/sdk/src/utils/hash.ts deleted file mode 100644 index ab860c928..000000000 --- a/packages/sdk/src/utils/hash.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { keccak256 } from 'ethers/lib/utils' - -export const hashHexString = (input: string): string => keccak256(`0x${input.replace(/^0x/, '')}`) diff --git a/packages/sdk/src/utils/index.ts b/packages/sdk/src/utils/index.ts deleted file mode 100644 index 92ccdcf07..000000000 --- a/packages/sdk/src/utils/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from './address' -export * from './allocation' -export * from './arbitrum' -export * from './bytes' -export * from './eip712' -export * from './hash' -export * from './prompt' -export * from './subgraph' -export * from './units' diff --git a/packages/sdk/src/utils/nonce.ts b/packages/sdk/src/utils/nonce.ts deleted file mode 100644 index d17440498..000000000 --- a/packages/sdk/src/utils/nonce.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { NonceManager } from '@ethersproject/experimental' -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type { providers } from 'ethers' - -export class NonceManagerWithAddress extends NonceManager { - public address: string - public signerWithAddress: SignerWithAddress - - constructor(signer: SignerWithAddress) { - super(signer) - this.address = signer.address - this.signerWithAddress = signer - } - - connect(provider: providers.Provider): NonceManager { - return new NonceManagerWithAddress(this.signerWithAddress.connect(provider)) - } -} diff --git a/packages/sdk/src/utils/prompt.ts b/packages/sdk/src/utils/prompt.ts deleted file mode 100644 index 1c8f0d324..000000000 --- a/packages/sdk/src/utils/prompt.ts +++ /dev/null @@ -1,15 +0,0 @@ -import inquirer from 'inquirer' - -export const confirm = async (message: string, skip: boolean): Promise => { - if (skip) return true - const res = await inquirer.prompt({ - name: 'confirm', - type: 'confirm', - message, - }) - if (!res.confirm) { - console.info('Cancelled') - return false - } - return true -} diff --git a/packages/sdk/src/utils/subgraph.ts b/packages/sdk/src/utils/subgraph.ts deleted file mode 100644 index 3f7565a67..000000000 --- a/packages/sdk/src/utils/subgraph.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { BigNumber } from 'ethers' -import { solidityKeccak256 } from 'ethers/lib/utils' - -import { base58ToHex, randomHexBytes } from './bytes' - -export interface PublishSubgraph { - subgraphDeploymentID: string - versionMetadata: string - subgraphMetadata: string -} - -export interface Subgraph { - vSignal: BigNumber - nSignal: BigNumber - subgraphDeploymentID: string - reserveRatioDeprecated: number - disabled: boolean - withdrawableGRT: BigNumber - id?: string -} - -export const buildSubgraphId = async ( - account: string, - seqId: number | BigNumber, - chainId: number | BigNumber, -): Promise => { - return solidityKeccak256(['address', 'uint256', 'uint256'], [account, seqId, chainId]) -} - -export const buildLegacySubgraphId = (account: string, seqID: BigNumber): string => - solidityKeccak256(['address', 'uint256'], [account, seqID]) - -export const buildSubgraph = (): PublishSubgraph => { - return { - subgraphDeploymentID: randomHexBytes(), - versionMetadata: randomHexBytes(), - subgraphMetadata: randomHexBytes(), - } -} - -export const subgraphIdToHex = (id: string): string => { - id = id.startsWith('Qm') ? id : `Qm${id}` - return `0x${base58ToHex(id).slice(6)}` -} diff --git a/packages/sdk/src/utils/time.ts b/packages/sdk/src/utils/time.ts deleted file mode 100644 index 87e1bdeba..000000000 --- a/packages/sdk/src/utils/time.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const wait = (ms: number): Promise => { - return new Promise((res) => setTimeout(res, ms)) -} diff --git a/packages/sdk/src/utils/type-guard.ts b/packages/sdk/src/utils/type-guard.ts deleted file mode 100644 index f742f2461..000000000 --- a/packages/sdk/src/utils/type-guard.ts +++ /dev/null @@ -1,12 +0,0 @@ -// https://stackoverflow.com/questions/58278652/generic-enum-type-guard -export function isSomeEnum>(e: T): (token: unknown) => token is T[keyof T] { - const keys = Object.keys(e).filter((k) => { - return !/^\d/.test(k) - }) - const values = keys.map((k) => { - return e[k] - }) - return (token: unknown): token is T[keyof T] => { - return values.includes(token) - } -} diff --git a/packages/sdk/src/utils/units.ts b/packages/sdk/src/utils/units.ts deleted file mode 100644 index 997d47050..000000000 --- a/packages/sdk/src/utils/units.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { BigNumber } from 'ethers' -import { formatUnits, parseUnits } from 'ethers/lib/utils' - -export const toBN = (value: string | number): BigNumber => BigNumber.from(value) -export const toGRT = (value: string | number): BigNumber => { - return parseUnits(typeof value === 'number' ? value.toString() : value, '18') -} -export const formatGRT = (value: BigNumber): string => formatUnits(value, '18') diff --git a/packages/sdk/tsconfig.json b/packages/sdk/tsconfig.json deleted file mode 100644 index 3d2996cb1..000000000 --- a/packages/sdk/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "tsBuildInfoFile": "./cache/tsbuildinfo", - "removeComments": true, - "types": ["@nomiclabs/hardhat-ethers"], - "outDir": "./types" - }, - "include": ["./src/**/*.ts", "./test/**/*.ts"], - "exclude": ["node_modules", "build", "types", "cache"] -} diff --git a/packages/subgraph-service/README.md b/packages/subgraph-service/README.md index 166cdcbe1..ec180b952 100644 --- a/packages/subgraph-service/README.md +++ b/packages/subgraph-service/README.md @@ -6,12 +6,12 @@ The Subgraph Service is a data service designed to work with Graph Horizon that The following environment variables might be required: -| Variable | Description | -|----------|-------------| -| `ARBISCAN_API_KEY` | Arbiscan API key - for contract verification| -| `ARBITRUM_ONE_RPC` | Arbitrum One RPC URL - defaults to `https://arb1.arbitrum.io/rpc` | +| Variable | Description | +| ---------------------- | ------------------------------------------------------------------------------- | +| `ARBISCAN_API_KEY` | Arbiscan API key - for contract verification | +| `ARBITRUM_ONE_RPC` | Arbitrum One RPC URL - defaults to `https://arb1.arbitrum.io/rpc` | | `ARBITRUM_SEPOLIA_RPC` | Arbitrum Sepolia RPC URL - defaults to `https://sepolia-rollup.arbitrum.io/rpc` | -| `LOCALHOST_RPC` | Localhost RPC URL - defaults to `http://localhost:8545` | +| `LOCALHOST_RPC` | Localhost RPC URL - defaults to `http://localhost:8545` | You can set them using Hardhat: @@ -57,9 +57,7 @@ Horizon Steps 2, 3 and 4, and Subgraph Service Step 2 require patching the confi ## Testing - **unit**: Unit tests can be run with `pnpm test` -- **integration**: Integration tests can be run with `pnpm test:integration` - - Need to set `BLOCKCHAIN_RPC` for a chain where The Graph is already deployed - - If no `BLOCKCHAIN_RPC` is detected it will try using `ARBITRUM_SEPOLIA_RPC` +- **integration**: Integration tests can be run with `pnpm test:integration` - Need to set `BLOCKCHAIN_RPC` for a chain where The Graph is already deployed - If no `BLOCKCHAIN_RPC` is detected it will try using `ARBITRUM_SEPOLIA_RPC` - **deployment**: Deployment tests can be run with `pnpm test:deployment --network `, the following environment variables allow customizing the test suite for different scenarios: - `TEST_DEPLOYMENT_STEP` (default: 1) - Specify the latest deployment step that has been executed. Tests for later steps will be skipped. - `TEST_DEPLOYMENT_TYPE` (default: migrate) - The deployment type `protocol/migrate` that is being tested. Test suite has been developed for `migrate` use case but can be run against a `protocol` deployment, likely with some failed tests. diff --git a/packages/subgraph-service/addresses-integration-tests.json b/packages/subgraph-service/addresses-integration-tests.json index 7f60fa388..5bddc12bb 100644 --- a/packages/subgraph-service/addresses-integration-tests.json +++ b/packages/subgraph-service/addresses-integration-tests.json @@ -32,4 +32,4 @@ "implementation": "0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8" } } -} \ No newline at end of file +} diff --git a/packages/subgraph-service/addresses.json b/packages/subgraph-service/addresses.json index 7f60fa388..5bddc12bb 100644 --- a/packages/subgraph-service/addresses.json +++ b/packages/subgraph-service/addresses.json @@ -32,4 +32,4 @@ "implementation": "0x75f7Bd9D2F0bca7bA7189BB582f5eb95afa051e8" } } -} \ No newline at end of file +} diff --git a/packages/subgraph-service/contracts/DisputeManager.sol b/packages/subgraph-service/contracts/DisputeManager.sol index ec6634034..9aae893ef 100644 --- a/packages/subgraph-service/contracts/DisputeManager.sol +++ b/packages/subgraph-service/contracts/DisputeManager.sol @@ -2,14 +2,15 @@ pragma solidity 0.8.27; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IHorizonStaking } from "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol"; -import { IDisputeManager } from "./interfaces/IDisputeManager.sol"; -import { ISubgraphService } from "./interfaces/ISubgraphService.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; import { TokenUtils } from "@graphprotocol/contracts/contracts/utils/TokenUtils.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; import { MathUtils } from "@graphprotocol/horizon/contracts/libraries/MathUtils.sol"; -import { Allocation } from "./libraries/Allocation.sol"; import { Attestation } from "./libraries/Attestation.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; @@ -151,8 +152,8 @@ contract DisputeManager is address fisherman = msg.sender; // Parse each attestation - Attestation.State memory attestation1 = Attestation.parse(attestationData1); - Attestation.State memory attestation2 = Attestation.parse(attestationData2); + IAttestation.State memory attestation1 = Attestation.parse(attestationData1); + IAttestation.State memory attestation2 = Attestation.parse(attestationData2); // Test that attestations are conflicting require( @@ -324,7 +325,7 @@ contract DisputeManager is } /// @inheritdoc IDisputeManager - function encodeReceipt(Attestation.Receipt calldata receipt) external view override returns (bytes32) { + function encodeReceipt(IAttestation.Receipt calldata receipt) external view override returns (bytes32) { return _encodeReceipt(receipt); } @@ -349,18 +350,18 @@ contract DisputeManager is /// @inheritdoc IDisputeManager function areConflictingAttestations( - Attestation.State calldata attestation1, - Attestation.State calldata attestation2 + IAttestation.State calldata attestation1, + IAttestation.State calldata attestation2 ) external pure override returns (bool) { return Attestation.areConflicting(attestation1, attestation2); } /// @inheritdoc IDisputeManager - function getAttestationIndexer(Attestation.State memory attestation) public view returns (address) { + function getAttestationIndexer(IAttestation.State memory attestation) public view returns (address) { // Get attestation signer. Indexers signs with the allocationId address allocationId = _recoverSigner(attestation); - Allocation.State memory alloc = _getSubgraphService().getAllocation(allocationId); + IAllocation.State memory alloc = _getSubgraphService().getAllocation(allocationId); require(alloc.indexer != address(0), DisputeManagerIndexerNotFound(allocationId)); require( alloc.subgraphDeploymentId == attestation.subgraphDeploymentId, @@ -388,7 +389,7 @@ contract DisputeManager is function _createQueryDisputeWithAttestation( address _fisherman, uint256 _deposit, - Attestation.State memory _attestation, + IAttestation.State memory _attestation, bytes memory _attestationData ) private returns (bytes32) { // Get the indexer that signed the attestation @@ -466,7 +467,7 @@ contract DisputeManager is // Allocation must exist ISubgraphService subgraphService_ = _getSubgraphService(); - Allocation.State memory alloc = subgraphService_.getAllocation(_allocationId); + IAllocation.State memory alloc = subgraphService_.getAllocation(_allocationId); address indexer = alloc.indexer; require(indexer != address(0), DisputeManagerIndexerNotFound(_allocationId)); diff --git a/packages/subgraph-service/contracts/DisputeManagerStorage.sol b/packages/subgraph-service/contracts/DisputeManagerStorage.sol index 0f56b4cbe..7441efd00 100644 --- a/packages/subgraph-service/contracts/DisputeManagerStorage.sol +++ b/packages/subgraph-service/contracts/DisputeManagerStorage.sol @@ -2,8 +2,8 @@ pragma solidity 0.8.27; -import { IDisputeManager } from "./interfaces/IDisputeManager.sol"; -import { ISubgraphService } from "./interfaces/ISubgraphService.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; /** * @title DisputeManagerStorage diff --git a/packages/subgraph-service/contracts/SubgraphService.sol b/packages/subgraph-service/contracts/SubgraphService.sol index d3e3a58fd..e12617615 100644 --- a/packages/subgraph-service/contracts/SubgraphService.sol +++ b/packages/subgraph-service/contracts/SubgraphService.sol @@ -1,12 +1,14 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IGraphTallyCollector } from "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol"; -import { IRewardsIssuer } from "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol"; -import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; -import { ISubgraphService } from "./interfaces/ISubgraphService.sol"; +import { IGraphTallyCollector } from "@graphprotocol/interfaces/contracts/horizon/IGraphTallyCollector.sol"; +import { IRewardsIssuer } from "@graphprotocol/interfaces/contracts/contracts/rewards/IRewardsIssuer.sol"; +import { IDataService } from "@graphprotocol/interfaces/contracts/data-service/IDataService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; +import { ILegacyAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import { MulticallUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol"; @@ -23,7 +25,6 @@ import { SubgraphServiceV1Storage } from "./SubgraphServiceStorage.sol"; import { TokenUtils } from "@graphprotocol/contracts/contracts/utils/TokenUtils.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; import { Allocation } from "./libraries/Allocation.sol"; -import { LegacyAllocation } from "./libraries/LegacyAllocation.sol"; /** * @title SubgraphService contract @@ -44,8 +45,8 @@ contract SubgraphService is ISubgraphService { using PPMMath for uint256; - using Allocation for mapping(address => Allocation.State); - using Allocation for Allocation.State; + using Allocation for mapping(address => IAllocation.State); + using Allocation for IAllocation.State; using TokenUtils for IGraphToken; /** @@ -301,7 +302,7 @@ contract SubgraphService is /// @inheritdoc ISubgraphService function closeStaleAllocation(address allocationId) external override whenNotPaused { - Allocation.State memory allocation = _allocations.get(allocationId); + IAllocation.State memory allocation = _allocations.get(allocationId); require(allocation.isStale(maxPOIStaleness), SubgraphServiceCannotForceCloseAllocation(allocationId)); require(!allocation.isAltruistic(), SubgraphServiceAllocationIsAltruistic(allocationId)); _closeAllocation(allocationId, true); @@ -373,7 +374,7 @@ contract SubgraphService is } /// @inheritdoc ISubgraphService - function getAllocation(address allocationId) external view override returns (Allocation.State memory) { + function getAllocation(address allocationId) external view override returns (IAllocation.State memory) { return _allocations[allocationId]; } @@ -381,7 +382,7 @@ contract SubgraphService is function getAllocationData( address allocationId ) external view override returns (bool, address, bytes32, uint256, uint256, uint256) { - Allocation.State memory allo = _allocations[allocationId]; + IAllocation.State memory allo = _allocations[allocationId]; return ( allo.isOpen(), allo.indexer, @@ -398,7 +399,7 @@ contract SubgraphService is } /// @inheritdoc ISubgraphService - function getLegacyAllocation(address allocationId) external view override returns (LegacyAllocation.State memory) { + function getLegacyAllocation(address allocationId) external view override returns (ILegacyAllocation.State memory) { return _legacyAllocations[allocationId]; } @@ -507,7 +508,7 @@ contract SubgraphService is SubgraphServiceInvalidCollectionId(signedRav.rav.collectionId) ); address allocationId = address(uint160(uint256(signedRav.rav.collectionId))); - Allocation.State memory allocation = _allocations.get(allocationId); + IAllocation.State memory allocation = _allocations.get(allocationId); // Check RAV is consistent - RAV indexer must match the allocation's indexer require(allocation.indexer == _indexer, SubgraphServiceInvalidRAV(_indexer, allocation.indexer)); diff --git a/packages/subgraph-service/contracts/SubgraphServiceStorage.sol b/packages/subgraph-service/contracts/SubgraphServiceStorage.sol index 06ada3a59..133963347 100644 --- a/packages/subgraph-service/contracts/SubgraphServiceStorage.sol +++ b/packages/subgraph-service/contracts/SubgraphServiceStorage.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { ISubgraphService } from "./interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; /** * @title SubgraphServiceStorage diff --git a/packages/subgraph-service/contracts/libraries/Allocation.sol b/packages/subgraph-service/contracts/libraries/Allocation.sol index 6f6563068..88f7195b8 100644 --- a/packages/subgraph-service/contracts/libraries/Allocation.sol +++ b/packages/subgraph-service/contracts/libraries/Allocation.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; + import { Math } from "@openzeppelin/contracts/utils/math/Math.sol"; /** @@ -10,50 +12,7 @@ import { Math } from "@openzeppelin/contracts/utils/math/Math.sol"; * bugs. We may have an active bug bounty program. */ library Allocation { - using Allocation for State; - - /** - * @notice Allocation details - * @param indexer The indexer that owns the allocation - * @param subgraphDeploymentId The subgraph deployment id the allocation is for - * @param tokens The number of tokens allocated - * @param createdAt The timestamp when the allocation was created - * @param closedAt The timestamp when the allocation was closed - * @param lastPOIPresentedAt The timestamp when the last POI was presented - * @param accRewardsPerAllocatedToken The accumulated rewards per allocated token - * @param accRewardsPending The accumulated rewards that are pending to be claimed due allocation resize - * @param createdAtEpoch The epoch when the allocation was created - */ - struct State { - address indexer; - bytes32 subgraphDeploymentId; - uint256 tokens; - uint256 createdAt; - uint256 closedAt; - uint256 lastPOIPresentedAt; - uint256 accRewardsPerAllocatedToken; - uint256 accRewardsPending; - uint256 createdAtEpoch; - } - - /** - * @notice Thrown when attempting to create an allocation with an existing id - * @param allocationId The allocation id - */ - error AllocationAlreadyExists(address allocationId); - - /** - * @notice Thrown when trying to perform an operation on a non-existent allocation - * @param allocationId The allocation id - */ - error AllocationDoesNotExist(address allocationId); - - /** - * @notice Thrown when trying to perform an operation on a closed allocation - * @param allocationId The allocation id - * @param closedAt The timestamp when the allocation was closed - */ - error AllocationClosed(address allocationId, uint256 closedAt); + using Allocation for IAllocation.State; /** * @notice Create a new allocation @@ -69,17 +28,17 @@ library Allocation { * @return The allocation */ function create( - mapping(address => State) storage self, + mapping(address => IAllocation.State) storage self, address indexer, address allocationId, bytes32 subgraphDeploymentId, uint256 tokens, uint256 accRewardsPerAllocatedToken, uint256 createdAtEpoch - ) internal returns (State memory) { - require(!self[allocationId].exists(), AllocationAlreadyExists(allocationId)); + ) internal returns (IAllocation.State memory) { + require(!self[allocationId].exists(), IAllocation.AllocationAlreadyExists(allocationId)); - State memory allocation = State({ + IAllocation.State memory allocation = IAllocation.State({ indexer: indexer, subgraphDeploymentId: subgraphDeploymentId, tokens: tokens, @@ -104,9 +63,9 @@ library Allocation { * @param self The allocation list mapping * @param allocationId The allocation id */ - function presentPOI(mapping(address => State) storage self, address allocationId) internal { - State storage allocation = _get(self, allocationId); - require(allocation.isOpen(), AllocationClosed(allocationId, allocation.closedAt)); + function presentPOI(mapping(address => IAllocation.State) storage self, address allocationId) internal { + IAllocation.State storage allocation = _get(self, allocationId); + require(allocation.isOpen(), IAllocation.AllocationClosed(allocationId, allocation.closedAt)); allocation.lastPOIPresentedAt = block.timestamp; } @@ -119,12 +78,12 @@ library Allocation { * @param accRewardsPerAllocatedToken The new accumulated rewards per allocated token */ function snapshotRewards( - mapping(address => State) storage self, + mapping(address => IAllocation.State) storage self, address allocationId, uint256 accRewardsPerAllocatedToken ) internal { - State storage allocation = _get(self, allocationId); - require(allocation.isOpen(), AllocationClosed(allocationId, allocation.closedAt)); + IAllocation.State storage allocation = _get(self, allocationId); + require(allocation.isOpen(), IAllocation.AllocationClosed(allocationId, allocation.closedAt)); allocation.accRewardsPerAllocatedToken = accRewardsPerAllocatedToken; } @@ -135,9 +94,9 @@ library Allocation { * @param self The allocation list mapping * @param allocationId The allocation id */ - function clearPendingRewards(mapping(address => State) storage self, address allocationId) internal { - State storage allocation = _get(self, allocationId); - require(allocation.isOpen(), AllocationClosed(allocationId, allocation.closedAt)); + function clearPendingRewards(mapping(address => IAllocation.State) storage self, address allocationId) internal { + IAllocation.State storage allocation = _get(self, allocationId); + require(allocation.isOpen(), IAllocation.AllocationClosed(allocationId, allocation.closedAt)); allocation.accRewardsPending = 0; } @@ -148,9 +107,9 @@ library Allocation { * @param self The allocation list mapping * @param allocationId The allocation id */ - function close(mapping(address => State) storage self, address allocationId) internal { - State storage allocation = _get(self, allocationId); - require(allocation.isOpen(), AllocationClosed(allocationId, allocation.closedAt)); + function close(mapping(address => IAllocation.State) storage self, address allocationId) internal { + IAllocation.State storage allocation = _get(self, allocationId); + require(allocation.isOpen(), IAllocation.AllocationClosed(allocationId, allocation.closedAt)); allocation.closedAt = block.timestamp; } @@ -160,7 +119,10 @@ library Allocation { * @param allocationId The allocation id * @return The allocation */ - function get(mapping(address => State) storage self, address allocationId) internal view returns (State memory) { + function get( + mapping(address => IAllocation.State) storage self, + address allocationId + ) internal view returns (IAllocation.State memory) { return _get(self, allocationId); } @@ -170,7 +132,7 @@ library Allocation { * @param staleThreshold The time in blocks to consider an allocation stale * @return True if the allocation is stale */ - function isStale(State memory self, uint256 staleThreshold) internal view returns (bool) { + function isStale(IAllocation.State memory self, uint256 staleThreshold) internal view returns (bool) { uint256 timeSinceLastPOI = block.timestamp - Math.max(self.createdAt, self.lastPOIPresentedAt); return self.isOpen() && timeSinceLastPOI > staleThreshold; } @@ -180,7 +142,7 @@ library Allocation { * @param self The allocation * @return True if the allocation exists */ - function exists(State memory self) internal pure returns (bool) { + function exists(IAllocation.State memory self) internal pure returns (bool) { return self.createdAt != 0; } @@ -189,7 +151,7 @@ library Allocation { * @param self The allocation * @return True if the allocation is open */ - function isOpen(State memory self) internal pure returns (bool) { + function isOpen(IAllocation.State memory self) internal pure returns (bool) { return self.exists() && self.closedAt == 0; } @@ -198,7 +160,7 @@ library Allocation { * @param self The allocation * @return True if the allocation is alturistic */ - function isAltruistic(State memory self) internal pure returns (bool) { + function isAltruistic(IAllocation.State memory self) internal pure returns (bool) { return self.exists() && self.tokens == 0; } @@ -209,9 +171,12 @@ library Allocation { * @param allocationId The allocation id * @return The allocation */ - function _get(mapping(address => State) storage self, address allocationId) private view returns (State storage) { - State storage allocation = self[allocationId]; - require(allocation.exists(), AllocationDoesNotExist(allocationId)); + function _get( + mapping(address => IAllocation.State) storage self, + address allocationId + ) private view returns (IAllocation.State storage) { + IAllocation.State storage allocation = self[allocationId]; + require(allocation.exists(), IAllocation.AllocationDoesNotExist(allocationId)); return allocation; } } diff --git a/packages/subgraph-service/contracts/libraries/Attestation.sol b/packages/subgraph-service/contracts/libraries/Attestation.sol index b7acd0a10..d821fbfbc 100644 --- a/packages/subgraph-service/contracts/libraries/Attestation.sol +++ b/packages/subgraph-service/contracts/libraries/Attestation.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; + /** * @title Attestation library * @notice A library to handle Attestation. @@ -8,36 +10,6 @@ pragma solidity 0.8.27; * bugs. We may have an active bug bounty program. */ library Attestation { - /** - * @notice Receipt content sent from the service provider in response to request - * @param requestCID The request CID - * @param responseCID The response CID - * @param subgraphDeploymentId The subgraph deployment id - */ - struct Receipt { - bytes32 requestCID; - bytes32 responseCID; - bytes32 subgraphDeploymentId; - } - - /** - * @notice Attestation sent from the service provider in response to a request - * @param requestCID The request CID - * @param responseCID The response CID - * @param subgraphDeploymentId The subgraph deployment id - * @param r The r value of the signature - * @param s The s value of the signature - * @param v The v value of the signature - */ - struct State { - bytes32 requestCID; - bytes32 responseCID; - bytes32 subgraphDeploymentId; - bytes32 r; - bytes32 s; - uint8 v; - } - /// @notice Attestation size is the sum of the receipt (96) + signature (65) uint256 private constant RECEIPT_SIZE_BYTES = 96; @@ -71,13 +43,6 @@ library Attestation { /// @notice The length of the bytes32 value uint256 private constant BYTES32_BYTE_LENGTH = 32; - /** - * @notice The error thrown when the attestation data length is invalid - * @param length The length of the attestation data - * @param expectedLength The expected length of the attestation data - */ - error AttestationInvalidBytesLength(uint256 length, uint256 expectedLength); - /** * @dev Returns if two attestations are conflicting. * Everything must match except for the responseId. @@ -86,8 +51,8 @@ library Attestation { * @return True if the two attestations are conflicting */ function areConflicting( - Attestation.State memory _attestation1, - Attestation.State memory _attestation2 + IAttestation.State memory _attestation1, + IAttestation.State memory _attestation2 ) internal pure returns (bool) { return (_attestation1.requestCID == _attestation2.requestCID && _attestation1.subgraphDeploymentId == _attestation2.subgraphDeploymentId && @@ -99,11 +64,11 @@ library Attestation { * @param _data The bytes to parse * @return Attestation struct */ - function parse(bytes memory _data) internal pure returns (State memory) { + function parse(bytes memory _data) internal pure returns (IAttestation.State memory) { // Check attestation data length require( _data.length == ATTESTATION_SIZE_BYTES, - AttestationInvalidBytesLength(_data.length, ATTESTATION_SIZE_BYTES) + IAttestation.AttestationInvalidBytesLength(_data.length, ATTESTATION_SIZE_BYTES) ); // Decode receipt @@ -118,7 +83,7 @@ library Attestation { bytes32 s = _toBytes32(_data, SIG_S_OFFSET); uint8 v = _toUint8(_data, SIG_V_OFFSET); - return State(requestCID, responseCID, subgraphDeploymentId, r, s, v); + return IAttestation.State(requestCID, responseCID, subgraphDeploymentId, r, s, v); } /** @@ -130,7 +95,7 @@ library Attestation { function _toUint8(bytes memory _bytes, uint256 _start) private pure returns (uint8) { require( _bytes.length >= _start + UINT8_BYTE_LENGTH, - AttestationInvalidBytesLength(_bytes.length, _start + UINT8_BYTE_LENGTH) + IAttestation.AttestationInvalidBytesLength(_bytes.length, _start + UINT8_BYTE_LENGTH) ); uint8 tempUint; @@ -154,7 +119,7 @@ library Attestation { function _toBytes32(bytes memory _bytes, uint256 _start) private pure returns (bytes32) { require( _bytes.length >= _start + BYTES32_BYTE_LENGTH, - AttestationInvalidBytesLength(_bytes.length, _start + BYTES32_BYTE_LENGTH) + IAttestation.AttestationInvalidBytesLength(_bytes.length, _start + BYTES32_BYTE_LENGTH) ); bytes32 tempBytes32; diff --git a/packages/subgraph-service/contracts/libraries/LegacyAllocation.sol b/packages/subgraph-service/contracts/libraries/LegacyAllocation.sol index 3d7f96213..2d73abd91 100644 --- a/packages/subgraph-service/contracts/libraries/LegacyAllocation.sol +++ b/packages/subgraph-service/contracts/libraries/LegacyAllocation.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IHorizonStaking } from "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; +import { ILegacyAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol"; /** * @title LegacyAllocation library @@ -10,31 +11,7 @@ import { IHorizonStaking } from "@graphprotocol/horizon/contracts/interfaces/IHo * bugs. We may have an active bug bounty program. */ library LegacyAllocation { - using LegacyAllocation for State; - - /** - * @notice Legacy allocation details - * @dev Note that we are only storing the indexer and subgraphDeploymentId. The main point of tracking legacy allocations - * is to prevent them from being re used on the Subgraph Service. We don't need to store the rest of the allocation details. - * @param indexer The indexer that owns the allocation - * @param subgraphDeploymentId The subgraph deployment id the allocation is for - */ - struct State { - address indexer; - bytes32 subgraphDeploymentId; - } - - /** - * @notice Thrown when attempting to migrate an allocation with an existing id - * @param allocationId The allocation id - */ - error LegacyAllocationAlreadyExists(address allocationId); - - /** - * @notice Thrown when trying to get a non-existent allocation - * @param allocationId The allocation id - */ - error LegacyAllocationDoesNotExist(address allocationId); + using LegacyAllocation for ILegacyAllocation.State; /** * @notice Migrate a legacy allocation @@ -47,14 +24,14 @@ library LegacyAllocation { * @custom:error LegacyAllocationAlreadyMigrated if the allocation has already been migrated */ function migrate( - mapping(address => State) storage self, + mapping(address => ILegacyAllocation.State) storage self, address indexer, address allocationId, bytes32 subgraphDeploymentId ) internal { - require(!self[allocationId].exists(), LegacyAllocationAlreadyExists(allocationId)); + require(!self[allocationId].exists(), ILegacyAllocation.LegacyAllocationAlreadyExists(allocationId)); - self[allocationId] = State({ indexer: indexer, subgraphDeploymentId: subgraphDeploymentId }); + self[allocationId] = ILegacyAllocation.State({ indexer: indexer, subgraphDeploymentId: subgraphDeploymentId }); } /** @@ -63,7 +40,10 @@ library LegacyAllocation { * @param allocationId The allocation id * @return The legacy allocation details */ - function get(mapping(address => State) storage self, address allocationId) internal view returns (State memory) { + function get( + mapping(address => ILegacyAllocation.State) storage self, + address allocationId + ) internal view returns (ILegacyAllocation.State memory) { return _get(self, allocationId); } @@ -77,12 +57,15 @@ library LegacyAllocation { * @param allocationId The allocation id */ function revertIfExists( - mapping(address => State) storage self, + mapping(address => ILegacyAllocation.State) storage self, IHorizonStaking graphStaking, address allocationId ) internal view { - require(!self[allocationId].exists(), LegacyAllocationAlreadyExists(allocationId)); - require(!graphStaking.isAllocation(allocationId), LegacyAllocationAlreadyExists(allocationId)); + require(!self[allocationId].exists(), ILegacyAllocation.LegacyAllocationAlreadyExists(allocationId)); + require( + !graphStaking.isAllocation(allocationId), + ILegacyAllocation.LegacyAllocationAlreadyExists(allocationId) + ); } /** @@ -90,7 +73,7 @@ library LegacyAllocation { * @param self The legacy allocation * @return True if the allocation exists */ - function exists(State memory self) internal pure returns (bool) { + function exists(ILegacyAllocation.State memory self) internal pure returns (bool) { return self.indexer != address(0); } @@ -100,9 +83,12 @@ library LegacyAllocation { * @param allocationId The allocation id * @return The legacy allocation details */ - function _get(mapping(address => State) storage self, address allocationId) private view returns (State storage) { - State storage allocation = self[allocationId]; - require(allocation.exists(), LegacyAllocationDoesNotExist(allocationId)); + function _get( + mapping(address => ILegacyAllocation.State) storage self, + address allocationId + ) private view returns (ILegacyAllocation.State storage) { + ILegacyAllocation.State storage allocation = self[allocationId]; + require(allocation.exists(), ILegacyAllocation.LegacyAllocationDoesNotExist(allocationId)); return allocation; } } diff --git a/packages/subgraph-service/contracts/mocks/imports.sol b/packages/subgraph-service/contracts/mocks/imports.sol deleted file mode 100644 index 0ea38705e..000000000 --- a/packages/subgraph-service/contracts/mocks/imports.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -pragma solidity ^0.7.6 || 0.8.27; - -// These are needed to get artifacts for toolshed -import "@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol"; -import "@graphprotocol/contracts/contracts/discovery/ISubgraphNFT.sol"; - -// Also for toolshed, solidity version in @graphprotocol/contracts does not support overriding public getters -// in interface file, so we need to amend them here. -import { IServiceRegistry } from "@graphprotocol/contracts/contracts/discovery/IServiceRegistry.sol"; -import { IL2Curation } from "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol"; -import { IGNS } from "@graphprotocol/contracts/contracts/discovery/IGNS.sol"; - -interface IL2CurationToolshed is IL2Curation { - function subgraphService() external view returns (address); -} - -interface IServiceRegistryToolshed is IServiceRegistry { - function services(address indexer) external view returns (IServiceRegistry.IndexerService memory); -} - -interface IGNSToolshed is IGNS { - function subgraphNFT() external view returns (address); -} diff --git a/packages/subgraph-service/contracts/utilities/AllocationManager.sol b/packages/subgraph-service/contracts/utilities/AllocationManager.sol index 78e5fa190..966d3571f 100644 --- a/packages/subgraph-service/contracts/utilities/AllocationManager.sol +++ b/packages/subgraph-service/contracts/utilities/AllocationManager.sol @@ -1,9 +1,11 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; -import { IHorizonStakingTypes } from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; +import { ILegacyAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol"; import { GraphDirectory } from "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol"; import { AllocationManagerV1Storage } from "./AllocationManagerStorage.sol"; @@ -26,9 +28,9 @@ import { ProvisionTracker } from "@graphprotocol/horizon/contracts/data-service/ */ abstract contract AllocationManager is EIP712Upgradeable, GraphDirectory, AllocationManagerV1Storage { using ProvisionTracker for mapping(address => uint256); - using Allocation for mapping(address => Allocation.State); - using Allocation for Allocation.State; - using LegacyAllocation for mapping(address => LegacyAllocation.State); + using Allocation for mapping(address => IAllocation.State); + using Allocation for IAllocation.State; + using LegacyAllocation for mapping(address => ILegacyAllocation.State); using PPMMath for uint256; using TokenUtils for IGraphToken; @@ -213,7 +215,7 @@ abstract contract AllocationManager is EIP712Upgradeable, GraphDirectory, Alloca _legacyAllocations.revertIfExists(_graphStaking(), _allocationId); uint256 currentEpoch = _graphEpochManager().currentEpoch(); - Allocation.State memory allocation = _allocations.create( + IAllocation.State memory allocation = _allocations.create( _indexer, _allocationId, _subgraphDeploymentId, @@ -268,7 +270,7 @@ abstract contract AllocationManager is EIP712Upgradeable, GraphDirectory, Alloca uint32 _delegationRatio, address _paymentsDestination ) internal returns (uint256) { - Allocation.State memory allocation = _allocations.get(_allocationId); + IAllocation.State memory allocation = _allocations.get(_allocationId); require(allocation.isOpen(), AllocationManagerAllocationClosed(_allocationId)); // Mint indexing rewards if all conditions are met @@ -358,7 +360,7 @@ abstract contract AllocationManager is EIP712Upgradeable, GraphDirectory, Alloca * @param _delegationRatio The delegation ratio to consider when locking tokens */ function _resizeAllocation(address _allocationId, uint256 _tokens, uint32 _delegationRatio) internal { - Allocation.State memory allocation = _allocations.get(_allocationId); + IAllocation.State memory allocation = _allocations.get(_allocationId); require(allocation.isOpen(), AllocationManagerAllocationClosed(_allocationId)); require(_tokens != allocation.tokens, AllocationManagerAllocationSameSize(_allocationId, _tokens)); @@ -409,7 +411,7 @@ abstract contract AllocationManager is EIP712Upgradeable, GraphDirectory, Alloca * @param _forceClosed Whether the allocation was force closed */ function _closeAllocation(address _allocationId, bool _forceClosed) internal { - Allocation.State memory allocation = _allocations.get(_allocationId); + IAllocation.State memory allocation = _allocations.get(_allocationId); // Take rewards snapshot to prevent other allos from counting tokens from this allo _allocations.snapshotRewards( diff --git a/packages/subgraph-service/contracts/utilities/AllocationManagerStorage.sol b/packages/subgraph-service/contracts/utilities/AllocationManagerStorage.sol index 1c4f555d8..4c0870291 100644 --- a/packages/subgraph-service/contracts/utilities/AllocationManagerStorage.sol +++ b/packages/subgraph-service/contracts/utilities/AllocationManagerStorage.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { Allocation } from "../libraries/Allocation.sol"; -import { LegacyAllocation } from "../libraries/LegacyAllocation.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; +import { ILegacyAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol"; /** * @title AllocationManagerStorage @@ -12,10 +12,10 @@ import { LegacyAllocation } from "../libraries/LegacyAllocation.sol"; */ abstract contract AllocationManagerV1Storage { /// @notice Allocation details - mapping(address allocationId => Allocation.State allocation) internal _allocations; + mapping(address allocationId => IAllocation.State allocation) internal _allocations; /// @notice Legacy allocation details - mapping(address allocationId => LegacyAllocation.State allocation) internal _legacyAllocations; + mapping(address allocationId => ILegacyAllocation.State allocation) internal _legacyAllocations; /// @notice Tracks allocated tokens per indexer mapping(address indexer => uint256 tokens) public allocationProvisionTracker; diff --git a/packages/subgraph-service/contracts/utilities/AttestationManager.sol b/packages/subgraph-service/contracts/utilities/AttestationManager.sol index a0771a841..f385beeb5 100644 --- a/packages/subgraph-service/contracts/utilities/AttestationManager.sol +++ b/packages/subgraph-service/contracts/utilities/AttestationManager.sol @@ -1,11 +1,12 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; + import { AttestationManagerV1Storage } from "./AttestationManagerStorage.sol"; import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import { Attestation } from "../libraries/Attestation.sol"; /** * @title AttestationManager contract @@ -62,9 +63,9 @@ abstract contract AttestationManager is Initializable, AttestationManagerV1Stora * @param _attestation The attestation struct * @return Signer address */ - function _recoverSigner(Attestation.State memory _attestation) internal view returns (address) { + function _recoverSigner(IAttestation.State memory _attestation) internal view returns (address) { // Obtain the hash of the fully-encoded message, per EIP-712 encoding - Attestation.Receipt memory receipt = Attestation.Receipt( + IAttestation.Receipt memory receipt = IAttestation.Receipt( _attestation.requestCID, _attestation.responseCID, _attestation.subgraphDeploymentId @@ -84,7 +85,7 @@ abstract contract AttestationManager is Initializable, AttestationManagerV1Stora * @param _receipt Receipt returned by indexer and submitted by fisherman * @return Message hash used to sign the receipt */ - function _encodeReceipt(Attestation.Receipt memory _receipt) internal view returns (bytes32) { + function _encodeReceipt(IAttestation.Receipt memory _receipt) internal view returns (bytes32) { return keccak256( abi.encodePacked( diff --git a/packages/subgraph-service/contracts/utilities/Directory.sol b/packages/subgraph-service/contracts/utilities/Directory.sol index d068c74b3..9be964679 100644 --- a/packages/subgraph-service/contracts/utilities/Directory.sol +++ b/packages/subgraph-service/contracts/utilities/Directory.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; -import { IDisputeManager } from "../interfaces/IDisputeManager.sol"; -import { ISubgraphService } from "../interfaces/ISubgraphService.sol"; -import { IGraphTallyCollector } from "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; +import { IGraphTallyCollector } from "@graphprotocol/interfaces/contracts/horizon/IGraphTallyCollector.sol"; import { ICuration } from "@graphprotocol/contracts/contracts/curation/ICuration.sol"; /** diff --git a/packages/subgraph-service/hardhat.config.ts b/packages/subgraph-service/hardhat.config.ts index 54e2ed8d2..2aa8b6827 100644 --- a/packages/subgraph-service/hardhat.config.ts +++ b/packages/subgraph-service/hardhat.config.ts @@ -5,18 +5,19 @@ import '@nomicfoundation/hardhat-ignition-ethers' import 'hardhat-contract-sizer' import 'hardhat-secure-accounts' import 'solidity-docgen' +import 'hardhat-graph-protocol' import { hardhatBaseConfig, isProjectBuilt, loadTasks } from '@graphprotocol/toolshed/hardhat' import { HardhatUserConfig } from 'hardhat/config' -// Skip importing hardhat-graph-protocol when building the project, it has circular dependency +// Some tasks need compiled artifacts to run so we avoid loading them when building the project if (isProjectBuilt(__dirname)) { - require('hardhat-graph-protocol') loadTasks(__dirname) } +const baseConfig = hardhatBaseConfig(require) const config: HardhatUserConfig = { - ...hardhatBaseConfig, + ...baseConfig, solidity: { version: '0.8.27', settings: { diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Controller#Controller.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Controller#Controller.json index 6979339d2..704f884a3 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Controller#Controller.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Controller#Controller.json @@ -346,4 +346,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80635c975abb116100a2578063e0e9929211610071578063e0e9929214610215578063e3056a3414610241578063eb5dd94f14610249578063f2fde38b14610275578063f7641a5e1461029b5761010b565b80635c975abb146101e057806379ba5097146101e85780639181df9c146101f057806391b4ded91461020d5761010b565b80632e292fc7116100de5780632e292fc71461017757806348bde20c146101935780634fc07d75146101b957806356371bd8146101c15761010b565b80630c340a2414610110578063147ddef51461013457806316c38b3c1461014e57806324a3d6221461016f575b600080fd5b6101186102b8565b604080516001600160a01b039092168252519081900360200190f35b61013c6102c7565b60408051918252519081900360200190f35b61016d6004803603602081101561016457600080fd5b503515156102cd565b005b610118610337565b61017f610346565b604080519115158252519081900360200190f35b61016d600480360360208110156101a957600080fd5b50356001600160a01b0316610356565b610118610412565b61016d600480360360208110156101d757600080fd5b50351515610421565b61017f610488565b61016d610498565b61016d6004803603602081101561020657600080fd5b50356105a6565b61013c610651565b61016d6004803603604081101561022b57600080fd5b50803590602001356001600160a01b0316610657565b61011861076e565b61016d6004803603604081101561025f57600080fd5b50803590602001356001600160a01b031661077d565b61016d6004803603602081101561028b57600080fd5b50356001600160a01b0316610899565b610118600480360360208110156102b157600080fd5b5035610997565b6000546001600160a01b031681565b60025481565b6000546001600160a01b03163314806102f057506004546001600160a01b031633145b61032b5760405162461bcd60e51b8152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b610334816109d4565b50565b6004546001600160a01b031681565b600154600160a01b900460ff1690565b6000546001600160a01b031633146103ae576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610409576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61033481610a65565b6000546001600160a01b031690565b6000546001600160a01b031633148061044457506004546001600160a01b031633145b61047f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b61033481610ab7565b600154600160a81b900460ff1690565b6001546001600160a01b031680158015906104bb5750336001600160a01b038216145b61050c576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b600081815260056020908152604080832080546001600160a01b031916905580519283525183927f937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd92908290030190a250565b60035481565b6000546001600160a01b031633146106af576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661070a576040805162461bcd60e51b815260206004820152601c60248201527f436f6e74726163742061646472657373206d7573742062652073657400000000604482015290519081900360640190fd5b60008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927f937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd92908290030190a25050565b6001546001600160a01b031681565b6000546001600160a01b031633146107d5576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610829576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b6000828152600560205260408082205481516392eefe9b60e01b81526001600160a01b038581166004830152925192909116926392eefe9b9260248084019382900301818387803b15801561087d57600080fd5b505af1158015610891573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146108f1576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610943576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000908152600560205260409020546001600160a01b031690565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600160159054906101000a900460ff16151581151514156109f457610334565b6001805460ff60a81b1916600160a81b8315158102919091179182905560ff91041615610a2057426003555b60015460408051600160a81b90920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b600160149054906101000a900460ff1615158115151415610ad757610334565b6001805460ff60a01b1916600160a01b8315158102919091179182905560ff91041615610b0357426002555b60015460408051600160a01b90920460ff1615158252517f511b770d1b1dc5cbd412a5017f55cbb2295b826385e5f46c1de2b6ebeb44ae02916020908290030190a15056fe4f6e6c7920476f7665726e6f72206f7220477561726469616e2063616e2063616c6ca26469706673582212207cecec10a8617577e80b5c52f6cd82da5e5974468c039848ed5e90b25c8267c764736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json index 767ad87b5..d34dc828e 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", "buildInfo": "../build-info/81754efc7e2eec76b7d493cc60c0f970.json" -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.json index e01123577..45c7dd257 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.json @@ -1554,4 +1554,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManagerProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManagerProxy.json index 5f5b5ea19..bd6209923 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManagerProxy.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManagerProxy.json @@ -113,4 +113,4 @@ "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea26469706673582212201a31c3db442064e980907a5ca999ca52c132d057688e882222814e029a3aad9064736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_ProxyWithABI.json index e01123577..45c7dd257 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_ProxyWithABI.json @@ -1554,4 +1554,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#ProxyAdmin.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#ProxyAdmin.json index 8db6171f9..a6fc103d5 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#ProxyAdmin.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#ProxyAdmin.json @@ -129,4 +129,4 @@ "deployedBytecode": "0x608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220098134bf3dcb274377e55b14b69b89c7eefde1171c4c5b1eb6233b5158fa785b64736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager.json index b14ccddd8..7b6cdc168 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager.json @@ -361,4 +361,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a264697066735822122045232c339fada874ae01964572e7664b10cfd18abe5a79dda984153cc999839564736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_ProxyWithABI.json index b14ccddd8..7b6cdc168 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_ProxyWithABI.json @@ -361,4 +361,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a264697066735822122045232c339fada874ae01964572e7664b10cfd18abe5a79dda984153cc999839564736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#GraphProxy.json index 2cfb21e41..97963021c 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#GraphProxy.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#GraphProxy.json @@ -174,4 +174,4 @@ "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json index 45cfb0f51..ad6569c41 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json @@ -334,4 +334,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_ProxyWithABI.json index 45cfb0f51..ad6569c41 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_ProxyWithABI.json @@ -334,4 +334,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphProxyAdmin#GraphProxyAdmin.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphProxyAdmin#GraphProxyAdmin.json index 07f0623c5..27c84f2ee 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphProxyAdmin#GraphProxyAdmin.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphProxyAdmin#GraphProxyAdmin.json @@ -231,4 +231,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637eff275e116100715780637eff275e146101b157806399a88ec4146101df578063e3056a341461020d578063eb451a0214610215578063f2fde38b14610243578063f3b7dead14610269576100a9565b806307ebde0e146100ae5780630c340a2414610139578063204e1c7a1461015d5780635bf410eb1461018357806379ba5097146101a9575b600080fd5b610137600480360360608110156100c457600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b50909250905061028f565b005b610141610388565b604080516001600160a01b039092168252519081900360200190f35b6101416004803603602081101561017357600080fd5b50356001600160a01b0316610397565b6101416004803603602081101561019957600080fd5b50356001600160a01b031661046a565b610137610525565b610137600480360360408110156101c757600080fd5b506001600160a01b0381358116916020013516610633565b610137600480360360408110156101f557600080fd5b506001600160a01b03813581169160200135166106f6565b61014161079d565b6101376004803603604081101561022b57600080fd5b506001600160a01b03813581169160200135166107ac565b6101376004803603602081101561025957600080fd5b50356001600160a01b0316610853565b6101416004803603602081101561027f57600080fd5b50356001600160a01b0316610951565b6000546001600160a01b031633146102e7576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b836001600160a01b0316639ce7abe58484846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031681565b6000806000836001600160a01b03166040518080635c60da1b60e01b8152506004019050600060405180830381855afa9150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b50915091508161044b576040805162461bcd60e51b8152602060048201526016602482015275141c9bde1e481a5b5c1b0818d85b1b0819985a5b195960521b604482015290519081900360640190fd5b80806020019051602081101561046057600080fd5b5051949350505050565b6000806000836001600160a01b0316604051808063396f7b2360e01b8152506004019050600060405180830381855afa9150503d80600081146104c9576040519150601f19603f3d011682016040523d82523d6000602084013e6104ce565b606091505b50915091508161044b576040805162461bcd60e51b815260206004820152601d60248201527f50726f78792070656e64696e67496d706c2063616c6c206661696c6564000000604482015290519081900360640190fd5b6001546001600160a01b031680158015906105485750336001600160a01b038216145b610599576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000546001600160a01b0316331461068b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b505af11580156106ee573d6000803e3d6000fd5b505050505050565b6000546001600160a01b0316331461074e576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b0316633659cfe6826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b6001546001600160a01b031681565b6000546001600160a01b03163314610804576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b031663a2594d82826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b6000546001600160a01b031633146108ab576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b0381166108fd576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000806000836001600160a01b031660405180806303e1469160e61b8152506004019050600060405180830381855afa9150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b50915091508161044b576040805162461bcd60e51b815260206004820152601760248201527f50726f78792061646d696e2063616c6c206661696c6564000000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b039290921691909117905556fea26469706673582212208b271ee4c7625d89f662c15e90f70e142245bf56f0595043fe9af742b09d958c64736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTallyCollector#GraphTallyCollector.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTallyCollector#GraphTallyCollector.json index f430c0ad9..92095e0eb 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTallyCollector#GraphTallyCollector.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTallyCollector#GraphTallyCollector.json @@ -897,4 +897,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ba5760003560e01c8063015cdd80146100bf5780631354f019146100d4578063181250ff146100e757806326969c4c1461013457806339aa7416146101475780633a13e1af1461015a57806363648817146101be57806365e4ad9e146101de578063692209ce146102015780637f07d2831461021457806384b0196e146102275780639b95288114610242578063bea5d2ab14610269578063fee9f01f14610295575b600080fd5b6100d26100cd3660046111d7565b6102a8565b005b6100d26100e23660046111d7565b610355565b6101216100f53660046111f4565b600360209081526000948552604080862082529385528385208152918452828420909152825290205481565b6040519081526020015b60405180910390f35b610121610142366004611247565b6103ea565b6100d26101553660046111d7565b610403565b6101976101683660046111d7565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169160ff1683565b604080516001600160a01b039094168452602084019290925215159082015260600161012b565b6101d16101cc366004611281565b6104cd565b60405161012b91906112bb565b6101f16101ec3660046112cf565b6104e0565b604051901515815260200161012b565b61012161020f36600461135f565b6104f3565b6101216102223660046113b8565b61050a565b61022f610521565b60405161012b9796959493929190611450565b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6101216102773660046111d7565b6001600160a01b031660009081526002602052604090206001015490565b6100d26102a33660046114e8565b610567565b806102b33382610633565b6001600160a01b03821660009081526002602052604090206001015482906102f85760405163cd3cd55d60e01b81526004016102ef91906112bb565b60405180910390fd5b506001600160a01b038216600081815260026020908152604080832060010180549390555182815291929133917f3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb910160405180910390a3505050565b806103603382610633565b61038a7f000000000000000000000000000000000000000000000000000000000000000042611559565b6001600160a01b0383166000818152600260205260409081902060010183905551909133917fd939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf916103de9190815260200190565b60405180910390a35050565b60006103fd6103f88361170b565b610666565b92915050565b8061040e3382610633565b6001600160a01b038216600090815260026020526040902060010154828161044a5760405163cd3cd55d60e01b81526004016102ef91906112bb565b504281818111156104775760405163bd76307f60e01b8152600481019290925260248201526044016102ef565b50506001600160a01b0383166000818152600260208190526040808320909101805460ff191660011790555133917f2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe8942291a3505050565b60006103fd6104db836117a8565b610738565b60006104ec8383610758565b9392505050565b6000610501858585856107bb565b95945050505050565b600061051984848460006107bb565b949350505050565b600060608060008060006060610535610b7b565b61053d610bad565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6001600160a01b0384811660009081526002602081905260409091208054910154911690859060ff1682156105cb57604051630c83a00f60e01b81526001600160a01b039384166004820152929091166024830152151560448201526064016102ef565b5050506105da82828587610bda565b6001600160a01b03841660008181526002602052604080822080546001600160a01b03191633908117909155905190917f6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e282891a350505050565b61063d8282610758565b8282909161066057604051631e58ab1f60e01b81526004016102ef9291906117b4565b50505050565b60006103fd7f2f8962be843489018f0fe44aa06adfead655e3c10d7347a020040f9524f392d3836000015184602001518560400151866060015187608001518860a001518960c001518051906020012060405160200161071d98979695949392919097885260208801969096526001600160a01b0394851660408801529284166060870152921660808501526001600160401b039190911660a08401526001600160801b031660c083015260e08201526101000190565b60405160208183030381529060405280519060200120610d17565b6000806107488360000151610666565b90506104ec818460200151610d44565b60006001600160a01b0383161580159061078e57506001600160a01b038281166000908152600260205260409020548116908416145b80156104ec5750506001600160a01b03166000908152600260208190526040909120015460ff1615919050565b60008080806107cc868801886117ce565b825160600151929550909350915033906001600160a01b038116821461080757604051632b65e49760e11b81526004016102ef9291906117b4565b505061081283610d6e565b8251805160608201516040928301519251630119cbed60e31b8152919290916000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906308ce5f689061087590859087906004016117b4565b602060405180830381865afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b69190611828565b875160600151909150816108de5760405163037a2d1f60e61b81526004016102ef91906112bb565b5050855160a001516001600160a01b0380841660009081526003602090815260408083208884528252808320868516845282528083208b5183015190941683529290529081205490916001600160801b031690818180821161095c57604051637007d4a160e01b8152600481019290925260248201526044016102ef565b50508a600003610977576109708183611841565b92506109bd565b6109818183611841565b8b11158b61098f8385611841565b90916109b75760405163c5602bb160e01b8152600481019290925260248201526044016102ef565b50508a92505b50508015610aac576001600160a01b0380841660009081526003602090815260408083208884528252808320868516845282528083208b5183015190941683529290529081208054839290610a13908490611559565b909155507f000000000000000000000000000000000000000000000000000000000000000090506001600160a01b0316631230fa3e8d8960000151602001518585888c8c6040518863ffffffff1660e01b8152600401610a79979695949392919061188c565b600060405180830381600087803b158015610a9357600080fd5b505af1158015610aa7573d6000803e3d6000fd5b505050505b826001600160a01b03168760000151602001516001600160a01b0316857f481a17595c709e8f745444fb9ffc8f0b5e98458de94463971947f548e12bbdb48f8686604051610afc939291906118d8565b60405180910390a48651602080820151608083015160a084015160c090940151928b01516040516001600160a01b03808a16969416948a947f3943fc3b19ec289c87b57de7a8bf1448d81ced03d1806144ecaca4ba9e97605694610b64948b94919391611900565b60405180910390a49b9a5050505050505050505050565b6060610ba87f00000000000000000000000000000000000000000000000000000000000000006000610da6565b905090565b6060610ba87f00000000000000000000000000000000000000000000000000000000000000006001610da6565b8142808211610c055760405163d7705a0160e01b8152600481019290925260248201526044016102ef565b505060408051466020808301919091526001600160601b031930606090811b8216848601527330baba3437b934bd32a9b4b3b732b9283937b7b360611b60548501526068840187905233901b1660888301528251808303607c018152609c90920190925280519101207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6000908152601c829052603c81209050826001600160a01b0316610ce88288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d4492505050565b6001600160a01b031614610d0f57604051631c07ed3360e31b815260040160405180910390fd5b505050505050565b60006103fd610d24610e51565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610d548686610f7c565b925092509250610d648282610fc9565b5090949350505050565b805160200151610d8690610d8183610738565b610758565b610da35760405163aa415c3360e01b815260040160405180910390fd5b50565b606060ff8314610dc057610db983611086565b90506103fd565b818054610dcc90611960565b80601f0160208091040260200160405190810160405280929190818152602001828054610df890611960565b8015610e455780601f10610e1a57610100808354040283529160200191610e45565b820191906000526020600020905b815481529060010190602001808311610e2857829003601f168201915b505050505090506103fd565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610eaa57507f000000000000000000000000000000000000000000000000000000000000000046145b15610ed457507f000000000000000000000000000000000000000000000000000000000000000090565b610ba8604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008060008351604103610fb65760208401516040850151606086015160001a610fa8888285856110c5565b955095509550505050610fc2565b50508151600091506002905b9250925092565b6000826003811115610fdd57610fdd611854565b03610fe6575050565b6001826003811115610ffa57610ffa611854565b036110185760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561102c5761102c611854565b0361104d5760405163fce698f760e01b8152600481018290526024016102ef565b600382600381111561106157611061611854565b03611082576040516335e2f38360e21b8152600481018290526024016102ef565b5050565b606060006110938361118a565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156110f65750600091506003905082611180565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561114a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661117657506000925060019150829050611180565b9250600091508190505b9450945094915050565b600060ff8216601f8111156103fd57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b0381168114610da357600080fd5b80356111d2816111b2565b919050565b6000602082840312156111e957600080fd5b81356104ec816111b2565b6000806000806080858703121561120a57600080fd5b8435611215816111b2565b935060208501359250604085013561122c816111b2565b9150606085013561123c816111b2565b939692955090935050565b60006020828403121561125957600080fd5b81356001600160401b0381111561126f57600080fd5b820160e081850312156104ec57600080fd5b60006020828403121561129357600080fd5b81356001600160401b038111156112a957600080fd5b8201604081850312156104ec57600080fd5b6001600160a01b0391909116815260200190565b600080604083850312156112e257600080fd5b82356112ed816111b2565b915060208301356112fd816111b2565b809150509250929050565b8035600381106111d257600080fd5b60008083601f84011261132957600080fd5b5081356001600160401b0381111561134057600080fd5b60208301915083602082850101111561135857600080fd5b9250929050565b6000806000806060858703121561137557600080fd5b61137e85611308565b935060208501356001600160401b0381111561139957600080fd5b6113a587828801611317565b9598909750949560400135949350505050565b6000806000604084860312156113cd57600080fd5b6113d684611308565b925060208401356001600160401b038111156113f157600080fd5b6113fd86828701611317565b9497909650939450505050565b6000815180845260005b8181101561143057602081850181015186830182015201611414565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e06020820152600061146f60e083018961140a565b8281036040840152611481818961140a565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156114d75783518352602093840193909201916001016114b9565b50909b9a5050505050505050505050565b600080600080606085870312156114fe57600080fd5b8435611509816111b2565b93506020850135925060408501356001600160401b0381111561152b57600080fd5b61153787828801611317565b95989497509550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103fd576103fd611543565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156115a4576115a461156c565b60405290565b80356001600160401b03811681146111d257600080fd5b80356001600160801b03811681146111d257600080fd5b600082601f8301126115e957600080fd5b81356001600160401b038111156116025761160261156c565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116305761163061156c565b60405281815283820160200185101561164857600080fd5b816020850160208301376000918101602001919091529392505050565b600060e0828403121561167757600080fd5b61167f611582565b823581529050611691602083016111c7565b60208201526116a2604083016111c7565b60408201526116b3606083016111c7565b60608201526116c4608083016115aa565b60808201526116d560a083016115c1565b60a082015260c08201356001600160401b038111156116f357600080fd5b6116ff848285016115d8565b60c08301525092915050565b60006103fd3683611665565b60006040828403121561172957600080fd5b604080519081016001600160401b038111828210171561174b5761174b61156c565b60405290508082356001600160401b0381111561176757600080fd5b61177385828601611665565b82525060208301356001600160401b0381111561178f57600080fd5b61179b858286016115d8565b6020830152505092915050565b60006103fd3683611717565b6001600160a01b0392831681529116602082015260400190565b6000806000606084860312156117e357600080fd5b83356001600160401b038111156117f957600080fd5b61180586828701611717565b93505060208401359150604084013561181d816111b2565b809150509250925092565b60006020828403121561183a57600080fd5b5051919050565b818103818111156103fd576103fd611543565b634e487b7160e01b600052602160045260246000fd5b6003811061188857634e487b7160e01b600052602160045260246000fd5b9052565b60e0810161189a828a61186a565b6001600160a01b03978816602083015295871660408201526060810194909452918516608084015260a083015290921660c090920191909152919050565b606081016118e6828661186a565b6001600160a01b0393909316602082015260400152919050565b6001600160a01b03861681526001600160401b03851660208201526001600160801b038416604082015260a0606082018190526000906119429083018561140a565b8281036080840152611954818561140a565b98975050505050505050565b600181811c9082168061197457607f821691505b60208210810361199457634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202168ccf8bac6984eef611a01a2e1c7b84ddb64fd4b819201ae6206ab6038e15764736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphPayments_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphPayments_ProxyWithABI.json index 45cfb0f51..ad6569c41 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphPayments_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphPayments_ProxyWithABI.json @@ -334,4 +334,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780638129fc1c1461008b57806381cd11a014610095578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100936100c8565b005b6100936100a3366004610b2a565b6101c0565b6100bb6100b6366004610b96565b610662565b6040516100829190610c2f565b60006100d261074a565b805490915060ff600160401b82041615906001600160401b03166000811580156100f95750825b90506000826001600160401b031660011480156101155750303b155b905081158015610123575080155b156101415760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561016b57845460ff60401b1916600160401b1785555b610173610773565b83156101b957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6101cd82620f4240101590565b82906101f8576040516339b762e560e21b81526004016101ef91815260200190565b60405180910390fd5b50610216338561020661077d565b6001600160a01b031691906107a1565b836000610243827f0000000000000000000000000000000000000000000000000000000000000000610857565b905061024f8183610cc5565b9150600061025d8386610857565b90506102698184610cc5565b92506000806102766108b0565b604051631584a17960e21b81526001600160a01b038c811660048301528a81166024830152919091169063561285e49060440160a060405180830381865afa1580156102c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ea9190610cee565b602081015190915015610388576103796103026108b0565b6001600160a01b0316637573ef4f8c8b8f6040518463ffffffff1660e01b815260040161033193929190610d83565b602060405180830381865afa15801561034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103729190610dc7565b8690610857565b91506103858286610cc5565b94505b6103a38461039461077d565b6001600160a01b0316906108d4565b6103c088846103b061077d565b6001600160a01b03169190610939565b81156104b0576103ce61077d565b6001600160a01b031663095ea7b36103e46108b0565b846040518363ffffffff1660e01b8152600401610402929190610de0565b6020604051808303816000875af1158015610421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104459190610df9565b5061044e6108b0565b6001600160a01b031663ca94b0e98b8a856040518463ffffffff1660e01b815260040161047d93929190610e1b565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505b84156105bd576001600160a01b0386166105b0576104cc61077d565b6001600160a01b031663095ea7b36104e26108b0565b876040518363ffffffff1660e01b8152600401610500929190610de0565b6020604051808303816000875af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190610df9565b5061054c6108b0565b6001600160a01b031663a2a317228b876040518363ffffffff1660e01b8152600401610579929190610de0565b600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050506105bd565b6105bd86866103b061077d565b6001600160a01b038816338c60028111156105da576105da610d6d565b7fb1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f8d8d8989898d8f60405161064d97969594939291906001600160a01b039788168152602081019690965260408601949094526060850192909252608084015260a083015290911660c082015260e00190565b60405180910390a45050505050505050505050565b604080516000815260208101909152606090826001600160401b0381111561068c5761068c610cd8565b6040519080825280602002602001820160405280156106bf57816020015b60608152602001906001900390816106aa5790505b50915060005b838110156107415761071c308686848181106106e3576106e3610e3f565b90506020028101906106f59190610e55565b8560405160200161070893929190610ea2565b60405160208183030381529060405261096d565b83828151811061072e5761072e610e3f565b60209081029190910101526001016106c5565b50505b92915050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610744565b61077b6109e3565b565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610852576040516323b872dd60e01b81526001600160a01b038416906323b872dd906107d790859030908690600401610e1b565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190610df9565b6108525760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016101ef565b505050565b600061086682620f4240101590565b829061088857604051633dc311df60e01b81526004016101ef91815260200190565b5061089f8361089a84620f4240610cc5565b610a08565b6108a99084610cc5565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b801561093557604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b505050505b5050565b80156108525760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107d79085908590600401610de0565b6060600080846001600160a01b03168460405161098a9190610ec9565b600060405180830381855af49150503d80600081146109c5576040519150601f19603f3d011682016040523d82523d6000602084013e6109ca565b606091505b50915091506109da858383610a6f565b95945050505050565b6109eb610acb565b61077b57604051631afcd79f60e31b815260040160405180910390fd5b6000610a1783620f4240101590565b80610a2a5750610a2a82620f4240101590565b83839091610a545760405163768bf0eb60e11b8152600481019290925260248201526044016101ef565b50620f42409050610a658385610ee5565b6108a99190610efc565b606082610a8457610a7f82610ae5565b6108a9565b8151158015610a9b57506001600160a01b0384163b155b15610ac457604051639996b31560e01b81526001600160a01b03851660048201526024016101ef565b5092915050565b6000610ad561074a565b54600160401b900460ff16919050565b805115610af55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610b2557600080fd5b919050565b60008060008060008060c08789031215610b4357600080fd5b863560038110610b5257600080fd5b9550610b6060208801610b0e565b945060408701359350610b7560608801610b0e565b925060808701359150610b8a60a08801610b0e565b90509295509295509295565b60008060208385031215610ba957600080fd5b82356001600160401b03811115610bbf57600080fd5b8301601f81018513610bd057600080fd5b80356001600160401b03811115610be657600080fd5b8560208260051b8401011115610bfb57600080fd5b6020919091019590945092505050565b60005b83811015610c26578181015183820152602001610c0e565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610ca357603f1987860301845281518051808752610c80816020890160208501610c0b565b601f01601f19169590950160209081019550938401939190910190600101610c57565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561074457610744610caf565b634e487b7160e01b600052604160045260246000fd5b600060a0828403128015610d0157600080fd5b6000905060405160a081018181106001600160401b0382111715610d3357634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038481168252831660208201526060810160038310610db957634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610dd957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600060208284031215610e0b57600080fd5b815180151581146108a957600080fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610e6c57600080fd5b8301803591506001600160401b03821115610e8657600080fd5b602001915036819003821315610e9b57600080fd5b9250929050565b828482376000838201600081528351610ebf818360208801610c0b565b0195945050505050565b60008251610edb818460208701610c0b565b9190910192915050565b808202811582820484141761074457610744610caf565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c7f05052208f6f4047e1223bab7d7f3c4001cbe9b001fbbc3b1069b01cc7eced64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy.json index 2cfb21e41..97963021c 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy.json @@ -174,4 +174,4 @@ "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_GraphPayments.json index 8fbd24cbb..bbe4fe0cb 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_GraphPayments.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_GraphPayments.json @@ -7,4 +7,4 @@ "deployedBytecode": "0x6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_PaymentsEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_PaymentsEscrow.json index 8fbd24cbb..bbe4fe0cb 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_PaymentsEscrow.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_PaymentsEscrow.json @@ -7,4 +7,4 @@ "deployedBytecode": "0x6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#PaymentsEscrow_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#PaymentsEscrow_ProxyWithABI.json index c543471bf..e4e9beada 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#PaymentsEscrow_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#PaymentsEscrow_ProxyWithABI.json @@ -677,4 +677,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_GraphPayments.json index 2e9762744..d09104f29 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_GraphPayments.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_GraphPayments.json @@ -129,4 +129,4 @@ "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_PaymentsEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_PaymentsEscrow.json index 2e9762744..d09104f29 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_PaymentsEscrow.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_PaymentsEscrow.json @@ -129,4 +129,4 @@ "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.json index 700f93578..ac5363776 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.json @@ -113,4 +113,4 @@ "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.json index 700f93578..ac5363776 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.json @@ -113,4 +113,4 @@ "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#ExponentialRebates.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#ExponentialRebates.json index 56c4ece9f..b1bf62892 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#ExponentialRebates.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#ExponentialRebates.json @@ -52,4 +52,4 @@ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806349484d811461003a575b600080fd5b61004d610048366004610a66565b61005f565b60405190815260200160405180910390f35b6000806100728660030b8660030b61011c565b9050806000036100855787915050610112565b87600003610097576000915050610112565b60006100a98560030b8560030b61011c565b905060006100b8828a8c61013c565b9050600f6100c582610153565b13156100d657899350505050610112565b60006100ff6001607f1b6100fa866100f56100f087610ae2565b610169565b610882565b61089d565b905061010b818c6108d4565b9450505050505b9695505050505050565b600061013561012f846001607f1b610920565b83610988565b9392505050565b600061014b61012f8585610920565b949350505050565b60006101636001607f1b83610b14565b92915050565b60006101796101ff607c1b610ae2565b82121561018857506000919050565b8160000361019b57506001607f1b919050565b60008213156101c55760405162461bcd60e51b81526004016101bc90610b42565b60405180910390fd5b6000806101d66001607c1b85610b69565b91508190506001607f1b6101ea8280610b7d565b6101f49190610b14565b9050610208816710e1b3be415a0000610b7d565b6102129084610bad565b92506001607f1b6102238383610b7d565b61022d9190610b14565b9050610241816705a0913f6b1e0000610b7d565b61024b9084610bad565b92506001607f1b61025c8383610b7d565b6102669190610b14565b905061027a81670168244fdac78000610b7d565b6102849084610bad565b92506001607f1b6102958383610b7d565b61029f9190610b14565b90506102b281664807432bc18000610b7d565b6102bc9084610bad565b92506001607f1b6102cd8383610b7d565b6102d79190610b14565b90506102ea81660c0135dca04000610b7d565b6102f49084610bad565b92506001607f1b6103058383610b7d565b61030f9190610b14565b9050610322816601b707b1cdc000610b7d565b61032c9084610bad565b92506001607f1b61033d8383610b7d565b6103479190610b14565b9050610359816536e0f639b800610b7d565b6103639084610bad565b92506001607f1b6103748383610b7d565b61037e9190610b14565b905061039081650618fee9f800610b7d565b61039a9084610bad565b92506001607f1b6103ab8383610b7d565b6103b59190610b14565b90506103c681649c197dcc00610b7d565b6103d09084610bad565b92506001607f1b6103e18383610b7d565b6103eb9190610b14565b90506103fc81640e30dce400610b7d565b6104069084610bad565b92506001607f1b6104178383610b7d565b6104219190610b14565b90506104328164012ebd1300610b7d565b61043c9084610bad565b92506001607f1b61044d8383610b7d565b6104579190610b14565b9050610467816317499f00610b7d565b6104719084610bad565b92506001607f1b6104828383610b7d565b61048c9190610b14565b905061049c816301a9d480610b7d565b6104a69084610bad565b92506001607f1b6104b78383610b7d565b6104c19190610b14565b90506104d081621c6380610b7d565b6104da9084610bad565b92506001607f1b6104eb8383610b7d565b6104f59190610b14565b9050610504816201c638610b7d565b61050e9084610bad565b92506001607f1b61051f8383610b7d565b6105299190610b14565b905061053781611ab8610b7d565b6105419084610bad565b92506001607f1b6105528383610b7d565b61055c9190610b14565b905061056a8161017c610b7d565b6105749084610bad565b92506001607f1b6105858383610b7d565b61058f9190610b14565b905061059c816014610b7d565b6105a69084610bad565b92506001607f1b6105b78383610b7d565b6105c19190610b14565b90506105ce816001610b7d565b6105d89084610bad565b92506001607f1b826105f26721c3677c82b4000086610b14565b6105fc9190610bad565b6106069190610bad565b925061061184610ae2565b9350600160841b841615610657577243cbaf42a000812488fc5c220ad7b97bf6e99e61064a6cf1aaddd7742e56d32fb9f9974485610b7d565b6106549190610b14565b92505b600160831b84161561069c577105d27a9f51c31b7c2f8038212a057477999161068f6e0afe10820813d65dfe6a33c07f738f85610b7d565b6106999190610b14565b92505b600160821b8416156106e157701b4c902e273a58678d6d3bfdb93db96d026106d46f02582ab704279e8efd15e0265855c47a85610b7d565b6106de9190610b14565b92505b600160811b841615610726577003b1cc971a9bb5b9867477440d6d1577506107196f1152aaa3bf81cb9fdb76eae12d02957185610b7d565b6107239190610b14565b92505b600160801b84161561076b5770015bf0a8b1457695355fb8ac404e7a79e361075e6f2f16ac6c59de6f8d5d6f63c1482a7c8685610b7d565b6107689190610b14565b92505b6001607f1b8416156107af576fd3094c70f034de4b96ff7d5b6f99fcd86107a26f4da2cbf1be5827f9eb3ad1aa9866ebb385610b7d565b6107ac9190610b14565b92505b6001607e1b8416156107f3576fa45af1e1f40c333b3de1db4dd55f29a76107e66f63afbe7ab2082ba1a0ae5e4eb1b479dc85610b7d565b6107f09190610b14565b92505b6001607d1b841615610837576f910b022db7ae67ce76b441c27035c6a161082a6f70f5a893b608861e1f58934f97aea57d85610b7d565b6108349190610b14565b92505b6001607c1b84161561087b576f88415abbe9a76bead8d00cf112e4d4a861086e6f783eafef1c0a8f3978c7f81824d62ebf85610b7d565b6108789190610b14565b92505b5050919050565b60006001607f1b6108938484610920565b6101359190610b14565b6000600160ff1b82036108c25760405162461bcd60e51b81526004016101bc90610b42565b610135836108cf84610ae2565b6109f2565b6000808212156108f65760405162461bcd60e51b81526004016101bc90610b42565b60006109028484610920565b905060008113610916576000915050610163565b607f1c9392505050565b600082158061092d575081155b1561093a57506000610163565b508181028183828161094e5761094e610afe565b0514158061096b57508282828161096757610967610afe565b0514155b156101635760405162461bcd60e51b81526004016101bc90610bd5565b6000816000036109aa5760405162461bcd60e51b81526004016101bc90610bd5565b600160ff1b831480156109be575081600019145b156109db5760405162461bcd60e51b81526004016101bc90610bd5565b8183816109ea576109ea610afe565b059392505050565b818101600083128015610a055750600082125b8015610a1057508281135b8061096b5750600083138015610a265750600082135b801561096b5750828112156101635760405162461bcd60e51b81526004016101bc90610bd5565b803563ffffffff81168114610a6157600080fd5b919050565b60008060008060008060c08789031215610a7f57600080fd5b8635955060208701359450610a9660408801610a4d565b9350610aa460608801610a4d565b9250610ab260808801610a4d565b9150610ac060a08801610a4d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610af757610af7610acc565b5060000390565b634e487b7160e01b600052601260045260246000fd5b600082610b2357610b23610afe565b600160ff1b821460001984141615610b3d57610b3d610acc565b500590565b6020808252600d908201526c6f75742d6f662d626f756e647360981b604082015260600190565b600082610b7857610b78610afe565b500790565b80820260008212600160ff1b84141615610b9957610b99610acc565b818105831482151761016357610163610acc565b8082018281126000831280158216821582161715610bcd57610bcd610acc565b505092915050565b6020808252600890820152676f766572666c6f7760c01b60408201526060019056fea26469706673582212201ef3beb7da88d73c1ec2e008b9308e699e4621df52e1b4b35ff71522e3621d6464736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking.json index 094f54411..be304a1f6 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking.json @@ -2478,4 +2478,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102565760003560e01c8063872d048911610142578063872d0489146106225780638cc01c86146106355780639ce7abe514610663578063a02b942614610676578063a2594d8214610689578063a2a317221461069c578063a694fc3a146106af578063a784d498146106c2578063ac9650d8146106d5578063ad4d35b5146106f5578063ae4fe67a14610708578063ba7fb0b414610734578063bc735d9014610747578063ca94b0e91461075a578063ccebcabb1461076d578063d48de8451461078f578063e473522a146107de578063e56f8a1d146107e6578063e76fede61461082c578063ef58bd671461083f578063f64b359814610847578063f93f1cd01461085a578063fb744cc01461086d578063fc54fb2714610880578063fecc9cc11461088b57610256565b8063010167e51461029f578063026e402b146102b257806308ce5f68146102c557806321195373146102eb578063259bc435146102fe57806325d9897e146103115780632e17de78146104395780632f7cc5011461044c57806339514ad21461045f5780633993d8491461047a5780633a78b7321461048d5780633ccfd60b146104a057806342c51693146104a85780634ca7ac22146104bb5780634d99dd16146104ce57806351a60b02146104e1578063561285e4146104f45780636230001a1461054957806366ee1b281461055c578063746120921461058a5780637573ef4f1461059d5780637a766460146105b05780637c145cc7146105d957806381e21b56146105fc57806382d66cb81461060f575b6040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e818015610299578184f35b8184fd5b005b61029d6102ad3660046151dc565b61089e565b61029d6102c036600461523e565b61097a565b6102d86102d336600461526a565b610a70565b6040519081526020015b60405180910390f35b61029d6102f93660046152a3565b610a85565b61029d61030c3660046152e4565b610b55565b61042c61031f36600461526a565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516102e291906152ff565b61029d6104473660046153bf565b610c43565b6102d861045a3660046153e5565b610cd6565b601a546040516001600160401b0390911681526020016102e2565b61029d6104883660046152a3565b610dd8565b61029d61049b366004615441565b610e74565b61029d611040565b61029d6104b636600461546d565b6110d2565b61029d6104c93660046154ca565b611283565b61029d6104dc36600461523e565b61137d565b6102d86104ef36600461526a565b61142f565b61050761050236600461526a565b611629565b6040516102e29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b61029d6105573660046154f8565b61167b565b7f00000000000000000000000000000000000000000000000000000000000000006040516102e2919061553e565b61029d6105983660046152a3565b611742565b6102d86105ab366004615552565b61182e565b6102d86105be366004615441565b6001600160a01b03166000908152600e602052604090205490565b6105ec6105e7366004615599565b611892565b60405190151581526020016102e2565b61029d61060a3660046155e4565b61189f565b61029d61061d3660046151dc565b611b18565b6102d861063036600461563c565b611c1e565b610648610643366004615441565b611c73565b604080518251815260209283015192810192909252016102e2565b61029d61067136600461567a565b611caf565b6102d86106843660046152a3565b611daa565b61029d610697366004615441565b611e3e565b61029d6106aa36600461523e565b611f22565b61029d6106bd3660046153bf565b611fb3565b6102d86106d0366004615441565b612044565b6106e86106e33660046156ff565b61204f565b6040516102e29190615798565b61029d610703366004615818565b612136565b6105ec610716366004615441565b6001600160a01b031660009081526022602052604090205460ff1690565b61029d610742366004615858565b612204565b61029d610755366004615818565b612311565b61029d6107683660046152a3565b6123a3565b61078061077b366004615599565b6125dd565b604051905181526020016102e2565b6107a261079d366004615899565b61262f565b6040516102e29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61029d61269c565b6107f96107f43660046153e5565b61276e565b6040516102e291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61029d61083a3660046158b7565b6127d6565b61029d612d38565b61029d6108553660046158f6565b612e0a565b6102d86108683660046152a3565b612eed565b6102d861087b36600461526a565b612fc1565b60205460ff166105ec565b61029d6108993660046152a3565b612fcd565b6108a6613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190615964565b1561092557604051632b37d9d160e21b815260040160405180910390fd5b84846109328282336130b9565b82823390919261096157604051630c76b97b60e41b815260040161095893929190615981565b60405180910390fd5b505050610971878688878761317d565b50505050505050565b610982613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190615964565b15610a0157604051632b37d9d160e21b815260040160405180910390fd5b80600003610a2257604051630a2a4e5b60e11b815260040160405180910390fd5b610a3f3382610a2f613565565b6001600160a01b03169190613589565b610a6c827f0000000000000000000000000000000000000000000000000000000000000000836000613641565b5050565b6000610a7c8383613846565b90505b92915050565b8282610a928282336130b9565b828233909192610ab857604051630c76b97b60e41b815260040161095893929190615981565b505050610ac3613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190615964565b15610b4257604051632b37d9d160e21b815260040160405180910390fd5b610b4d85858561387e565b505050505050565b610b5d613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbe91906159a4565b6001600160a01b0316336001600160a01b031614610bef57604051635d9044cd60e01b815260040160405180910390fd5b601a80546001600160401b0319166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b610c4b613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190615964565b15610cca57604051632b37d9d160e21b815260040160405180910390fd5b610cd3816139af565b50565b600080610ce586868686613b5c565b90508060030154600003610cfd576000915050610dd0565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b8015610dc7576000610d438c83613bc8565b90508460050154816003015403610dbc576001810154426001600160401b0390911611610db657600083858360000154610d7d91906159d7565b610d8791906159ee565b9050610d938186615a10565b8254909550610da29085615a10565b9350610dae8188615a23565b965050610dbc565b50610dc7565b600201549050610d31565b50929450505050505b949350505050565b610de0613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190615964565b15610e5f57604051632b37d9d160e21b815260040160405180910390fd5b610e6f8383600080600086613c18565b505050565b610e7c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190615964565b15610efb57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b60209081526040808320338085529252909120600381015483908390600160601b90046001600160401b0316610f57576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff9081169116141580610f9a57506003810154600160c01b81046001600160401b03908116600160201b9092041614155b15610e6f57600381018054600160201b6001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026001600160601b03199095161793909317938490556040516001600160a01b0380881695908916947fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c694611033949183169392041690615a50565b60405180910390a3505050565b611048613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190615964565b156110c757604051632b37d9d160e21b815260040160405180910390fd5b6110d033613d9e565b565b6110da613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190615964565b1561115957604051632b37d9d160e21b815260040160405180910390fd5b83836111668282336130b9565b82823390919261118c57604051630c76b97b60e41b815260040161095893929190615981565b50505061119c83620f4240101590565b83906111be57604051631504950160e21b815260040161095891815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156111fa576111fa615a6f565b600281111561120b5761120b615a6f565b815260208101919091526040016000205583600281111561122e5761122e615a6f565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161127391815260200190565b60405180910390a4505050505050565b61128b613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906159a4565b6001600160a01b0316336001600160a01b03161461131d57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b611385613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190615964565b1561140457604051632b37d9d160e21b815260040160405180910390fd5b610e6f827f000000000000000000000000000000000000000000000000000000000000000083613e79565b6000611439613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615964565b156114b857604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260146020908152604080832033808552600482019093529083209192909190807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115699190615a85565b905060008360020154118015611583575082600201548110155b1561159057826001015491505b600082116115b05760405162cf4d4760e51b815260040160405180910390fd5b60006001840181905560028401556040518281526001600160a01b0386811691908a16907f1b2e7737e043c5cf1b587ceb4daeb7ae00148b9bda8f79f1093eead08f1419529060200160405180910390a361161e858361160e613565565b6001600160a01b031691906140f1565b509695505050505050565b61163161514b565b61163961514b565b6000611645858561412c565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b611683613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190615964565b1561170257604051632b37d9d160e21b815260040160405180910390fd5b8160000361172357604051630a2a4e5b60e11b815260040160405180910390fd5b6117303383610a2f613565565b61173c84848484613641565b50505050565b61174a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190615964565b156117c957604051632b37d9d160e21b815260040160405180910390fd5b82826117d68282336130b9565b806117e95750336001600160a01b038216145b82823390919261180f57604051630c76b97b60e41b815260040161095893929190615981565b50505061181c85846141b0565b6118278585856141e8565b5050505050565b6001600160a01b038084166000908152601c6020908152604080832093861683529290529081208183600281111561186857611868615a6f565b600281111561187957611879615a6f565b81526020019081526020016000205490505b9392505050565b6000610dd08484846130b9565b6118a7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190615964565b1561192657604051632b37d9d160e21b815260040160405180910390fd5b83836119338282336130b9565b82823390919261195957604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b03166119b9576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff908116908716141590600160c01b90046001600160401b03908116908616141581806119f55750805b15611b0d578115611a56578663ffffffff8116620f42401015611a34576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b5060038301805463ffffffff60a01b1916600160a01b63ffffffff8a16021790555b8015611ab657601a5486906001600160401b03908116908216811015611a915760405163ee5602e160e01b8152600401610958929190615a9e565b50506003830180546001600160c01b0316600160c01b6001600160401b038916021790555b428360040181905550876001600160a01b0316896001600160a01b03167fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba8989604051611b04929190615a50565b60405180910390a35b505050505050505050565b611b20613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190615964565b15611b9f57604051632b37d9d160e21b815260040160405180910390fd5b8484611bac8282336130b9565b828233909192611bd257604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038616600090815260226020526040902054869060ff16611c1057604051622920f760e21b8152600401610958919061553e565b50610971878688878761317d565b600080611c2b8585613846565b90506000611c398686614328565b90506000611c4d63ffffffff8616846159d7565b90506000611c5b838361434b565b9050611c678185615a23565b98975050505050505050565b611c7b61517a565b611c8361517a565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1491906159a4565b6001600160a01b0316336001600160a01b031614611d445760405162461bcd60e51b815260040161095890615ab8565b60405163623faf6160e01b81526001600160a01b0385169063623faf6190611d729086908690600401615aef565b600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b5050505050505050565b6000611db4613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e159190615964565b15611e3357604051632b37d9d160e21b815260040160405180910390fd5b610dd0848484613e79565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906159a4565b6001600160a01b0316336001600160a01b031614611ed35760405162461bcd60e51b815260040161095890615ab8565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f0e57600080fd5b505af1158015610b4d573d6000803e3d6000fd5b611f2a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b9190615964565b15611fa957604051632b37d9d160e21b815260040160405180910390fd5b610a6c82826141b0565b611fbb613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201c9190615964565b1561203a57604051632b37d9d160e21b815260040160405180910390fd5b610cd333826141b0565b6000610a7f82614362565b604080516000815260208101909152606090826001600160401b0381111561207957612079615b1e565b6040519080825280602002602001820160405280156120ac57816020015b60608152602001906001900390816120975790505b50915060005b8381101561212e57612109308686848181106120d0576120d0615b34565b90506020028101906120e29190615b4a565b856040516020016120f593929190615b90565b6040516020818303038152906040526143d3565b83828151811061211b5761211b615b34565b60209081029190910101526001016120b2565b505092915050565b61213e613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615964565b156121bd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff166121f857604051622920f760e21b8152600401610958919061553e565b50610e6f838383614449565b61220c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226d9190615964565b1561228b57604051632b37d9d160e21b815260040160405180910390fd5b83836122988282336130b9565b8282339091926122be57604051630c76b97b60e41b815260040161095893929190615981565b50505085846122ce8282336130b9565b8282339091926122f457604051630c76b97b60e41b815260040161095893929190615981565b505050600061230489898861387e565b9050611b0d8988836141e8565b612319613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a9190615964565b1561239857604051632b37d9d160e21b815260040160405180910390fd5b610e6f838383614449565b6123ab613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c9190615964565b1561242a57604051632b37d9d160e21b815260040160405180910390fd5b8060000361244b57604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03600160201b830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004830154610100830152600590920154610120820152908490849061252a576040516330acea0d60e11b8152600401610958929190615a36565b50506000612538858561412c565b90506000816003015411858590916125655760405163b6a70b3b60e01b8152600401610958929190615a36565b50508281600201546125779190615a23565b60028201556125893384610a2f613565565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a1511530856040516125ce91815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612607868661412c565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915261265d8383613bc8565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b6126a4613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270591906159a4565b6001600160a01b0316336001600160a01b03161461273657604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b60408051608081018252600080825260208201819052918101829052606081019190915261279e85858585613b5c565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b6127de613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190615964565b1561285d57604051632b37d9d160e21b815260040160405180910390fd5b3360009081526012602052604090205460ff1615612966576040516001600160a01b038581166024830152604482018590526064820184905282811660848301526000917f00000000000000000000000000000000000000000000000000000000000000009091169060a40160408051601f198184030181529181526020820180516001600160e01b031663224451c160e11b179052516128fe9190615bb7565b600060405180830381855af49150503d8060008114612939576040519150601f19603f3d011682016040523d82523d6000602084013e61293e565b606091505b50509050806129605760405163ef370f5160e01b815260040160405180910390fd5b5061173c565b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612995878461412c565b90506000816002015483600001546129ad9190615a23565b9050806000036129d057604051630a8a55c960e31b815260040160405180910390fd5b60006129dc888361434b565b905060006129ee85600001548361434b565b90508015612be8576003850154600090612a1390839063ffffffff9081169061457916565b9050888181811015612a3a57604051632f514d5760e21b8152600401610958929190615bd3565b50508815612aa757612a4f888a61160e613565565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612a9e91815260200190565b60405180910390a45b612acb612ab48a84615a10565b612abc613565565b6001600160a01b0316906145d9565b8554612ad78382615a10565b8760010154612ae691906159d7565b612af091906159ee565b60018701558554612b02908390615a10565b8655600286015415801590612b1957506001860154155b15612b3d5760006002870181905560058701805491612b3783615be1565b91905055505b6001600160a01b038b166000908152600e6020526040902060040154612b64908390615a10565b6001600160a01b038c166000908152600e60205260409020600481019190915554612b90908390615a10565b6001600160a01b038c81166000818152600e60209081526040918290209490945551858152918a169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a3505b612bf28183615a10565b91508115612d2c5760205460ff1615612cde57612c1182612abc613565565b6002840154612c208382615a10565b8560050154612c2f91906159d7565b612c3991906159ee565b60058501556002840154612c4e908390615a10565b6002850155600684015415801590612c6857506005840154155b15612c8c5760006006850181905560078501805491612c8683615be1565b91905055505b856001600160a01b03168a6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b77184604051612cd191815260200190565b60405180910390a3612d2c565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b2484604051612d2391815260200190565b60405180910390a35b50505050505050505050565b612d40613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906159a4565b6001600160a01b0316336001600160a01b031614612dd257604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff191660011790556040517f2192802a8934dbf383338406b279ec7f3eccee31e58d6c0444d6dd6bfff24b3590600090a1565b612e12613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e739190615964565b15612e9157604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038416612eb8576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b038316612edf5760405163a962605960e01b815260040160405180910390fd5b610b4d868686868686613c18565b6000612ef7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f589190615964565b15612f7657604051632b37d9d160e21b815260040160405180910390fd5b8383612f838282336130b9565b828233909192612fa957604051630c76b97b60e41b815260040161095893929190615981565b505050612fb7868686614621565b9695505050505050565b6000610a7c8383614328565b612fd5613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190615964565b1561305457604051632b37d9d160e21b815260040160405180910390fd5b82826130618282336130b9565b82823390919261308757604051630c76b97b60e41b815260040161095893929190615981565b5050506118278585856141e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b0316036130dc5750600161188b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361314457506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff1661188b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff1661188b565b6000841161319e57604051630a2a4e5b60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806131e45750600d5463ffffffff16155b83906132045760405163353666ff60e01b8152600401610958919061553e565b508163ffffffff8116620f42401015613239576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b50601a5481906001600160401b0390811690821681101561326f5760405163ee5602e160e01b8152600401610958929190615a9e565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156132c857604051632b542c0d60e11b815260040160405180910390fd5b60006132d386614362565b90508481808211156132fa5760405163ccaf28a960e01b8152600401610958929190615bd3565b505060405180610140016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b03168152602001600081526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b03160217905550610100820151816004015561012082015181600501559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546134fa9190615a23565b60048201556040805187815263ffffffff861660208201526001600160401b0385168183015290516001600160a01b0387811692908a16917f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc259181900360600190a350505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610e6f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615964565b610e6f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610958565b81670de0b6b3a76400008082101561366e5760405163b86d885760e01b8152600401610958929190615bd3565b50506001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b03166136cc576040516330acea0d60e11b8152600401610958929190615a36565b505060006136da858561412c565b336000908152600482016020526040902060028201549192509015158061370357506003820154155b8686909161372657604051631984edef60e31b8152600401610958929190615a36565b50506000826002015460001480613744575082600501548360020154145b905060008161377f57836005015484600201546137619190615a10565b600385015461377090886159d7565b61377a91906159ee565b613781565b855b905080158015906137925750848110155b818690916137b557604051635d88e8d160e01b8152600401610958929190615bd3565b50508584600201546137c79190615a23565b600285015560038401546137dc908290615a23565b600385015582546137ee908290615a23565b835560405133906001600160a01b0389811691908b16907f237818af8bb47710142edd8fc301fbc507064fb357cf122fb161ca447e3cb13e90613834908b908790615bd3565b60405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610a7c9190615a10565b6001600160a01b038381166000818152601b60209081526040808320948716808452948252808320600281015460018201548351610100810185528681529485018790529284019690965260608301949094526080820181905260a0820185905260c08201869052600584015460e08301529193849290916138ff816147b3565b875492965094509250613913908590615a10565b855560028501839055600185018290556001600160a01b0389166000908152600e60205260408120600401805486929061394e908490615a10565b92505081905550876001600160a01b0316896001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d8660405161399a91815260200190565b60405180910390a35091979650505050505050565b3360008290036139d257604051630a2a4e5b60e11b815260040160405180910390fd5b60006139dd82614362565b9050828180821115613a045760405163ccaf28a960e01b8152600401610958929190615bd3565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613a9657613a3f8683615a10565b8355613a4e858761160e613565565b846001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8387604051613a8991815260200190565b60405180910390a2610b4d565b600283015415801590613aad575082600301544310155b15613abb57613abb85613d9e565b600283015415613ae557613ae2613ad68460030154436148ad565b846002015483896148c7565b90505b858360020154613af59190615a23565b6002840155613b048143615a23565b6003840181905560028401546040516001600160a01b038816927f91642f23a1196e1424949fafa2a428c3b5d1f699763942ff08a6fbe9d4d7e98092613b4c92909190615bd3565b60405180910390a2505050505050565b6000601e6000866001811115613b7457613b74615a6f565b6001811115613b8557613b85615a6f565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d6000846001811115613be057613be0615a6f565b6001811115613bf157613bf1615a6f565b81526020019081526020016000206000838152602001908152602001600020905092915050565b6000613c24878761412c565b905080600201546000141580613c3c57506003810154155b87879091613c5f57604051631984edef60e31b8152600401610958929190615a36565b5050600681015460058201546040805161010081018252600181526001600160a01b03808c1660208301528a16918101919091523360608201526080810182905260a0810183905260c08101859052600784015460e08201526000929190613cc6816147b3565b600288015492965094509250613cdd908590615a10565b600286015560068501839055600585018290558315613d91576001600160a01b03891615801590613d1657506001600160a01b03881615155b15613d2c57613d278989868a613641565b613d91565b613d39338561160e613565565b336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e87604051613d8891815260200190565b60405180910390a45b5050505050505050505050565b6001600160a01b0381166000908152600e6020526040812060028101549091819003613ddd57604051630a2a4e5b60e11b815260040160405180910390fd5b600382015443811115613e0657604051631d222f1b60e31b815260040161095891815260200190565b5060006002830181905560038301558154613e22908290615a10565b8255613e31838261160e613565565b826001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8382604051613e6c91815260200190565b60405180910390a2505050565b6000808211613e9b57604051637318ad9960e01b815260040160405180910390fd5b6000613ea7858561412c565b33600090815260048201602052604090208054919250908480821015613ee25760405163ab99793560e01b8152600401610958929190615bd3565b5050600282015486908690613f0c57604051631984edef60e31b8152600401610958929190615a36565b50506000826003015483600501548460020154613f299190615a10565b613f3390876159d7565b613f3d91906159ee565b905060008360050154600014613f705760058401546006850154613f6190846159d7565b613f6b91906159ee565b613f72565b815b6001600160a01b038981166000908152601b60209081526040808320938c1683529290529081206003015491925090613fbb90600160201b90046001600160401b031642615a23565b9050828560050154613fcd9190615a23565b60058601556006850154613fe2908390615a23565b60068601556003850154613ff7908890615a10565b60038601558354614009908890615a10565b8085551561407557600085600301548660050154876002015461402c9190615a10565b865461403891906159d7565b61404291906159ee565b905080670de0b6b3a7640000808210156140715760405163587ab9ab60e11b8152600401610958929190615bd3565b5050505b600061408b60018b8b3387878c6007015461491b565b9050336001600160a01b0316896001600160a01b03168b6001600160a01b03167f0525d6ad1aa78abc571b5c1984b5e1ea4f1412368c1cc348ca408dbb1085c9a1878c6040516140dc929190615bd3565b60405180910390a49998505050505050505050565b8015610e6f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016135c6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361418557506001600160a01b0382166000908152601460205260409020610a7f565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610a7f565b806000036141d157604051630a2a4e5b60e11b815260040160405180910390fd5b6141de3382610a2f613565565b610a6c8282614ac1565b8060000361420957604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038381166000908152601b60209081526040808320938616835292905220600381015484908490600160601b90046001600160401b0316614266576040516330acea0d60e11b8152600401610958929190615a36565b5050600061427385614362565b905082818082111561429a5760405163ccaf28a960e01b8152600401610958929190615bd3565b505081546142a9908490615a23565b82556001600160a01b0385166000908152600e60205260409020600401546142d2908490615a23565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc23474591016125ce565b600080614335848461412c565b905080600501548160020154610dd09190615a10565b60008183111561435b5781610a7c565b5090919050565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261439591615a23565b61439f9190615a23565b6001600160a01b0384166000908152600e60205260409020549091508181116143c9576000610dd0565b610dd08282615a10565b6060600080846001600160a01b0316846040516143f09190615bb7565b600060405180830381855af49150503d806000811461442b576040519150601f19603f3d011682016040523d82523d6000602084013e614430565b606091505b5091509150614440858383614b34565b95945050505050565b336001600160a01b0383160361447257604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036144df573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff191682151517905561451b565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f8460405161456c911515815260200190565b60405180910390a4505050565b600061458883620f4240101590565b8061459b575061459b82620f4240101590565b838390916145be5760405163768bf0eb60e11b8152600401610958929190615bd3565b50620f424090506145cf83856159d7565b610a7c91906159ee565b8015610a6c57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b158015611f0e57600080fd5b60008160000361464457604051630a2a4e5b60e11b815260040160405180910390fd5b60006146508585613846565b90508083808210156146775760405163587ab9ab60e11b8152600401610958929190615bd3565b50506001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154909190156146ec578160010154600183600101548785600201546146c991906159d7565b6146d39190615a23565b6146dd9190615a10565b6146e791906159ee565b6146ee565b845b600383015490915060009061471390600160201b90046001600160401b031642615a23565b90508183600201546147259190615a23565b6002840155600183015461473a908790615a23565b8360010181905550600061475860008a8a8c87878a6005015461491b565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa8960405161479f91815260200190565b60405180910390a398975050505050505050565b6000806000806147d58560000151866020015187604001518860600151613b5c565b905060008160030154116147fc576040516307e332c560e31b815260040160405180910390fd5b60006148088683614b87565b905085604001516001600160a01b031686602001516001600160a01b03168760000151600181111561483c5761483c615a6f565b6060808a01518551602080880151604080516001600160a01b039095168552918401929092528201527f86c2f162872d7c46d7ee0caad366da6dc430889b9d8f27e4bed3785548f9954b910160405180910390a4602081015160408201516060909201519097919650945092505050565b60008183116148bd576000610a7c565b610a7c8284615a10565b60006148d38285615a23565b60016148df8487615a23565b6148e99190615a10565b6148f384866159d7565b6148fd87896159d7565b6149079190615a23565b6149119190615a23565b61444091906159ee565b60008360000361493e57604051637318ad9960e01b815260040160405180910390fd5b600061494c89898989613b5c565b90506103e88160030154106149745760405163332b852b60e11b815260040160405180910390fd5b60028101546040516001600160601b031960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160405160208183030381529060405280519060200120905060006149d68b83613bc8565b8781556001810180546001600160401b0319166001600160401b03891617905560006002820155600380820187905584015490915015614a245781614a1f8c8560010154613bc8565b600201555b614a2e8383614c82565b886001600160a01b03168a6001600160a01b03168c6001811115614a5457614a54615a6f565b604080516001600160a01b038d168152602081018c90526001600160401b038b168183015260608101879052608081018a905290517f036538df4a591a5cc74b68cfc7f8c61e8173dbc81627e1d62600b61e820461789181900360a00190a4509998505050505050505050565b6001600160a01b0382166000908152600e6020526040902054614ae5908290615a23565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906113719084815260200190565b606082614b4957614b4482614d15565b61188b565b8151158015614b6057506001600160a01b0384163b155b15614b805783604051639996b31560e01b8152600401610958919061553e565b508061188b565b614bb26040518060800160405280600081526020016000815260200160008152602001600081525090565b615194614bc28460000151614d3e565b9050615194614bd48560000151614da3565b905060008560000151600087608001518860a001518960e00151604051602001614c02959493929190615bfa565b6040516020818303038152906040529050600080614c3785614dea86868c60c001518c614f5a9095949392919063ffffffff16565b91509150600080600083806020019051810190614c549190615c3d565b60408051608081018252998a5260208a019390935291880152606087015250939a9950505050505050505050565b612710826003015410614ca8576040516303a8c56b60e61b815260040160405180910390fd5b80614cc657604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614ce2908490615a23565b90915550506003820154600003614cf7578082555b6001826003016000828254614d0c9190615a23565b90915550505050565b805115614d255780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6151946000826001811115614d5557614d55615a6f565b03614d635750615014919050565b6001826001811115614d7757614d77615a6f565b03614d855750615056919050565b604051636bd1fba760e11b815260040160405180910390fd5b919050565b6151946000826001811115614dba57614dba615a6f565b03614dc85750615062919050565b6001826001811115614ddc57614ddc615a6f565b03614d8557506150b9919050565b60006060600080600080600087806020019051810190614e0a9190615c7c565b945094509450945094506000614e20868b613bc8565b6001810154909150426001600160401b039091161115614e5b5760016040518060200160405280600081525097509750505050505050614f53565b600381015460009083148015614eae5782548590614e7a9088906159d7565b614e8491906159ee565b9150614e908287615a10565b8354909650614e9f9086615a10565b9450614eab8288615a23565b96505b8b886001811115614ec157614ec1615a6f565b845460018601546040805187815260208101939093526001600160401b03909116828201528415156060830152517f469e89d0a4e0e5deb2eb1ade5b3fa67fdfbeb4787c3a7c1e8e89aaf28562cab29181900360800190a38787878787604051602001614f32959493929190615bfa565b6040516020818303038152906040529a5060008b9950995050505050505050505b9250929050565b600060608760030154831115614f8357604051634a411b9d60e11b815260040160405180910390fd5b60008315614f915783614f97565b88600301545b89549094505b8015801590614fac5750600085115b1561500557600080614fc283898c63ffffffff16565b915091508115614fd3575050615005565b965086614fe18c8c8b6150c4565b925086614fed81615cc5565b9750508380614ffb90615be1565b9450505050614f9d565b50989397509295505050505050565b6000601d81805b600181111561502c5761502c615a6f565b81526020019081526020016000206000838152602001908152602001600020600201549050919050565b6000601d81600161501b565b601d6000805b600181111561507957615079615a6f565b8152602080820192909252604090810160009081209381529290915281208181556001810180546001600160401b03191690556002810182905560030155565b601d60006001615068565b6000808460030154116150ea5760405163ddaf8f2160e01b815260040160405180910390fd5b60006150fd85600001548563ffffffff16565b905061511085600001548463ffffffff16565b60018560030160008282546151259190615a10565b9091555050808555600385015460000361514157600060018601555b5050915492915050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6110d0615cdc565b6001600160a01b0381168114610cd357600080fd5b803563ffffffff81168114614d9e57600080fd5b80356001600160401b0381168114614d9e57600080fd5b600080600080600060a086880312156151f457600080fd5b85356151ff8161519c565b9450602086013561520f8161519c565b935060408601359250615224606087016151b1565b9150615232608087016151c5565b90509295509295909350565b6000806040838503121561525157600080fd5b823561525c8161519c565b946020939093013593505050565b6000806040838503121561527d57600080fd5b82356152888161519c565b915060208301356152988161519c565b809150509250929050565b6000806000606084860312156152b857600080fd5b83356152c38161519c565b925060208401356152d38161519c565b929592945050506040919091013590565b6000602082840312156152f657600080fd5b610a7c826151c5565b6000610140820190508251825260208301516020830152604083015160408301526060830151615337606084018263ffffffff169052565b50608083015161535260808401826001600160401b03169052565b5060a083015161536d60a08401826001600160401b03169052565b5060c083015161538560c084018263ffffffff169052565b5060e08301516153a060e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b6000602082840312156153d157600080fd5b5035919050565b60028110610cd357600080fd5b600080600080608085870312156153fb57600080fd5b8435615406816153d8565b935060208501356154168161519c565b925060408501356154268161519c565b915060608501356154368161519c565b939692955090935050565b60006020828403121561545357600080fd5b813561188b8161519c565b803560038110614d9e57600080fd5b6000806000806080858703121561548357600080fd5b843561548e8161519c565b9350602085013561549e8161519c565b92506154ac6040860161545e565b9396929550929360600135925050565b8015158114610cd357600080fd5b600080604083850312156154dd57600080fd5b82356154e88161519c565b91506020830135615298816154bc565b6000806000806080858703121561550e57600080fd5b84356155198161519c565b935060208501356155298161519c565b93969395505050506040820135916060013590565b6001600160a01b0391909116815260200190565b60008060006060848603121561556757600080fd5b83356155728161519c565b925060208401356155828161519c565b91506155906040850161545e565b90509250925092565b6000806000606084860312156155ae57600080fd5b83356155b98161519c565b925060208401356155c98161519c565b915060408401356155d98161519c565b809150509250925092565b600080600080608085870312156155fa57600080fd5b84356156058161519c565b935060208501356156158161519c565b9250615623604086016151b1565b9150615631606086016151c5565b905092959194509250565b60008060006060848603121561565157600080fd5b833561565c8161519c565b9250602084013561566c8161519c565b9150615590604085016151b1565b60008060006040848603121561568f57600080fd5b833561569a8161519c565b925060208401356001600160401b038111156156b557600080fd5b8401601f810186136156c657600080fd5b80356001600160401b038111156156dc57600080fd5b8660208284010111156156ee57600080fd5b939660209190910195509293505050565b6000806020838503121561571257600080fd5b82356001600160401b0381111561572857600080fd5b8301601f8101851361573957600080fd5b80356001600160401b0381111561574f57600080fd5b8560208260051b840101111561576457600080fd5b6020919091019590945092505050565b60005b8381101561578f578181015183820152602001615777565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561580c57603f19878603018452815180518087526157e9816020890160208501615774565b601f01601f191695909501602090810195509384019391909101906001016157c0565b50929695505050505050565b60008060006060848603121561582d57600080fd5b83356158388161519c565b925060208401356158488161519c565b915060408401356155d9816154bc565b6000806000806080858703121561586e57600080fd5b84356158798161519c565b935060208501356158898161519c565b925060408501356154ac8161519c565b600080604083850312156158ac57600080fd5b823561525c816153d8565b600080600080608085870312156158cd57600080fd5b84356158d88161519c565b9350602085013592506040850135915060608501356154368161519c565b60008060008060008060c0878903121561590f57600080fd5b863561591a8161519c565b9550602087013561592a8161519c565b9450604087013561593a8161519c565b9350606087013561594a8161519c565b9598949750929560808101359460a0909101359350915050565b60006020828403121561597657600080fd5b815161188b816154bc565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000602082840312156159b657600080fd5b815161188b8161519c565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7f57610a7f6159c1565b600082615a0b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7f57610a7f6159c1565b80820180821115610a7f57610a7f6159c1565b6001600160a01b0392831681529116602082015260400190565b63ffffffff9290921682526001600160401b0316602082015260400190565b634e487b7160e01b600052602160045260246000fd5b600060208284031215615a9757600080fd5b5051919050565b6001600160401b0392831681529116602082015260400190565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112615b6157600080fd5b8301803591506001600160401b03821115615b7b57600080fd5b602001915036819003821315614f5357600080fd5b828482376000838201600081528351615bad818360208801615774565b0195945050505050565b60008251615bc9818460208701615774565b9190910192915050565b918252602082015260400190565b600060018201615bf357615bf36159c1565b5060010190565b60a0810160028710615c1c57634e487b7160e01b600052602160045260246000fd5b95815260208101949094526040840192909252606083015260809091015290565b60008060008060808587031215615c5357600080fd5b8451615c5e816153d8565b60208601516040870151606090970151919890975090945092505050565b600080600080600060a08688031215615c9457600080fd5b8551615c9f816153d8565b602087015160408801516060890151608090990151929a91995097965090945092505050565b600081615cd457615cd46159c1565b506000190190565b634e487b7160e01b600052605160045260246000fdfea2646970667358221220f5046670ab269f9c179f41df4a02cd9c6b2ca3d5d507e2b9fcf15f800f351d8b64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStakingExtension.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStakingExtension.json index 5dee92f1e..2892b1dc2 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStakingExtension.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStakingExtension.json @@ -1249,4 +1249,4 @@ ] } } -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_ProxyWithABI.json index 094f54411..be304a1f6 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_ProxyWithABI.json @@ -2478,4 +2478,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102565760003560e01c8063872d048911610142578063872d0489146106225780638cc01c86146106355780639ce7abe514610663578063a02b942614610676578063a2594d8214610689578063a2a317221461069c578063a694fc3a146106af578063a784d498146106c2578063ac9650d8146106d5578063ad4d35b5146106f5578063ae4fe67a14610708578063ba7fb0b414610734578063bc735d9014610747578063ca94b0e91461075a578063ccebcabb1461076d578063d48de8451461078f578063e473522a146107de578063e56f8a1d146107e6578063e76fede61461082c578063ef58bd671461083f578063f64b359814610847578063f93f1cd01461085a578063fb744cc01461086d578063fc54fb2714610880578063fecc9cc11461088b57610256565b8063010167e51461029f578063026e402b146102b257806308ce5f68146102c557806321195373146102eb578063259bc435146102fe57806325d9897e146103115780632e17de78146104395780632f7cc5011461044c57806339514ad21461045f5780633993d8491461047a5780633a78b7321461048d5780633ccfd60b146104a057806342c51693146104a85780634ca7ac22146104bb5780634d99dd16146104ce57806351a60b02146104e1578063561285e4146104f45780636230001a1461054957806366ee1b281461055c578063746120921461058a5780637573ef4f1461059d5780637a766460146105b05780637c145cc7146105d957806381e21b56146105fc57806382d66cb81461060f575b6040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e818015610299578184f35b8184fd5b005b61029d6102ad3660046151dc565b61089e565b61029d6102c036600461523e565b61097a565b6102d86102d336600461526a565b610a70565b6040519081526020015b60405180910390f35b61029d6102f93660046152a3565b610a85565b61029d61030c3660046152e4565b610b55565b61042c61031f36600461526a565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff8082166060840152600160201b82046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e0820152600482015461010082015260059091015461012082015290565b6040516102e291906152ff565b61029d6104473660046153bf565b610c43565b6102d861045a3660046153e5565b610cd6565b601a546040516001600160401b0390911681526020016102e2565b61029d6104883660046152a3565b610dd8565b61029d61049b366004615441565b610e74565b61029d611040565b61029d6104b636600461546d565b6110d2565b61029d6104c93660046154ca565b611283565b61029d6104dc36600461523e565b61137d565b6102d86104ef36600461526a565b61142f565b61050761050236600461526a565b611629565b6040516102e29190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b61029d6105573660046154f8565b61167b565b7f00000000000000000000000000000000000000000000000000000000000000006040516102e2919061553e565b61029d6105983660046152a3565b611742565b6102d86105ab366004615552565b61182e565b6102d86105be366004615441565b6001600160a01b03166000908152600e602052604090205490565b6105ec6105e7366004615599565b611892565b60405190151581526020016102e2565b61029d61060a3660046155e4565b61189f565b61029d61061d3660046151dc565b611b18565b6102d861063036600461563c565b611c1e565b610648610643366004615441565b611c73565b604080518251815260209283015192810192909252016102e2565b61029d61067136600461567a565b611caf565b6102d86106843660046152a3565b611daa565b61029d610697366004615441565b611e3e565b61029d6106aa36600461523e565b611f22565b61029d6106bd3660046153bf565b611fb3565b6102d86106d0366004615441565b612044565b6106e86106e33660046156ff565b61204f565b6040516102e29190615798565b61029d610703366004615818565b612136565b6105ec610716366004615441565b6001600160a01b031660009081526022602052604090205460ff1690565b61029d610742366004615858565b612204565b61029d610755366004615818565b612311565b61029d6107683660046152a3565b6123a3565b61078061077b366004615599565b6125dd565b604051905181526020016102e2565b6107a261079d366004615899565b61262f565b6040516102e29190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b61029d61269c565b6107f96107f43660046153e5565b61276e565b6040516102e291908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61029d61083a3660046158b7565b6127d6565b61029d612d38565b61029d6108553660046158f6565b612e0a565b6102d86108683660046152a3565b612eed565b6102d861087b36600461526a565b612fc1565b60205460ff166105ec565b61029d6108993660046152a3565b612fcd565b6108a6613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190615964565b1561092557604051632b37d9d160e21b815260040160405180910390fd5b84846109328282336130b9565b82823390919261096157604051630c76b97b60e41b815260040161095893929190615981565b60405180910390fd5b505050610971878688878761317d565b50505050505050565b610982613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190615964565b15610a0157604051632b37d9d160e21b815260040160405180910390fd5b80600003610a2257604051630a2a4e5b60e11b815260040160405180910390fd5b610a3f3382610a2f613565565b6001600160a01b03169190613589565b610a6c827f0000000000000000000000000000000000000000000000000000000000000000836000613641565b5050565b6000610a7c8383613846565b90505b92915050565b8282610a928282336130b9565b828233909192610ab857604051630c76b97b60e41b815260040161095893929190615981565b505050610ac3613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190615964565b15610b4257604051632b37d9d160e21b815260040160405180910390fd5b610b4d85858561387e565b505050505050565b610b5d613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbe91906159a4565b6001600160a01b0316336001600160a01b031614610bef57604051635d9044cd60e01b815260040160405180910390fd5b601a80546001600160401b0319166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b610c4b613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac9190615964565b15610cca57604051632b37d9d160e21b815260040160405180910390fd5b610cd3816139af565b50565b600080610ce586868686613b5c565b90508060030154600003610cfd576000915050610dd0565b6001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154600282015484545b8015610dc7576000610d438c83613bc8565b90508460050154816003015403610dbc576001810154426001600160401b0390911611610db657600083858360000154610d7d91906159d7565b610d8791906159ee565b9050610d938186615a10565b8254909550610da29085615a10565b9350610dae8188615a23565b965050610dbc565b50610dc7565b600201549050610d31565b50929450505050505b949350505050565b610de0613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e419190615964565b15610e5f57604051632b37d9d160e21b815260040160405180910390fd5b610e6f8383600080600086613c18565b505050565b610e7c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190615964565b15610efb57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b60209081526040808320338085529252909120600381015483908390600160601b90046001600160401b0316610f57576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff9081169116141580610f9a57506003810154600160c01b81046001600160401b03908116600160201b9092041614155b15610e6f57600381018054600160201b6001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026001600160601b03199095161793909317938490556040516001600160a01b0380881695908916947fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c694611033949183169392041690615a50565b60405180910390a3505050565b611048613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190615964565b156110c757604051632b37d9d160e21b815260040160405180910390fd5b6110d033613d9e565b565b6110da613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190615964565b1561115957604051632b37d9d160e21b815260040160405180910390fd5b83836111668282336130b9565b82823390919261118c57604051630c76b97b60e41b815260040161095893929190615981565b50505061119c83620f4240101590565b83906111be57604051631504950160e21b815260040161095891815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156111fa576111fa615a6f565b600281111561120b5761120b615a6f565b815260208101919091526040016000205583600281111561122e5761122e615a6f565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161127391815260200190565b60405180910390a4505050505050565b61128b613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906159a4565b6001600160a01b0316336001600160a01b03161461131d57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b611385613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190615964565b1561140457604051632b37d9d160e21b815260040160405180910390fd5b610e6f827f000000000000000000000000000000000000000000000000000000000000000083613e79565b6000611439613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190615964565b156114b857604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260146020908152604080832033808552600482019093529083209192909190807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115699190615a85565b905060008360020154118015611583575082600201548110155b1561159057826001015491505b600082116115b05760405162cf4d4760e51b815260040160405180910390fd5b60006001840181905560028401556040518281526001600160a01b0386811691908a16907f1b2e7737e043c5cf1b587ceb4daeb7ae00148b9bda8f79f1093eead08f1419529060200160405180910390a361161e858361160e613565565b6001600160a01b031691906140f1565b509695505050505050565b61163161514b565b61163961514b565b6000611645858561412c565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b611683613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190615964565b1561170257604051632b37d9d160e21b815260040160405180910390fd5b8160000361172357604051630a2a4e5b60e11b815260040160405180910390fd5b6117303383610a2f613565565b61173c84848484613641565b50505050565b61174a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ab9190615964565b156117c957604051632b37d9d160e21b815260040160405180910390fd5b82826117d68282336130b9565b806117e95750336001600160a01b038216145b82823390919261180f57604051630c76b97b60e41b815260040161095893929190615981565b50505061181c85846141b0565b6118278585856141e8565b5050505050565b6001600160a01b038084166000908152601c6020908152604080832093861683529290529081208183600281111561186857611868615a6f565b600281111561187957611879615a6f565b81526020019081526020016000205490505b9392505050565b6000610dd08484846130b9565b6118a7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190615964565b1561192657604051632b37d9d160e21b815260040160405180910390fd5b83836119338282336130b9565b82823390919261195957604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b03166119b9576040516330acea0d60e11b8152600401610958929190615a36565b50506003810154600160a01b810463ffffffff908116908716141590600160c01b90046001600160401b03908116908616141581806119f55750805b15611b0d578115611a56578663ffffffff8116620f42401015611a34576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b5060038301805463ffffffff60a01b1916600160a01b63ffffffff8a16021790555b8015611ab657601a5486906001600160401b03908116908216811015611a915760405163ee5602e160e01b8152600401610958929190615a9e565b50506003830180546001600160c01b0316600160c01b6001600160401b038916021790555b428360040181905550876001600160a01b0316896001600160a01b03167fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba8989604051611b04929190615a50565b60405180910390a35b505050505050505050565b611b20613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190615964565b15611b9f57604051632b37d9d160e21b815260040160405180910390fd5b8484611bac8282336130b9565b828233909192611bd257604051630c76b97b60e41b815260040161095893929190615981565b5050506001600160a01b038616600090815260226020526040902054869060ff16611c1057604051622920f760e21b8152600401610958919061553e565b50610971878688878761317d565b600080611c2b8585613846565b90506000611c398686614328565b90506000611c4d63ffffffff8616846159d7565b90506000611c5b838361434b565b9050611c678185615a23565b98975050505050505050565b611c7b61517a565b611c8361517a565b6001600160a01b039092166000908152600e602090815260409091208054845260040154908301525090565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1491906159a4565b6001600160a01b0316336001600160a01b031614611d445760405162461bcd60e51b815260040161095890615ab8565b60405163623faf6160e01b81526001600160a01b0385169063623faf6190611d729086908690600401615aef565b600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b5050505050505050565b6000611db4613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e159190615964565b15611e3357604051632b37d9d160e21b815260040160405180910390fd5b610dd0848484613e79565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea391906159a4565b6001600160a01b0316336001600160a01b031614611ed35760405162461bcd60e51b815260040161095890615ab8565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f0e57600080fd5b505af1158015610b4d573d6000803e3d6000fd5b611f2a613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b9190615964565b15611fa957604051632b37d9d160e21b815260040160405180910390fd5b610a6c82826141b0565b611fbb613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201c9190615964565b1561203a57604051632b37d9d160e21b815260040160405180910390fd5b610cd333826141b0565b6000610a7f82614362565b604080516000815260208101909152606090826001600160401b0381111561207957612079615b1e565b6040519080825280602002602001820160405280156120ac57816020015b60608152602001906001900390816120975790505b50915060005b8381101561212e57612109308686848181106120d0576120d0615b34565b90506020028101906120e29190615b4a565b856040516020016120f593929190615b90565b6040516020818303038152906040526143d3565b83828151811061211b5761211b615b34565b60209081029190910101526001016120b2565b505092915050565b61213e613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615964565b156121bd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff166121f857604051622920f760e21b8152600401610958919061553e565b50610e6f838383614449565b61220c613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226d9190615964565b1561228b57604051632b37d9d160e21b815260040160405180910390fd5b83836122988282336130b9565b8282339091926122be57604051630c76b97b60e41b815260040161095893929190615981565b50505085846122ce8282336130b9565b8282339091926122f457604051630c76b97b60e41b815260040161095893929190615981565b505050600061230489898861387e565b9050611b0d8988836141e8565b612319613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a9190615964565b1561239857604051632b37d9d160e21b815260040160405180910390fd5b610e6f838383614449565b6123ab613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c9190615964565b1561242a57604051632b37d9d160e21b815260040160405180910390fd5b8060000361244b57604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101408101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03600160201b830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004830154610100830152600590920154610120820152908490849061252a576040516330acea0d60e11b8152600401610958929190615a36565b50506000612538858561412c565b90506000816003015411858590916125655760405163b6a70b3b60e01b8152600401610958929190615a36565b50508281600201546125779190615a23565b60028201556125893384610a2f613565565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a1511530856040516125ce91815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612607868661412c565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60408051608081018252600080825260208201819052918101829052606081019190915261265d8383613bc8565b604080516080810182528254815260018301546001600160401b0316602082015260028301549181019190915260039091015460608201529392505050565b6126a4613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270591906159a4565b6001600160a01b0316336001600160a01b03161461273657604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b60408051608081018252600080825260208201819052918101829052606081019190915261279e85858585613b5c565b604080516080810182528254815260018301546020820152600283015491810191909152600390910154606082015295945050505050565b6127de613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283f9190615964565b1561285d57604051632b37d9d160e21b815260040160405180910390fd5b3360009081526012602052604090205460ff1615612966576040516001600160a01b038581166024830152604482018590526064820184905282811660848301526000917f00000000000000000000000000000000000000000000000000000000000000009091169060a40160408051601f198184030181529181526020820180516001600160e01b031663224451c160e11b179052516128fe9190615bb7565b600060405180830381855af49150503d8060008114612939576040519150601f19603f3d011682016040523d82523d6000602084013e61293e565b606091505b50509050806129605760405163ef370f5160e01b815260040160405180910390fd5b5061173c565b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612995878461412c565b90506000816002015483600001546129ad9190615a23565b9050806000036129d057604051630a8a55c960e31b815260040160405180910390fd5b60006129dc888361434b565b905060006129ee85600001548361434b565b90508015612be8576003850154600090612a1390839063ffffffff9081169061457916565b9050888181811015612a3a57604051632f514d5760e21b8152600401610958929190615bd3565b50508815612aa757612a4f888a61160e613565565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612a9e91815260200190565b60405180910390a45b612acb612ab48a84615a10565b612abc613565565b6001600160a01b0316906145d9565b8554612ad78382615a10565b8760010154612ae691906159d7565b612af091906159ee565b60018701558554612b02908390615a10565b8655600286015415801590612b1957506001860154155b15612b3d5760006002870181905560058701805491612b3783615be1565b91905055505b6001600160a01b038b166000908152600e6020526040902060040154612b64908390615a10565b6001600160a01b038c166000908152600e60205260409020600481019190915554612b90908390615a10565b6001600160a01b038c81166000818152600e60209081526040918290209490945551858152918a169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a3505b612bf28183615a10565b91508115612d2c5760205460ff1615612cde57612c1182612abc613565565b6002840154612c208382615a10565b8560050154612c2f91906159d7565b612c3991906159ee565b60058501556002840154612c4e908390615a10565b6002850155600684015415801590612c6857506005840154155b15612c8c5760006006850181905560078501805491612c8683615be1565b91905055505b856001600160a01b03168a6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b77184604051612cd191815260200190565b60405180910390a3612d2c565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b2484604051612d2391815260200190565b60405180910390a35b50505050505050505050565b612d40613095565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906159a4565b6001600160a01b0316336001600160a01b031614612dd257604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff191660011790556040517f2192802a8934dbf383338406b279ec7f3eccee31e58d6c0444d6dd6bfff24b3590600090a1565b612e12613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e739190615964565b15612e9157604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038416612eb8576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b038316612edf5760405163a962605960e01b815260040160405180910390fd5b610b4d868686868686613c18565b6000612ef7613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f589190615964565b15612f7657604051632b37d9d160e21b815260040160405180910390fd5b8383612f838282336130b9565b828233909192612fa957604051630c76b97b60e41b815260040161095893929190615981565b505050612fb7868686614621565b9695505050505050565b6000610a7c8383614328565b612fd5613095565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190615964565b1561305457604051632b37d9d160e21b815260040160405180910390fd5b82826130618282336130b9565b82823390919261308757604051630c76b97b60e41b815260040161095893929190615981565b5050506118278585856141e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b0316036130dc5750600161188b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361314457506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff1661188b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff1661188b565b6000841161319e57604051630a2a4e5b60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806131e45750600d5463ffffffff16155b83906132045760405163353666ff60e01b8152600401610958919061553e565b508163ffffffff8116620f42401015613239576040516329bff5f560e01b815263ffffffff9091166004820152602401610958565b50601a5481906001600160401b0390811690821681101561326f5760405163ee5602e160e01b8152600401610958929190615a9e565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156132c857604051632b542c0d60e11b815260040160405180910390fd5b60006132d386614362565b90508481808211156132fa5760405163ccaf28a960e01b8152600401610958929190615bd3565b505060405180610140016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b03168152602001600081526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b03160217905550610100820151816004015561012082015181600501559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546134fa9190615a23565b60048201556040805187815263ffffffff861660208201526001600160401b0385168183015290516001600160a01b0387811692908a16917f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc259181900360600190a350505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b8015610e6f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615964565b610e6f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610958565b81670de0b6b3a76400008082101561366e5760405163b86d885760e01b8152600401610958929190615bd3565b50506001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b03166136cc576040516330acea0d60e11b8152600401610958929190615a36565b505060006136da858561412c565b336000908152600482016020526040902060028201549192509015158061370357506003820154155b8686909161372657604051631984edef60e31b8152600401610958929190615a36565b50506000826002015460001480613744575082600501548360020154145b905060008161377f57836005015484600201546137619190615a10565b600385015461377090886159d7565b61377a91906159ee565b613781565b855b905080158015906137925750848110155b818690916137b557604051635d88e8d160e01b8152600401610958929190615bd3565b50508584600201546137c79190615a23565b600285015560038401546137dc908290615a23565b600385015582546137ee908290615a23565b835560405133906001600160a01b0389811691908b16907f237818af8bb47710142edd8fc301fbc507064fb357cf122fb161ca447e3cb13e90613834908b908790615bd3565b60405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610a7c9190615a10565b6001600160a01b038381166000818152601b60209081526040808320948716808452948252808320600281015460018201548351610100810185528681529485018790529284019690965260608301949094526080820181905260a0820185905260c08201869052600584015460e08301529193849290916138ff816147b3565b875492965094509250613913908590615a10565b855560028501839055600185018290556001600160a01b0389166000908152600e60205260408120600401805486929061394e908490615a10565b92505081905550876001600160a01b0316896001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d8660405161399a91815260200190565b60405180910390a35091979650505050505050565b3360008290036139d257604051630a2a4e5b60e11b815260040160405180910390fd5b60006139dd82614362565b9050828180821115613a045760405163ccaf28a960e01b8152600401610958929190615bd3565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613a9657613a3f8683615a10565b8355613a4e858761160e613565565b846001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8387604051613a8991815260200190565b60405180910390a2610b4d565b600283015415801590613aad575082600301544310155b15613abb57613abb85613d9e565b600283015415613ae557613ae2613ad68460030154436148ad565b846002015483896148c7565b90505b858360020154613af59190615a23565b6002840155613b048143615a23565b6003840181905560028401546040516001600160a01b038816927f91642f23a1196e1424949fafa2a428c3b5d1f699763942ff08a6fbe9d4d7e98092613b4c92909190615bd3565b60405180910390a2505050505050565b6000601e6000866001811115613b7457613b74615a6f565b6001811115613b8557613b85615a6f565b8152602080820192909252604090810160009081206001600160a01b03978816825283528181209587168152948252808520939095168452919091525020919050565b6000601d6000846001811115613be057613be0615a6f565b6001811115613bf157613bf1615a6f565b81526020019081526020016000206000838152602001908152602001600020905092915050565b6000613c24878761412c565b905080600201546000141580613c3c57506003810154155b87879091613c5f57604051631984edef60e31b8152600401610958929190615a36565b5050600681015460058201546040805161010081018252600181526001600160a01b03808c1660208301528a16918101919091523360608201526080810182905260a0810183905260c08101859052600784015460e08201526000929190613cc6816147b3565b600288015492965094509250613cdd908590615a10565b600286015560068501839055600585018290558315613d91576001600160a01b03891615801590613d1657506001600160a01b03881615155b15613d2c57613d278989868a613641565b613d91565b613d39338561160e613565565b336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e87604051613d8891815260200190565b60405180910390a45b5050505050505050505050565b6001600160a01b0381166000908152600e6020526040812060028101549091819003613ddd57604051630a2a4e5b60e11b815260040160405180910390fd5b600382015443811115613e0657604051631d222f1b60e31b815260040161095891815260200190565b5060006002830181905560038301558154613e22908290615a10565b8255613e31838261160e613565565b826001600160a01b03167f32eed9ebc5696170068a371fdbea4c076da1bc21b305e78ca0a5e65ee913be8382604051613e6c91815260200190565b60405180910390a2505050565b6000808211613e9b57604051637318ad9960e01b815260040160405180910390fd5b6000613ea7858561412c565b33600090815260048201602052604090208054919250908480821015613ee25760405163ab99793560e01b8152600401610958929190615bd3565b5050600282015486908690613f0c57604051631984edef60e31b8152600401610958929190615a36565b50506000826003015483600501548460020154613f299190615a10565b613f3390876159d7565b613f3d91906159ee565b905060008360050154600014613f705760058401546006850154613f6190846159d7565b613f6b91906159ee565b613f72565b815b6001600160a01b038981166000908152601b60209081526040808320938c1683529290529081206003015491925090613fbb90600160201b90046001600160401b031642615a23565b9050828560050154613fcd9190615a23565b60058601556006850154613fe2908390615a23565b60068601556003850154613ff7908890615a10565b60038601558354614009908890615a10565b8085551561407557600085600301548660050154876002015461402c9190615a10565b865461403891906159d7565b61404291906159ee565b905080670de0b6b3a7640000808210156140715760405163587ab9ab60e11b8152600401610958929190615bd3565b5050505b600061408b60018b8b3387878c6007015461491b565b9050336001600160a01b0316896001600160a01b03168b6001600160a01b03167f0525d6ad1aa78abc571b5c1984b5e1ea4f1412368c1cc348ca408dbb1085c9a1878c6040516140dc929190615bd3565b60405180910390a49998505050505050505050565b8015610e6f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016135c6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361418557506001600160a01b0382166000908152601460205260409020610a7f565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610a7f565b806000036141d157604051630a2a4e5b60e11b815260040160405180910390fd5b6141de3382610a2f613565565b610a6c8282614ac1565b8060000361420957604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038381166000908152601b60209081526040808320938616835292905220600381015484908490600160601b90046001600160401b0316614266576040516330acea0d60e11b8152600401610958929190615a36565b5050600061427385614362565b905082818082111561429a5760405163ccaf28a960e01b8152600401610958929190615bd3565b505081546142a9908490615a23565b82556001600160a01b0385166000908152600e60205260409020600401546142d2908490615a23565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc23474591016125ce565b600080614335848461412c565b905080600501548160020154610dd09190615a10565b60008183111561435b5781610a7c565b5090919050565b6001600160a01b0381166000908152600e6020526040812060028101546001820154600490920154839261439591615a23565b61439f9190615a23565b6001600160a01b0384166000908152600e60205260409020549091508181116143c9576000610dd0565b610dd08282615a10565b6060600080846001600160a01b0316846040516143f09190615bb7565b600060405180830381855af49150503d806000811461442b576040519150601f19603f3d011682016040523d82523d6000602084013e614430565b606091505b5091509150614440858383614b34565b95945050505050565b336001600160a01b0383160361447257604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036144df573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff191682151517905561451b565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f8460405161456c911515815260200190565b60405180910390a4505050565b600061458883620f4240101590565b8061459b575061459b82620f4240101590565b838390916145be5760405163768bf0eb60e11b8152600401610958929190615bd3565b50620f424090506145cf83856159d7565b610a7c91906159ee565b8015610a6c57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b158015611f0e57600080fd5b60008160000361464457604051630a2a4e5b60e11b815260040160405180910390fd5b60006146508585613846565b90508083808210156146775760405163587ab9ab60e11b8152600401610958929190615bd3565b50506001600160a01b038086166000908152601b6020908152604080832093881683529290529081206001810154909190156146ec578160010154600183600101548785600201546146c991906159d7565b6146d39190615a23565b6146dd9190615a10565b6146e791906159ee565b6146ee565b845b600383015490915060009061471390600160201b90046001600160401b031642615a23565b90508183600201546147259190615a23565b6002840155600183015461473a908790615a23565b8360010181905550600061475860008a8a8c87878a6005015461491b565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa8960405161479f91815260200190565b60405180910390a398975050505050505050565b6000806000806147d58560000151866020015187604001518860600151613b5c565b905060008160030154116147fc576040516307e332c560e31b815260040160405180910390fd5b60006148088683614b87565b905085604001516001600160a01b031686602001516001600160a01b03168760000151600181111561483c5761483c615a6f565b6060808a01518551602080880151604080516001600160a01b039095168552918401929092528201527f86c2f162872d7c46d7ee0caad366da6dc430889b9d8f27e4bed3785548f9954b910160405180910390a4602081015160408201516060909201519097919650945092505050565b60008183116148bd576000610a7c565b610a7c8284615a10565b60006148d38285615a23565b60016148df8487615a23565b6148e99190615a10565b6148f384866159d7565b6148fd87896159d7565b6149079190615a23565b6149119190615a23565b61444091906159ee565b60008360000361493e57604051637318ad9960e01b815260040160405180910390fd5b600061494c89898989613b5c565b90506103e88160030154106149745760405163332b852b60e11b815260040160405180910390fd5b60028101546040516001600160601b031960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160405160208183030381529060405280519060200120905060006149d68b83613bc8565b8781556001810180546001600160401b0319166001600160401b03891617905560006002820155600380820187905584015490915015614a245781614a1f8c8560010154613bc8565b600201555b614a2e8383614c82565b886001600160a01b03168a6001600160a01b03168c6001811115614a5457614a54615a6f565b604080516001600160a01b038d168152602081018c90526001600160401b038b168183015260608101879052608081018a905290517f036538df4a591a5cc74b68cfc7f8c61e8173dbc81627e1d62600b61e820461789181900360a00190a4509998505050505050505050565b6001600160a01b0382166000908152600e6020526040902054614ae5908290615a23565b6001600160a01b0383166000818152600e6020526040908190209290925590517f48c384dd8bdf1e06d8afecd810c4acfc3d553ac5d879dec5a69875dbbd90e14b906113719084815260200190565b606082614b4957614b4482614d15565b61188b565b8151158015614b6057506001600160a01b0384163b155b15614b805783604051639996b31560e01b8152600401610958919061553e565b508061188b565b614bb26040518060800160405280600081526020016000815260200160008152602001600081525090565b615194614bc28460000151614d3e565b9050615194614bd48560000151614da3565b905060008560000151600087608001518860a001518960e00151604051602001614c02959493929190615bfa565b6040516020818303038152906040529050600080614c3785614dea86868c60c001518c614f5a9095949392919063ffffffff16565b91509150600080600083806020019051810190614c549190615c3d565b60408051608081018252998a5260208a019390935291880152606087015250939a9950505050505050505050565b612710826003015410614ca8576040516303a8c56b60e61b815260040160405180910390fd5b80614cc657604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614ce2908490615a23565b90915550506003820154600003614cf7578082555b6001826003016000828254614d0c9190615a23565b90915550505050565b805115614d255780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6151946000826001811115614d5557614d55615a6f565b03614d635750615014919050565b6001826001811115614d7757614d77615a6f565b03614d855750615056919050565b604051636bd1fba760e11b815260040160405180910390fd5b919050565b6151946000826001811115614dba57614dba615a6f565b03614dc85750615062919050565b6001826001811115614ddc57614ddc615a6f565b03614d8557506150b9919050565b60006060600080600080600087806020019051810190614e0a9190615c7c565b945094509450945094506000614e20868b613bc8565b6001810154909150426001600160401b039091161115614e5b5760016040518060200160405280600081525097509750505050505050614f53565b600381015460009083148015614eae5782548590614e7a9088906159d7565b614e8491906159ee565b9150614e908287615a10565b8354909650614e9f9086615a10565b9450614eab8288615a23565b96505b8b886001811115614ec157614ec1615a6f565b845460018601546040805187815260208101939093526001600160401b03909116828201528415156060830152517f469e89d0a4e0e5deb2eb1ade5b3fa67fdfbeb4787c3a7c1e8e89aaf28562cab29181900360800190a38787878787604051602001614f32959493929190615bfa565b6040516020818303038152906040529a5060008b9950995050505050505050505b9250929050565b600060608760030154831115614f8357604051634a411b9d60e11b815260040160405180910390fd5b60008315614f915783614f97565b88600301545b89549094505b8015801590614fac5750600085115b1561500557600080614fc283898c63ffffffff16565b915091508115614fd3575050615005565b965086614fe18c8c8b6150c4565b925086614fed81615cc5565b9750508380614ffb90615be1565b9450505050614f9d565b50989397509295505050505050565b6000601d81805b600181111561502c5761502c615a6f565b81526020019081526020016000206000838152602001908152602001600020600201549050919050565b6000601d81600161501b565b601d6000805b600181111561507957615079615a6f565b8152602080820192909252604090810160009081209381529290915281208181556001810180546001600160401b03191690556002810182905560030155565b601d60006001615068565b6000808460030154116150ea5760405163ddaf8f2160e01b815260040160405180910390fd5b60006150fd85600001548563ffffffff16565b905061511085600001548463ffffffff16565b60018560030160008282546151259190615a10565b9091555050808555600385015460000361514157600060018601555b5050915492915050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b6110d0615cdc565b6001600160a01b0381168114610cd357600080fd5b803563ffffffff81168114614d9e57600080fd5b80356001600160401b0381168114614d9e57600080fd5b600080600080600060a086880312156151f457600080fd5b85356151ff8161519c565b9450602086013561520f8161519c565b935060408601359250615224606087016151b1565b9150615232608087016151c5565b90509295509295909350565b6000806040838503121561525157600080fd5b823561525c8161519c565b946020939093013593505050565b6000806040838503121561527d57600080fd5b82356152888161519c565b915060208301356152988161519c565b809150509250929050565b6000806000606084860312156152b857600080fd5b83356152c38161519c565b925060208401356152d38161519c565b929592945050506040919091013590565b6000602082840312156152f657600080fd5b610a7c826151c5565b6000610140820190508251825260208301516020830152604083015160408301526060830151615337606084018263ffffffff169052565b50608083015161535260808401826001600160401b03169052565b5060a083015161536d60a08401826001600160401b03169052565b5060c083015161538560c084018263ffffffff169052565b5060e08301516153a060e08401826001600160401b03169052565b5061010083015161010083015261012083015161012083015292915050565b6000602082840312156153d157600080fd5b5035919050565b60028110610cd357600080fd5b600080600080608085870312156153fb57600080fd5b8435615406816153d8565b935060208501356154168161519c565b925060408501356154268161519c565b915060608501356154368161519c565b939692955090935050565b60006020828403121561545357600080fd5b813561188b8161519c565b803560038110614d9e57600080fd5b6000806000806080858703121561548357600080fd5b843561548e8161519c565b9350602085013561549e8161519c565b92506154ac6040860161545e565b9396929550929360600135925050565b8015158114610cd357600080fd5b600080604083850312156154dd57600080fd5b82356154e88161519c565b91506020830135615298816154bc565b6000806000806080858703121561550e57600080fd5b84356155198161519c565b935060208501356155298161519c565b93969395505050506040820135916060013590565b6001600160a01b0391909116815260200190565b60008060006060848603121561556757600080fd5b83356155728161519c565b925060208401356155828161519c565b91506155906040850161545e565b90509250925092565b6000806000606084860312156155ae57600080fd5b83356155b98161519c565b925060208401356155c98161519c565b915060408401356155d98161519c565b809150509250925092565b600080600080608085870312156155fa57600080fd5b84356156058161519c565b935060208501356156158161519c565b9250615623604086016151b1565b9150615631606086016151c5565b905092959194509250565b60008060006060848603121561565157600080fd5b833561565c8161519c565b9250602084013561566c8161519c565b9150615590604085016151b1565b60008060006040848603121561568f57600080fd5b833561569a8161519c565b925060208401356001600160401b038111156156b557600080fd5b8401601f810186136156c657600080fd5b80356001600160401b038111156156dc57600080fd5b8660208284010111156156ee57600080fd5b939660209190910195509293505050565b6000806020838503121561571257600080fd5b82356001600160401b0381111561572857600080fd5b8301601f8101851361573957600080fd5b80356001600160401b0381111561574f57600080fd5b8560208260051b840101111561576457600080fd5b6020919091019590945092505050565b60005b8381101561578f578181015183820152602001615777565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561580c57603f19878603018452815180518087526157e9816020890160208501615774565b601f01601f191695909501602090810195509384019391909101906001016157c0565b50929695505050505050565b60008060006060848603121561582d57600080fd5b83356158388161519c565b925060208401356158488161519c565b915060408401356155d9816154bc565b6000806000806080858703121561586e57600080fd5b84356158798161519c565b935060208501356158898161519c565b925060408501356154ac8161519c565b600080604083850312156158ac57600080fd5b823561525c816153d8565b600080600080608085870312156158cd57600080fd5b84356158d88161519c565b9350602085013592506040850135915060608501356154368161519c565b60008060008060008060c0878903121561590f57600080fd5b863561591a8161519c565b9550602087013561592a8161519c565b9450604087013561593a8161519c565b9350606087013561594a8161519c565b9598949750929560808101359460a0909101359350915050565b60006020828403121561597657600080fd5b815161188b816154bc565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000602082840312156159b657600080fd5b815161188b8161519c565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7f57610a7f6159c1565b600082615a0b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a7f57610a7f6159c1565b80820180821115610a7f57610a7f6159c1565b6001600160a01b0392831681529116602082015260400190565b63ffffffff9290921682526001600160401b0316602082015260400190565b634e487b7160e01b600052602160045260246000fd5b600060208284031215615a9757600080fd5b5051919050565b6001600160401b0392831681529116602082015260400190565b6020808252601e908201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604082015260600190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112615b6157600080fd5b8301803591506001600160401b03821115615b7b57600080fd5b602001915036819003821315614f5357600080fd5b828482376000838201600081528351615bad818360208801615774565b0195945050505050565b60008251615bc9818460208701615774565b9190910192915050565b918252602082015260400190565b600060018201615bf357615bf36159c1565b5060010190565b60a0810160028710615c1c57634e487b7160e01b600052602160045260246000fd5b95815260208101949094526040840192909252606083015260809091015290565b60008060008060808587031215615c5357600080fd5b8451615c5e816153d8565b60208601516040870151606090970151919890975090945092505050565b600080600080600060a08688031215615c9457600080fd5b8551615c9f816153d8565b602087015160408801516060890151608090990151929a91995097965090945092505050565b600081615cd457615cd46159c1565b506000190190565b634e487b7160e01b600052605160045260246000fdfea2646970667358221220f5046670ab269f9c179f41df4a02cd9c6b2ca3d5d507e2b9fcf15f800f351d8b64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphCurationToken.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphCurationToken.json index b7220dcc7..342cb9f6a 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphCurationToken.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphCurationToken.json @@ -411,4 +411,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806379ba5097116100a2578063a9059cbb11610071578063a9059cbb14610352578063c4d66de81461037e578063dd62ed3e146103a4578063e3056a34146103d2578063f2fde38b146103da57610116565b806379ba5097146102ea57806379cc6790146102f257806395d89b411461031e578063a457c2d71461032657610116565b806323b872dd116100e957806323b872dd14610216578063313ce5671461024c578063395093511461026a57806340c10f191461029657806370a08231146102c457610116565b806306fdde031461011b578063095ea7b3146101985780630c340a24146101d857806318160ddd146101fc575b600080fd5b610123610400565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610496565b604080519115158252519081900360200190f35b6101e06104b3565b604080516001600160a01b039092168252519081900360200190f35b6102046104c2565b60408051918252519081900360200190f35b6101c46004803603606081101561022c57600080fd5b506001600160a01b038135811691602081013590911690604001356104c8565b61025461054f565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561028057600080fd5b506001600160a01b038135169060200135610558565b6102c2600480360360408110156102ac57600080fd5b506001600160a01b0381351690602001356105a6565b005b610204600480360360208110156102da57600080fd5b50356001600160a01b031661060c565b6102c2610627565b6102c26004803603604081101561030857600080fd5b506001600160a01b038135169060200135610737565b610123610799565b6101c46004803603604081101561033c57600080fd5b506001600160a01b0381351690602001356107fa565b6101c46004803603604081101561036857600080fd5b506001600160a01b038135169060200135610862565b6102c26004803603602081101561039457600080fd5b50356001600160a01b0316610876565b610204600480360360408110156103ba57600080fd5b506001600160a01b0381358116916020013516610972565b6101e061099d565b6102c2600480360360208110156103f057600080fd5b50356001600160a01b03166109ac565b60368054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b5050505050905090565b60006104aa6104a3610aaa565b8484610aae565b50600192915050565b6065546001600160a01b031681565b60355490565b60006104d5848484610b9a565b610545846104e1610aaa565b61054085604051806060016040528060288152602001611400602891396001600160a01b038a1660009081526034602052604081209061051f610aaa565b6001600160a01b031681526020810191909152604001600020549190610cf7565b610aae565b5060019392505050565b60385460ff1690565b60006104aa610565610aaa565b846105408560346000610576610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d8e565b6065546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610def565b5050565b6001600160a01b031660009081526033602052604090205490565b6066546001600160a01b0316801580159061064a5750336001600160a01b038216145b61069b576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b606580546001600160a01b038381166001600160a01b0319808416919091179384905560668054909116905560405191811692169082907f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f90600090a36066546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6065546001600160a01b0316331461078f576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610ee1565b60378054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b60006104aa610807610aaa565b84610540856040518060600160405280602581526020016114926025913960346000610831610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610cf7565b60006104aa61086f610aaa565b8484610b9a565b600054610100900460ff168061088f575061088f610fdd565b8061089d575060005460ff16155b6108d85760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015610903576000805460ff1961ff0019909116610100171660011790555b61090c82610fee565b61095d604051806040016040528060148152602001734772617068204375726174696f6e20536861726560601b8152506040518060400160405280600381526020016247435360e81b815250611010565b8015610608576000805461ff00191690555050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6066546001600160a01b031681565b6065546001600160a01b03163314610a04576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610a56576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b606680546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b038316610af35760405162461bcd60e51b815260040180806020018281038252602481526020018061146e6024913960400191505060405180910390fd5b6001600160a01b038216610b385760405162461bcd60e51b815260040180806020018281038252602281526020018061138a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610bdf5760405162461bcd60e51b81526004018080602001828103825260258152602001806114496025913960400191505060405180910390fd5b6001600160a01b038216610c245760405162461bcd60e51b81526004018080602001828103825260238152602001806113456023913960400191505060405180910390fd5b610c2f8383836110c1565b610c6c816040518060600160405280602681526020016113ac602691396001600160a01b0386166000908152603360205260409020549190610cf7565b6001600160a01b038085166000908152603360205260408082209390935590841681522054610c9b9082610d8e565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d4b578181015183820152602001610d33565b50505050905090810190601f168015610d785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610de8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610e4a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610e56600083836110c1565b603554610e639082610d8e565b6035556001600160a01b038216600090815260336020526040902054610e899082610d8e565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610f265760405162461bcd60e51b81526004018080602001828103825260218152602001806114286021913960400191505060405180910390fd5b610f32826000836110c1565b610f6f81604051806060016040528060228152602001611368602291396001600160a01b0385166000908152603360205260409020549190610cf7565b6001600160a01b038316600090815260336020526040902055603554610f9590826110c6565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610fe830611123565b15905090565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16806110295750611029610fdd565b80611037575060005460ff16155b6110725760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff1615801561109d576000805460ff1961ff0019909116610100171660011790555b6110a5611129565b6110af83836111cb565b80156110c1576000805461ff00191690555b505050565b60008282111561111d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600054610100900460ff16806111425750611142610fdd565b80611150575060005460ff16155b61118b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff161580156111b6576000805460ff1961ff0019909116610100171660011790555b80156111c8576000805461ff00191690555b50565b600054610100900460ff16806111e457506111e4610fdd565b806111f2575060005460ff16155b61122d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015611258576000805460ff1961ff0019909116610100171660011790555b825161126b9060369060208601906112a3565b50815161127f9060379060208501906112a3565b506038805460ff1916601217905580156110c1576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826112d9576000855561131f565b82601f106112f257805160ff191683800117855561131f565b8280016001018555821561131f579182015b8281111561131f578251825591602001919060010190611304565b5061132b92915061132f565b5090565b5b8082111561132b576000815560010161133056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b687fddcd01dbad6e1d5fbd49cb041f69ed61684a12a4c26c6e37e0f5ad7c2a64736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphProxy.json index 2cfb21e41..97963021c 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphProxy.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#GraphProxy.json @@ -174,4 +174,4 @@ "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation.json index 0d8c75203..6792faf3f 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation.json @@ -704,4 +704,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationAddressBook.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationAddressBook.json index 0d8c75203..6792faf3f 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationAddressBook.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationAddressBook.json @@ -704,4 +704,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationImplementationAddressBook.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationImplementationAddressBook.json index 0d8c75203..6792faf3f 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationImplementationAddressBook.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2CurationImplementationAddressBook.json @@ -704,4 +704,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation_ProxyWithABI.json index 0d8c75203..6792faf3f 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2Curation#L2Curation_ProxyWithABI.json @@ -704,4 +704,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220182d4780700d3d385918c6f4a2bbe50d522f035098d04683e959156c3033203064736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#GraphProxy.json index 2cfb21e41..97963021c 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#GraphProxy.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#GraphProxy.json @@ -174,4 +174,4 @@ "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken.json index 5889eeaf0..4550767a3 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken.json @@ -747,4 +747,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638c2a993e1161011a578063a9059cbb116100ad578063ca52d7d71161007c578063ca52d7d71461067a578063d505accf146106a0578063dd62ed3e146106f1578063e3056a341461071f578063f2fde38b14610727576101fb565b8063a9059cbb146105fa578063aa271e1a14610626578063c2eeeebd1461064c578063c4d66de814610654576101fb565b806398650275116100e957806398650275146105205780639ce7abe514610528578063a2594d82146105a8578063a457c2d7146105ce576101fb565b80638c2a993e146104a057806390646b4a146104cc57806395d89b41146104f2578063983b2d56146104fa576101fb565b8063395093511161019257806374f4f5471161016157806374f4f5471461041a57806379ba50971461044657806379cc67901461044e5780637ecebe001461047a576101fb565b8063395093511461037f57806340c10f19146103ab57806342966c68146103d757806370a08231146103f4576101fb565b806318160ddd116101ce57806318160ddd146102e957806323b872dd146103035780633092afd514610339578063313ce56714610361576101fb565b806306fdde0314610200578063095ea7b31461027d5780630c340a24146102bd578063116191b6146102e1575b600080fd5b61020861074d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b0381351690602001356107e3565b604080519115158252519081900360200190f35b6102c5610800565b604080516001600160a01b039092168252519081900360200190f35b6102c561080f565b6102f161081e565b60408051918252519081900360200190f35b6102a96004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610824565b61035f6004803603602081101561034f57600080fd5b50356001600160a01b03166108ab565b005b610369610958565b6040805160ff9092168252519081900360200190f35b6102a96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610961565b61035f600480360360408110156103c157600080fd5b506001600160a01b0381351690602001356109af565b61035f600480360360208110156103ed57600080fd5b5035610a0e565b6102f16004803603602081101561040a57600080fd5b50356001600160a01b0316610a1f565b61035f6004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a3a565b61035f610ad4565b61035f6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610be2565b6102f16004803603602081101561049057600080fd5b50356001600160a01b0316610c3c565b61035f600480360360408110156104b657600080fd5b506001600160a01b038135169060200135610c4e565b61035f600480360360208110156104e257600080fd5b50356001600160a01b0316610ce8565b610208610de1565b61035f6004803603602081101561051057600080fd5b50356001600160a01b0316610e42565b61035f610eef565b61035f6004803603604081101561053e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b509092509050610f43565b61035f600480360360208110156105be57600080fd5b50356001600160a01b0316611099565b6102a9600480360360408110156105e457600080fd5b506001600160a01b0381351690602001356111b4565b6102a96004803603604081101561061057600080fd5b506001600160a01b03813516906020013561121c565b6102a96004803603602081101561063c57600080fd5b50356001600160a01b0316611230565b6102c561124e565b61035f6004803603602081101561066a57600080fd5b50356001600160a01b031661125d565b61035f6004803603602081101561069057600080fd5b50356001600160a01b03166113d3565b61035f600480360360e08110156106b657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114cf565b6102f16004803603604081101561070757600080fd5b506001600160a01b0381358116916020013516611680565b6102c56116ab565b61035f6004803603602081101561073d57600080fd5b50356001600160a01b03166116ba565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f76107f06117b8565b84846117bc565b50600192915050565b6000546001600160a01b031681565b60ca546001600160a01b031681565b60365490565b60006108318484846118a8565b6108a18461083d6117b8565b61089c8560405180606001604052806028815260200161250e602891396001600160a01b038a1660009081526035602052604081209061087b6117b8565b6001600160a01b031681526020810191909152604001600020549190611a05565b6117bc565b5060019392505050565b6000546001600160a01b03163314610903576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b61090c81611230565b61094c576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b61095581611a9c565b50565b60395460ff1690565b60006107f761096e6117b8565b8461089c856035600061097f6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ae5565b6109b833611230565b610a00576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b610a0a8282611b46565b5050565b610955610a196117b8565b82611c38565b6001600160a01b031660009081526034602052604090205490565b60ca546001600160a01b03163314610a87576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610a918282610be2565b6040805182815290516001600160a01b038416917fe87aeeb22c5753db7f543198a4c3089d2233040ea9d1cab0eaa3b96d94d4fc6e919081900360200190a25050565b6001546001600160a01b03168015801590610af75750336001600160a01b038216145b610b48576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610c198260405180606001604052806024815260200161253660249139610c1286610c0d6117b8565b611680565b9190611a05565b9050610c2d83610c276117b8565b836117bc565b610c378383611c38565b505050565b609a6020526000908152604090205481565b60ca546001600160a01b03163314610c9b576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610ca58282611b46565b6040805182815290516001600160a01b038416917fae4b6e741e38054ad6705655cc56c91c184f6768f76b41e10803e2766d89e19f919081900360200190a25050565b6000546001600160a01b03163314610d40576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d8d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4741544557415960881b604482015290519081900360640190fd5b60ca80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f5317fa585931182194fed99f2ea5f2efd38af9cff9724273704c8501c521e34b9181900360200190a150565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b6000546001600160a01b03163314610e9a576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610ee6576040805162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa6a4a72a22a960911b604482015290519081900360640190fd5b61095581611d34565b610ef833611230565b610f38576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b610f4133611a9c565b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b50516001600160a01b03163314611007576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d60208110156110ff57600080fd5b50516001600160a01b0316331461115d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050505050565b60006107f76111c16117b8565b8461089c856040518060600160405280602581526020016125c460259139603560006111eb6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a05565b60006107f76112296117b8565b84846118a8565b6001600160a01b031660009081526099602052604090205460ff1690565b60cb546001600160a01b031681565b611265611d80565b6001600160a01b0316336001600160a01b0316146112c0576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600154600160a81b900460ff16806112db57506112db611da5565b806112f05750600154600160a01b900460ff16155b61132b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015611362576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b6001600160a01b0382166113b1576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6113bc826000611db6565b8015610a0a576001805460ff60a81b191690555050565b6000546001600160a01b0316331461142b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661147b576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c315f4144445245535360701b604482015290519081900360640190fd5b60cb80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f603c0b2e4494ac82839a70be8b6c660d7d042ccfe71c3ce0e5157f59090e74459181900360200190a150565b8315806114dc5750834211155b611523576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b6098546001600160a01b038089166000818152609a602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948c166060850152608084018b905260a084019490945260c08084018a90528451808503909101815260e08401855280519082012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251920191909120906115ed82868686611ef3565b9050806001600160a01b0316896001600160a01b03161461164b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b0389166000908152609a60205260409020805460010190556116758989896117bc565b505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314611712576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116611764576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b0383166118015760405162461bcd60e51b81526004018080602001828103825260248152602001806125a06024913960400191505060405180910390fd5b6001600160a01b0382166118465760405162461bcd60e51b81526004018080602001828103825260228152602001806124546022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118ed5760405162461bcd60e51b815260040180806020018281038252602581526020018061257b6025913960400191505060405180910390fd5b6001600160a01b0382166119325760405162461bcd60e51b815260040180806020018281038252602381526020018061240f6023913960400191505060405180910390fd5b61193d838383610c37565b61197a81604051806060016040528060268152602001612476602691396001600160a01b0386166000908152603460205260409020549190611a05565b6001600160a01b0380851660009081526034602052604080822093909355908416815220546119a99082611ae5565b6001600160a01b0380841660008181526034602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a59578181015183820152602001611a41565b50505050905090810190601f168015611a865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260996020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600082820183811015611b3f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611ba1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611bad60008383610c37565b603654611bba9082611ae5565b6036556001600160a01b038216600090815260346020526040902054611be09082611ae5565b6001600160a01b03831660008181526034602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216611c7d5760405162461bcd60e51b815260040180806020018281038252602181526020018061255a6021913960400191505060405180910390fd5b611c8982600083610c37565b611cc681604051806060016040528060228152602001612432602291396001600160a01b0385166000908152603460205260409020549190611a05565b6001600160a01b038316600090815260346020526040902055603654611cec9082612071565b6036556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260996020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611db0306120ce565b15905090565b611dfe6040518060400160405280600b81526020016a23b930b834102a37b5b2b760a91b8152506040518060400160405280600381526020016211d49560ea1b8152506120d4565b611e07826121a0565b611e118282611b46565b611e1a82611d34565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e856121c2565b6040805160208082019690965280820194909452606084019290925260808301523060a08301527f000000000000000000000000000000000000000000000000000000000000000060c0808401919091528151808403909101815260e0909201905280519101206098555050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611f545760405162461bcd60e51b815260040180806020018281038252602281526020018061249c6022913960400191505060405180910390fd5b8360ff16601b1480611f6957508360ff16601c145b611fa45760405162461bcd60e51b81526004018080602001828103825260228152602001806124ec6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612000573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612068576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b6000828211156120c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600154600160a81b900460ff16806120ef57506120ef611da5565b806121045750600154600160a01b900460ff16155b61213f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612176576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b61217e6121c6565b612188838361227e565b8015610c37576001805460ff60a81b19169055505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b4690565b600154600160a81b900460ff16806121e157506121e1611da5565b806121f65750600154600160a01b900460ff16155b6122315760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612268576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b8015610955576001805460ff60a81b1916905550565b600154600160a81b900460ff16806122995750612299611da5565b806122ae5750600154600160a01b900460ff16155b6122e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612320576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b825161233390603790602086019061236d565b50815161234790603890602085019061236d565b506039805460ff191660121790558015610c37576001805460ff60a81b19169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826123a357600085556123e9565b82601f106123bc57805160ff19168380011785556123e9565b828001600101855582156123e9579182015b828111156123e95782518255916020019190600101906123ce565b506123f59291506123f9565b5090565b5b808211156123f557600081556001016123fa56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff9ed43c1b257716d58111b6358b62039b7d7359bc9f0f142332535a4370cafe64736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken_ProxyWithABI.json index 5889eeaf0..4550767a3 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphToken#L2GraphToken_ProxyWithABI.json @@ -747,4 +747,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638c2a993e1161011a578063a9059cbb116100ad578063ca52d7d71161007c578063ca52d7d71461067a578063d505accf146106a0578063dd62ed3e146106f1578063e3056a341461071f578063f2fde38b14610727576101fb565b8063a9059cbb146105fa578063aa271e1a14610626578063c2eeeebd1461064c578063c4d66de814610654576101fb565b806398650275116100e957806398650275146105205780639ce7abe514610528578063a2594d82146105a8578063a457c2d7146105ce576101fb565b80638c2a993e146104a057806390646b4a146104cc57806395d89b41146104f2578063983b2d56146104fa576101fb565b8063395093511161019257806374f4f5471161016157806374f4f5471461041a57806379ba50971461044657806379cc67901461044e5780637ecebe001461047a576101fb565b8063395093511461037f57806340c10f19146103ab57806342966c68146103d757806370a08231146103f4576101fb565b806318160ddd116101ce57806318160ddd146102e957806323b872dd146103035780633092afd514610339578063313ce56714610361576101fb565b806306fdde0314610200578063095ea7b31461027d5780630c340a24146102bd578063116191b6146102e1575b600080fd5b61020861074d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b0381351690602001356107e3565b604080519115158252519081900360200190f35b6102c5610800565b604080516001600160a01b039092168252519081900360200190f35b6102c561080f565b6102f161081e565b60408051918252519081900360200190f35b6102a96004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610824565b61035f6004803603602081101561034f57600080fd5b50356001600160a01b03166108ab565b005b610369610958565b6040805160ff9092168252519081900360200190f35b6102a96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610961565b61035f600480360360408110156103c157600080fd5b506001600160a01b0381351690602001356109af565b61035f600480360360208110156103ed57600080fd5b5035610a0e565b6102f16004803603602081101561040a57600080fd5b50356001600160a01b0316610a1f565b61035f6004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a3a565b61035f610ad4565b61035f6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610be2565b6102f16004803603602081101561049057600080fd5b50356001600160a01b0316610c3c565b61035f600480360360408110156104b657600080fd5b506001600160a01b038135169060200135610c4e565b61035f600480360360208110156104e257600080fd5b50356001600160a01b0316610ce8565b610208610de1565b61035f6004803603602081101561051057600080fd5b50356001600160a01b0316610e42565b61035f610eef565b61035f6004803603604081101561053e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b509092509050610f43565b61035f600480360360208110156105be57600080fd5b50356001600160a01b0316611099565b6102a9600480360360408110156105e457600080fd5b506001600160a01b0381351690602001356111b4565b6102a96004803603604081101561061057600080fd5b506001600160a01b03813516906020013561121c565b6102a96004803603602081101561063c57600080fd5b50356001600160a01b0316611230565b6102c561124e565b61035f6004803603602081101561066a57600080fd5b50356001600160a01b031661125d565b61035f6004803603602081101561069057600080fd5b50356001600160a01b03166113d3565b61035f600480360360e08110156106b657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114cf565b6102f16004803603604081101561070757600080fd5b506001600160a01b0381358116916020013516611680565b6102c56116ab565b61035f6004803603602081101561073d57600080fd5b50356001600160a01b03166116ba565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f76107f06117b8565b84846117bc565b50600192915050565b6000546001600160a01b031681565b60ca546001600160a01b031681565b60365490565b60006108318484846118a8565b6108a18461083d6117b8565b61089c8560405180606001604052806028815260200161250e602891396001600160a01b038a1660009081526035602052604081209061087b6117b8565b6001600160a01b031681526020810191909152604001600020549190611a05565b6117bc565b5060019392505050565b6000546001600160a01b03163314610903576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b61090c81611230565b61094c576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b61095581611a9c565b50565b60395460ff1690565b60006107f761096e6117b8565b8461089c856035600061097f6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ae5565b6109b833611230565b610a00576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b610a0a8282611b46565b5050565b610955610a196117b8565b82611c38565b6001600160a01b031660009081526034602052604090205490565b60ca546001600160a01b03163314610a87576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610a918282610be2565b6040805182815290516001600160a01b038416917fe87aeeb22c5753db7f543198a4c3089d2233040ea9d1cab0eaa3b96d94d4fc6e919081900360200190a25050565b6001546001600160a01b03168015801590610af75750336001600160a01b038216145b610b48576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610c198260405180606001604052806024815260200161253660249139610c1286610c0d6117b8565b611680565b9190611a05565b9050610c2d83610c276117b8565b836117bc565b610c378383611c38565b505050565b609a6020526000908152604090205481565b60ca546001600160a01b03163314610c9b576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610ca58282611b46565b6040805182815290516001600160a01b038416917fae4b6e741e38054ad6705655cc56c91c184f6768f76b41e10803e2766d89e19f919081900360200190a25050565b6000546001600160a01b03163314610d40576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d8d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4741544557415960881b604482015290519081900360640190fd5b60ca80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f5317fa585931182194fed99f2ea5f2efd38af9cff9724273704c8501c521e34b9181900360200190a150565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b6000546001600160a01b03163314610e9a576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610ee6576040805162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa6a4a72a22a960911b604482015290519081900360640190fd5b61095581611d34565b610ef833611230565b610f38576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b610f4133611a9c565b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b50516001600160a01b03163314611007576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d60208110156110ff57600080fd5b50516001600160a01b0316331461115d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050505050565b60006107f76111c16117b8565b8461089c856040518060600160405280602581526020016125c460259139603560006111eb6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a05565b60006107f76112296117b8565b84846118a8565b6001600160a01b031660009081526099602052604090205460ff1690565b60cb546001600160a01b031681565b611265611d80565b6001600160a01b0316336001600160a01b0316146112c0576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600154600160a81b900460ff16806112db57506112db611da5565b806112f05750600154600160a01b900460ff16155b61132b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015611362576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b6001600160a01b0382166113b1576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6113bc826000611db6565b8015610a0a576001805460ff60a81b191690555050565b6000546001600160a01b0316331461142b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661147b576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c315f4144445245535360701b604482015290519081900360640190fd5b60cb80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f603c0b2e4494ac82839a70be8b6c660d7d042ccfe71c3ce0e5157f59090e74459181900360200190a150565b8315806114dc5750834211155b611523576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b6098546001600160a01b038089166000818152609a602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948c166060850152608084018b905260a084019490945260c08084018a90528451808503909101815260e08401855280519082012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251920191909120906115ed82868686611ef3565b9050806001600160a01b0316896001600160a01b03161461164b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b0389166000908152609a60205260409020805460010190556116758989896117bc565b505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314611712576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116611764576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b0383166118015760405162461bcd60e51b81526004018080602001828103825260248152602001806125a06024913960400191505060405180910390fd5b6001600160a01b0382166118465760405162461bcd60e51b81526004018080602001828103825260228152602001806124546022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118ed5760405162461bcd60e51b815260040180806020018281038252602581526020018061257b6025913960400191505060405180910390fd5b6001600160a01b0382166119325760405162461bcd60e51b815260040180806020018281038252602381526020018061240f6023913960400191505060405180910390fd5b61193d838383610c37565b61197a81604051806060016040528060268152602001612476602691396001600160a01b0386166000908152603460205260409020549190611a05565b6001600160a01b0380851660009081526034602052604080822093909355908416815220546119a99082611ae5565b6001600160a01b0380841660008181526034602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a59578181015183820152602001611a41565b50505050905090810190601f168015611a865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260996020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600082820183811015611b3f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611ba1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611bad60008383610c37565b603654611bba9082611ae5565b6036556001600160a01b038216600090815260346020526040902054611be09082611ae5565b6001600160a01b03831660008181526034602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216611c7d5760405162461bcd60e51b815260040180806020018281038252602181526020018061255a6021913960400191505060405180910390fd5b611c8982600083610c37565b611cc681604051806060016040528060228152602001612432602291396001600160a01b0385166000908152603460205260409020549190611a05565b6001600160a01b038316600090815260346020526040902055603654611cec9082612071565b6036556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260996020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611db0306120ce565b15905090565b611dfe6040518060400160405280600b81526020016a23b930b834102a37b5b2b760a91b8152506040518060400160405280600381526020016211d49560ea1b8152506120d4565b611e07826121a0565b611e118282611b46565b611e1a82611d34565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e856121c2565b6040805160208082019690965280820194909452606084019290925260808301523060a08301527f000000000000000000000000000000000000000000000000000000000000000060c0808401919091528151808403909101815260e0909201905280519101206098555050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611f545760405162461bcd60e51b815260040180806020018281038252602281526020018061249c6022913960400191505060405180910390fd5b8360ff16601b1480611f6957508360ff16601c145b611fa45760405162461bcd60e51b81526004018080602001828103825260228152602001806124ec6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612000573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612068576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b6000828211156120c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600154600160a81b900460ff16806120ef57506120ef611da5565b806121045750600154600160a01b900460ff16155b61213f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612176576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b61217e6121c6565b612188838361227e565b8015610c37576001805460ff60a81b19169055505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b4690565b600154600160a81b900460ff16806121e157506121e1611da5565b806121f65750600154600160a01b900460ff16155b6122315760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612268576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b8015610955576001805460ff60a81b1916905550565b600154600160a81b900460ff16806122995750612299611da5565b806122ae5750600154600160a01b900460ff16155b6122e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612320576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b825161233390603790602086019061236d565b50815161234790603890602085019061236d565b506039805460ff191660121790558015610c37576001805460ff60a81b19169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826123a357600085556123e9565b82601f106123bc57805160ff19168380011785556123e9565b828001600101855582156123e9579182015b828111156123e95782518255916020019190600101906123ce565b506123f59291506123f9565b5090565b5b808211156123f557600081556001016123fa56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff9ed43c1b257716d58111b6358b62039b7d7359bc9f0f142332535a4370cafe64736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#GraphProxy.json index 2cfb21e41..97963021c 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#GraphProxy.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#GraphProxy.json @@ -174,4 +174,4 @@ "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway.json index 0a9b3a140..c1ca3083b 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway.json @@ -644,4 +644,4 @@ "deployedBytecode": "0x6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122065fad7a9fc021b14dda68574a33568d80fcb7311e53fb115c48b61e211858c8364736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.json index 0a9b3a140..c1ca3083b 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/L2GraphTokenGateway#L2GraphTokenGateway_ProxyWithABI.json @@ -644,4 +644,4 @@ "deployedBytecode": "0x6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122065fad7a9fc021b14dda68574a33568d80fcb7311e53fb115c48b61e211858c8364736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow.json index c543471bf..e4e9beada 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow.json @@ -677,4 +677,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_ProxyWithABI.json index c543471bf..e4e9beada 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_ProxyWithABI.json @@ -677,4 +677,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c80631230fa3e146100a957806372eb521e146100be5780637a8df28b146100d15780637b8ae6cf146101305780638129fc1c146101655780638340f5491461016d578063ac9650d814610180578063b1d07de4146101a0578063b2168b6b146101b3578063d6bd603c146101bd578063f93f1cd0146101d0578063f940e385146101e3575b600080fd5b6100bc6100b736600461111c565b6101f6565b005b6100bc6100cc36600461119a565b61058c565b6101106100df3660046111e5565b6000602081815293815260408082208552928152828120909352825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101577f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610127565b6100bc610625565b6100bc61017b366004611228565b61071d565b61019361018e366004611265565b6107b5565b60405161012791906112fe565b6100bc6101ae36600461137e565b61089d565b6101576276a70081565b6101576101cb3660046111e5565b6109e0565b6100bc6101de366004611228565b610a3e565b6100bc6101f136600461137e565b610bd1565b6101fe610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f91906113b1565b1561027d57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038087166000908152602081815260408083203384528252808320938916835292905220805485808210156102da57604051633db4e69160e01b8152600481019290925260248201526044015b60405180910390fd5b5050848160000160008282546102f091906113e9565b9091555060009050610300610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161032b91906113fc565b602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611410565b9050610376610db3565b6001600160a01b031663095ea7b361038c610dd7565b886040518363ffffffff1660e01b81526004016103aa929190611429565b6020604051808303816000875af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed91906113b1565b506103f6610dd7565b6001600160a01b03166381cd11a08a89898989896040518763ffffffff1660e01b815260040161042b96959493929190611458565b600060405180830381600087803b15801561044557600080fd5b505af1158015610459573d6000803e3d6000fd5b505050506000610467610db3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161049291906113fc565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611410565b90506104df81886114ae565b821482828990919261051557604051631f82726b60e21b81526004810193909352602483019190915260448201526064016102d1565b50339150506001600160a01b038a168b600281111561053657610536611442565b604080516001600160a01b038d81168252602082018d905289168183015290517f399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c9139181900360600190a450505050505050505050565b610594610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f591906113b1565b1561061357604051639e68cf0b60e01b815260040160405180910390fd5b61061f84848484610dfb565b50505050565b600061062f610eac565b805490915060ff600160401b82041615906001600160401b03166000811580156106565750825b90506000826001600160401b031660011480156106725750303b155b905081158015610680575080155b1561069e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c857845460ff60401b1916600160401b1785555b6106d0610ed5565b831561071657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b610725610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078691906113b1565b156107a457604051639e68cf0b60e01b815260040160405180910390fd5b6107b033848484610dfb565b505050565b604080516000815260208101909152606090826001600160401b038111156107df576107df6114c1565b60405190808252806020026020018201604052801561081257816020015b60608152602001906001900390816107fd5790505b50915060005b838110156108945761086f30868684818110610836576108366114d7565b905060200281019061084891906114ed565b8560405160200161085b9392919061153a565b604051602081830303815290604052610edf565b838281518110610881576108816114d7565b6020908102919091010152600101610818565b50505b92915050565b6108a5610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090691906113b1565b1561092457604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03868116855290835281842090851684529091528120600181015490910361097657604051638cbd172f60e01b815260040160405180910390fd5b60018101805460028301805460009384905592905560408051828152602081018490529192916001600160a01b03868116929088169133917f6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535910160405180910390a45050505050565b6001600160a01b038084166000908152602081815260408083208685168452825280832093851683529290529081206001810154815411610a22576000610a33565b60018101548154610a3391906113e9565b9150505b9392505050565b610a46610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b15610ac557604051639e68cf0b60e01b815260040160405180910390fd5b60008111610ae657604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0387811685529083528184209086168452909152902080548280821015610b4057604051633db4e69160e01b8152600481019290925260248201526044016102d1565b505060018101829055610b737f0000000000000000000000000000000000000000000000000000000000000000426114ae565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc91610bc391888252602082015260400190565b60405180910390a450505050565b610bd9610d8f565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a91906113b1565b15610c5857604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b038681168552908352818420908516845290915281206002810154909103610caa57604051638cbd172f60e01b815260040160405180910390fd5b60028101544290818110610cda57604051633c50db7960e11b8152600481019290925260248201526044016102d1565b505060008160000154826001015411610cf7578160010154610cfa565b81545b905080826000016000828254610d1091906113e9565b90915550506000600183018190556002830155610d403382610d30610db3565b6001600160a01b03169190610f55565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610bc391815260200190565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038085166000908152602081815260408083208785168452825280832093861683529290529081208054839290610e3a9084906114ae565b90915550610e5d90503382610e4d610db3565b6001600160a01b03169190611004565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a9684604051610bc391815260200190565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610897565b610edd611045565b565b6060600080846001600160a01b031684604051610efc9190611561565b600060405180830381855af49150503d8060008114610f37576040519150601f19603f3d011682016040523d82523d6000602084013e610f3c565b606091505b5091509150610f4c85838361106a565b95945050505050565b80156107b05760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610f899085908590600401611429565b6020604051808303816000875af1158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc91906113b1565b6107b05760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016102d1565b80156107b0576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401610f89565b61104d6110bd565b610edd57604051631afcd79f60e31b815260040160405180910390fd5b60608261107f5761107a826110d7565b610a37565b815115801561109657506001600160a01b0384163b155b156110b65783604051639996b31560e01b81526004016102d191906113fc565b5080610a37565b60006110c7610eac565b54600160401b900460ff16919050565b8051156110e75780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b038116811461111757600080fd5b919050565b600080600080600080600060e0888a03121561113757600080fd5b87356003811061114657600080fd5b965061115460208901611100565b955061116260408901611100565b94506060880135935061117760808901611100565b925060a0880135915061118c60c08901611100565b905092959891949750929550565b600080600080608085870312156111b057600080fd5b6111b985611100565b93506111c760208601611100565b92506111d560408601611100565b9396929550929360600135925050565b6000806000606084860312156111fa57600080fd5b61120384611100565b925061121160208501611100565b915061121f60408501611100565b90509250925092565b60008060006060848603121561123d57600080fd5b61124684611100565b925061125460208501611100565b929592945050506040919091013590565b6000806020838503121561127857600080fd5b82356001600160401b0381111561128e57600080fd5b8301601f8101851361129f57600080fd5b80356001600160401b038111156112b557600080fd5b8560208260051b84010111156112ca57600080fd5b6020919091019590945092505050565b60005b838110156112f55781810151838201526020016112dd565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561137257603f198786030184528151805180875261134f8160208901602085016112da565b601f01601f19169590950160209081019550938401939190910190600101611326565b50929695505050505050565b6000806040838503121561139157600080fd5b61139a83611100565b91506113a860208401611100565b90509250929050565b6000602082840312156113c357600080fd5b81518015158114610a3757600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610897576108976113d3565b6001600160a01b0391909116815260200190565b60006020828403121561142257600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061147a57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015260408101949094529184166060840152608083015290911660a09091015290565b80820180821115610897576108976113d3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261150457600080fd5b8301803591506001600160401b0382111561151e57600080fd5b60200191503681900382131561153357600080fd5b9250929050565b8284823760008382016000815283516115578183602088016112da565b0195945050505050565b600082516115738184602087016112da565b919091019291505056fea26469706673582212208ab10e801fa2cc0d10964181f12d884e2488e415d888ab908ab3d257d0bef82f64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#GraphProxy.json index 2cfb21e41..97963021c 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#GraphProxy.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#GraphProxy.json @@ -174,4 +174,4 @@ "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager.json index fe6be7a77..3d76a8992 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager.json @@ -619,4 +619,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806393a90a1e11610104578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103ad578063e820e284146103b5578063eeac3e0e146103d5578063f77c4791146103e8576101da565b8063c8a5f81e14610377578063d6866ea51461038a578063db75092614610392578063e242cf1e146103a5576101da565b8063a8cc0ee2116100de578063a8cc0ee21461034c578063b951acd714610354578063c4d66de81461035c578063c7d1117d1461036f576101da565b806393a90a1e146103135780639ce7abe514610326578063a2594d8214610339576101da565b80634986594f1161017c578063702a280e1161014b578063702a280e146102c4578063779bcb9b146102e55780639006ce8b146102f857806392eefe9b14610300576101da565b80634986594f146102735780634bbfc1c5146102965780635c6cbd59146102a95780636c080f18146102bc576101da565b80631324a506116101b85780631324a5061461022557806316a84ab2146102385780631d1c2fec14610258578063260582491461026b576101da565b806305bb8c6b146101df5780630903c094146101fd5780631156bdc114610212575b600080fd5b6101e76103f0565b6040516101f49190611a57565b60405180910390f35b61021061020b366004611895565b6103ff565b005b610210610220366004611962565b61045b565b61021061023336600461197a565b61046f565b61024b610246366004611962565b6104b0565b6040516101f49190611a8f565b61024b610266366004611962565b6104c2565b6101e76104fb565b610286610281366004611962565b61050a565b6040516101f49493929190611c12565b6102106102a4366004611962565b610531565b61024b6102b7366004611962565b61062d565b61024b61071e565b6102d76102d2366004611962565b610724565b6040516101f4929190611c04565b61024b6102f33660046118cd565b610898565b61024b6109be565b61021061030e366004611895565b6109c4565b610210610321366004611895565b6109d5565b61021061033436600461199e565b610a2f565b610210610347366004611895565b610b85565b61024b610ca0565b61024b610cbc565b61021061036a366004611895565b610cc2565b61024b610d2e565b61024b610385366004611a36565b610d46565b610210610d65565b61024b6103a0366004611895565b610e86565b61024b6110bc565b61024b6110c2565b6103c86103c3366004611962565b6111d1565b6040516101f49190611a84565b61024b6103e3366004611962565b6111e5565b6101e7611217565b600f546001600160a01b031681565b610407611226565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611a98565b60405180910390a150565b610463611226565b61046c816112fa565b50565b600f546001600160a01b031633146104a25760405162461bcd60e51b815260040161049990611acf565b60405180910390fd5b6104ac8282611336565b5050565b60116020526000908152604090205481565b60006104cc610d2e565b5060008281526010602052604090206104e48361062d565b808255600d5460029092019190915590505b919050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b03163314806105de575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561059157600080fd5b505afa1580156105a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c991906118b1565b6001600160a01b0316336001600160a01b0316145b6105fa5760405162461bcd60e51b815260040161049990611bdc565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b1e565b600081815260106020526040812081610644611399565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161066f9190611a8f565b60206040518083038186803b15801561068757600080fd5b505afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a1e565b905060006012548210156106d4576000610706565b610706670de0b6b3a7640000610700846106fa87600201546106f4610ca0565b906113c4565b90611421565b9061147a565b835490915061071590826114e1565b95945050505050565b60145481565b600081815260106020526040812081908161073e8561062d565b9050600061075082846001015461153b565b90506000806040518060400160405280610768611555565b6001600160a01b03908116825260155416602090910152905060005b600281101561084757600082826002811061079b57fe5b60200201516001600160a01b03161461083f578181600281106107ba57fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016107ea9190611a8f565b60206040518083038186803b15801561080257600080fd5b505afa158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611a1e565b830192505b600101610784565b508161085e57600084965096505050505050610893565b60006108768361070086670de0b6b3a7640000611421565b600387015490915061088890826114e1565b975093955050505050505b915091565b60006108a2611555565b6001600160a01b0316836001600160a01b031614806108ce57506015546001600160a01b038481169116145b6108ea5760405162461bcd60e51b815260040161049990611b77565b6000806000806000876001600160a01b03166355c85269886040518263ffffffff1660e01b815260040161091e9190611a57565b60c06040518083038186803b15801561093657600080fd5b505afa15801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190611905565b95509550955095505094508461098c576000955050505050506109b8565b600061099785610724565b5090506109af6109a8858584611580565b83906114e1565b96505050505050505b92915050565b600e5481565b6109cc6115a5565b61046c81611604565b6109dd611226565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b50516001600160a01b03163314610af3576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610b6757600080fd5b505af1158015610b7b573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bc157600080fd5b505af1158015610bd5573d6000803e3d6000fd5b505050506040513d6020811015610beb57600080fd5b50516001600160a01b03163314610c49576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050505050565b6000610cb6610cad6110c2565b600d54906114e1565b90505b90565b60125481565b610cca6116ac565b6001600160a01b0316336001600160a01b031614610d25576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61046c816109cc565b6000610d38610ca0565b600d81905543600e55905090565b6000610d5e670de0b6b3a76400006107008486611421565b9392505050565b610d8e7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610db77f00000000000000000000000000000000000000000000000000000000000000006116d1565b610de07f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e097f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e327f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e5b7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e847f00000000000000000000000000000000000000000000000000000000000000006116d1565b565b600033610e91611555565b6001600160a01b0316816001600160a01b03161480610ebd57506015546001600160a01b038281169116145b610ed95760405162461bcd60e51b815260040161049990611ba5565b600080600080600080866001600160a01b03166355c852698a6040518263ffffffff1660e01b8152600401610f0e9190611a57565b60c06040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190611905565b9550955095509550955095506000610f75856111e5565b9050610f80856111d1565b15610fd657896001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000985050505050505050506104f6565b6000871561106357610ff3610fec868685611580565b84906114e1565b90508015611063576110036117d2565b6001600160a01b03166340c10f198a836040518363ffffffff1660e01b8152600401611030929190611a6b565b600060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050505b8a6001600160a01b0316876001600160a01b03167fa111914d7f2ea8beca61d12f1a1f38c5533de5f1823c3936422df4404ac2ec68836040516110a69190611a8f565b60405180910390a39a9950505050505050505050565b600d5481565b6000806110da600e54436113c490919063ffffffff16565b9050806110eb576000915050610cb9565b6014546110fc576000915050610cb9565b60006111066117d2565b90506000816001600160a01b03166370a08231611121611399565b6040518263ffffffff1660e01b815260040161113d9190611a57565b60206040518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d9190611a1e565b9050806111a05760009350505050610cb9565b6014546000906111b09085611421565b90506111c88261070083670de0b6b3a7640000611421565b94505050505090565b600090815260116020526040902054151590565b600081815260106020526040812081806111fe85610724565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561127257600080fd5b505afa158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b50516001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611302610d2e565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b4d565b600081611344576000611346565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a9061138c908490611a8f565b60405180910390a2505050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008282111561141b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082611430575060006109b8565b8282028284828161143d57fe5b0414610d5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c516021913960400191505060405180910390fd5b60008082116114d0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114d957fe5b049392505050565b600082820183811015610d5e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081831161154b576000610d5e565b610d5e83836113c4565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008061158d83856113c4565b9050610715670de0b6b3a76400006107008388611421565b6000546001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611658576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ac5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806109b85760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561186257600080fd5b505afa158015611876573d6000803e3d6000fd5b505050506040513d602081101561188c57600080fd5b50519392505050565b6000602082840312156118a6578081fd5b8135610d5e81611c2d565b6000602082840312156118c2578081fd5b8151610d5e81611c2d565b600080604083850312156118df578081fd5b82356118ea81611c2d565b915060208301356118fa81611c2d565b809150509250929050565b60008060008060008060c0878903121561191d578182fd5b865161192881611c42565b602088015190965061193981611c2d565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b600060208284031215611973578081fd5b5035919050565b6000806040838503121561198c578182fd5b8235915060208301356118fa81611c42565b6000806000604084860312156119b2578283fd5b83356119bd81611c2d565b9250602084013567ffffffffffffffff808211156119d9578384fd5b818601915086601f8301126119ec578384fd5b8135818111156119fa578485fd5b876020828501011115611a0b578485fd5b6020830194508093505050509250925092565b600060208284031215611a2f578081fd5b5051919050565b60008060408385031215611a48578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601490820152732737ba1030903932bbb0b932399034b9b9bab2b960611b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461046c57600080fd5b801515811461046c57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b536df78ac5675cc1b134b52c2a049a6938eb11d81ca397ce9b07214c71d8af264736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_ProxyWithABI.json index fe6be7a77..3d76a8992 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_ProxyWithABI.json @@ -619,4 +619,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806393a90a1e11610104578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103ad578063e820e284146103b5578063eeac3e0e146103d5578063f77c4791146103e8576101da565b8063c8a5f81e14610377578063d6866ea51461038a578063db75092614610392578063e242cf1e146103a5576101da565b8063a8cc0ee2116100de578063a8cc0ee21461034c578063b951acd714610354578063c4d66de81461035c578063c7d1117d1461036f576101da565b806393a90a1e146103135780639ce7abe514610326578063a2594d8214610339576101da565b80634986594f1161017c578063702a280e1161014b578063702a280e146102c4578063779bcb9b146102e55780639006ce8b146102f857806392eefe9b14610300576101da565b80634986594f146102735780634bbfc1c5146102965780635c6cbd59146102a95780636c080f18146102bc576101da565b80631324a506116101b85780631324a5061461022557806316a84ab2146102385780631d1c2fec14610258578063260582491461026b576101da565b806305bb8c6b146101df5780630903c094146101fd5780631156bdc114610212575b600080fd5b6101e76103f0565b6040516101f49190611a57565b60405180910390f35b61021061020b366004611895565b6103ff565b005b610210610220366004611962565b61045b565b61021061023336600461197a565b61046f565b61024b610246366004611962565b6104b0565b6040516101f49190611a8f565b61024b610266366004611962565b6104c2565b6101e76104fb565b610286610281366004611962565b61050a565b6040516101f49493929190611c12565b6102106102a4366004611962565b610531565b61024b6102b7366004611962565b61062d565b61024b61071e565b6102d76102d2366004611962565b610724565b6040516101f4929190611c04565b61024b6102f33660046118cd565b610898565b61024b6109be565b61021061030e366004611895565b6109c4565b610210610321366004611895565b6109d5565b61021061033436600461199e565b610a2f565b610210610347366004611895565b610b85565b61024b610ca0565b61024b610cbc565b61021061036a366004611895565b610cc2565b61024b610d2e565b61024b610385366004611a36565b610d46565b610210610d65565b61024b6103a0366004611895565b610e86565b61024b6110bc565b61024b6110c2565b6103c86103c3366004611962565b6111d1565b6040516101f49190611a84565b61024b6103e3366004611962565b6111e5565b6101e7611217565b600f546001600160a01b031681565b610407611226565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611a98565b60405180910390a150565b610463611226565b61046c816112fa565b50565b600f546001600160a01b031633146104a25760405162461bcd60e51b815260040161049990611acf565b60405180910390fd5b6104ac8282611336565b5050565b60116020526000908152604090205481565b60006104cc610d2e565b5060008281526010602052604090206104e48361062d565b808255600d5460029092019190915590505b919050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b03163314806105de575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561059157600080fd5b505afa1580156105a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c991906118b1565b6001600160a01b0316336001600160a01b0316145b6105fa5760405162461bcd60e51b815260040161049990611bdc565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b1e565b600081815260106020526040812081610644611399565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161066f9190611a8f565b60206040518083038186803b15801561068757600080fd5b505afa15801561069b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bf9190611a1e565b905060006012548210156106d4576000610706565b610706670de0b6b3a7640000610700846106fa87600201546106f4610ca0565b906113c4565b90611421565b9061147a565b835490915061071590826114e1565b95945050505050565b60145481565b600081815260106020526040812081908161073e8561062d565b9050600061075082846001015461153b565b90506000806040518060400160405280610768611555565b6001600160a01b03908116825260155416602090910152905060005b600281101561084757600082826002811061079b57fe5b60200201516001600160a01b03161461083f578181600281106107ba57fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016107ea9190611a8f565b60206040518083038186803b15801561080257600080fd5b505afa158015610816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083a9190611a1e565b830192505b600101610784565b508161085e57600084965096505050505050610893565b60006108768361070086670de0b6b3a7640000611421565b600387015490915061088890826114e1565b975093955050505050505b915091565b60006108a2611555565b6001600160a01b0316836001600160a01b031614806108ce57506015546001600160a01b038481169116145b6108ea5760405162461bcd60e51b815260040161049990611b77565b6000806000806000876001600160a01b03166355c85269886040518263ffffffff1660e01b815260040161091e9190611a57565b60c06040518083038186803b15801561093657600080fd5b505afa15801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190611905565b95509550955095505094508461098c576000955050505050506109b8565b600061099785610724565b5090506109af6109a8858584611580565b83906114e1565b96505050505050505b92915050565b600e5481565b6109cc6115a5565b61046c81611604565b6109dd611226565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b50516001600160a01b03163314610af3576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610b6757600080fd5b505af1158015610b7b573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bc157600080fd5b505af1158015610bd5573d6000803e3d6000fd5b505050506040513d6020811015610beb57600080fd5b50516001600160a01b03163314610c49576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b505050505050565b6000610cb6610cad6110c2565b600d54906114e1565b90505b90565b60125481565b610cca6116ac565b6001600160a01b0316336001600160a01b031614610d25576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61046c816109cc565b6000610d38610ca0565b600d81905543600e55905090565b6000610d5e670de0b6b3a76400006107008486611421565b9392505050565b610d8e7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610db77f00000000000000000000000000000000000000000000000000000000000000006116d1565b610de07f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e097f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e327f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e5b7f00000000000000000000000000000000000000000000000000000000000000006116d1565b610e847f00000000000000000000000000000000000000000000000000000000000000006116d1565b565b600033610e91611555565b6001600160a01b0316816001600160a01b03161480610ebd57506015546001600160a01b038281169116145b610ed95760405162461bcd60e51b815260040161049990611ba5565b600080600080600080866001600160a01b03166355c852698a6040518263ffffffff1660e01b8152600401610f0e9190611a57565b60c06040518083038186803b158015610f2657600080fd5b505afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190611905565b9550955095509550955095506000610f75856111e5565b9050610f80856111d1565b15610fd657896001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000985050505050505050506104f6565b6000871561106357610ff3610fec868685611580565b84906114e1565b90508015611063576110036117d2565b6001600160a01b03166340c10f198a836040518363ffffffff1660e01b8152600401611030929190611a6b565b600060405180830381600087803b15801561104a57600080fd5b505af115801561105e573d6000803e3d6000fd5b505050505b8a6001600160a01b0316876001600160a01b03167fa111914d7f2ea8beca61d12f1a1f38c5533de5f1823c3936422df4404ac2ec68836040516110a69190611a8f565b60405180910390a39a9950505050505050505050565b600d5481565b6000806110da600e54436113c490919063ffffffff16565b9050806110eb576000915050610cb9565b6014546110fc576000915050610cb9565b60006111066117d2565b90506000816001600160a01b03166370a08231611121611399565b6040518263ffffffff1660e01b815260040161113d9190611a57565b60206040518083038186803b15801561115557600080fd5b505afa158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d9190611a1e565b9050806111a05760009350505050610cb9565b6014546000906111b09085611421565b90506111c88261070083670de0b6b3a7640000611421565b94505050505090565b600090815260116020526040902054151590565b600081815260106020526040812081806111fe85610724565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561127257600080fd5b505afa158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b50516001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611302610d2e565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061045090611b4d565b600081611344576000611346565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a9061138c908490611a8f565b60405180910390a2505050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008282111561141b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082611430575060006109b8565b8282028284828161143d57fe5b0414610d5e5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c516021913960400191505060405180910390fd5b60008082116114d0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114d957fe5b049392505050565b600082820183811015610d5e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081831161154b576000610d5e565b610d5e83836113c4565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000006117f9565b60008061158d83856113c4565b9050610715670de0b6b3a76400006107008388611421565b6000546001600160a01b03163314610e84576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611658576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561171e57600080fd5b505afa158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ac5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610cb67f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806109b85760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561186257600080fd5b505afa158015611876573d6000803e3d6000fd5b505050506040513d602081101561188c57600080fd5b50519392505050565b6000602082840312156118a6578081fd5b8135610d5e81611c2d565b6000602082840312156118c2578081fd5b8151610d5e81611c2d565b600080604083850312156118df578081fd5b82356118ea81611c2d565b915060208301356118fa81611c2d565b809150509250929050565b60008060008060008060c0878903121561191d578182fd5b865161192881611c42565b602088015190965061193981611c2d565b6040880151606089015160808a015160a0909a0151989b929a5090989097909650945092505050565b600060208284031215611973578081fd5b5035919050565b6000806040838503121561198c578182fd5b8235915060208301356118fa81611c42565b6000806000604084860312156119b2578283fd5b83356119bd81611c2d565b9250602084013567ffffffffffffffff808211156119d9578384fd5b818601915086601f8301126119ec578384fd5b8135818111156119fa578485fd5b876020828501011115611a0b578485fd5b6020830194508093505050509250925092565b600060208284031215611a2f578081fd5b5051919050565b60008060408385031215611a48578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601490820152732737ba1030903932bbb0b932399034b9b9bab2b960611b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461046c57600080fd5b801515811461046c57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b536df78ac5675cc1b134b52c2a049a6938eb11d81ca397ce9b07214c71d8af264736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#ProxyAdmin.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#ProxyAdmin.json index 8db6171f9..a6fc103d5 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#ProxyAdmin.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#ProxyAdmin.json @@ -129,4 +129,4 @@ "deployedBytecode": "0x608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea2646970667358221220098134bf3dcb274377e55b14b69b89c7eefde1171c4c5b1eb6233b5158fa785b64736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.dbg.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.dbg.json index 767ad87b5..d34dc828e 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.dbg.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", "buildInfo": "../build-info/81754efc7e2eec76b7d493cc60c0f970.json" -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.json index d14c050d0..ad479761b 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.json @@ -2265,4 +2265,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphServiceProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphServiceProxy.json index 5f5b5ea19..bd6209923 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphServiceProxy.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphServiceProxy.json @@ -113,4 +113,4 @@ "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea26469706673582212201a31c3db442064e980907a5ca999ca52c132d057688e882222814e029a3aad9064736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_ProxyWithABI.json index d14c050d0..ad479761b 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_ProxyWithABI.json @@ -2265,4 +2265,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#DisputeManager_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#DisputeManager_ProxyWithABI.json index e01123577..45c7dd257 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#DisputeManager_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#DisputeManager_ProxyWithABI.json @@ -1554,4 +1554,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a15760003560e01c8063050b17ad146101a65780630533e1ba146101bb5780630bc7344b146101e857806311be1997146101fb578063169729781461027857806317337b461461028b5780631792f1941461029557806326058249146102a857806329e03ff1146102c857806336167e03146102df5780634bc5839a146102f25780635aea0ec4146103055780635bf31d4d146103265780636369df6b146103405780636cc6cde114610353578063715018a61461036657806376c993ae1461036e5780638d4e9008146103815780638da5cb5b14610394578063902a49381461039c5780639334ea52146103ac57806393a90a1e146103bf5780639f81a7cf146103d2578063b0e2f7e9146103e5578063b0eefabe146103f8578063bb2a2b471461040b578063be41f38414610419578063c133b4291461043c578063c50a77b11461044f578063c894222e14610462578063c9747f5114610483578063cc2d55cd14610496578063d36fc9d4146104a5578063d76f62d1146104b8578063f2fde38b146104cb575b600080fd5b6101b96101b4366004612c8a565b6104de565b005b6036546101d290600160201b900463ffffffff1681565b6040516101df9190612cac565b60405180910390f35b6101b96101f6366004612cf9565b6105fc565b610263610209366004612d72565b603760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b039687169796909516959394929360ff80841694610100909404169289565b6040516101df99989796959493929190612db5565b6101b9610286366004612d72565b610734565b6101d26207a12081565b6101b96102a3366004612d72565b610748565b6033546102bb906001600160a01b031681565b6040516101df9190612e20565b6102d160355481565b6040519081526020016101df565b6101b96102ed366004612d72565b6108a8565b6102d1610300366004612e34565b6109ae565b603454600160a01b90046001600160401b03165b6040516101df9190612e60565b60345461031990600160a01b90046001600160401b031681565b6102d161034e366004612e74565b6109e6565b6034546102bb906001600160a01b031681565b6101b96109ff565b6101b961037c366004612e8f565b610a13565b6102d161038f366004612eac565b610a24565b6102bb610dc5565b6036546101d29063ffffffff1681565b6101b96103ba366004612d72565b610de0565b6101b96103cd366004612ef2565b610edf565b6101b96103e0366004612e8f565b610ef0565b6101b96103f3366004612f1d565b610f01565b6101b9610406366004612ef2565b611062565b60365463ffffffff166101d2565b61042c610427366004612d72565b611073565b60405190151581526020016101df565b6102d161044a366004612ef2565b6110a9565b6102d161045d366004612fa4565b611141565b610475610470366004612fe5565b6111d4565b6040516101df929190613054565b6102bb6104913660046130fa565b6113e2565b6102d1670de0b6b3a764000081565b61042c6104b336600461317c565b6114cd565b6101b96104c63660046131b2565b6114f5565b6101b96104d9366004612ef2565b611506565b6034546001600160a01b031633146105095760405163a8baf3bb60e01b815260040160405180910390fd5b8161051381611073565b819061053e576040516314a03bbd60e21b815260040161053591815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561056c5761056c612d8b565b600083815260376020526040902060040154610100900460ff1691146105a65760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600301548390156105dc576040516364d0c32b60e01b815260040161053591815260200190565b5060008381526037602052604090206105f6848285611541565b50505050565b60006106066115f2565b805490915060ff600160401b82041615906001600160401b031660008115801561062d5750825b90506000826001600160401b031660011480156106495750303b155b905081158015610657575080155b156106755760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561069e57845460ff60401b1916600160401b1785555b6106a78b61161b565b6106af61162c565b6106b88a61163c565b6106c1896116ad565b6106ca88611736565b6106d387611799565b6106dc8661180b565b831561072757845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061071e90600190612e60565b60405180910390a15b5050505050505050505050565b61073c611892565b61074581611736565b50565b8061075281611073565b8190610774576040516314a03bbd60e21b815260040161053591815260200190565b506000818152603760205260409020600101546001600160a01b031633146107af5760405163082c005560e41b815260040160405180910390fd5b816107b981611073565b81906107db576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561080957610809612d8b565b600083815260376020526040902060040154610100900460ff1691146108435760405163146e540f60e21b815260040161053591906131cf565b506000838152603760205260409020600681015442101561087757604051631d7753d560e11b815260040160405180910390fd5b61088184826118c4565b6003810154156105f657600381015460008181526037602052604090206105f691906118c4565b6034546001600160a01b031633146108d35760405163a8baf3bb60e01b815260040160405180910390fd5b806108dd81611073565b81906108ff576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561092d5761092d612d8b565b600083815260376020526040902060040154610100900460ff1691146109675760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020600381015483901561099e576040516364d0c32b60e01b815260040161053591815260200190565b506109a9838261194b565b505050565b60006109cf336035546109bf6119ca565b6001600160a01b031691906119ee565b6109dd336035548585611aa6565b90505b92915050565b60006109e06109fa368490038401846131dd565b611e28565b610a07611892565b610a116000611ec5565b565b610a1b611892565b61074581611799565b6034546000906001600160a01b03163314610a525760405163a8baf3bb60e01b815260040160405180910390fd5b6040516001600160601b0319606087901b166020820152656c656761637960d01b6034820152600090603a016040516020818303038152906040528051906020012090506000610aa0611f21565b6001600160a01b0316630e022923886040518263ffffffff1660e01b8152600401610acb9190612e20565b61012060405180830381865afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d91906132d9565b519050866001600160a01b038216610b39576040516334789d8b60e21b81526004016105359190612e20565b5060408051610120810182526001600160a01b038381168252881660208201526000918101829052606081019190915260036080820152600160a08201524260c0820181905260345460e0830191610ba191600160a01b90046001600160401b03169061330c565b81526000602091820181905284815260378252604090819020835181546001600160a01b039182166001600160a01b0319918216178355938501516001808401805492909316919095161790559083015160028201556060830151600380830191909155608084015160048301805493949193909260ff1990911691908490811115610c2f57610c2f612d8b565b021790555060a082015160048201805461ff001916610100836005811115610c5957610c59612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101556000610c89611f45565b9050806001600160a01b031663cb8347fe838888604051602001610cae929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610cda929190613365565b600060405180830381600087803b158015610cf457600080fd5b505af1158015610d08573d6000803e3d6000fd5b50505050610d298786610d196119ca565b6001600160a01b03169190611f81565b604080516001600160a01b038a81168252602082018990529181018790528189169184169085907f587a1fc7e80e653a2ab7f63f98c080f5818b8cedcfd1374590c8c786290ed0319060600160405180910390a4866001600160a01b0316826001600160a01b03168460008051602061359d83398151915288604051610db191815260200190565b60405180910390a450909695505050505050565b600080610dd0611fbc565b546001600160a01b031692915050565b6034546001600160a01b03163314610e0b5760405163a8baf3bb60e01b815260040160405180910390fd5b80610e1581611073565b8190610e37576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e6557610e65612d8b565b600083815260376020526040902060040154610100900460ff169114610e9f5760405163146e540f60e21b815260040161053591906131cf565b506000828152603760205260409020610eb88382611fe0565b6003810154156109a957600381015460008181526037602052604090206109a99190611fe0565b610ee7611892565b6107458161205f565b610ef8611892565b6107458161180b565b6034546001600160a01b03163314610f2c5760405163a8baf3bb60e01b815260040160405180910390fd5b83610f3681611073565b8190610f58576040516314a03bbd60e21b815260040161053591815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610f8657610f86612d8b565b600083815260376020526040902060040154610100900460ff169114610fc05760405163146e540f60e21b815260040161053591906131cf565b5060008581526037602052604090206003015415158590610ffa57604051600162d62c0760e01b0319815260040161053591815260200190565b506000858152603760205260409020611014868287611541565b831561103d5760038101546000818152603760205260409020611038919085611541565b61105a565b6003810154600081815260376020526040902061105a9190611fe0565b505050505050565b61106a611892565b6107458161163c565b600080600083815260376020526040902060040154610100900460ff1660058111156110a1576110a1612d8b565b141592915050565b6000806110b4611f21565b6001600160a01b03166325d9897e846110cb611f45565b6040518363ffffffff1660e01b81526004016110e8929190613389565b61014060405180830381865afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a91906133b9565b905061113a8382600001516120d0565b9392505050565b6000611152336035546109bf6119ca565b6109dd3360355461119886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b6000806000339050600061121d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b9050600061126087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061216592505050565b905061126c82826125a4565b825160208085015160408087015186519387015191870151949592949093926112cb57604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c401610535565b5050505050506112e0336035546109bf6119ca565b60006113328460026035546112f59190613466565b858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b905060006113868560026035546113499190613466565b858c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a592505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b6000806113ee836125d5565b905060006113fa611f45565b6001600160a01b0316630e022923836040518263ffffffff1660e01b81526004016114259190612e20565b61012060405180830381865afa158015611443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146791906132d9565b805190915082906001600160a01b0316611495576040516334789d8b60e21b81526004016105359190612e20565b5060408401516020820151908181146114c357604051630a24cfe560e21b8152600401610535929190613054565b5050519392505050565b60006109dd6114e1368590038501856130fa565b6114f0368590038501856130fa565b6125a4565b6114fd611892565b610745816116ad565b61150e611892565b6001600160a01b038116611538576000604051631e4fbdf760e01b81526004016105359190612e20565b61074581611ec5565b81546007830154600091611562916001600160a01b0390911690849061265e565b60048401805461ff001916610100179055600184015460028501549192506115a2916001600160a01b039091169061159a908461330c565b610d196119ca565b6001830154835460028501546001600160a01b039283169290911690869060008051602061359d833981519152906115db90869061330c565b60405190815260200160405180910390a450505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006109e0565b61162361280f565b61074581612834565b61163461280f565b610a1161283c565b6001600160a01b0381166116635760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b03166000036116d75760405163c4411f1160e01b815260040160405180910390fd5b60348054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e69061172b908390612e60565b60405180910390a150565b80670de0b6b3a76400008110156117635760405163033f4e0560e01b815260040161053591815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f89060200161172b565b806207a12063ffffffff821611156117c55760405163432e664360e11b81526004016105359190612cac565b506036805463ffffffff191663ffffffff83161790556040517fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab9061172b908390612cac565b8063ffffffff8116620f4240101561183757604051634e9374fb60e11b81526004016105359190612cac565b506036805463ffffffff60201b1916600160201b63ffffffff848116820292909217928390556040517f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d6805029361172b9392900490911690612cac565b3361189b610dc5565b6001600160a01b031614610a11573360405163118cdaa760e01b81526004016105359190612e20565b60048101805461ff001916610500179055600181015460028201546118f5916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2906020015b60405180910390a45050565b60048101805461ff001916610200179055600281015461197c9061196d6119ca565b6001600160a01b03169061290e565b6001810154815460028301546040519081526001600160a01b03928316929091169084907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d9060200161193f565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156109a9576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613488565b6109a95760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610535565b6040516001600160601b0319606084901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611aed81611073565b158190611b105760405163124a23f160e11b815260040161053591815260200190565b506000611b1b611f45565b90506000816001600160a01b0316630e022923876040518263ffffffff1660e01b8152600401611b4b9190612e20565b61012060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906132d9565b8051909150866001600160a01b038216611bbb576040516334789d8b60e21b81526004016105359190612e20565b506000611bc6611f21565b6001600160a01b03166325d9897e83866040518363ffffffff1660e01b8152600401611bf3929190613389565b61014060405180830381865afa158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906133b9565b8051909150600003611c5a5760405163307efdb760e11b815260040160405180910390fd5b6000611c6a8383600001516120d0565b603454909150600090611c8d90600160a01b90046001600160401b03164261330c565b604080516101208101825287516001600160a01b0390811682528f1660208201529081018d905260006060820152909150608081016001815260200160048152426020808301919091526040808301859052606092830186905260008b815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff19909216918490811115611d6457611d64612d8b565b021790555060a082015160048201805461ff001916610100836005811115611d8e57611d8e612d8b565b021790555060c0820151600582015560e08201516006820155610100909101516007909101558451604080518d81526001600160a01b038d811660208301529181018c90526060810185905260808101849052818f16929091169089907f8a1eccecce948a912e2e195de5960359755aeac90ad88a3fde55a77e1a73796b9060a00160405180910390a450949a9950505050505050505050565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ecf611fbc565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6033546000906001600160a01b0316611f715760405163bd088b4f60e01b815260040160405180910390fd5b506033546001600160a01b031690565b80156109a95760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611a2b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b60048101805461ff00191661030017905560018101546002820154612011916001600160a01b031690610d196119ca565b6001810154815460028301546040519081526001600160a01b03928316929091169084907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b79060200161193f565b6001600160a01b0381166120865760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000806120db611f21565b6001600160a01b031663561285e4856120f2611f45565b6040518363ffffffff1660e01b815260040161210f929190613389565b60a060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215091906134a5565b51905061215d818461330c565b949350505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260016121a460208061330c565b6121ae919061330c565b6121b990606061330c565b82519081149060016121cc60208061330c565b6121d6919061330c565b6121e190606061330c565b909161220257604051633fdf342360e01b8152600401610535929190613054565b505060008060008480602001905181019061221d9190613524565b925092509250600061223086606061296e565b90506000612249876122446020606061330c565b61296e565b9050600061226d88602061225e81606061330c565b612268919061330c565b6129b9565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b6000806122b1846113e2565b905060006122bd611f21565b6001600160a01b03166325d9897e836122d4611f45565b6040518363ffffffff1660e01b81526004016122f1929190613389565b61014060405180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906133b9565b80519091506000036123585760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a8016040516020818303038152906040528051906020012090506123c181611073565b1581906123e45760405163124a23f160e11b815260040161053591815260200190565b5060006123f58484600001516120d0565b60345490915060009061241890600160a01b90046001600160401b03164261330c565b60408051610120810182526001600160a01b0380891682528d1660208201529081018b9052600060608201529091506080810160028152602001600481524260208083019190915260408083018590526060928301869052600087815260378352819020845181546001600160a01b039182166001600160a01b0319918216178355938601516001808401805492909316919095161790559084015160028201559183015160038084019190915560808401516004840180549193909260ff199092169184908111156124ed576124ed612d8b565b021790555060a082015160048201805461ff00191661010083600581111561251757612517612d8b565b021790555060c0820151816005015560e082015181600601556101008201518160070155905050896001600160a01b0316856001600160a01b0316847ffb70faf7306b83c2cec6d8c1627baad892cb79968a02cc0353174499ecfd8b358c8c604001518c878960405161258e959493929190613552565b60405180910390a4509098975050505050505050565b805182516000911480156125bf575081604001518360400151145b80156109dd575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161260582611e28565b905061215d81856060015186608001518760a0015160405160200161264a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612a04565b600080612669611f45565b90506000612675611f21565b6001600160a01b03166325d9897e87846040518363ffffffff1660e01b81526004016126a2929190613389565b61014060405180830381865afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906133b9565b60365490915060009061270990869063ffffffff600160201b909104811690612a2e16565b9050851580159061271a5750808611155b8682909161273d5760405163cc6b7c4160e01b8152600401610535929190613054565b5050600061274f878460000151612a8e565b60608401516036549192506000916127709163ffffffff9081169116612a8e565b9050600061277e8284612a2e565b9050856001600160a01b031663cb8347fe8b8b846040516020016127a3929190613054565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016127cf929190613365565b600060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b50929c9b505050505050505050505050565b612817612aa5565b610a1157604051631afcd79f60e31b815260040160405180910390fd5b61150e61280f565b61284461280f565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b801561296a57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561295657600080fd5b505af115801561105a573d6000803e3d6000fd5b5050565b600061297b60208361330c565b8351908110159061298d60208561330c565b90916129ae57604051633fdf342360e01b8152600401610535929190613054565b505050016020015190565b60006129c660018361330c565b835190811015906129d860018561330c565b90916129f957604051633fdf342360e01b8152600401610535929190613054565b505050016001015190565b600080600080612a148686612abf565b925092509250612a248282612b0c565b5090949350505050565b6000612a3d83620f4240101590565b80612a505750612a5082620f4240101590565b83839091612a735760405163768bf0eb60e11b8152600401610535929190613054565b50620f42409050612a848385613585565b6109dd9190613466565b600081831115612a9e57816109dd565b5090919050565b6000612aaf6115f2565b54600160401b900460ff16919050565b60008060008351604103612af95760208401516040850151606086015160001a612aeb88828585612bc5565b955095509550505050612b05565b50508151600091506002905b9250925092565b6000826003811115612b2057612b20612d8b565b03612b29575050565b6001826003811115612b3d57612b3d612d8b565b03612b5b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612b6f57612b6f612d8b565b03612b905760405163fce698f760e01b815260048101829052602401610535565b6003826003811115612ba457612ba4612d8b565b0361296a576040516335e2f38360e21b815260048101829052602401610535565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612bf65750600091506003905082612c80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612c4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c7657506000925060019150829050612c80565b9250600091508190505b9450945094915050565b60008060408385031215612c9d57600080fd5b50508035926020909101359150565b63ffffffff91909116815260200190565b6001600160a01b038116811461074557600080fd5b6001600160401b038116811461074557600080fd5b63ffffffff8116811461074557600080fd5b60008060008060008060c08789031215612d1257600080fd5b8635612d1d81612cbd565b95506020870135612d2d81612cbd565b94506040870135612d3d81612cd2565b9350606087013592506080870135612d5481612ce7565b915060a0870135612d6481612ce7565b809150509295509295509295565b600060208284031215612d8457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612db157612db1612d8b565b9052565b6001600160a01b038a81168252891660208201526040810188905260608101879052610120810160048710612dec57612dec612d8b565b866080830152612dff60a0830187612da1565b8460c08301528360e0830152826101008301529a9950505050505050505050565b6001600160a01b0391909116815260200190565b60008060408385031215612e4757600080fd5b8235612e5281612cbd565b946020939093013593505050565b6001600160401b0391909116815260200190565b60006060828403128015612e8757600080fd5b509092915050565b600060208284031215612ea157600080fd5b813561113a81612ce7565b60008060008060808587031215612ec257600080fd5b8435612ecd81612cbd565b93506020850135612edd81612cbd565b93969395505050506040820135916060013590565b600060208284031215612f0457600080fd5b813561113a81612cbd565b801515811461074557600080fd5b60008060008060808587031215612f3357600080fd5b84359350602085013592506040850135612f4c81612f0f565b9396929550929360600135925050565b60008083601f840112612f6e57600080fd5b5081356001600160401b03811115612f8557600080fd5b602083019150836020828501011115612f9d57600080fd5b9250929050565b60008060208385031215612fb757600080fd5b82356001600160401b03811115612fcd57600080fd5b612fd985828601612f5c565b90969095509350505050565b60008060008060408587031215612ffb57600080fd5b84356001600160401b0381111561301157600080fd5b61301d87828801612f5c565b90955093505060208501356001600160401b0381111561303c57600080fd5b61304887828801612f5c565b95989497509550505050565b918252602082015260400190565b60405160c081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561309257634e487b7160e01b600052604160045260246000fd5b600060c082840312801561310d57600080fd5b506000613118613062565b833581526020808501359082015260408085013590820152606080850135908201526080808501359082015260a084013560ff81168114613157578283fd5b60a0820152949350505050565b600060c0828403121561317657600080fd5b50919050565b600080610180838503121561319057600080fd5b61319a8484613164565b91506131a98460c08501613164565b90509250929050565b6000602082840312156131c457600080fd5b813561113a81612cd2565b602081016109e08284612da1565b600060608284031280156131f057600080fd5b50604051600090606081016001600160401b038111828210171561322257634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b805161325381612cbd565b919050565b6000610120828403121561326b57600080fd5b613273613098565b905061327e82613248565b81526020828101519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101009182015191810191909152919050565b600061012082840312156132ec57600080fd5b6109dd8383613258565b634e487b7160e01b600052601160045260246000fd5b808201808211156109e0576109e06132f6565b6000815180845260005b8181101561334557602081850181015186830182015201613329565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061215d9083018461331f565b6001600160a01b0392831681529116602082015260400190565b805161325381612ce7565b805161325381612cd2565b60006101408284031280156133cd57600080fd5b5060006133d86130c9565b8351815260208085015190820152604080850151908201526133fc606085016133a3565b606082015261340d608085016133ae565b608082015261341e60a085016133ae565b60a082015261342f60c085016133a3565b60c082015261344060e085016133ae565b60e082015261010084810151908201526101209384015193810193909352509092915050565b60008261348357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561349a57600080fd5b815161113a81612f0f565b600060a08284031280156134b857600080fd5b5060405160009060a081016001600160401b03811182821017156134ea57634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b60008060006060848603121561353957600080fd5b5050815160208301516040909301519094929350919050565b85815284602082015260a06040820152600061357160a083018661331f565b606083019490945250608001529392505050565b80820281158282048414176109e0576109e06132f656fe6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4a2646970667358221220d50b3dec1e5d2d1d140733dca7d5163900c1fc882947b3208864910c6f452d0e64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_DisputeManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_DisputeManager.json index 8fbd24cbb..bbe4fe0cb 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_DisputeManager.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_DisputeManager.json @@ -7,4 +7,4 @@ "deployedBytecode": "0x6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_SubgraphService.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_SubgraphService.json index 8fbd24cbb..bbe4fe0cb 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_SubgraphService.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_SubgraphService.json @@ -7,4 +7,4 @@ "deployedBytecode": "0x6080604052600080fdfea264697066735822122081eeeeb2e55704976a5bd19451809712b1b76b2d5b7a994dc02b32128a829da764736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_DisputeManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_DisputeManager.json index 2e9762744..d09104f29 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_DisputeManager.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_DisputeManager.json @@ -129,4 +129,4 @@ "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_SubgraphService.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_SubgraphService.json index 2e9762744..d09104f29 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_SubgraphService.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_SubgraphService.json @@ -129,4 +129,4 @@ "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100a4578063f2fde38b146100e2575b600080fd5b34801561005b57600080fd5b50610064610102565b005b34801561007257600080fd5b5061007b610116565b604051610088919061025d565b60405180910390f35b61006461009f36600461029c565b610125565b3480156100b057600080fd5b506100d5604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008891906103bd565b3480156100ee57600080fd5b506100646100fd3660046103d7565b610194565b61010a6101db565b610114600061020d565b565b6000546001600160a01b031690565b61012d6101db565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015d90869086906004016103f4565b6000604051808303818588803b15801561017657600080fd5b505af115801561018a573d6000803e3d6000fd5b5050505050505050565b61019c6101db565b6001600160a01b0381166101cf576000604051631e4fbdf760e01b81526004016101c6919061025d565b60405180910390fd5b6101d88161020d565b50565b336101e4610116565b6001600160a01b031614610114573360405163118cdaa760e01b81526004016101c6919061025d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101d857600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156102b157600080fd5b83356102bc81610271565b925060208401356102cc81610271565b915060408401356001600160401b038111156102e757600080fd5b8401601f810186136102f857600080fd5b80356001600160401b0381111561031157610311610286565b604051601f8201601f19908116603f011681016001600160401b038111828210171561033f5761033f610286565b60405281815282820160200188101561035757600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000815180845260005b8181101561039d57602081850181015186830182015201610381565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103d06020830184610377565b9392505050565b6000602082840312156103e957600080fd5b81356103d081610271565b6001600160a01b038316815260406020820181905260009061041890830184610377565b94935050505056fea2646970667358221220e77af71a19651e50da550702ce9a5b1b89dda100ca5f41a9c778b943df55af8064736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#SubgraphService_ProxyWithABI.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#SubgraphService_ProxyWithABI.json index d14c050d0..ad479761b 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#SubgraphService_ProxyWithABI.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#SubgraphService_ProxyWithABI.json @@ -2265,4 +2265,4 @@ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023b5760003560e01c806307e736d8146102405780630e02292314610280578063138dea081461030857806313c474c9146103205780631dd42f60146103755780631ebb7c301461038a57806324b8fbf6146103af57806335577962146103c25780633f4ba83a146103d557806345f54485146103dd578063482468b7146103f05780634f793cdc1461040657806355c85269146104285780635c975abb146104725780636234e2161461048a5780636ccec5b8146104aa5780636d9a3951146104bd578063715018a61461053857806371ce020a146105405780637aa31bce146105565780637dfe6d28146105695780637e89bac31461057c5780638180083b1461058f578063819ba366146105a257806381e777a7146105b8578063832bc923146105cb5780638456cb59146105de57806384b0196e146105e657806385e82baf146106015780638da5cb5b1461060a5780639384e07814610612578063ac9650d814610635578063b15d2a2c14610655578063ba38f67d14610668578063c0f474971461067b578063c84a5ef314610683578063cb8347fe14610696578063cbe5f3f2146106a9578063ce0fc0cc146106c9578063ce56c98b146106dc578063d07a7a84146106ef578063db9bee46146106f9578063dedf672614610701578063e2e1e8e914610714578063e6f5005414610734578063ebf6ddaf14610747578063ec9c218d1461074f578063eff0f59214610762578063f2fde38b14610797575b600080fd5b61026a61024e36600461502b565b610109602052600090815260409020546001600160a01b031681565b6040516102779190615048565b60405180910390f35b61029361028e36600461502b565b6107aa565b604051610277919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b6103126101085481565b604051908152602001610277565b61035561032e36600461502b565b609c6020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610277565b61038861038336600461506e565b610837565b005b600254600160c01b900463ffffffff1660405163ffffffff9091168152602001610277565b6103886103bd3660046150cc565b610850565b6103886103d036600461512e565b610a7d565b610388610a93565b6103886103eb366004615167565b610acf565b6103f8610ad9565b604051610277929190615180565b61041961041436600461502b565b610aec565b604051610277939291906151e7565b61043b61043636600461502b565b610c20565b6040805196151587526001600160a01b039095166020870152938501929092526060840152608083015260a082015260c001610277565b61047a610cdc565b6040519015158152602001610277565b61031261049836600461502b565b60d16020526000908152604090205481565b6103886104b836600461502b565b610cf1565b6105146104cb36600461502b565b604080518082018252600080825260209182018190526001600160a01b03938416815260d082528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b031681526020928301519281019290925201610277565b610388610cfb565b610548610d0d565b60405161027792919061521c565b610388610564366004615167565b610d18565b610388610577366004615236565b610d29565b61038861058a366004615167565b610d41565b61038861059d3660046150cc565b610db6565b6105aa610f44565b604051610277929190615277565b6103886105c6366004615236565b610f54565b6103886105d9366004615167565b6110c4565b6103886110d8565b6105ee611112565b6040516102779796959493929190615285565b61031260d25481565b61026a6111bb565b61047a61062036600461502b565b60676020526000908152604090205460ff1681565b61064861064336600461531d565b6111d6565b6040516102779190615392565b6103126106633660046153f7565b6112be565b61047a61067636600461502b565b611492565b61026a6114b0565b61038861069136600461545f565b6114ba565b6103886106a43660046150cc565b611638565b6103126106b736600461502b565b609a6020526000908152604090205481565b6103886106d73660046150cc565b611777565b6103126106ea3660046154a7565b611860565b6103126101075481565b61026a611873565b61038861070f3660046150cc565b61187d565b610312610722366004615167565b600090815260d3602052604090205490565b610388610742366004615167565b611a0b565b61026a611a1c565b61038861075d36600461502b565b611a26565b610355610770366004615167565b609b6020526000908152604090208054600182015460028301546003909301549192909184565b6103886107a536600461502b565b611aa8565b6107b2614fae565b506001600160a01b03908116600090815260cf6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b61083f611ae3565b61084881611b15565b50565b905090565b82610859611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610888939291906154d5565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c991906154f8565b813390916108f55760405163cc5d3c8b60e01b81526004016108ec929190615515565b60405180910390fd5b505083600061090382611b8d565b905061090e81611c90565b610919816000611cce565b610921611db8565b6000808061093187890189615646565b925092509250600083511161095957604051630783843960e51b815260040160405180910390fd5b600082511161097b57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b03891660009081526101066020526040902054156109b357604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815261010690925292902081518155915190919060018201906109fe9082615742565b5060408201516002820190610a139082615742565b5050506001600160a01b03811615610a2f57610a2f8982611dde565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610a6a929190615800565b60405180910390a2505050505050505050565b610a85611ae3565b610a8f8282611e35565b5050565b3360008181526067602052604090205460ff16610ac4576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd611eeb565b565b6108483382611f37565b600080610ae4611fdd565b915091509091565b6101066020526000908152604090208054600182018054919291610b0f906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3b906156c1565b8015610b885780601f10610b5d57610100808354040283529160200191610b88565b820191906000526020600020905b815481529060010190602001808311610b6b57829003601f168201915b505050505090806002018054610b9d906156c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc9906156c1565b8015610c165780601f10610beb57610100808354040283529160200191610c16565b820191906000526020600020905b815481529060010190602001808311610bf957829003601f168201915b5050505050905083565b6001600160a01b03808216600090815260cf60209081526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529081908190819081908190610cb181612054565b81516020830151604084015160c085015160e090950151939c929b5090995097509195509350915050565b600080610ce7612073565b5460ff1692915050565b6108483382611dde565b610d03611ae3565b610acd6000612097565b600080610ae46120f3565b610d20611ae3565b6108488161216a565b610d31611ae3565b610d3c83838361219f565b505050565b610d49611ae3565b610d5681620f4240101590565b8190610d7857604051631c9c717b60e01b81526004016108ec91815260200190565b506101088190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b82610dbf611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610dee939291906154d5565b602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f91906154f8565b81339091610e525760405163cc5d3c8b60e01b81526004016108ec929190615515565b50506001600160a01b0384166000908152610106602052604090205484908190610e905760405163ee27189960e01b81526004016108ec9190615048565b50610e99611db8565b6000610ea78486018661502b565b90506001600160a01b038616610ebe60cf836121f2565b51879183916001600160a01b031614610eec5760405163c0bbff1360e01b81526004016108ec929190615515565b5050610ef9816000612277565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051610f34929190615800565b60405180910390a2505050505050565b600080610ae46000546001549091565b82610f5d611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610f8c939291906154d5565b602060405180830381865afa158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd91906154f8565b81339091610ff05760405163cc5d3c8b60e01b81526004016108ec929190615515565b5050836000610ffe82611b8d565b905061100981611c90565b611014816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906110505760405163ee27189960e01b81526004016108ec9190615048565b50611059611db8565b6001600160a01b03871661106e60cf886121f2565b51889188916001600160a01b03161461109c5760405163c0bbff1360e01b81526004016108ec929190615515565b50506110bb8686600260189054906101000a900463ffffffff166123d9565b50505050505050565b6110cc611ae3565b610848816000196126d7565b3360008181526067602052604090205460ff16611109576040516372e3ef9760e01b81526004016108ec9190615048565b50610acd612746565b600060608060008060006060600061112861278d565b805490915015801561113c57506001810154155b6111805760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016108ec565b6111886127b1565b611190612852565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806111c661286f565b546001600160a01b031692915050565b604080516000815260208101909152606090826001600160401b038111156112005761120061552f565b60405190808252806020026020018201604052801561123357816020015b606081526020019060019003908161121e5790505b50915060005b838110156112b5576112903086868481811061125757611257615858565b9050602002810190611269919061586e565b8560405160200161127c939291906158b4565b604051602081830303815290604052612893565b8382815181106112a2576112a2615858565b6020908102919091010152600101611239565b50505b92915050565b6000846112c9611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016112f8939291906154d5565b602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906154f8565b8133909161135c5760405163cc5d3c8b60e01b81526004016108ec929190615515565b505085600061136a82611b8d565b905061137581611c90565b611380816000611cce565b6001600160a01b03881660009081526101066020526040902054889081906113bc5760405163ee27189960e01b81526004016108ec9190615048565b506113c5611db8565b6000808960028111156113da576113da6158db565b036113f1576113ea8a8989612909565b9050611430565b6002896002811115611405576114056158db565b03611415576113ea8a8989612e1d565b8860405163047031cf60e41b81526004016108ec9190615913565b886002811115611442576114426158db565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff58360405161147d91815260200190565b60405180910390a39998505050505050505050565b60006112b882600260189054906101000a900463ffffffff16612ec1565b600061084b612ee0565b60006114c4612f04565b805490915060ff600160401b82041615906001600160401b03166000811580156114eb5750825b90506000826001600160401b031660011480156115075750303b155b905081158015611515575080155b156115335760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561155c57845460ff60401b1916600160401b1785555b61156589612f2d565b61156d612f3e565b611575612f46565b61157d612f5e565b6115c96040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250612f6e565b6115d5886000196126d7565b6115de87611b15565b6115e786612f88565b831561162d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811682146116855760405163cdc0567f60e01b81526004016108ec929190615515565b50600090508061169783850185615921565b915091506116a3611b69565b6001600160a01b031663e76fede68684846116bc612fdf565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c588360405161176891815260200190565b60405180910390a25050505050565b82611780611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117af939291906154d5565b602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906154f8565b813390916118135760405163cc5d3c8b60e01b81526004016108ec929190615515565b505061181d611db8565b61182684613003565b6040516001600160a01b038516907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a250505050565b600061186c8383613076565b9392505050565b600061084b612fdf565b82611886611b69565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016118b5939291906154d5565b602060405180830381865afa1580156118d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f691906154f8565b813390916119195760405163cc5d3c8b60e01b81526004016108ec929190615515565b505083600061192782611b8d565b905061193281611c90565b61193d816000611cce565b6001600160a01b03861660009081526101066020526040902054869081906119795760405163ee27189960e01b81526004016108ec9190615048565b50611982611db8565b6000808080611993898b018b615943565b93509350935093506119bb8b83868685600260189054906101000a900463ffffffff166130e5565b8a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b6040516119f6929190615800565b60405180910390a25050505050505050505050565b611a13611ae3565b61084881612f88565b600061084b6132dc565b611a2e611db8565b6000611a3b60cf836121f2565b9050611a5260d2548261330090919063ffffffff16565b8290611a7157604051623477b560e51b81526004016108ec9190615048565b50611a7b8161333d565b158290611a9c576040516317c7b35d60e31b81526004016108ec9190615048565b50610a8f826001612277565b611ab0611ae3565b6001600160a01b038116611ada576000604051631e4fbdf760e01b81526004016108ec9190615048565b61084881612097565b33611aec6111bb565b6001600160a01b031614610acd573360405163118cdaa760e01b81526004016108ec9190615048565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f90602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905290611be6611b69565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b8152600401611c13929190615515565b61014060405180830381865afa158015611c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5591906159d0565b90508060a001516001600160401b0316600014158390611c8957604051637b3c09bf60e01b81526004016108ec9190615048565b5092915050565b6020810151815161084891611ca491615845565b60005460015460405180604001604052806006815260200165746f6b656e7360d01b81525061335c565b600080611cd96120f3565b91509150600083611cee578460800151611cf4565b8460e001515b9050611d42816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b81525061335c565b600080611d4d611fdd565b91509150600086611d62578760600151611d68565b8760c001515b9050611dae8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b81525061335c565b5050505050505050565b611dc0610cdc565b15610acd5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038281166000818152610109602052604080822080546001600160a01b0319169486169485179055517e3215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c19190a35050565b6001600160a01b0382166000908152606760205260409020548290829060ff161515811514611e8a57604051635e67e54b60e01b81526001600160a01b039092166004830152151560248201526044016108ec565b50506001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b611ef3613390565b6000611efd612073565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610dab9190615048565b6001600160a01b0382166000818152609c60209081526040808320815192830184905282820194909452805180830382018152606090920190528190611f8b9084906133b5906133ca906134c590896134ea565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb8383806020019051810190611fcf9190615a7d565b604051611768929190615277565b600080611fe8612fdf565b6001600160a01b031663bb2a2b476040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615a96565b92620f424092509050565b60006120638260600151151590565b80156112b8575050608001511590565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006120a161286f565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806000612100612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190615ab3565b93849350915050565b60d28190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba90602001610dab565b6121ac60d08484846135a4565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6121fa614fae565b6122048383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008909101546101008201529392505050565b600061228460cf846121f2565b905061230f83612292613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016122c391815260200190565b6020604051808303816000875af11580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123069190615a7d565b60cf919061372a565b61231a60cf846137dd565b8051604082015161232d9160d191613893565b806040015160d3600083602001518152602001908152602001600020546123549190615845565b60d3600083602001518152602001908152602001600020819055508060200151836001600160a01b031682600001516001600160a01b03167f08f2f865e0fb62d722a51e4d9873199bf6bf52e7d8ee5a2ee2896c9ef719f5458460400151866040516123cc9291909182521515602082015260400190565b60405180910390a4505050565b60006123e660cf856121f2565b90506123f181612054565b849061241157604051631eb5ff9560e01b81526004016108ec9190615048565b5080604001518314158484909161243d5760405163f32518cd60e01b81526004016108ec929190615ad0565b50506040810151808411156124735761246e612457611b69565b83516124638488615845565b60d192919087613911565b61248c565b815161248c906124838684615845565b60d19190613893565b6000612496613706565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b81526004016124c791815260200190565b6020604051808303816000875af11580156124e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250a9190615a7d565b905060006125178461333d565b15612523576000612532565b60c08401516125329083615845565b6001600160a01b038816600090815260cf60205260409020600281018890556006018390559050612561613706565b6001600160a01b031663c8a5f81e84836040518363ffffffff1660e01b815260040161258e929190615277565b602060405180830381865afa1580156125ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cf9190615a7d565b6001600160a01b038816600090815260cf6020526040812060070180549091906125fa908490615ae9565b909155505082861115612642576126118387615845565b60d360008660200151815260200190815260200160002060008282546126379190615ae9565b909155506126789050565b61264c8684615845565b60d360008660200151815260200190815260200160002060008282546126729190615845565b90915550505b8360200151876001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f89876040516126c6929190615277565b60405180910390a450505050505050565b8181808211156126fc5760405163ccccdafb60e01b81526004016108ec929190615277565b5050600082905560018190556040517f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f5688499061273a9084908490615277565b60405180910390a15050565b61274e611db8565b6000612758612073565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f2a3390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b606060006127bd61278d565b90508060020180546127ce906156c1565b80601f01602080910402602001604051908101604052809291908181526020018280546127fa906156c1565b80156128475780601f1061281c57610100808354040283529160200191612847565b820191906000526020600020905b81548152906001019060200180831161282a57829003601f168201915b505050505091505090565b6060600061285e61278d565b90508060030180546127ce906156c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6060600080846001600160a01b0316846040516128b09190615afc565b600060405180830381855af49150503d80600081146128eb576040519150601f19603f3d011682016040523d82523d6000602084013e6128f0565b606091505b5091509150612900858383613a0f565b95945050505050565b6000808061291984860186615b3a565b8151604001519193509150866001600160a01b038281169082161461295357604051631a071d0760e01b81526004016108ec929190615515565b50508151516001600160a01b038111156129835760405163fa4ac7a760e01b81526004016108ec91815260200190565b50815151600061299460cf836121f2565b805190915088906001600160a01b03818116908316146129c957604051634508fbf760e11b81526004016108ec929190615515565b505060208101516129db896000611f37565b60008060006129e8613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612a139190615048565b602060405180830381865afa158015612a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a549190615a7d565b9050612a5e6132dc565b6001600160a01b031663692209ce6000612afc8b612a7a612ee0565b6001600160a01b0316634c4ea0ed8a6040518263ffffffff1660e01b8152600401612aa791815260200190565b602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906154f8565b612af3576000613a86565b61010854613a86565b8a6040518463ffffffff1660e01b8152600401612b1b93929190615c71565b6020604051808303816000875af1158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190615a7d565b92506000612b6a613a62565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612b959190615048565b602060405180830381865afa158015612bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd69190615a7d565b9050818181811015612bfd57604051639db8bc9560e01b81526004016108ec929190615277565b50612c0a90508282615845565b92505082159050612db457612ca98b6101075484612c289190615ca1565b612c30612fdf565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615ab3565b612ca4906001600160401b031642615ae9565b613ada565b8015612db457612cb7613706565b6001600160a01b0316631d1c2fec846040518263ffffffff1660e01b8152600401612ce491815260200190565b6020604051808303816000875af1158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190615a7d565b50612d4c612d33612ee0565b82612d3c613a62565b6001600160a01b03169190613c4a565b612d54612ee0565b6001600160a01b0316638157328884836040518363ffffffff1660e01b8152600401612d81929190615277565b600060405180830381600087803b158015612d9b57600080fd5b505af1158015612daf573d6000803e3d6000fd5b505050505b86516020908101516040805186815292830185905282018390526001600160a01b038088169291811691908e16907f184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba29060600160405180910390a4509998505050505050505050565b6000808080612e2e85870187615cb8565b919450925090506001600160a01b038716612e4a60cf856121f2565b51889185916001600160a01b031614612e785760405163c0bbff1360e01b81526004016108ec929190615515565b50506002546001600160a01b0388811660009081526101096020526040902054612eb692869286928692600160c01b900463ffffffff169116613cf9565b979650505050505050565b6000612ed8612ece611b69565b60d19085856142d6565b159392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006112b8565b612f35614370565b61084881614395565b610acd614370565b612f4e614370565b612f5661439d565b610acd612f3e565b612f66614370565b612f56612f3e565b612f76614370565b612f8082826143df565b610a8f612f3e565b80600003612fa95760405163bc71a04360e01b815260040160405180910390fd5b6101078190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd2390602001610dab565b7f000000000000000000000000000000000000000000000000000000000000000090565b61300e8160016143f1565b613016611b69565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016130419190615048565b600060405180830381600087803b15801561305b57600080fd5b505af115801561306f573d6000803e3d6000fd5b5050505050565b600061186c7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016130ca939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614408565b6001600160a01b03851661310c57604051634ffdf5ef60e11b815260040160405180910390fd5b613117868684614435565b61312b613122611b69565b60d09087614484565b600061313561457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131969190615a7d565b90506000613226888888886131a9613706565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b81526004016131d691815260200190565b6020604051808303816000875af11580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132199190615a7d565b60cf94939291908861459e565b905061323e613233611b69565b60d1908a8887613911565b806040015160d3600083602001518152602001908152602001600020546132659190615ae9565b60d36000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167fe5e185fab2b992c4727ff702a867d78b15fb176dbaa20c9c312a1c351d3f7f838460400151866040516132ca929190615277565b60405180910390a45050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60008061331584606001518560a00151614706565b61331f9042615845565b905061332a84612054565b801561333557508281115b949350505050565b600061334c8260600151151590565b80156112b8575050604001511590565b613367848484614716565b8185858590919293611dae57604051630871e13d60e01b81526004016108ec9493929190615d10565b613398610cdc565b610acd57604051638dfc202b60e01b815260040160405180910390fd5b6000908152609b602052604090206003015490565b6000606060006133d98561472d565b90504281604001511115613401575050604080516020810190915260008152600191506134be565b600080858060200190518101906134189190615d3f565b8451919350915061342d90609a908390613893565b86816001600160a01b03167f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f4485600001518660400151604051613471929190615277565b60405180910390a382516134859083615ae9565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152609b60205260408120818155600181018290556002810182905560030155565b60006060876003015483111561351357604051634a411b9d60e11b815260040160405180910390fd5b600083156135215783613527565b88600301545b89549094505b801580159061353c5750600085115b156135955760008061355283898c63ffffffff16565b915091508115613563575050613595565b9650866135718c8c8b6147bb565b92508661357d81615d65565b975050838061358b90615d7c565b945050505061352d565b50989397509295505050505050565b6001600160a01b0380831660009081526020868152604091829020825180840190935280549093168252600190920154918101919091526135e490614842565b15829061360557604051632d7d25f160e21b81526004016108ec9190615048565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b6001600160a01b03808216600090815260208481526040808320815161012081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600881015461010084015290916136de9060600151151590565b83906136fe576040516342daadaf60e01b81526004016108ec9190615048565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006137368484613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201529091506137ad90612054565b600482015484916137d3576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050600601555050565b60006137e98383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061386090612054565b60048201548391613886576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426004909101555050565b806000036138a057505050565b6001600160a01b03821660009081526020849052604090205481808210156138dd57604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03821660009081526020849052604081208054839290613907908490615845565b9091555050505050565b811561306f576001600160a01b03831660009081526020869052604081205461393b908490615ae9565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161396f93929190615d95565b602060405180830381865afa15801561398c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b09190615a7d565b90508082818111156139d757604051635f8ec70960e01b81526004016108ec929190615277565b50506001600160a01b03851660009081526020889052604081208054869290613a01908490615ae9565b909155505050505050505050565b606082613a2457613a1f82614851565b61186c565b8151158015613a3b57506001600160a01b0384163b155b15613a5b5783604051639996b31560e01b81526004016108ec9190615048565b508061186c565b7f000000000000000000000000000000000000000000000000000000000000000090565b81516040908101516001600160a01b039081166000908152610109602090815290839020549251606093613ac39387938793929091169101615dbe565b604051602081830303815290604052905092915050565b81600003613afb57604051638f4c63d960e01b815260040160405180910390fd5b613b27613b06611b69565b600254609a91908690869063ffffffff600160c01b90910481169061391116565b6001600160a01b0383166000908152609c6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52609b909852959097209151825593516001820155925190830155915160039182015581015490919015613bf55760018201546000908152609b602052604090206003018190555b613bff828261487a565b80856001600160a01b03167f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f8686604051613c3b929190615277565b60405180910390a35050505050565b8015610d3c5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613c7e9085908590600401615ad0565b6020604051808303816000875af1158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc191906154f8565b610d3c5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b60448201526064016108ec565b600080613d0760cf886121f2565b9050613d1281612054565b8790613d3257604051631eb5ff9560e01b81526004016108ec9190615048565b506000613d4a60d2548361330090919063ffffffff16565b158015613d5d5750613d5b8261333d565b155b8015613d6857508615155b8015613de05750816101000151613d7d61457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615a7d565b115b613deb576000613e61565b613df3613706565b6001600160a01b031663db750926896040518263ffffffff1660e01b8152600401613e1e9190615048565b6020604051808303816000875af1158015613e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e619190615a7d565b9050613ea088613e6f613706565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b81526004016122c391815260200190565b613eab60cf8961490d565b613eb660cf896149c3565b60008082156141ef576000613ec9611b69565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f91613efc913090600290600401615e87565b602060405180830381865afa158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d9190615a7d565b90506000613f49611b69565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613f79913090600401615515565b60a060405180830381865afa158015613f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fba9190615eac565b90506000816020015111613fcf576000613fd9565b613fd98583614a7a565b925082156140ce57613fe9613a62565b6001600160a01b031663095ea7b3613fff611b69565b856040518363ffffffff1660e01b815260040161401d929190615ad0565b6020604051808303816000875af115801561403c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406091906154f8565b50614069611b69565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e99161409b9130908890600401615f1f565b600060405180830381600087803b1580156140b557600080fd5b505af11580156140c9573d6000803e3d6000fd5b505050505b6140d88386615845565b935083156141ec576001600160a01b0388166141df576140f6613a62565b6001600160a01b031663095ea7b361410c611b69565b866040518363ffffffff1660e01b815260040161412a929190615ad0565b6020604051808303816000875af1158015614149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416d91906154f8565b50614176611b69565b8651604051633a30904960e11b81526001600160a01b0392909216916374612092916141a89130908990600401615f1f565b600060405180830381600087803b1580156141c257600080fd5b505af11580156141d6573d6000803e3d6000fd5b505050506141ec565b6141ec8885612d3c613a62565b50505b602084015184516001600160a01b03808d1691167f443f56bd2098d273b8c8120398789a41da5925db4ba2f656813fc5299ac57b1f8686868f8f61423161457a565b6001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561426e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142929190615a7d565b6040516142a496959493929190615f43565b60405180910390a483516142b89088612ec1565b156142c8576142c88a6001612277565b509098975050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161430993929190615d95565b602060405180830381865afa158015614326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434a9190615a7d565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b614378614ada565b610acd57604051631afcd79f60e31b815260040160405180910390fd5b611ab0614370565b6143a5614370565b6143b260006000196126d7565b6143c06000620f4240614af4565b6143d260006001600160401b03614bc5565b610acd63ffffffff611b15565b6143e7614370565b610a8f8282614c52565b60006143fc83611b8d565b9050610d3c8183611cce565b60006112b8614415614c93565b8360405161190160f01b8152600281019290925260228201526042902090565b600061444a6144448585613076565b83614c9d565b905080836001600160a01b038083169082161461447c57604051638c5b935d60e01b81526004016108ec929190615515565b505050505050565b6001600160a01b0380821660009081526020858152604091829020825180840190935280549093168252600190920154918101919091526144c490614842565b1581906144e557604051632d7d25f160e21b81526004016108ec9190615048565b506040516378eb06b360e11b81526001600160a01b0383169063f1d60d6690614512908490600401615048565b602060405180830381865afa15801561452f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455391906154f8565b15819061457457604051632d7d25f160e21b81526004016108ec9190615048565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6145a6614fae565b6001600160a01b03808716600090815260208a8152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201526146329060600151151590565b15869061465357604051630bc4def560e01b81526004016108ec9190615048565b505060408051610120810182526001600160a01b0397881681526020808201968752818301958652426060830190815260006080840181815260a0850182815260c0860198895260e0860183815261010087019889529b8d1683529c90935293909320825181546001600160a01b0319169a169990991789559551600189015593516002880155516003870155925160048601559451600585015593516006840155905160078301555160089091015590565b600082821882841102821861186c565b600082841015801561333557505090911115919050565b61475b6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152609b602090815260409182902082516080810184528154815260018201549281018390526002820154938101939093526003015460608301528390611c895760405163107349a960e21b81526004016108ec91815260200190565b6000808460030154116147e15760405163ddaf8f2160e01b815260040160405180910390fd5b60006147f485600001548563ffffffff16565b905061480785600001548463ffffffff16565b600185600301600082825461481c9190615845565b9091555050808555600385015460000361483857600060018601555b5050915492915050565b516001600160a01b0316151590565b8051156148615780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6127108260030154106148a0576040516303a8c56b60e61b815260040160405180910390fd5b806148be57604051638f4a893d60e01b815260040160405180910390fd5b60018083018290556002830180546000906148da908490615ae9565b909155505060038201546000036148ef578082555b60018260030160008282546149049190615ae9565b90915550505050565b60006149198383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061499090612054565b600482015483916149b6576040516361b66e0d60e01b81526004016108ec929190615ad0565b5050426005909101555050565b60006149cf8383613653565b604080516101208101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152909150614a4690612054565b60048201548391614a6c576040516361b66e0d60e01b81526004016108ec929190615ad0565b505060006007909101555050565b6000614a8983620f4240101590565b80614a9c5750614a9c82620f4240101590565b83839091614abf5760405163768bf0eb60e11b81526004016108ec929190615277565b50620f42409050614ad08385615ca1565b61186c9190615f81565b6000614ae4612f04565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614b225760405163ccccdafb60e01b81526004016108ec929190615180565b508290508163ffffffff8116620f42401015614b535760405163ccccdafb60e01b81526004016108ec929190615180565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b0291909116600160801b600160c01b0319909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a369061273a9084908490615180565b81816001600160401b038082169083161115614bf65760405163ccccdafb60e01b81526004016108ec92919061521c565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d19061273a908490849061521c565b614c5a614370565b6000614c6461278d565b905060028101614c748482615742565b5060038101614c838382615742565b5060008082556001909101555050565b600061084b614cc7565b600080600080614cad8686614d3b565b925092509250614cbd8282614d88565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614cf2614e41565b614cfa614ea8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614d755760208401516040850151606086015160001a614d6788828585614ee9565b955095509550505050614d81565b50508151600091506002905b9250925092565b6000826003811115614d9c57614d9c6158db565b03614da5575050565b6001826003811115614db957614db96158db565b03614dd75760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614deb57614deb6158db565b03614e0c5760405163fce698f760e01b8152600481018290526024016108ec565b6003826003811115614e2057614e206158db565b03610a8f576040516335e2f38360e21b8152600481018290526024016108ec565b600080614e4c61278d565b90506000614e586127b1565b805190915015614e7057805160209091012092915050565b81548015614e7f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614eb361278d565b90506000614ebf612852565b805190915015614ed757805160209091012092915050565b60018201548015614e7f579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115614f1a5750600091506003905082614fa4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614f6e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614f9a57506000925060019150829050614fa4565b9250600091508190505b9450945094915050565b60405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461084857600080fd5b803561502681615006565b919050565b60006020828403121561503d57600080fd5b813561186c81615006565b6001600160a01b0391909116815260200190565b63ffffffff8116811461084857600080fd5b60006020828403121561508057600080fd5b813561186c8161505c565b60008083601f84011261509d57600080fd5b5081356001600160401b038111156150b457600080fd5b6020830191508360208285010111156134be57600080fd5b6000806000604084860312156150e157600080fd5b83356150ec81615006565b925060208401356001600160401b0381111561510757600080fd5b6151138682870161508b565b9497909650939450505050565b801515811461084857600080fd5b6000806040838503121561514157600080fd5b823561514c81615006565b9150602083013561515c81615120565b809150509250929050565b60006020828403121561517957600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156151b257818101518382015260200161519a565b50506000910152565b600081518084526151d3816020860160208601615197565b601f01601f19169290920160200192915050565b83815260606020820152600061520060608301856151bb565b828103604084015261521281856151bb565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b60008060006060848603121561524b57600080fd5b833561525681615006565b9250602084013561526681615006565b929592945050506040919091013590565b918252602082015260400190565b60ff60f81b8816815260e0602082015260006152a460e08301896151bb565b82810360408401526152b681896151bb565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561530c5783518352602093840193909201916001016152ee565b50909b9a5050505050505050505050565b6000806020838503121561533057600080fd5b82356001600160401b0381111561534657600080fd5b8301601f8101851361535757600080fd5b80356001600160401b0381111561536d57600080fd5b8560208260051b840101111561538257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156153eb57603f198786030184526153d68583516151bb565b945060209384019391909101906001016153ba565b50929695505050505050565b6000806000806060858703121561540d57600080fd5b843561541881615006565b935060208501356003811061542c57600080fd5b925060408501356001600160401b0381111561544757600080fd5b6154538782880161508b565b95989497509550505050565b6000806000806080858703121561547557600080fd5b843561548081615006565b93506020850135925060408501356154978161505c565b9396929550929360600135925050565b600080604083850312156154ba57600080fd5b82356154c581615006565b9150602083013561515c81615006565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561550a57600080fd5b815161186c81615120565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156155685761556861552f565b60405290565b604080519081016001600160401b03811182821017156155685761556861552f565b60405160e081016001600160401b03811182821017156155685761556861552f565b600082601f8301126155c357600080fd5b8135602083016000806001600160401b038411156155e3576155e361552f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156156115761561161552f565b60405283815290508082840187101561562957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561565b57600080fd5b83356001600160401b0381111561567157600080fd5b61567d868287016155b2565b93505060208401356001600160401b0381111561569957600080fd5b6156a5868287016155b2565b92505060408401356156b681615006565b809150509250925092565b600181811c908216806156d557607f821691505b6020821081036156f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d3c57806000526020600020601f840160051c810160208510156157225750805b601f840160051c820191505b8181101561306f576000815560010161572e565b81516001600160401b0381111561575b5761575b61552f565b61576f8161576984546156c1565b846156fb565b6020601f8211600181146157a3576000831561578b5750848201515b600019600385901b1c1916600184901b17845561306f565b600084815260208120601f198516915b828110156157d357878501518255602094850194600190920191016157b3565b50848210156157f15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112b8576112b861582f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b6020019150368190038213156134be57600080fd5b8284823760008382016000815283516158d1818360208801615197565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6003811061590f57634e487b7160e01b600052602160045260246000fd5b9052565b602081016112b882846158f1565b6000806040838503121561593457600080fd5b50508035926020909101359150565b6000806000806080858703121561595957600080fd5b8435935060208501359250604085013561597281615006565b915060608501356001600160401b0381111561598d57600080fd5b615999878288016155b2565b91505092959194509250565b80516150268161505c565b6001600160401b038116811461084857600080fd5b8051615026816159b0565b60006101408284031280156159e457600080fd5b5060006159ef615545565b835181526020808501519082015260408085015190820152615a13606085016159a5565b6060820152615a24608085016159c5565b6080820152615a3560a085016159c5565b60a0820152615a4660c085016159a5565b60c0820152615a5760e085016159c5565b60e082015261010084810151908201526101209384015193810193909352509092915050565b600060208284031215615a8f57600080fd5b5051919050565b600060208284031215615aa857600080fd5b815161186c8161505c565b600060208284031215615ac557600080fd5b815161186c816159b0565b6001600160a01b03929092168252602082015260400190565b808201808211156112b8576112b861582f565b60008251615b0e818460208701615197565b9190910192915050565b8035615026816159b0565b80356001600160801b038116811461502657600080fd5b60008060408385031215615b4d57600080fd5b82356001600160401b03811115615b6357600080fd5b830160408186031215615b7557600080fd5b615b7d61556e565b81356001600160401b03811115615b9357600080fd5b820160e08188031215615ba557600080fd5b615bad615590565b81358152615bbd6020830161501b565b6020820152615bce6040830161501b565b6040820152615bdf6060830161501b565b6060820152615bf060808301615b18565b6080820152615c0160a08301615b23565b60a082015260c08201356001600160401b03811115615c1f57600080fd5b615c2b898285016155b2565b60c08301525082525060208201356001600160401b03811115615c4d57600080fd5b615c59878285016155b2565b60208381019190915291979590910135955050505050565b615c7b81856158f1565b606060208201526000615c9160608301856151bb565b9050826040830152949350505050565b80820281158282048414176112b8576112b861582f565b600080600060608486031215615ccd57600080fd5b8335615cd881615006565b92506020840135915060408401356001600160401b03811115615cfa57600080fd5b615d06868287016155b2565b9150509250925092565b608081526000615d2360808301876151bb565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615d5257600080fd5b8251602084015190925061515c81615006565b600081615d7457615d7461582f565b506000190190565b600060018201615d8e57615d8e61582f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b606080825284516040838301819052815160a085015260208201516001600160a01b0390811660c086015290820151811660e08501529181015190911661010083015260808101516001600160401b038116610120840152600091905060a08101516001600160801b0381166101408501525060c0015160e0610160840152615e4b6101808401826151bb565b90506020860151605f19848303016080850152615e6882826151bb565b9250505083602083015261333560408301846001600160a01b03169052565b6001600160a01b038481168252831660208201526060810161333560408301846158f1565b600060a0828403128015615ebf57600080fd5b5060405160009060a081016001600160401b0381118282101715615ee557615ee561552f565b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b86815285602082015284604082015283606082015260c060808201526000615f6e60c08301856151bb565b90508260a0830152979650505050505050565b600082615f9e57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b85de947a2adf153b4d5d66360454c8d0624bca998d3fc8f12bd17e31d74127864736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.json index 700f93578..ac5363776 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.json @@ -113,4 +113,4 @@ "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.json index 700f93578..ac5363776 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.json @@ -113,4 +113,4 @@ "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610304565b8101906100a09190610344565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f0565b505050565b6100ae610266565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101af5780604051634c9c8ce360e01b81526004016101a69190610419565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161020d919061042d565b600060405180830381855af49150503d8060008114610248576040519150601f19603f3d011682016040523d82523d6000602084013e61024d565b606091505b509150915061025d858383610285565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029a57610295826102db565b6102d4565b81511580156102b157506001600160a01b0384163b155b156102d15783604051639996b31560e01b81526004016101a69190610419565b50805b9392505050565b8051156102eb5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561031457600080fd5b8386111561032157600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561035757600080fd5b82356001600160a01b038116811461036e57600080fd5b915060208301356001600160401b0381111561038957600080fd5b8301601f8101851361039a57600080fd5b80356001600160401b038111156103b3576103b361032e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103e1576103e161032e565b6040528181528282016020018710156103f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6001600160a01b0391909116815260200190565b6000825160005b8181101561044e5760208186018101518583015201610434565b50600092019182525091905056fea2646970667358221220079092acd5c0b5783781c6719b8677b2804315edab5ec07af0a0f7a7a9b7803c64736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/build-info/81754efc7e2eec76b7d493cc60c0f970.json b/packages/subgraph-service/ignition/deployments/chain-421614/build-info/81754efc7e2eec76b7d493cc60c0f970.json index 03954694c..f62122864 100644 --- a/packages/subgraph-service/ignition/deployments/chain-421614/build-info/81754efc7e2eec76b7d493cc60c0f970.json +++ b/packages/subgraph-service/ignition/deployments/chain-421614/build-info/81754efc7e2eec76b7d493cc60c0f970.json @@ -225,16 +225,8 @@ "evmVersion": "paris", "outputSelection": { "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] + "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"], + "": ["ast"] } } } @@ -245,9 +237,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol", "exportedSymbols": { - "ITokenGateway": [ - 41 - ] + "ITokenGateway": [41] }, "id": 42, "license": "Apache-2.0", @@ -255,15 +245,7 @@ "nodes": [ { "id": 1, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "913:33:0" }, @@ -275,9 +257,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 41, - "linearizedBaseContracts": [ - 41 - ], + "linearizedBaseContracts": [41], "name": "ITokenGateway", "nameLocation": "958:13:0", "nodeType": "ContractDefinition", @@ -780,9 +760,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/curation/ICuration.sol", "exportedSymbols": { - "ICuration": [ - 165 - ] + "ICuration": [165] }, "id": 166, "license": "GPL-2.0-or-later", @@ -790,15 +768,7 @@ "nodes": [ { "id": 43, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:1" }, @@ -816,9 +786,7 @@ }, "fullyImplemented": false, "id": 165, - "linearizedBaseContracts": [ - 165 - ], + "linearizedBaseContracts": [165], "name": "ICuration", "nameLocation": "193:9:1", "nodeType": "ContractDefinition", @@ -2188,9 +2156,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/disputes/IDisputeManager.sol", "exportedSymbols": { - "IDisputeManager": [ - 314 - ] + "IDisputeManager": [314] }, "id": 315, "license": "GPL-2.0-or-later", @@ -2198,27 +2164,13 @@ "nodes": [ { "id": 167, - "literals": [ - "solidity", - ">=", - "0.6", - ".12", - "<", - "0.8", - ".0", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", ">=", "0.6", ".12", "<", "0.8", ".0", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:42:2" }, { "id": 168, - "literals": [ - "abicoder", - "v2" - ], + "literals": ["abicoder", "v2"], "nodeType": "PragmaDirective", "src": "89:19:2" }, @@ -2230,9 +2182,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 314, - "linearizedBaseContracts": [ - 314 - ], + "linearizedBaseContracts": [314], "name": "IDisputeManager", "nameLocation": "120:15:2", "nodeType": "ContractDefinition", @@ -2448,9 +2398,7 @@ "pathNode": { "id": 187, "name": "DisputeType", - "nameLocations": [ - "583:11:2" - ], + "nameLocations": ["583:11:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 172, "src": "583:11:2" @@ -2485,9 +2433,7 @@ "pathNode": { "id": 190, "name": "DisputeStatus", - "nameLocations": [ - "616:13:2" - ], + "nameLocations": ["616:13:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 178, "src": "616:13:2" @@ -3141,9 +3087,7 @@ "pathNode": { "id": 243, "name": "Receipt", - "nameLocations": [ - "1555:7:2" - ], + "nameLocations": ["1555:7:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 200, "src": "1555:7:2" @@ -3234,9 +3178,7 @@ "pathNode": { "id": 251, "name": "Attestation", - "nameLocations": [ - "1663:11:2" - ], + "nameLocations": ["1663:11:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 213, "src": "1663:11:2" @@ -3271,9 +3213,7 @@ "pathNode": { "id": 254, "name": "Attestation", - "nameLocations": [ - "1705:11:2" - ], + "nameLocations": ["1705:11:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 213, "src": "1705:11:2" @@ -3364,9 +3304,7 @@ "pathNode": { "id": 262, "name": "Attestation", - "nameLocations": [ - "1810:11:2" - ], + "nameLocations": ["1810:11:2"], "nodeType": "IdentifierPath", "referencedDeclaration": 213, "src": "1810:11:2" @@ -3962,9 +3900,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol", "exportedSymbols": { - "IEpochManager": [ - 369 - ] + "IEpochManager": [369] }, "id": 370, "license": "GPL-2.0-or-later", @@ -3972,15 +3908,7 @@ "nodes": [ { "id": 316, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:3" }, @@ -3992,9 +3920,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 369, - "linearizedBaseContracts": [ - 369 - ], + "linearizedBaseContracts": [369], "name": "IEpochManager", "nameLocation": "91:13:3", "nodeType": "ContractDefinition", @@ -4592,9 +4518,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/gateway/ICallhookReceiver.sol", "exportedSymbols": { - "ICallhookReceiver": [ - 382 - ] + "ICallhookReceiver": [382] }, "id": 383, "license": "GPL-2.0-or-later", @@ -4602,15 +4526,7 @@ "nodes": [ { "id": 371, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "397:33:4" }, @@ -4622,9 +4538,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 382, - "linearizedBaseContracts": [ - 382 - ], + "linearizedBaseContracts": [382], "name": "ICallhookReceiver", "nameLocation": "442:17:4", "nodeType": "ContractDefinition", @@ -4760,9 +4674,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/governance/IController.sol", "exportedSymbols": { - "IController": [ - 441 - ] + "IController": [441] }, "id": 442, "license": "GPL-2.0-or-later", @@ -4770,15 +4682,7 @@ "nodes": [ { "id": 384, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:5" }, @@ -4790,9 +4694,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 441, - "linearizedBaseContracts": [ - 441 - ], + "linearizedBaseContracts": [441], "name": "IController", "nameLocation": "91:11:5", "nodeType": "ContractDefinition", @@ -5449,9 +5351,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/l2/curation/IL2Curation.sol", "exportedSymbols": { - "IL2Curation": [ - 481 - ] + "IL2Curation": [481] }, "id": 482, "license": "GPL-2.0-or-later", @@ -5459,15 +5359,7 @@ "nodes": [ { "id": 443, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:6" }, @@ -5485,9 +5377,7 @@ }, "fullyImplemented": false, "id": 481, - "linearizedBaseContracts": [ - 481 - ], + "linearizedBaseContracts": [481], "name": "IL2Curation", "nameLocation": "148:11:6", "nodeType": "ContractDefinition", @@ -5917,12 +5807,8 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/l2/discovery/IL2GNS.sol", "exportedSymbols": { - "ICallhookReceiver": [ - 382 - ], - "IL2GNS": [ - 532 - ] + "ICallhookReceiver": [382], + "IL2GNS": [532] }, "id": 533, "license": "GPL-2.0-or-later", @@ -5930,15 +5816,7 @@ "nodes": [ { "id": 483, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:7" }, @@ -5974,9 +5852,7 @@ "baseName": { "id": 487, "name": "ICallhookReceiver", - "nameLocations": [ - "227:17:7" - ], + "nameLocations": ["227:17:7"], "nodeType": "IdentifierPath", "referencedDeclaration": 382, "src": "227:17:7" @@ -5997,10 +5873,7 @@ }, "fullyImplemented": false, "id": 532, - "linearizedBaseContracts": [ - 532, - 382 - ], + "linearizedBaseContracts": [532, 382], "name": "IL2GNS", "nameLocation": "217:6:7", "nodeType": "ContractDefinition", @@ -6513,9 +6386,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", "exportedSymbols": { - "IRewardsIssuer": [ - 561 - ] + "IRewardsIssuer": [561] }, "id": 562, "license": "GPL-2.0-or-later", @@ -6523,15 +6394,7 @@ "nodes": [ { "id": 534, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:8" }, @@ -6543,9 +6406,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 561, - "linearizedBaseContracts": [ - 561 - ], + "linearizedBaseContracts": [561], "name": "IRewardsIssuer", "nameLocation": "91:14:8", "nodeType": "ContractDefinition", @@ -6880,9 +6741,7 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol", "exportedSymbols": { - "IRewardsManager": [ - 678 - ] + "IRewardsManager": [678] }, "id": 679, "license": "GPL-2.0-or-later", @@ -6890,15 +6749,7 @@ "nodes": [ { "id": 563, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:9" }, @@ -6910,9 +6761,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 678, - "linearizedBaseContracts": [ - 678 - ], + "linearizedBaseContracts": [678], "name": "IRewardsManager", "nameLocation": "91:15:9", "nodeType": "ContractDefinition", @@ -8275,12 +8124,8 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", "exportedSymbols": { - "IERC20": [ - 6147 - ], - "IGraphToken": [ - 758 - ] + "IERC20": [6147], + "IGraphToken": [758] }, "id": 759, "license": "GPL-2.0-or-later", @@ -8288,15 +8133,7 @@ "nodes": [ { "id": 680, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:10" }, @@ -8319,9 +8156,7 @@ "baseName": { "id": 682, "name": "IERC20", - "nameLocations": [ - "164:6:10" - ], + "nameLocations": ["164:6:10"], "nodeType": "IdentifierPath", "referencedDeclaration": 6147, "src": "164:6:10" @@ -8336,10 +8171,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 758, - "linearizedBaseContracts": [ - 758, - 6147 - ], + "linearizedBaseContracts": [758, 6147], "name": "IGraphToken", "nameLocation": "149:11:10", "nodeType": "ContractDefinition", @@ -9233,10 +9065,7 @@ "scope": 759, "src": "139:908:10", "usedErrors": [], - "usedEvents": [ - 6081, - 6090 - ] + "usedEvents": [6081, 6090] } ], "src": "46:1002:10" @@ -9247,15 +9076,9 @@ "ast": { "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", "exportedSymbols": { - "IERC20": [ - 6147 - ], - "IGraphToken": [ - 758 - ], - "TokenUtils": [ - 840 - ] + "IERC20": [6147], + "IGraphToken": [758], + "TokenUtils": [840] }, "id": 841, "license": "GPL-2.0-or-later", @@ -9263,15 +9086,7 @@ "nodes": [ { "id": 760, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:33:11" }, @@ -9301,9 +9116,7 @@ }, "fullyImplemented": true, "id": 840, - "linearizedBaseContracts": [ - 840 - ], + "linearizedBaseContracts": [840], "name": "TokenUtils", "nameLocation": "365:10:11", "nodeType": "ContractDefinition", @@ -9545,11 +9358,7 @@ "id": 776, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "725:7:11", "typeDescriptions": { @@ -9620,9 +9429,7 @@ "pathNode": { "id": 764, "name": "IGraphToken", - "nameLocations": [ - "618:11:11" - ], + "nameLocations": ["618:11:11"], "nodeType": "IdentifierPath", "referencedDeclaration": 758, "src": "618:11:11" @@ -9882,11 +9689,7 @@ "id": 806, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "1175:7:11", "typeDescriptions": { @@ -9957,9 +9760,7 @@ "pathNode": { "id": 794, "name": "IGraphToken", - "nameLocations": [ - "1070:11:11" - ], + "nameLocations": ["1070:11:11"], "nodeType": "IdentifierPath", "referencedDeclaration": 758, "src": "1070:11:11" @@ -10217,9 +10018,7 @@ "pathNode": { "id": 820, "name": "IGraphToken", - "nameLocations": [ - "1424:11:11" - ], + "nameLocations": ["1424:11:11"], "nodeType": "IdentifierPath", "referencedDeclaration": 758, "src": "1424:11:11" @@ -10290,21 +10089,11 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", "exportedSymbols": { - "DataService": [ - 936 - ], - "DataServiceV1Storage": [ - 945 - ], - "GraphDirectory": [ - 4928 - ], - "IDataService": [ - 1557 - ], - "ProvisionManager": [ - 2395 - ] + "DataService": [936], + "DataServiceV1Storage": [945], + "GraphDirectory": [4928], + "IDataService": [1557], + "ProvisionManager": [2395] }, "id": 937, "license": "GPL-3.0-or-later", @@ -10312,11 +10101,7 @@ "nodes": [ { "id": 842, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:12" }, @@ -10427,9 +10212,7 @@ "baseName": { "id": 852, "name": "GraphDirectory", - "nameLocations": [ - "1871:14:12" - ], + "nameLocations": ["1871:14:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 4928, "src": "1871:14:12" @@ -10442,9 +10225,7 @@ "baseName": { "id": 854, "name": "ProvisionManager", - "nameLocations": [ - "1887:16:12" - ], + "nameLocations": ["1887:16:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 2395, "src": "1887:16:12" @@ -10457,9 +10238,7 @@ "baseName": { "id": 856, "name": "DataServiceV1Storage", - "nameLocations": [ - "1905:20:12" - ], + "nameLocations": ["1905:20:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 945, "src": "1905:20:12" @@ -10472,9 +10251,7 @@ "baseName": { "id": 858, "name": "IDataService", - "nameLocations": [ - "1927:12:12" - ], + "nameLocations": ["1927:12:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 1557, "src": "1927:12:12" @@ -10495,15 +10272,7 @@ }, "fullyImplemented": false, "id": 936, - "linearizedBaseContracts": [ - 936, - 1557, - 945, - 2395, - 2425, - 4928, - 5391 - ], + "linearizedBaseContracts": [936, 1557, 945, 2395, 2425, 4928, 5391], "name": "DataService", "nameLocation": "1856:11:12", "nodeType": "ContractDefinition", @@ -10545,9 +10314,7 @@ "modifierName": { "id": 864, "name": "GraphDirectory", - "nameLocations": [ - "2171:14:12" - ], + "nameLocations": ["2171:14:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 4928, "src": "2171:14:12" @@ -10607,9 +10374,7 @@ "visibility": "internal" }, { - "baseFunctions": [ - 1534 - ], + "baseFunctions": [1534], "body": { "id": 880, "nodeType": "Block", @@ -10742,9 +10507,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 1542 - ], + "baseFunctions": [1542], "body": { "id": 892, "nodeType": "Block", @@ -10877,9 +10640,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 1550 - ], + "baseFunctions": [1550], "body": { "id": 904, "nodeType": "Block", @@ -11012,9 +10773,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 1556 - ], + "baseFunctions": [1556], "body": { "id": 914, "nodeType": "Block", @@ -11215,9 +10974,7 @@ "modifierName": { "id": 918, "name": "onlyInitializing", - "nameLocations": [ - "2951:16:12" - ], + "nameLocations": ["2951:16:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "2951:16:12" @@ -11270,9 +11027,7 @@ "modifierName": { "id": 931, "name": "onlyInitializing", - "nameLocations": [ - "3172:16:12" - ], + "nameLocations": ["3172:16:12"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "3172:16:12" @@ -11305,29 +11060,8 @@ ], "scope": 937, "src": "1838:1355:12", - "usedErrors": [ - 1918, - 1925, - 1932, - 1937, - 4655, - 5140, - 5143 - ], - "usedEvents": [ - 1437, - 1442, - 1449, - 1456, - 1466, - 1473, - 1888, - 1893, - 1900, - 1907, - 4650, - 5148 - ] + "usedErrors": [1918, 1925, 1932, 1937, 4655, 5140, 5143], + "usedEvents": [1437, 1442, 1449, 1456, 1466, 1473, 1888, 1893, 1900, 1907, 4650, 5148] } ], "src": "45:3149:12" @@ -11338,9 +11072,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol", "exportedSymbols": { - "DataServiceV1Storage": [ - 945 - ] + "DataServiceV1Storage": [945] }, "id": 946, "license": "GPL-3.0-or-later", @@ -11348,11 +11080,7 @@ "nodes": [ { "id": 938, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:13" }, @@ -11370,9 +11098,7 @@ }, "fullyImplemented": true, "id": 945, - "linearizedBaseContracts": [ - 945 - ], + "linearizedBaseContracts": [945], "name": "DataServiceV1Storage", "nameLocation": "345:20:13", "nodeType": "ContractDefinition", @@ -11450,24 +11176,12 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol", "exportedSymbols": { - "DataService": [ - 936 - ], - "DataServiceFees": [ - 1278 - ], - "DataServiceFeesV1Storage": [ - 1308 - ], - "IDataServiceFees": [ - 1620 - ], - "LinkedList": [ - 4364 - ], - "ProvisionTracker": [ - 1801 - ] + "DataService": [936], + "DataServiceFees": [1278], + "DataServiceFeesV1Storage": [1308], + "IDataServiceFees": [1620], + "LinkedList": [4364], + "ProvisionTracker": [1801] }, "id": 1279, "license": "GPL-3.0-or-later", @@ -11475,11 +11189,7 @@ "nodes": [ { "id": 947, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:14" }, @@ -11615,9 +11325,7 @@ "baseName": { "id": 959, "name": "DataService", - "nameLocations": [ - "974:11:14" - ], + "nameLocations": ["974:11:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 936, "src": "974:11:14" @@ -11630,9 +11338,7 @@ "baseName": { "id": 961, "name": "DataServiceFeesV1Storage", - "nameLocations": [ - "987:24:14" - ], + "nameLocations": ["987:24:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 1308, "src": "987:24:14" @@ -11645,9 +11351,7 @@ "baseName": { "id": 963, "name": "IDataServiceFees", - "nameLocations": [ - "1013:16:14" - ], + "nameLocations": ["1013:16:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 1620, "src": "1013:16:14" @@ -11673,18 +11377,7 @@ "1211": 2, "1254": 3 }, - "linearizedBaseContracts": [ - 1278, - 1620, - 1308, - 936, - 1557, - 945, - 2395, - 2425, - 4928, - 5391 - ], + "linearizedBaseContracts": [1278, 1620, 1308, 936, 1557, 945, 2395, 2425, 4928, 5391], "name": "DataServiceFees", "nameLocation": "955:15:14", "nodeType": "ContractDefinition", @@ -11695,9 +11388,7 @@ "libraryName": { "id": 965, "name": "ProvisionTracker", - "nameLocations": [ - "1042:16:14" - ], + "nameLocations": ["1042:16:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 1801, "src": "1042:16:14" @@ -11744,9 +11435,7 @@ "libraryName": { "id": 970, "name": "LinkedList", - "nameLocations": [ - "1102:10:14" - ], + "nameLocations": ["1102:10:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 4364, "src": "1102:10:14" @@ -11759,10 +11448,7 @@ "pathNode": { "id": 971, "name": "LinkedList.List", - "nameLocations": [ - "1117:10:14", - "1128:4:14" - ], + "nameLocations": ["1117:10:14", "1128:4:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "1117:15:14" @@ -11776,9 +11462,7 @@ } }, { - "baseFunctions": [ - 1619 - ], + "baseFunctions": [1619], "body": { "id": 986, "nodeType": "Block", @@ -12038,11 +11722,7 @@ "id": 997, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "1973:7:14", "typeDescriptions": { @@ -12208,9 +11888,7 @@ "src": "2033:87:14" }, { - "assignments": [ - 1019 - ], + "assignments": [1019], "declarations": [ { "constant": false, @@ -12233,10 +11911,7 @@ "pathNode": { "id": 1017, "name": "LinkedList.List", - "nameLocations": [ - "2131:10:14", - "2142:4:14" - ], + "nameLocations": ["2131:10:14", "2142:4:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "2131:15:14" @@ -12293,9 +11968,7 @@ "src": "2131:66:14" }, { - "assignments": [ - 1025 - ], + "assignments": [1025], "declarations": [ { "constant": false, @@ -12607,18 +12280,8 @@ "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, - "nameLocations": [ - "2370:6:14", - "2399:9:14", - "2439:12:14", - "2483:9:14" - ], - "names": [ - "tokens", - "createdAt", - "releasableAt", - "nextClaim" - ], + "nameLocations": ["2370:6:14", "2399:9:14", "2439:12:14", "2483:9:14"], + "names": ["tokens", "createdAt", "releasableAt", "nextClaim"], "nodeType": "FunctionCall", "src": "2345:170:14", "tryCall": false, @@ -13099,9 +12762,7 @@ "src": "3546:439:14", "statements": [ { - "assignments": [ - 1086 - ], + "assignments": [1086], "declarations": [ { "constant": false, @@ -13124,10 +12785,7 @@ "pathNode": { "id": 1084, "name": "LinkedList.List", - "nameLocations": [ - "3556:10:14", - "3567:4:14" - ], + "nameLocations": ["3556:10:14", "3567:4:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "3556:15:14" @@ -13184,10 +12842,7 @@ "src": "3556:66:14" }, { - "assignments": [ - 1092, - 1094 - ], + "assignments": [1092, 1094], "declarations": [ { "constant": false, @@ -13723,9 +13378,7 @@ "src": "4563:624:14", "statements": [ { - "assignments": [ - 1135 - ], + "assignments": [1135], "declarations": [ { "constant": false, @@ -13748,9 +13401,7 @@ "pathNode": { "id": 1133, "name": "StakeClaim", - "nameLocations": [ - "4573:10:14" - ], + "nameLocations": ["4573:10:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 1574, "src": "4573:10:14" @@ -13970,10 +13621,7 @@ } }, { - "assignments": [ - 1153, - 1155 - ], + "assignments": [1153, 1155], "declarations": [ { "constant": false, @@ -14876,9 +14524,7 @@ "src": "5732:160:14", "statements": [ { - "assignments": [ - 1222 - ], + "assignments": [1222], "declarations": [ { "constant": false, @@ -14901,9 +14547,7 @@ "pathNode": { "id": 1220, "name": "StakeClaim", - "nameLocations": [ - "5742:10:14" - ], + "nameLocations": ["5742:10:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 1574, "src": "5742:10:14" @@ -15088,11 +14732,7 @@ "id": 1227, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5794:7:14", "typeDescriptions": { @@ -15212,9 +14852,7 @@ "pathNode": { "id": 1216, "name": "StakeClaim", - "nameLocations": [ - "5713:10:14" - ], + "nameLocations": ["5713:10:14"], "nodeType": "IdentifierPath", "referencedDeclaration": 1574, "src": "5713:10:14" @@ -15701,37 +15339,8 @@ ], "scope": 1279, "src": "937:5748:14", - "usedErrors": [ - 1610, - 1613, - 1667, - 1918, - 1925, - 1932, - 1937, - 4104, - 4110, - 4655, - 5140, - 5143 - ], - "usedEvents": [ - 1437, - 1442, - 1449, - 1456, - 1466, - 1473, - 1585, - 1596, - 1605, - 1888, - 1893, - 1900, - 1907, - 4650, - 5148 - ] + "usedErrors": [1610, 1613, 1667, 1918, 1925, 1932, 1937, 4104, 4110, 4655, 5140, 5143], + "usedEvents": [1437, 1442, 1449, 1456, 1466, 1473, 1585, 1596, 1605, 1888, 1893, 1900, 1907, 4650, 5148] } ], "src": "45:6641:14" @@ -15742,15 +15351,9 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol", "exportedSymbols": { - "DataServiceFeesV1Storage": [ - 1308 - ], - "IDataServiceFees": [ - 1620 - ], - "LinkedList": [ - 4364 - ] + "DataServiceFeesV1Storage": [1308], + "IDataServiceFees": [1620], + "LinkedList": [4364] }, "id": 1309, "license": "GPL-3.0-or-later", @@ -15758,11 +15361,7 @@ "nodes": [ { "id": 1280, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:15" }, @@ -15830,9 +15429,7 @@ }, "fullyImplemented": true, "id": 1308, - "linearizedBaseContracts": [ - 1308 - ], + "linearizedBaseContracts": [1308], "name": "DataServiceFeesV1Storage", "nameLocation": "441:24:15", "nodeType": "ContractDefinition", @@ -15944,10 +15541,7 @@ "pathNode": { "id": 1293, "name": "IDataServiceFees.StakeClaim", - "nameLocations": [ - "754:16:15", - "771:10:15" - ], + "nameLocations": ["754:16:15", "771:10:15"], "nodeType": "IdentifierPath", "referencedDeclaration": 1574, "src": "754:27:15" @@ -16012,10 +15606,7 @@ "pathNode": { "id": 1299, "name": "LinkedList.List", - "nameLocations": [ - "909:10:15", - "920:4:15" - ], + "nameLocations": ["909:10:15", "920:4:15"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "909:15:15" @@ -16103,18 +15694,10 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol", "exportedSymbols": { - "DataService": [ - 936 - ], - "DataServicePausableUpgradeable": [ - 1425 - ], - "IDataServicePausable": [ - 1655 - ], - "PausableUpgradeable": [ - 5700 - ] + "DataService": [936], + "DataServicePausableUpgradeable": [1425], + "IDataServicePausable": [1655], + "PausableUpgradeable": [5700] }, "id": 1426, "license": "GPL-3.0-or-later", @@ -16122,11 +15705,7 @@ "nodes": [ { "id": 1310, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:16" }, @@ -16212,9 +15791,7 @@ "baseName": { "id": 1318, "name": "PausableUpgradeable", - "nameLocations": [ - "823:19:16" - ], + "nameLocations": ["823:19:16"], "nodeType": "IdentifierPath", "referencedDeclaration": 5700, "src": "823:19:16" @@ -16227,9 +15804,7 @@ "baseName": { "id": 1320, "name": "DataService", - "nameLocations": [ - "844:11:16" - ], + "nameLocations": ["844:11:16"], "nodeType": "IdentifierPath", "referencedDeclaration": 936, "src": "844:11:16" @@ -16242,9 +15817,7 @@ "baseName": { "id": 1322, "name": "IDataServicePausable", - "nameLocations": [ - "857:20:16" - ], + "nameLocations": ["857:20:16"], "nodeType": "IdentifierPath", "referencedDeclaration": 1655, "src": "857:20:16" @@ -16265,19 +15838,7 @@ }, "fullyImplemented": false, "id": 1425, - "linearizedBaseContracts": [ - 1425, - 1655, - 936, - 1557, - 945, - 2395, - 2425, - 4928, - 5700, - 5437, - 5391 - ], + "linearizedBaseContracts": [1425, 1655, 936, 1557, 945, 2395, 2425, 4928, 5700, 5437, 5391], "name": "DataServicePausableUpgradeable", "nameLocation": "789:30:16", "nodeType": "ContractDefinition", @@ -16537,11 +16098,7 @@ "id": 1336, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "1230:7:16", "typeDescriptions": { @@ -16597,9 +16154,7 @@ "visibility": "internal" }, { - "baseFunctions": [ - 1650 - ], + "baseFunctions": [1650], "body": { "id": 1359, "nodeType": "Block", @@ -16660,9 +16215,7 @@ "modifierName": { "id": 1353, "name": "onlyPauseGuardian", - "nameLocations": [ - "1414:17:16" - ], + "nameLocations": ["1414:17:16"], "nodeType": "IdentifierPath", "referencedDeclaration": 1349, "src": "1414:17:16" @@ -16699,9 +16252,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 1654 - ], + "baseFunctions": [1654], "body": { "id": 1370, "nodeType": "Block", @@ -16762,9 +16313,7 @@ "modifierName": { "id": 1364, "name": "onlyPauseGuardian", - "nameLocations": [ - "1541:17:16" - ], + "nameLocations": ["1541:17:16"], "nodeType": "IdentifierPath", "referencedDeclaration": 1349, "src": "1541:17:16" @@ -16896,9 +16445,7 @@ "modifierName": { "id": 1374, "name": "onlyInitializing", - "nameLocations": [ - "1716:16:16" - ], + "nameLocations": ["1716:16:16"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "1716:16:16" @@ -16951,9 +16498,7 @@ "modifierName": { "id": 1387, "name": "onlyInitializing", - "nameLocations": [ - "1944:16:16" - ], + "nameLocations": ["1944:16:16"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "1944:16:16" @@ -17154,11 +16699,7 @@ "id": 1399, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2379:7:16", "typeDescriptions": { @@ -17416,36 +16957,8 @@ ], "scope": 1426, "src": "771:1879:16", - "usedErrors": [ - 1639, - 1646, - 1918, - 1925, - 1932, - 1937, - 4655, - 5140, - 5143, - 5579, - 5582 - ], - "usedEvents": [ - 1437, - 1442, - 1449, - 1456, - 1466, - 1473, - 1634, - 1888, - 1893, - 1900, - 1907, - 4650, - 5148, - 5571, - 5576 - ] + "usedErrors": [1639, 1646, 1918, 1925, 1932, 1937, 4655, 5140, 5143, 5579, 5582], + "usedEvents": [1437, 1442, 1449, 1456, 1466, 1473, 1634, 1888, 1893, 1900, 1907, 4650, 5148, 5571, 5576] } ], "src": "45:2606:16" @@ -17456,12 +16969,8 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", "exportedSymbols": { - "IDataService": [ - 1557 - ], - "IGraphPayments": [ - 2489 - ] + "IDataService": [1557], + "IGraphPayments": [2489] }, "id": 1558, "license": "GPL-3.0-or-later", @@ -17469,11 +16978,7 @@ "nodes": [ { "id": 1427, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:17" }, @@ -17516,9 +17021,7 @@ }, "fullyImplemented": false, "id": 1557, - "linearizedBaseContracts": [ - 1557 - ], + "linearizedBaseContracts": [1557], "name": "IDataService", "nameLocation": "1047:12:17", "nodeType": "ContractDefinition", @@ -17879,10 +17382,7 @@ "pathNode": { "id": 1460, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "2608:14:17", - "2623:12:17" - ], + "nameLocations": ["2608:14:17", "2623:12:17"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "2608:27:17" @@ -18432,10 +17932,7 @@ "pathNode": { "id": 1509, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "6136:14:17", - "6151:12:17" - ], + "nameLocations": ["6136:14:17", "6151:12:17"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "6136:27:17" @@ -18937,14 +18434,7 @@ "scope": 1558, "src": "1037:6562:17", "usedErrors": [], - "usedEvents": [ - 1437, - 1442, - 1449, - 1456, - 1466, - 1473 - ] + "usedEvents": [1437, 1442, 1449, 1456, 1466, 1473] } ], "src": "45:7555:17" @@ -18955,12 +18445,8 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", "exportedSymbols": { - "IDataService": [ - 1557 - ], - "IDataServiceFees": [ - 1620 - ] + "IDataService": [1557], + "IDataServiceFees": [1620] }, "id": 1621, "license": "GPL-3.0-or-later", @@ -18968,11 +18454,7 @@ "nodes": [ { "id": 1559, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:18" }, @@ -19008,9 +18490,7 @@ "baseName": { "id": 1563, "name": "IDataService", - "nameLocations": [ - "1207:12:18" - ], + "nameLocations": ["1207:12:18"], "nodeType": "IdentifierPath", "referencedDeclaration": 1557, "src": "1207:12:18" @@ -19031,10 +18511,7 @@ }, "fullyImplemented": false, "id": 1620, - "linearizedBaseContracts": [ - 1620, - 1557 - ], + "linearizedBaseContracts": [1620, 1557], "name": "IDataServiceFees", "nameLocation": "1187:16:18", "nodeType": "ContractDefinition", @@ -19674,21 +19151,8 @@ ], "scope": 1621, "src": "1177:3017:18", - "usedErrors": [ - 1610, - 1613 - ], - "usedEvents": [ - 1437, - 1442, - 1449, - 1456, - 1466, - 1473, - 1585, - 1596, - 1605 - ] + "usedErrors": [1610, 1613], + "usedEvents": [1437, 1442, 1449, 1456, 1466, 1473, 1585, 1596, 1605] } ], "src": "45:4150:18" @@ -19699,12 +19163,8 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol", "exportedSymbols": { - "IDataService": [ - 1557 - ], - "IDataServicePausable": [ - 1655 - ] + "IDataService": [1557], + "IDataServicePausable": [1655] }, "id": 1656, "license": "GPL-3.0-or-later", @@ -19712,11 +19172,7 @@ "nodes": [ { "id": 1622, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:19" }, @@ -19752,9 +19208,7 @@ "baseName": { "id": 1626, "name": "IDataService", - "nameLocations": [ - "541:12:19" - ], + "nameLocations": ["541:12:19"], "nodeType": "IdentifierPath", "referencedDeclaration": 1557, "src": "541:12:19" @@ -19775,10 +19229,7 @@ }, "fullyImplemented": false, "id": 1655, - "linearizedBaseContracts": [ - 1655, - 1557 - ], + "linearizedBaseContracts": [1655, 1557], "name": "IDataServicePausable", "nameLocation": "517:20:19", "nodeType": "ContractDefinition", @@ -20056,19 +19507,8 @@ ], "scope": 1656, "src": "507:1383:19", - "usedErrors": [ - 1639, - 1646 - ], - "usedEvents": [ - 1437, - 1442, - 1449, - 1456, - 1466, - 1473, - 1634 - ] + "usedErrors": [1639, 1646], + "usedEvents": [1437, 1442, 1449, 1456, 1466, 1473, 1634] } ], "src": "45:1846:19" @@ -20079,12 +19519,8 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol", "exportedSymbols": { - "IHorizonStaking": [ - 2625 - ], - "ProvisionTracker": [ - 1801 - ] + "IHorizonStaking": [2625], + "ProvisionTracker": [1801] }, "id": 1802, "license": "GPL-3.0-or-later", @@ -20092,11 +19528,7 @@ "nodes": [ { "id": 1657, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:20" }, @@ -20139,9 +19571,7 @@ }, "fullyImplemented": true, "id": 1801, - "linearizedBaseContracts": [ - 1801 - ], + "linearizedBaseContracts": [1801], "name": "ProvisionTracker", "nameLocation": "787:16:20", "nodeType": "ContractDefinition", @@ -20285,9 +19715,7 @@ } }, { - "assignments": [ - 1690 - ], + "assignments": [1690], "declarations": [ { "constant": false, @@ -20389,9 +19817,7 @@ "src": "1887:55:20" }, { - "assignments": [ - 1698 - ], + "assignments": [1698], "declarations": [ { "constant": false, @@ -20692,11 +20118,7 @@ "id": 1709, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2068:7:20", "typeDescriptions": { @@ -20882,9 +20304,7 @@ "pathNode": { "id": 1673, "name": "IHorizonStaking", - "nameLocations": [ - "1710:15:20" - ], + "nameLocations": ["1710:15:20"], "nodeType": "IdentifierPath", "referencedDeclaration": 2625, "src": "1710:15:20" @@ -21233,11 +20653,7 @@ "id": 1743, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2743:7:20", "typeDescriptions": { @@ -21479,9 +20895,7 @@ "src": "3560:180:20", "statements": [ { - "assignments": [ - 1782 - ], + "assignments": [1782], "declarations": [ { "constant": false, @@ -21820,9 +21234,7 @@ "pathNode": { "id": 1770, "name": "IHorizonStaking", - "nameLocations": [ - "3431:15:20" - ], + "nameLocations": ["3431:15:20"], "nodeType": "IdentifierPath", "referencedDeclaration": 2625, "src": "3431:15:20" @@ -21937,9 +21349,7 @@ ], "scope": 1802, "src": "779:2963:20", - "usedErrors": [ - 1667 - ], + "usedErrors": [1667], "usedEvents": [] } ], @@ -21951,27 +21361,13 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol", "exportedSymbols": { - "GraphDirectory": [ - 4928 - ], - "IHorizonStaking": [ - 2625 - ], - "Initializable": [ - 5391 - ], - "PPMMath": [ - 4539 - ], - "ProvisionManager": [ - 2395 - ], - "ProvisionManagerV1Storage": [ - 2425 - ], - "UintRange": [ - 4564 - ] + "GraphDirectory": [4928], + "IHorizonStaking": [2625], + "Initializable": [5391], + "PPMMath": [4539], + "ProvisionManager": [2395], + "ProvisionManagerV1Storage": [2425], + "UintRange": [4564] }, "id": 2396, "license": "GPL-3.0-or-later", @@ -21979,11 +21375,7 @@ "nodes": [ { "id": 1803, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:21" }, @@ -22144,9 +21536,7 @@ "baseName": { "id": 1817, "name": "Initializable", - "nameLocations": [ - "1324:13:21" - ], + "nameLocations": ["1324:13:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "1324:13:21" @@ -22159,9 +21549,7 @@ "baseName": { "id": 1819, "name": "GraphDirectory", - "nameLocations": [ - "1339:14:21" - ], + "nameLocations": ["1339:14:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 4928, "src": "1339:14:21" @@ -22174,9 +21562,7 @@ "baseName": { "id": 1821, "name": "ProvisionManagerV1Storage", - "nameLocations": [ - "1355:25:21" - ], + "nameLocations": ["1355:25:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 2425, "src": "1355:25:21" @@ -22197,12 +21583,7 @@ }, "fullyImplemented": true, "id": 2395, - "linearizedBaseContracts": [ - 2395, - 2425, - 4928, - 5391 - ], + "linearizedBaseContracts": [2395, 2425, 4928, 5391], "name": "ProvisionManager", "nameLocation": "1304:16:21", "nodeType": "ContractDefinition", @@ -22213,9 +21594,7 @@ "libraryName": { "id": 1823, "name": "UintRange", - "nameLocations": [ - "1393:9:21" - ], + "nameLocations": ["1393:9:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 4564, "src": "1393:9:21" @@ -23863,11 +23242,7 @@ "id": 1942, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "4686:7:21", "typeDescriptions": { @@ -23958,9 +23333,7 @@ "src": "5151:198:21", "statements": [ { - "assignments": [ - 1972 - ], + "assignments": [1972], "declarations": [ { "constant": false, @@ -23983,10 +23356,7 @@ "pathNode": { "id": 1970, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "5161:15:21", - "5177:9:21" - ], + "nameLocations": ["5161:15:21", "5177:9:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "5161:25:21" @@ -24080,10 +23450,7 @@ "id": 1977, "name": "_checkProvisionTokens", "nodeType": "Identifier", - "overloadedDeclarations": [ - 2184, - 2203 - ], + "overloadedDeclarations": [2184, 2203], "referencedDeclaration": 2203, "src": "5246:21:21", "typeDescriptions": { @@ -24157,10 +23524,7 @@ "id": 1981, "name": "_checkProvisionParameters", "nodeType": "Identifier", - "overloadedDeclarations": [ - 2226, - 2282 - ], + "overloadedDeclarations": [2226, 2282], "referencedDeclaration": 2282, "src": "5288:25:21", "typeDescriptions": { @@ -24304,9 +23668,7 @@ "modifierName": { "id": 1991, "name": "onlyInitializing", - "nameLocations": [ - "5481:16:21" - ], + "nameLocations": ["5481:16:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "5481:16:21" @@ -24624,9 +23986,7 @@ "modifierName": { "id": 2001, "name": "onlyInitializing", - "nameLocations": [ - "5730:16:21" - ], + "nameLocations": ["5730:16:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "5730:16:21" @@ -24708,10 +24068,7 @@ "id": 2030, "name": "_checkProvisionParameters", "nodeType": "Identifier", - "overloadedDeclarations": [ - 2226, - 2282 - ], + "overloadedDeclarations": [2226, 2282], "referencedDeclaration": 2226, "src": "6450:25:21", "typeDescriptions": { @@ -25185,11 +24542,7 @@ "id": 2065, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "7149:7:21", "typeDescriptions": { @@ -25592,11 +24945,7 @@ "id": 2097, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "7640:7:21", "typeDescriptions": { @@ -25772,11 +25121,7 @@ "id": 2107, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "7713:7:21", "typeDescriptions": { @@ -26179,11 +25524,7 @@ "id": 2140, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "8204:7:21", "typeDescriptions": { @@ -26462,9 +25803,7 @@ "src": "8684:135:21", "statements": [ { - "assignments": [ - 2174 - ], + "assignments": [2174], "declarations": [ { "constant": false, @@ -26487,10 +25826,7 @@ "pathNode": { "id": 2172, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "8694:15:21", - "8710:9:21" - ], + "nameLocations": ["8694:15:21", "8710:9:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "8694:25:21" @@ -26584,10 +25920,7 @@ "id": 2179, "name": "_checkProvisionTokens", "nodeType": "Identifier", - "overloadedDeclarations": [ - 2184, - 2203 - ], + "overloadedDeclarations": [2184, 2203], "referencedDeclaration": 2203, "src": "8780:21:21", "typeDescriptions": { @@ -26891,10 +26224,7 @@ "pathNode": { "id": 2186, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "9083:15:21", - "9099:9:21" - ], + "nameLocations": ["9083:15:21", "9099:9:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "9083:25:21" @@ -26930,9 +26260,7 @@ "src": "9720:154:21", "statements": [ { - "assignments": [ - 2215 - ], + "assignments": [2215], "declarations": [ { "constant": false, @@ -26955,10 +26283,7 @@ "pathNode": { "id": 2213, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "9730:15:21", - "9746:9:21" - ], + "nameLocations": ["9730:15:21", "9746:9:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "9730:25:21" @@ -27068,10 +26393,7 @@ "id": 2220, "name": "_checkProvisionParameters", "nodeType": "Identifier", - "overloadedDeclarations": [ - 2226, - 2282 - ], + "overloadedDeclarations": [2226, 2282], "referencedDeclaration": 2282, "src": "9816:25:21", "typeDescriptions": { @@ -27195,10 +26517,7 @@ "src": "10295:611:21", "statements": [ { - "assignments": [ - 2236, - 2238 - ], + "assignments": [2236, 2238], "declarations": [ { "constant": false, @@ -27291,9 +26610,7 @@ "src": "10305:77:21" }, { - "assignments": [ - 2243 - ], + "assignments": [2243], "declarations": [ { "constant": false, @@ -27515,10 +26832,7 @@ "src": "10506:93:21" }, { - "assignments": [ - 2259, - 2261 - ], + "assignments": [2259, 2261], "declarations": [ { "constant": false, @@ -27611,9 +26925,7 @@ "src": "10610:71:21" }, { - "assignments": [ - 2266 - ], + "assignments": [2266], "declarations": [ { "constant": false, @@ -27874,10 +27186,7 @@ "pathNode": { "id": 2228, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "10195:15:21", - "10211:9:21" - ], + "nameLocations": ["10195:15:21", "10211:9:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "10195:25:21" @@ -28445,9 +27754,7 @@ "src": "12567:245:21", "statements": [ { - "assignments": [ - 2343 - ], + "assignments": [2343], "declarations": [ { "constant": false, @@ -28470,10 +27777,7 @@ "pathNode": { "id": 2341, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "12577:15:21", - "12593:9:21" - ], + "nameLocations": ["12577:15:21", "12593:9:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "12577:25:21" @@ -28766,11 +28070,7 @@ "id": 2354, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "12693:7:21", "typeDescriptions": { @@ -28891,10 +28191,7 @@ "pathNode": { "id": 2335, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "12533:15:21", - "12549:9:21" - ], + "nameLocations": ["12533:15:21", "12549:9:21"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "12533:25:21" @@ -29119,11 +28416,7 @@ "id": 2379, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "13238:7:21", "typeDescriptions": { @@ -29296,23 +28589,8 @@ ], "scope": 2396, "src": "1286:12064:21", - "usedErrors": [ - 1918, - 1925, - 1932, - 1937, - 4655, - 5140, - 5143 - ], - "usedEvents": [ - 1888, - 1893, - 1900, - 1907, - 4650, - 5148 - ] + "usedErrors": [1918, 1925, 1932, 1937, 4655, 5140, 5143], + "usedEvents": [1888, 1893, 1900, 1907, 4650, 5148] } ], "src": "45:13306:21" @@ -29323,9 +28601,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol", "exportedSymbols": { - "ProvisionManagerV1Storage": [ - 2425 - ] + "ProvisionManagerV1Storage": [2425] }, "id": 2426, "license": "GPL-3.0-or-later", @@ -29333,11 +28609,7 @@ "nodes": [ { "id": 2397, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:22" }, @@ -29355,9 +28627,7 @@ }, "fullyImplemented": true, "id": 2425, - "linearizedBaseContracts": [ - 2425 - ], + "linearizedBaseContracts": [2425], "name": "ProvisionManagerV1Storage", "nameLocation": "305:25:22", "nodeType": "ContractDefinition", @@ -29666,9 +28936,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", "exportedSymbols": { - "IGraphPayments": [ - 2489 - ] + "IGraphPayments": [2489] }, "id": 2490, "license": "GPL-3.0-or-later", @@ -29676,11 +28944,7 @@ "nodes": [ { "id": 2427, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:23" }, @@ -29698,9 +28962,7 @@ }, "fullyImplemented": false, "id": 2489, - "linearizedBaseContracts": [ - 2489 - ], + "linearizedBaseContracts": [2489], "name": "IGraphPayments", "nameLocation": "485:14:23", "nodeType": "ContractDefinition", @@ -29781,9 +29043,7 @@ "pathNode": { "id": 2435, "name": "PaymentTypes", - "nameLocations": [ - "1462:12:23" - ], + "nameLocations": ["1462:12:23"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "1462:12:23" @@ -30227,9 +29487,7 @@ "pathNode": { "id": 2473, "name": "PaymentTypes", - "nameLocations": [ - "3154:12:23" - ], + "nameLocations": ["3154:12:23"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "3154:12:23" @@ -30399,13 +29657,8 @@ ], "scope": 2490, "src": "475:2869:23", - "usedErrors": [ - 2462, - 2467 - ], - "usedEvents": [ - 2457 - ] + "usedErrors": [2462, 2467], + "usedEvents": [2457] } ], "src": "45:3300:23" @@ -30416,9 +29669,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol", "exportedSymbols": { - "IGraphProxyAdmin": [ - 2493 - ] + "IGraphProxyAdmin": [2493] }, "id": 2494, "license": "GPL-2.0-or-later", @@ -30426,11 +29677,7 @@ "nodes": [ { "id": 2491, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:24" }, @@ -30448,9 +29695,7 @@ }, "fullyImplemented": true, "id": 2493, - "linearizedBaseContracts": [ - 2493 - ], + "linearizedBaseContracts": [2493], "name": "IGraphProxyAdmin", "nameLocation": "364:16:24", "nodeType": "ContractDefinition", @@ -30469,15 +29714,9 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol", "exportedSymbols": { - "IGraphPayments": [ - 2489 - ], - "IGraphTallyCollector": [ - 2605 - ], - "IPaymentsCollector": [ - 2658 - ] + "IGraphPayments": [2489], + "IGraphTallyCollector": [2605], + "IPaymentsCollector": [2658] }, "id": 2606, "license": "GPL-3.0-or-later", @@ -30485,11 +29724,7 @@ "nodes": [ { "id": 2495, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:25" }, @@ -30550,9 +29785,7 @@ "baseName": { "id": 2501, "name": "IPaymentsCollector", - "nameLocations": [ - "681:18:25" - ], + "nameLocations": ["681:18:25"], "nodeType": "IdentifierPath", "referencedDeclaration": 2658, "src": "681:18:25" @@ -30573,10 +29806,7 @@ }, "fullyImplemented": false, "id": 2605, - "linearizedBaseContracts": [ - 2605, - 2658 - ], + "linearizedBaseContracts": [2605, 2658], "name": "IGraphTallyCollector", "nameLocation": "657:20:25", "nodeType": "ContractDefinition", @@ -30822,9 +30052,7 @@ "pathNode": { "id": 2520, "name": "ReceiptAggregateVoucher", - "nameLocations": [ - "2008:23:25" - ], + "nameLocations": ["2008:23:25"], "nodeType": "IdentifierPath", "referencedDeclaration": 2518, "src": "2008:23:25" @@ -31458,10 +30686,7 @@ "pathNode": { "id": 2575, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "5128:14:25", - "5143:12:25" - ], + "nameLocations": ["5128:14:25", "5143:12:25"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "5128:27:25" @@ -31612,9 +30837,7 @@ "pathNode": { "id": 2588, "name": "SignedRAV", - "nameLocations": [ - "5512:9:25" - ], + "nameLocations": ["5512:9:25"], "nodeType": "IdentifierPath", "referencedDeclaration": 2525, "src": "5512:9:25" @@ -31712,9 +30935,7 @@ "pathNode": { "id": 2597, "name": "ReceiptAggregateVoucher", - "nameLocations": [ - "5774:23:25" - ], + "nameLocations": ["5774:23:25"], "nodeType": "IdentifierPath", "referencedDeclaration": 2518, "src": "5774:23:25" @@ -31774,17 +30995,8 @@ ], "scope": 2606, "src": "647:5199:25", - "usedErrors": [ - 2547, - 2552, - 2559, - 2566, - 2573 - ], - "usedEvents": [ - 2544, - 2646 - ] + "usedErrors": [2547, 2552, 2559, 2566, 2573], + "usedEvents": [2544, 2646] } ], "src": "45:5802:25" @@ -31795,21 +31007,11 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", "exportedSymbols": { - "IHorizonStaking": [ - 2625 - ], - "IHorizonStakingBase": [ - 3046 - ], - "IHorizonStakingExtension": [ - 3226 - ], - "IHorizonStakingMain": [ - 3937 - ], - "IHorizonStakingTypes": [ - 4073 - ] + "IHorizonStaking": [2625], + "IHorizonStakingBase": [3046], + "IHorizonStakingExtension": [3226], + "IHorizonStakingMain": [3937], + "IHorizonStakingTypes": [4073] }, "id": 2626, "license": "GPL-2.0-or-later", @@ -31817,11 +31019,7 @@ "nodes": [ { "id": 2607, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:26" }, @@ -31932,9 +31130,7 @@ "baseName": { "id": 2617, "name": "IHorizonStakingTypes", - "nameLocations": [ - "888:20:26" - ], + "nameLocations": ["888:20:26"], "nodeType": "IdentifierPath", "referencedDeclaration": 4073, "src": "888:20:26" @@ -31947,9 +31143,7 @@ "baseName": { "id": 2619, "name": "IHorizonStakingBase", - "nameLocations": [ - "910:19:26" - ], + "nameLocations": ["910:19:26"], "nodeType": "IdentifierPath", "referencedDeclaration": 3046, "src": "910:19:26" @@ -31962,9 +31156,7 @@ "baseName": { "id": 2621, "name": "IHorizonStakingMain", - "nameLocations": [ - "931:19:26" - ], + "nameLocations": ["931:19:26"], "nodeType": "IdentifierPath", "referencedDeclaration": 3937, "src": "931:19:26" @@ -31977,9 +31169,7 @@ "baseName": { "id": 2623, "name": "IHorizonStakingExtension", - "nameLocations": [ - "952:24:26" - ], + "nameLocations": ["952:24:26"], "nodeType": "IdentifierPath", "referencedDeclaration": 3226, "src": "952:24:26" @@ -32000,14 +31190,7 @@ }, "fullyImplemented": false, "id": 2625, - "linearizedBaseContracts": [ - 2625, - 3226, - 561, - 3937, - 3046, - 4073 - ], + "linearizedBaseContracts": [2625, 3226, 561, 3937, 3046, 4073], "name": "IHorizonStaking", "nameLocation": "869:15:26", "nodeType": "ContractDefinition", @@ -32015,67 +31198,12 @@ "scope": 2626, "src": "859:120:26", "usedErrors": [ - 2877, - 3500, - 3507, - 3514, - 3521, - 3530, - 3535, - 3540, - 3547, - 3550, - 3557, - 3564, - 3571, - 3574, - 3581, - 3588, - 3595, - 3602, - 3605, - 3608, - 3611, - 3614, - 3617, - 3622, - 3627, - 3630, - 3635, - 3638, - 3641 + 2877, 3500, 3507, 3514, 3521, 3530, 3535, 3540, 3547, 3550, 3557, 3564, 3571, 3574, 3581, 3588, 3595, + 3602, 3605, 3608, 3611, 3614, 3617, 3622, 3627, 3630, 3635, 3638, 3641 ], "usedEvents": [ - 2874, - 3097, - 3122, - 3133, - 3242, - 3249, - 3262, - 3271, - 3280, - 3289, - 3300, - 3311, - 3322, - 3331, - 3340, - 3349, - 3360, - 3373, - 3386, - 3397, - 3406, - 3415, - 3427, - 3447, - 3463, - 3479, - 3484, - 3491, - 3494, - 3497 + 2874, 3097, 3122, 3133, 3242, 3249, 3262, 3271, 3280, 3289, 3300, 3311, 3322, 3331, 3340, 3349, 3360, + 3373, 3386, 3397, 3406, 3415, 3427, 3447, 3463, 3479, 3484, 3491, 3494, 3497 ] } ], @@ -32087,12 +31215,8 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol", "exportedSymbols": { - "IGraphPayments": [ - 2489 - ], - "IPaymentsCollector": [ - 2658 - ] + "IGraphPayments": [2489], + "IPaymentsCollector": [2658] }, "id": 2659, "license": "GPL-2.0-or-later", @@ -32100,11 +31224,7 @@ "nodes": [ { "id": 2627, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:27" }, @@ -32147,9 +31267,7 @@ }, "fullyImplemented": false, "id": 2658, - "linearizedBaseContracts": [ - 2658 - ], + "linearizedBaseContracts": [2658], "name": "IPaymentsCollector", "nameLocation": "769:18:27", "nodeType": "ContractDefinition", @@ -32193,10 +31311,7 @@ "pathNode": { "id": 2632, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "1318:14:27", - "1333:12:27" - ], + "nameLocations": ["1318:14:27", "1333:12:27"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "1318:27:27" @@ -32398,10 +31513,7 @@ "pathNode": { "id": 2648, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "2161:14:27", - "2176:12:27" - ], + "nameLocations": ["2161:14:27", "2176:12:27"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "2161:27:27" @@ -32489,9 +31601,7 @@ "scope": 2659, "src": "759:1491:27", "usedErrors": [], - "usedEvents": [ - 2646 - ] + "usedEvents": [2646] } ], "src": "46:2205:27" @@ -32502,12 +31612,8 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol", "exportedSymbols": { - "IGraphPayments": [ - 2489 - ], - "IPaymentsEscrow": [ - 2858 - ] + "IGraphPayments": [2489], + "IPaymentsEscrow": [2858] }, "id": 2859, "license": "GPL-3.0-or-later", @@ -32515,11 +31621,7 @@ "nodes": [ { "id": 2660, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:28" }, @@ -32562,9 +31664,7 @@ }, "fullyImplemented": false, "id": 2858, - "linearizedBaseContracts": [ - 2858 - ], + "linearizedBaseContracts": [2858], "name": "IPaymentsEscrow", "nameLocation": "908:15:28", "nodeType": "ContractDefinition", @@ -33311,10 +32411,7 @@ "pathNode": { "id": 2721, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "3969:14:28", - "3984:12:28" - ], + "nameLocations": ["3969:14:28", "3984:12:28"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "3969:27:28" @@ -34496,10 +33593,7 @@ "pathNode": { "id": 2828, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "9339:14:28", - "9354:12:28" - ], + "nameLocations": ["9339:14:28", "9354:12:28"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "9339:27:28" @@ -34843,22 +33937,8 @@ ], "scope": 2859, "src": "898:9181:28", - "usedErrors": [ - 2738, - 2745, - 2748, - 2755, - 2762, - 2771, - 2774 - ], - "usedEvents": [ - 2682, - 2695, - 2708, - 2719, - 2735 - ] + "usedErrors": [2738, 2745, 2748, 2755, 2762, 2771, 2774], + "usedEvents": [2682, 2695, 2708, 2719, 2735] } ], "src": "45:10035:28" @@ -34869,18 +33949,10 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol", "exportedSymbols": { - "IGraphPayments": [ - 2489 - ], - "IHorizonStakingBase": [ - 3046 - ], - "IHorizonStakingTypes": [ - 4073 - ], - "LinkedList": [ - 4364 - ] + "IGraphPayments": [2489], + "IHorizonStakingBase": [3046], + "IHorizonStakingTypes": [4073], + "LinkedList": [4364] }, "id": 3047, "license": "GPL-2.0-or-later", @@ -34888,11 +33960,7 @@ "nodes": [ { "id": 2860, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:29" }, @@ -34985,9 +34053,7 @@ }, "fullyImplemented": false, "id": 3046, - "linearizedBaseContracts": [ - 3046 - ], + "linearizedBaseContracts": [3046], "name": "IHorizonStakingBase", "nameLocation": "732:19:29", "nodeType": "ContractDefinition", @@ -35166,10 +34232,7 @@ "pathNode": { "id": 2882, "name": "IHorizonStakingTypes.ServiceProvider", - "nameLocations": [ - "1670:20:29", - "1691:15:29" - ], + "nameLocations": ["1670:20:29", "1691:15:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 3968, "src": "1670:36:29" @@ -35475,10 +34538,7 @@ "pathNode": { "id": 2909, "name": "IHorizonStakingTypes.DelegationPool", - "nameLocations": [ - "2729:20:29", - "2750:14:29" - ], + "nameLocations": ["2729:20:29", "2750:14:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 3992, "src": "2729:35:29" @@ -35632,10 +34692,7 @@ "pathNode": { "id": 2922, "name": "IHorizonStakingTypes.Delegation", - "nameLocations": [ - "3194:20:29", - "3215:10:29" - ], + "nameLocations": ["3194:20:29", "3215:10:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 4021, "src": "3194:31:29" @@ -35754,10 +34811,7 @@ "pathNode": { "id": 2932, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "3669:14:29", - "3684:12:29" - ], + "nameLocations": ["3669:14:29", "3684:12:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "3669:27:29" @@ -35917,10 +34971,7 @@ "pathNode": { "id": 2946, "name": "IHorizonStakingTypes.Provision", - "nameLocations": [ - "4084:20:29", - "4105:9:29" - ], + "nameLocations": ["4084:20:29", "4105:9:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "4084:30:29" @@ -36364,10 +35415,7 @@ "pathNode": { "id": 2984, "name": "IHorizonStakingTypes.ThawRequestType", - "nameLocations": [ - "5984:20:29", - "6005:15:29" - ], + "nameLocations": ["5984:20:29", "6005:15:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 4033, "src": "5984:36:29" @@ -36436,10 +35484,7 @@ "pathNode": { "id": 2990, "name": "IHorizonStakingTypes.ThawRequest", - "nameLocations": [ - "6097:20:29", - "6118:11:29" - ], + "nameLocations": ["6097:20:29", "6118:11:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 4043, "src": "6097:32:29" @@ -36502,10 +35547,7 @@ "pathNode": { "id": 2996, "name": "IHorizonStakingTypes.ThawRequestType", - "nameLocations": [ - "6771:20:29", - "6792:15:29" - ], + "nameLocations": ["6771:20:29", "6792:15:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 4033, "src": "6771:36:29" @@ -36631,10 +35673,7 @@ "pathNode": { "id": 3006, "name": "LinkedList.List", - "nameLocations": [ - "6935:10:29", - "6946:4:29" - ], + "nameLocations": ["6935:10:29", "6946:4:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "6935:15:29" @@ -36697,10 +35736,7 @@ "pathNode": { "id": 3012, "name": "IHorizonStakingTypes.ThawRequestType", - "nameLocations": [ - "7874:20:29", - "7895:15:29" - ], + "nameLocations": ["7874:20:29", "7895:15:29"], "nodeType": "IdentifierPath", "referencedDeclaration": 4033, "src": "7874:36:29" @@ -37056,12 +36092,8 @@ ], "scope": 3047, "src": "722:8084:29", - "usedErrors": [ - 2877 - ], - "usedEvents": [ - 2874 - ] + "usedErrors": [2877], + "usedEvents": [2874] } ], "src": "46:8761:29" @@ -37072,12 +36104,8 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol", "exportedSymbols": { - "IHorizonStakingExtension": [ - 3226 - ], - "IRewardsIssuer": [ - 561 - ] + "IHorizonStakingExtension": [3226], + "IRewardsIssuer": [561] }, "id": 3227, "license": "GPL-2.0-or-later", @@ -37085,11 +36113,7 @@ "nodes": [ { "id": 3048, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:30" }, @@ -37125,9 +36149,7 @@ "baseName": { "id": 3052, "name": "IRewardsIssuer", - "nameLocations": [ - "477:14:30" - ], + "nameLocations": ["477:14:30"], "nodeType": "IdentifierPath", "referencedDeclaration": 561, "src": "477:14:30" @@ -37148,10 +36170,7 @@ }, "fullyImplemented": false, "id": 3226, - "linearizedBaseContracts": [ - 3226, - 561 - ], + "linearizedBaseContracts": [3226, 561], "name": "IHorizonStakingExtension", "nameLocation": "449:24:30", "nodeType": "ContractDefinition", @@ -38868,9 +37887,7 @@ "pathNode": { "id": 3192, "name": "Allocation", - "nameLocations": [ - "8362:10:30" - ], + "nameLocations": ["8362:10:30"], "nodeType": "IdentifierPath", "referencedDeclaration": 3073, "src": "8362:10:30" @@ -38968,9 +37985,7 @@ "pathNode": { "id": 3201, "name": "AllocationState", - "nameLocations": [ - "8651:15:30" - ], + "nameLocations": ["8651:15:30"], "nodeType": "IdentifierPath", "referencedDeclaration": 3078, "src": "8651:15:30" @@ -39210,11 +38225,7 @@ "scope": 3227, "src": "439:9047:30", "usedErrors": [], - "usedEvents": [ - 3097, - 3122, - 3133 - ] + "usedEvents": [3097, 3122, 3133] } ], "src": "46:9441:30" @@ -39225,15 +38236,9 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol", "exportedSymbols": { - "IGraphPayments": [ - 2489 - ], - "IHorizonStakingMain": [ - 3937 - ], - "IHorizonStakingTypes": [ - 4073 - ] + "IGraphPayments": [2489], + "IHorizonStakingMain": [3937], + "IHorizonStakingTypes": [4073] }, "id": 3938, "license": "GPL-2.0-or-later", @@ -39241,11 +38246,7 @@ "nodes": [ { "id": 3228, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:31" }, @@ -39313,9 +38314,7 @@ }, "fullyImplemented": false, "id": 3937, - "linearizedBaseContracts": [ - 3937 - ], + "linearizedBaseContracts": [3937], "name": "IHorizonStakingMain", "nameLocation": "1042:19:31", "nodeType": "ContractDefinition", @@ -41644,10 +40643,7 @@ "pathNode": { "id": 3421, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "10565:14:31", - "10580:12:31" - ], + "nameLocations": ["10565:14:31", "10580:12:31"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "10565:27:31" @@ -41733,10 +40729,7 @@ "pathNode": { "id": 3429, "name": "IHorizonStakingTypes.ThawRequestType", - "nameLocations": [ - "11354:20:31", - "11375:15:31" - ], + "nameLocations": ["11354:20:31", "11375:15:31"], "nodeType": "IdentifierPath", "referencedDeclaration": 4033, "src": "11354:36:31" @@ -41993,10 +40986,7 @@ "pathNode": { "id": 3449, "name": "IHorizonStakingTypes.ThawRequestType", - "nameLocations": [ - "12138:20:31", - "12159:15:31" - ], + "nameLocations": ["12138:20:31", "12159:15:31"], "nodeType": "IdentifierPath", "referencedDeclaration": 4033, "src": "12138:36:31" @@ -42194,10 +41184,7 @@ "pathNode": { "id": 3465, "name": "IHorizonStakingTypes.ThawRequestType", - "nameLocations": [ - "12836:20:31", - "12857:15:31" - ], + "nameLocations": ["12836:20:31", "12857:15:31"], "nodeType": "IdentifierPath", "referencedDeclaration": 4033, "src": "12836:36:31" @@ -46009,10 +44996,7 @@ "pathNode": { "id": 3817, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "36317:14:31", - "36332:12:31" - ], + "nameLocations": ["36317:14:31", "36332:12:31"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "36317:27:31" @@ -47341,62 +46325,12 @@ "scope": 3938, "src": "1032:42387:31", "usedErrors": [ - 3500, - 3507, - 3514, - 3521, - 3530, - 3535, - 3540, - 3547, - 3550, - 3557, - 3564, - 3571, - 3574, - 3581, - 3588, - 3595, - 3602, - 3605, - 3608, - 3611, - 3614, - 3617, - 3622, - 3627, - 3630, - 3635, - 3638, - 3641 + 3500, 3507, 3514, 3521, 3530, 3535, 3540, 3547, 3550, 3557, 3564, 3571, 3574, 3581, 3588, 3595, 3602, + 3605, 3608, 3611, 3614, 3617, 3622, 3627, 3630, 3635, 3638, 3641 ], "usedEvents": [ - 3242, - 3249, - 3262, - 3271, - 3280, - 3289, - 3300, - 3311, - 3322, - 3331, - 3340, - 3349, - 3360, - 3373, - 3386, - 3397, - 3406, - 3415, - 3427, - 3447, - 3463, - 3479, - 3484, - 3491, - 3494, - 3497 + 3242, 3249, 3262, 3271, 3280, 3289, 3300, 3311, 3322, 3331, 3340, 3349, 3360, 3373, 3386, 3397, 3406, + 3415, 3427, 3447, 3463, 3479, 3484, 3491, 3494, 3497 ] } ], @@ -47408,9 +46342,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", "exportedSymbols": { - "IHorizonStakingTypes": [ - 4073 - ] + "IHorizonStakingTypes": [4073] }, "id": 4074, "license": "GPL-2.0-or-later", @@ -47418,11 +46350,7 @@ "nodes": [ { "id": 3939, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:32" }, @@ -47440,9 +46368,7 @@ }, "fullyImplemented": true, "id": 4073, - "linearizedBaseContracts": [ - 4073 - ], + "linearizedBaseContracts": [4073], "name": "IHorizonStakingTypes", "nameLocation": "634:20:32", "nodeType": "ContractDefinition", @@ -48328,9 +47254,7 @@ "pathNode": { "id": 4007, "name": "DelegationInternal", - "nameLocations": [ - "5793:18:32" - ], + "nameLocations": ["5793:18:32"], "nodeType": "IdentifierPath", "referencedDeclaration": 4029, "src": "5793:18:32" @@ -48765,9 +47689,7 @@ "pathNode": { "id": 4045, "name": "ThawRequestType", - "nameLocations": [ - "8582:15:32" - ], + "nameLocations": ["8582:15:32"], "nodeType": "IdentifierPath", "referencedDeclaration": 4033, "src": "8582:15:32" @@ -49122,9 +48044,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", "exportedSymbols": { - "LinkedList": [ - 4364 - ] + "LinkedList": [4364] }, "id": 4365, "license": "GPL-2.0-or-later", @@ -49132,11 +48052,7 @@ "nodes": [ { "id": 4075, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:33" }, @@ -49154,9 +48070,7 @@ }, "fullyImplemented": true, "id": 4364, - "linearizedBaseContracts": [ - 4364 - ], + "linearizedBaseContracts": [4364], "name": "LinkedList", "nameLocation": "794:10:33", "nodeType": "ContractDefinition", @@ -49167,9 +48081,7 @@ "libraryName": { "id": 4077, "name": "LinkedList", - "nameLocations": [ - "817:10:33" - ], + "nameLocations": ["817:10:33"], "nodeType": "IdentifierPath", "referencedDeclaration": 4364, "src": "817:10:33" @@ -49182,9 +48094,7 @@ "pathNode": { "id": 4078, "name": "List", - "nameLocations": [ - "832:4:33" - ], + "nameLocations": ["832:4:33"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "832:4:33" @@ -49659,11 +48569,7 @@ "id": 4122, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2513:7:33", "typeDescriptions": { @@ -49831,11 +48737,7 @@ "id": 4131, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2587:7:33", "typeDescriptions": { @@ -50214,9 +49116,7 @@ "pathNode": { "id": 4115, "name": "List", - "nameLocations": [ - "2463:4:33" - ], + "nameLocations": ["2463:4:33"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "2463:4:33" @@ -50389,11 +49289,7 @@ "id": 4195, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3478:7:33", "typeDescriptions": { @@ -50422,9 +49318,7 @@ "src": "3478:46:33" }, { - "assignments": [ - 4205 - ], + "assignments": [4205], "declarations": [ { "constant": false, @@ -50964,9 +49858,7 @@ "pathNode": { "id": 4174, "name": "List", - "nameLocations": [ - "3317:4:33" - ], + "nameLocations": ["3317:4:33"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "3317:4:33" @@ -51300,11 +50192,7 @@ "id": 4287, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5152:7:33", "typeDescriptions": { @@ -51333,9 +50221,7 @@ "src": "5152:64:33" }, { - "assignments": [ - 4297 - ], + "assignments": [4297], "declarations": [ { "constant": false, @@ -51532,9 +50418,7 @@ "src": "5258:56:33" }, { - "assignments": [ - 4312 - ], + "assignments": [4312], "declarations": [ { "constant": false, @@ -51603,10 +50487,7 @@ "src": "5409:288:33", "statements": [ { - "assignments": [ - 4327, - 4329 - ], + "assignments": [4327, 4329], "declarations": [ { "constant": false, @@ -52220,9 +51101,7 @@ "pathNode": { "id": 4248, "name": "List", - "nameLocations": [ - "4830:4:33" - ], + "nameLocations": ["4830:4:33"], "nodeType": "IdentifierPath", "referencedDeclaration": 4090, "src": "4830:4:33" @@ -52677,12 +51556,7 @@ ], "scope": 4365, "src": "786:4964:33", - "usedErrors": [ - 4104, - 4107, - 4110, - 4113 - ], + "usedErrors": [4104, 4107, 4110, 4113], "usedEvents": [] } ], @@ -52694,9 +51568,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/libraries/MathUtils.sol", "exportedSymbols": { - "MathUtils": [ - 4445 - ] + "MathUtils": [4445] }, "id": 4446, "license": "GPL-2.0-or-later", @@ -52704,11 +51576,7 @@ "nodes": [ { "id": 4366, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:34" }, @@ -52726,9 +51594,7 @@ }, "fullyImplemented": true, "id": 4445, - "linearizedBaseContracts": [ - 4445 - ], + "linearizedBaseContracts": [4445], "name": "MathUtils", "nameLocation": "319:9:34", "nodeType": "ContractDefinition", @@ -53730,9 +52596,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", "exportedSymbols": { - "PPMMath": [ - 4539 - ] + "PPMMath": [4539] }, "id": 4540, "license": "GPL-3.0-or-later", @@ -53740,11 +52604,7 @@ "nodes": [ { "id": 4447, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:35" }, @@ -53762,9 +52622,7 @@ }, "fullyImplemented": true, "id": 4539, - "linearizedBaseContracts": [ - 4539 - ], + "linearizedBaseContracts": [4539], "name": "PPMMath", "nameLocation": "337:7:35", "nodeType": "ContractDefinition", @@ -54146,11 +53004,7 @@ "id": 4474, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "1179:7:35", "typeDescriptions": { @@ -54510,11 +53364,7 @@ "id": 4506, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "1675:7:35", "typeDescriptions": { @@ -54935,10 +53785,7 @@ ], "scope": 4540, "src": "329:1769:35", - "usedErrors": [ - 4457, - 4464 - ], + "usedErrors": [4457, 4464], "usedEvents": [] } ], @@ -54950,9 +53797,7 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/libraries/UintRange.sol", "exportedSymbols": { - "UintRange": [ - 4564 - ] + "UintRange": [4564] }, "id": 4565, "license": "GPL-3.0-or-later", @@ -54960,11 +53805,7 @@ "nodes": [ { "id": 4541, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:36" }, @@ -54982,9 +53823,7 @@ }, "fullyImplemented": true, "id": 4564, - "linearizedBaseContracts": [ - 4564 - ], + "linearizedBaseContracts": [4564], "name": "UintRange", "nameLocation": "320:9:36", "nodeType": "ContractDefinition", @@ -55261,39 +54100,17 @@ "ast": { "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", "exportedSymbols": { - "GraphDirectory": [ - 4928 - ], - "IController": [ - 441 - ], - "ICuration": [ - 165 - ], - "IEpochManager": [ - 369 - ], - "IGraphPayments": [ - 2489 - ], - "IGraphProxyAdmin": [ - 2493 - ], - "IGraphToken": [ - 758 - ], - "IHorizonStaking": [ - 2625 - ], - "IPaymentsEscrow": [ - 2858 - ], - "IRewardsManager": [ - 678 - ], - "ITokenGateway": [ - 41 - ] + "GraphDirectory": [4928], + "IController": [441], + "ICuration": [165], + "IEpochManager": [369], + "IGraphPayments": [2489], + "IGraphProxyAdmin": [2493], + "IGraphToken": [758], + "IHorizonStaking": [2625], + "IPaymentsEscrow": [2858], + "IRewardsManager": [678], + "ITokenGateway": [41] }, "id": 4929, "license": "GPL-2.0-or-later", @@ -55301,11 +54118,7 @@ "nodes": [ { "id": 4566, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:37" }, @@ -55573,9 +54386,7 @@ }, "fullyImplemented": true, "id": 4928, - "linearizedBaseContracts": [ - 4928 - ], + "linearizedBaseContracts": [4928], "name": "GraphDirectory", "nameLocation": "1238:14:37", "nodeType": "ContractDefinition", @@ -55607,9 +54418,7 @@ "pathNode": { "id": 4589, "name": "IGraphToken", - "nameLocations": [ - "1346:11:37" - ], + "nameLocations": ["1346:11:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 758, "src": "1346:11:37" @@ -55650,9 +54459,7 @@ "pathNode": { "id": 4593, "name": "IHorizonStaking", - "nameLocations": [ - "1447:15:37" - ], + "nameLocations": ["1447:15:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2625, "src": "1447:15:37" @@ -55693,9 +54500,7 @@ "pathNode": { "id": 4597, "name": "IGraphPayments", - "nameLocations": [ - "1553:14:37" - ], + "nameLocations": ["1553:14:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2489, "src": "1553:14:37" @@ -55736,9 +54541,7 @@ "pathNode": { "id": 4601, "name": "IPaymentsEscrow", - "nameLocations": [ - "1660:15:37" - ], + "nameLocations": ["1660:15:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2858, "src": "1660:15:37" @@ -55779,9 +54582,7 @@ "pathNode": { "id": 4605, "name": "IController", - "nameLocations": [ - "1816:11:37" - ], + "nameLocations": ["1816:11:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 441, "src": "1816:11:37" @@ -55822,9 +54623,7 @@ "pathNode": { "id": 4609, "name": "IEpochManager", - "nameLocations": [ - "1920:13:37" - ], + "nameLocations": ["1920:13:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 369, "src": "1920:13:37" @@ -55865,9 +54664,7 @@ "pathNode": { "id": 4613, "name": "IRewardsManager", - "nameLocations": [ - "2031:15:37" - ], + "nameLocations": ["2031:15:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 678, "src": "2031:15:37" @@ -55908,9 +54705,7 @@ "pathNode": { "id": 4617, "name": "ITokenGateway", - "nameLocations": [ - "2144:13:37" - ], + "nameLocations": ["2144:13:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 41, "src": "2144:13:37" @@ -55951,9 +54746,7 @@ "pathNode": { "id": 4621, "name": "IGraphProxyAdmin", - "nameLocations": [ - "2257:16:37" - ], + "nameLocations": ["2257:16:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2493, "src": "2257:16:37" @@ -55994,9 +54787,7 @@ "pathNode": { "id": 4625, "name": "ICuration", - "nameLocations": [ - "2559:9:37" - ], + "nameLocations": ["2559:9:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 165, "src": "2559:9:37" @@ -56538,11 +55329,7 @@ "id": 4661, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "4347:7:37", "typeDescriptions": { @@ -58519,9 +57306,7 @@ "pathNode": { "id": 4798, "name": "IGraphToken", - "nameLocations": [ - "5871:11:37" - ], + "nameLocations": ["5871:11:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 758, "src": "5871:11:37" @@ -58614,9 +57399,7 @@ "pathNode": { "id": 4808, "name": "IHorizonStaking", - "nameLocations": [ - "6081:15:37" - ], + "nameLocations": ["6081:15:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2625, "src": "6081:15:37" @@ -58709,9 +57492,7 @@ "pathNode": { "id": 4818, "name": "IGraphPayments", - "nameLocations": [ - "6296:14:37" - ], + "nameLocations": ["6296:14:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2489, "src": "6296:14:37" @@ -58804,9 +57585,7 @@ "pathNode": { "id": 4828, "name": "IPaymentsEscrow", - "nameLocations": [ - "6519:15:37" - ], + "nameLocations": ["6519:15:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2858, "src": "6519:15:37" @@ -58899,9 +57678,7 @@ "pathNode": { "id": 4838, "name": "IController", - "nameLocations": [ - "6748:11:37" - ], + "nameLocations": ["6748:11:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 441, "src": "6748:11:37" @@ -58994,9 +57771,7 @@ "pathNode": { "id": 4848, "name": "IEpochManager", - "nameLocations": [ - "6964:13:37" - ], + "nameLocations": ["6964:13:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 369, "src": "6964:13:37" @@ -59089,9 +57864,7 @@ "pathNode": { "id": 4858, "name": "IRewardsManager", - "nameLocations": [ - "7199:15:37" - ], + "nameLocations": ["7199:15:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 678, "src": "7199:15:37" @@ -59184,9 +57957,7 @@ "pathNode": { "id": 4868, "name": "ITokenGateway", - "nameLocations": [ - "7436:13:37" - ], + "nameLocations": ["7436:13:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 41, "src": "7436:13:37" @@ -59279,9 +58050,7 @@ "pathNode": { "id": 4878, "name": "IGraphProxyAdmin", - "nameLocations": [ - "7663:16:37" - ], + "nameLocations": ["7663:16:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 2493, "src": "7663:16:37" @@ -59374,9 +58143,7 @@ "pathNode": { "id": 4888, "name": "ICuration", - "nameLocations": [ - "7871:9:37" - ], + "nameLocations": ["7871:9:37"], "nodeType": "IdentifierPath", "referencedDeclaration": 165, "src": "7871:9:37" @@ -59406,9 +58173,7 @@ "src": "8312:231:37", "statements": [ { - "assignments": [ - 4904 - ], + "assignments": [4904], "declarations": [ { "constant": false, @@ -59703,11 +58468,7 @@ "id": 4912, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "8417:7:37", "typeDescriptions": { @@ -59846,12 +58607,8 @@ ], "scope": 4929, "src": "1220:7325:37", - "usedErrors": [ - 4655 - ], - "usedEvents": [ - 4650 - ] + "usedErrors": [4655], + "usedEvents": [4650] } ], "src": "46:8500:37" @@ -59862,15 +58619,9 @@ "ast": { "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", "exportedSymbols": { - "ContextUpgradeable": [ - 5437 - ], - "Initializable": [ - 5391 - ], - "OwnableUpgradeable": [ - 5123 - ] + "ContextUpgradeable": [5437], + "Initializable": [5391], + "OwnableUpgradeable": [5123] }, "id": 5124, "license": "MIT", @@ -59878,12 +58629,7 @@ "nodes": [ { "id": 4930, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "102:24:38" }, @@ -59944,9 +58690,7 @@ "baseName": { "id": 4936, "name": "Initializable", - "nameLocations": [ - "789:13:38" - ], + "nameLocations": ["789:13:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "789:13:38" @@ -59959,9 +58703,7 @@ "baseName": { "id": 4938, "name": "ContextUpgradeable", - "nameLocations": [ - "804:18:38" - ], + "nameLocations": ["804:18:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 5437, "src": "804:18:38" @@ -59982,11 +58724,7 @@ }, "fullyImplemented": true, "id": 5123, - "linearizedBaseContracts": [ - 5123, - 5437, - 5391 - ], + "linearizedBaseContracts": [5123, 5437, 5391], "name": "OwnableUpgradeable", "nameLocation": "767:18:38", "nodeType": "ContractDefinition", @@ -60175,9 +58913,7 @@ "pathNode": { "id": 4948, "name": "OwnableStorage", - "nameLocations": [ - "1244:14:38" - ], + "nameLocations": ["1244:14:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 4943, "src": "1244:14:38" @@ -60450,9 +59186,7 @@ "modifierName": { "id": 4975, "name": "onlyInitializing", - "nameLocations": [ - "1902:16:38" - ], + "nameLocations": ["1902:16:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "1902:16:38" @@ -60789,9 +59523,7 @@ "modifierName": { "id": 4987, "name": "onlyInitializing", - "nameLocations": [ - "2045:16:38" - ], + "nameLocations": ["2045:16:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "2045:16:38" @@ -60926,9 +59658,7 @@ "src": "2496:89:38", "statements": [ { - "assignments": [ - 5026 - ], + "assignments": [5026], "declarations": [ { "constant": false, @@ -60951,9 +59681,7 @@ "pathNode": { "id": 5024, "name": "OwnableStorage", - "nameLocations": [ - "2506:14:38" - ], + "nameLocations": ["2506:14:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 4943, "src": "2506:14:38" @@ -61432,9 +60160,7 @@ "modifierName": { "id": 5054, "name": "onlyOwner", - "nameLocations": [ - "3199:9:38" - ], + "nameLocations": ["3199:9:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "3199:9:38" @@ -61749,9 +60475,7 @@ "modifierName": { "id": 5070, "name": "onlyOwner", - "nameLocations": [ - "3465:9:38" - ], + "nameLocations": ["3465:9:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "3465:9:38" @@ -61817,9 +60541,7 @@ "src": "3837:185:38", "statements": [ { - "assignments": [ - 5101 - ], + "assignments": [5101], "declarations": [ { "constant": false, @@ -61842,9 +60564,7 @@ "pathNode": { "id": 5099, "name": "OwnableStorage", - "nameLocations": [ - "3847:14:38" - ], + "nameLocations": ["3847:14:38"], "nodeType": "IdentifierPath", "referencedDeclaration": 4943, "src": "3847:14:38" @@ -61895,9 +60615,7 @@ "src": "3847:47:38" }, { - "assignments": [ - 5106 - ], + "assignments": [5106], "declarations": [ { "constant": false, @@ -62154,16 +60872,8 @@ ], "scope": 5124, "src": "749:3275:38", - "usedErrors": [ - 4959, - 4964, - 5140, - 5143 - ], - "usedEvents": [ - 4970, - 5148 - ] + "usedErrors": [4959, 4964, 5140, 5143], + "usedEvents": [4970, 5148] } ], "src": "102:3923:38" @@ -62174,9 +60884,7 @@ "ast": { "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "exportedSymbols": { - "Initializable": [ - 5391 - ] + "Initializable": [5391] }, "id": 5392, "license": "MIT", @@ -62184,12 +60892,7 @@ "nodes": [ { "id": 5125, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "113:24:39" }, @@ -62207,9 +60910,7 @@ }, "fullyImplemented": true, "id": 5391, - "linearizedBaseContracts": [ - 5391 - ], + "linearizedBaseContracts": [5391], "name": "Initializable", "nameLocation": "2367:13:39", "nodeType": "ContractDefinition", @@ -62426,9 +61127,7 @@ "src": "4092:1079:39", "statements": [ { - "assignments": [ - 5153 - ], + "assignments": [5153], "declarations": [ { "constant": false, @@ -62451,9 +61150,7 @@ "pathNode": { "id": 5151, "name": "InitializableStorage", - "nameLocations": [ - "4158:20:39" - ], + "nameLocations": ["4158:20:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 5134, "src": "4158:20:39" @@ -62504,9 +61201,7 @@ "src": "4158:59:39" }, { - "assignments": [ - 5158 - ], + "assignments": [5158], "declarations": [ { "constant": false, @@ -62584,9 +61279,7 @@ "src": "4279:38:39" }, { - "assignments": [ - 5164 - ], + "assignments": [5164], "declarations": [ { "constant": false, @@ -62649,9 +61342,7 @@ "src": "4327:35:39" }, { - "assignments": [ - 5169 - ], + "assignments": [5169], "declarations": [ { "constant": false, @@ -62762,9 +61453,7 @@ "src": "4704:54:39" }, { - "assignments": [ - 5177 - ], + "assignments": [5177], "declarations": [ { "constant": false, @@ -63432,9 +62121,7 @@ "src": "6289:392:39", "statements": [ { - "assignments": [ - 5238 - ], + "assignments": [5238], "declarations": [ { "constant": false, @@ -63457,9 +62144,7 @@ "pathNode": { "id": 5236, "name": "InitializableStorage", - "nameLocations": [ - "6355:20:39" - ], + "nameLocations": ["6355:20:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 5134, "src": "6355:20:39" @@ -64164,9 +62849,7 @@ "src": "7758:373:39", "statements": [ { - "assignments": [ - 5305 - ], + "assignments": [5305], "declarations": [ { "constant": false, @@ -64189,9 +62872,7 @@ "pathNode": { "id": 5303, "name": "InitializableStorage", - "nameLocations": [ - "7824:20:39" - ], + "nameLocations": ["7824:20:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 5134, "src": "7824:20:39" @@ -65045,9 +63726,7 @@ "src": "9161:115:39", "statements": [ { - "assignments": [ - 5384 - ], + "assignments": [5384], "declarations": [ { "constant": false, @@ -65207,9 +63886,7 @@ "pathNode": { "id": 5379, "name": "InitializableStorage", - "nameLocations": [ - "9129:20:39" - ], + "nameLocations": ["9129:20:39"], "nodeType": "IdentifierPath", "referencedDeclaration": 5134, "src": "9129:20:39" @@ -65235,13 +63912,8 @@ ], "scope": 5392, "src": "2349:6929:39", - "usedErrors": [ - 5140, - 5143 - ], - "usedEvents": [ - 5148 - ] + "usedErrors": [5140, 5143], + "usedEvents": [5148] } ], "src": "113:9166:39" @@ -65252,12 +63924,8 @@ "ast": { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", "exportedSymbols": { - "ContextUpgradeable": [ - 5437 - ], - "Initializable": [ - 5391 - ] + "ContextUpgradeable": [5437], + "Initializable": [5391] }, "id": 5438, "license": "MIT", @@ -65265,12 +63933,7 @@ "nodes": [ { "id": 5393, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "101:24:40" }, @@ -65306,9 +63969,7 @@ "baseName": { "id": 5397, "name": "Initializable", - "nameLocations": [ - "728:13:40" - ], + "nameLocations": ["728:13:40"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "728:13:40" @@ -65329,10 +63990,7 @@ }, "fullyImplemented": true, "id": 5437, - "linearizedBaseContracts": [ - 5437, - 5391 - ], + "linearizedBaseContracts": [5437, 5391], "name": "ContextUpgradeable", "nameLocation": "706:18:40", "nodeType": "ContractDefinition", @@ -65354,9 +64012,7 @@ "modifierName": { "id": 5400, "name": "onlyInitializing", - "nameLocations": [ - "783:16:40" - ], + "nameLocations": ["783:16:40"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "783:16:40" @@ -65403,9 +64059,7 @@ "modifierName": { "id": 5406, "name": "onlyInitializing", - "nameLocations": [ - "858:16:40" - ], + "nameLocations": ["858:16:40"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "858:16:40" @@ -65710,13 +64364,8 @@ ], "scope": 5438, "src": "688:505:40", - "usedErrors": [ - 5140, - 5143 - ], - "usedEvents": [ - 5148 - ] + "usedErrors": [5140, 5143], + "usedEvents": [5148] } ], "src": "101:1093:40" @@ -65727,18 +64376,10 @@ "ast": { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", "exportedSymbols": { - "Address": [ - 6407 - ], - "ContextUpgradeable": [ - 5437 - ], - "Initializable": [ - 5391 - ], - "MulticallUpgradeable": [ - 5540 - ] + "Address": [6407], + "ContextUpgradeable": [5437], + "Initializable": [5391], + "MulticallUpgradeable": [5540] }, "id": 5541, "license": "MIT", @@ -65746,12 +64387,7 @@ "nodes": [ { "id": 5439, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "103:24:41" }, @@ -65837,9 +64473,7 @@ "baseName": { "id": 5447, "name": "Initializable", - "nameLocations": [ - "1178:13:41" - ], + "nameLocations": ["1178:13:41"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "1178:13:41" @@ -65852,9 +64486,7 @@ "baseName": { "id": 5449, "name": "ContextUpgradeable", - "nameLocations": [ - "1193:18:41" - ], + "nameLocations": ["1193:18:41"], "nodeType": "IdentifierPath", "referencedDeclaration": 5437, "src": "1193:18:41" @@ -65875,11 +64507,7 @@ }, "fullyImplemented": true, "id": 5540, - "linearizedBaseContracts": [ - 5540, - 5437, - 5391 - ], + "linearizedBaseContracts": [5540, 5437, 5391], "name": "MulticallUpgradeable", "nameLocation": "1154:20:41", "nodeType": "ContractDefinition", @@ -65901,9 +64529,7 @@ "modifierName": { "id": 5452, "name": "onlyInitializing", - "nameLocations": [ - "1255:16:41" - ], + "nameLocations": ["1255:16:41"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "1255:16:41" @@ -65950,9 +64576,7 @@ "modifierName": { "id": 5458, "name": "onlyInitializing", - "nameLocations": [ - "1332:16:41" - ], + "nameLocations": ["1332:16:41"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "1332:16:41" @@ -65989,9 +64613,7 @@ "src": "1610:392:41", "statements": [ { - "assignments": [ - 5473 - ], + "assignments": [5473], "declarations": [ { "constant": false, @@ -66774,9 +65396,7 @@ }, "id": 5535, "initializationExpression": { - "assignments": [ - 5504 - ], + "assignments": [5504], "declarations": [ { "constant": false, @@ -66991,15 +65611,8 @@ ], "scope": 5541, "src": "1136:868:41", - "usedErrors": [ - 5140, - 5143, - 6157, - 6420 - ], - "usedEvents": [ - 5148 - ] + "usedErrors": [5140, 5143, 6157, 6420], + "usedEvents": [5148] } ], "src": "103:1902:41" @@ -67010,15 +65623,9 @@ "ast": { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol", "exportedSymbols": { - "ContextUpgradeable": [ - 5437 - ], - "Initializable": [ - 5391 - ], - "PausableUpgradeable": [ - 5700 - ] + "ContextUpgradeable": [5437], + "Initializable": [5391], + "PausableUpgradeable": [5700] }, "id": 5701, "license": "MIT", @@ -67026,12 +65633,7 @@ "nodes": [ { "id": 5542, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "102:24:42" }, @@ -67092,9 +65694,7 @@ "baseName": { "id": 5548, "name": "Initializable", - "nameLocations": [ - "742:13:42" - ], + "nameLocations": ["742:13:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "742:13:42" @@ -67107,9 +65707,7 @@ "baseName": { "id": 5550, "name": "ContextUpgradeable", - "nameLocations": [ - "757:18:42" - ], + "nameLocations": ["757:18:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5437, "src": "757:18:42" @@ -67130,11 +65728,7 @@ }, "fullyImplemented": true, "id": 5700, - "linearizedBaseContracts": [ - 5700, - 5437, - 5391 - ], + "linearizedBaseContracts": [5700, 5437, 5391], "name": "PausableUpgradeable", "nameLocation": "719:19:42", "nodeType": "ContractDefinition", @@ -67322,9 +65916,7 @@ "pathNode": { "id": 5560, "name": "PausableStorage", - "nameLocations": [ - "1200:15:42" - ], + "nameLocations": ["1200:15:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5555, "src": "1200:15:42" @@ -67644,9 +66236,7 @@ "modifierName": { "id": 5600, "name": "onlyInitializing", - "nameLocations": [ - "2302:16:42" - ], + "nameLocations": ["2302:16:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "2302:16:42" @@ -67693,9 +66283,7 @@ "modifierName": { "id": 5606, "name": "onlyInitializing", - "nameLocations": [ - "2378:16:42" - ], + "nameLocations": ["2378:16:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "2378:16:42" @@ -67732,9 +66320,7 @@ "src": "2549:92:42", "statements": [ { - "assignments": [ - 5618 - ], + "assignments": [5618], "declarations": [ { "constant": false, @@ -67757,9 +66343,7 @@ "pathNode": { "id": 5616, "name": "PausableStorage", - "nameLocations": [ - "2559:15:42" - ], + "nameLocations": ["2559:15:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5555, "src": "2559:15:42" @@ -68163,9 +66747,7 @@ "src": "3219:127:42", "statements": [ { - "assignments": [ - 5659 - ], + "assignments": [5659], "declarations": [ { "constant": false, @@ -68188,9 +66770,7 @@ "pathNode": { "id": 5657, "name": "PausableStorage", - "nameLocations": [ - "3229:15:42" - ], + "nameLocations": ["3229:15:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5555, "src": "3229:15:42" @@ -68394,9 +66974,7 @@ "modifierName": { "id": 5654, "name": "whenNotPaused", - "nameLocations": [ - "3205:13:42" - ], + "nameLocations": ["3205:13:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5590, "src": "3205:13:42" @@ -68433,9 +67011,7 @@ "src": "3526:130:42", "statements": [ { - "assignments": [ - 5683 - ], + "assignments": [5683], "declarations": [ { "constant": false, @@ -68458,9 +67034,7 @@ "pathNode": { "id": 5681, "name": "PausableStorage", - "nameLocations": [ - "3536:15:42" - ], + "nameLocations": ["3536:15:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5555, "src": "3536:15:42" @@ -68664,9 +67238,7 @@ "modifierName": { "id": 5678, "name": "whenPaused", - "nameLocations": [ - "3515:10:42" - ], + "nameLocations": ["3515:10:42"], "nodeType": "IdentifierPath", "referencedDeclaration": 5598, "src": "3515:10:42" @@ -68699,17 +67271,8 @@ ], "scope": 5701, "src": "701:2957:42", - "usedErrors": [ - 5140, - 5143, - 5579, - 5582 - ], - "usedEvents": [ - 5148, - 5571, - 5576 - ] + "usedErrors": [5140, 5143, 5579, 5582], + "usedEvents": [5148, 5571, 5576] } ], "src": "102:3557:42" @@ -68720,18 +67283,10 @@ "ast": { "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", "exportedSymbols": { - "EIP712Upgradeable": [ - 6044 - ], - "IERC5267": [ - 6069 - ], - "Initializable": [ - 5391 - ], - "MessageHashUtils": [ - 8317 - ] + "EIP712Upgradeable": [6044], + "IERC5267": [6069], + "Initializable": [5391], + "MessageHashUtils": [8317] }, "id": 6045, "license": "MIT", @@ -68739,12 +67294,7 @@ "nodes": [ { "id": 5702, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "113:24:43" }, @@ -68830,9 +67380,7 @@ "baseName": { "id": 5710, "name": "Initializable", - "nameLocations": [ - "1998:13:43" - ], + "nameLocations": ["1998:13:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "1998:13:43" @@ -68845,9 +67393,7 @@ "baseName": { "id": 5712, "name": "IERC5267", - "nameLocations": [ - "2013:8:43" - ], + "nameLocations": ["2013:8:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 6069, "src": "2013:8:43" @@ -68868,11 +67414,7 @@ }, "fullyImplemented": true, "id": 6044, - "linearizedBaseContracts": [ - 6044, - 6069, - 5391 - ], + "linearizedBaseContracts": [6044, 6069, 5391], "name": "EIP712Upgradeable", "nameLocation": "1977:17:43", "nodeType": "ContractDefinition", @@ -69221,9 +67763,7 @@ "pathNode": { "id": 5735, "name": "EIP712Storage", - "nameLocations": [ - "2771:13:43" - ], + "nameLocations": ["2771:13:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5730, "src": "2771:13:43" @@ -69340,9 +67880,7 @@ "modifierName": { "id": 5748, "name": "onlyInitializing", - "nameLocations": [ - "3521:16:43" - ], + "nameLocations": ["3521:16:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "3521:16:43" @@ -69434,9 +67972,7 @@ "src": "3701:228:43", "statements": [ { - "assignments": [ - 5768 - ], + "assignments": [5768], "declarations": [ { "constant": false, @@ -69459,9 +67995,7 @@ "pathNode": { "id": 5766, "name": "EIP712Storage", - "nameLocations": [ - "3711:13:43" - ], + "nameLocations": ["3711:13:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5730, "src": "3711:13:43" @@ -69767,9 +68301,7 @@ "modifierName": { "id": 5763, "name": "onlyInitializing", - "nameLocations": [ - "3684:16:43" - ], + "nameLocations": ["3684:16:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "3684:16:43" @@ -70490,18 +69022,14 @@ "visibility": "internal" }, { - "baseFunctions": [ - 6068 - ], + "baseFunctions": [6068], "body": { "id": 5906, "nodeType": "Block", "src": "5500:575:43", "statements": [ { - "assignments": [ - 5867 - ], + "assignments": [5867], "declarations": [ { "constant": false, @@ -70524,9 +69052,7 @@ "pathNode": { "id": 5865, "name": "EIP712Storage", - "nameLocations": [ - "5510:13:43" - ], + "nameLocations": ["5510:13:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5730, "src": "5510:13:43" @@ -70752,11 +69278,7 @@ "id": 5871, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5768:7:43", "typeDescriptions": { @@ -71343,9 +69865,7 @@ "src": "6368:86:43", "statements": [ { - "assignments": [ - 5915 - ], + "assignments": [5915], "declarations": [ { "constant": false, @@ -71368,9 +69888,7 @@ "pathNode": { "id": 5913, "name": "EIP712Storage", - "nameLocations": [ - "6378:13:43" - ], + "nameLocations": ["6378:13:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5730, "src": "6378:13:43" @@ -71522,9 +70040,7 @@ "src": "6753:89:43", "statements": [ { - "assignments": [ - 5931 - ], + "assignments": [5931], "declarations": [ { "constant": false, @@ -71547,9 +70063,7 @@ "pathNode": { "id": 5929, "name": "EIP712Storage", - "nameLocations": [ - "6763:13:43" - ], + "nameLocations": ["6763:13:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5730, "src": "6763:13:43" @@ -71701,9 +70215,7 @@ "src": "7116:628:43", "statements": [ { - "assignments": [ - 5947 - ], + "assignments": [5947], "declarations": [ { "constant": false, @@ -71726,9 +70238,7 @@ "pathNode": { "id": 5945, "name": "EIP712Storage", - "nameLocations": [ - "7126:13:43" - ], + "nameLocations": ["7126:13:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5730, "src": "7126:13:43" @@ -71779,9 +70289,7 @@ "src": "7126:45:43" }, { - "assignments": [ - 5952 - ], + "assignments": [5952], "declarations": [ { "constant": false, @@ -71959,9 +70467,7 @@ "src": "7313:425:43", "statements": [ { - "assignments": [ - 5972 - ], + "assignments": [5972], "declarations": [ { "constant": false, @@ -72346,9 +70852,7 @@ "src": "8027:661:43", "statements": [ { - "assignments": [ - 5999 - ], + "assignments": [5999], "declarations": [ { "constant": false, @@ -72371,9 +70875,7 @@ "pathNode": { "id": 5997, "name": "EIP712Storage", - "nameLocations": [ - "8037:13:43" - ], + "nameLocations": ["8037:13:43"], "nodeType": "IdentifierPath", "referencedDeclaration": 5730, "src": "8037:13:43" @@ -72424,9 +70926,7 @@ "src": "8037:45:43" }, { - "assignments": [ - 6004 - ], + "assignments": [6004], "declarations": [ { "constant": false, @@ -72604,9 +71104,7 @@ "src": "8236:446:43", "statements": [ { - "assignments": [ - 6024 - ], + "assignments": [6024], "declarations": [ { "constant": false, @@ -72987,14 +71485,8 @@ ], "scope": 6045, "src": "1959:6731:43", - "usedErrors": [ - 5140, - 5143 - ], - "usedEvents": [ - 5148, - 6049 - ] + "usedErrors": [5140, 5143], + "usedEvents": [5148, 6049] } ], "src": "113:8578:43" @@ -73005,9 +71497,7 @@ "ast": { "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol", "exportedSymbols": { - "IERC5267": [ - 6069 - ] + "IERC5267": [6069] }, "id": 6070, "license": "MIT", @@ -73015,12 +71505,7 @@ "nodes": [ { "id": 6046, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "107:24:44" }, @@ -73032,9 +71517,7 @@ "contractKind": "interface", "fullyImplemented": false, "id": 6069, - "linearizedBaseContracts": [ - 6069 - ], + "linearizedBaseContracts": [6069], "name": "IERC5267", "nameLocation": "143:8:44", "nodeType": "ContractDefinition", @@ -73297,9 +71780,7 @@ "scope": 6070, "src": "133:605:44", "usedErrors": [], - "usedEvents": [ - 6049 - ] + "usedEvents": [6049] } ], "src": "107:632:44" @@ -73310,9 +71791,7 @@ "ast": { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { - "IERC20": [ - 6147 - ] + "IERC20": [6147] }, "id": 6148, "license": "MIT", @@ -73320,12 +71799,7 @@ "nodes": [ { "id": 6071, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "106:24:45" }, @@ -73343,9 +71817,7 @@ }, "fullyImplemented": false, "id": 6147, - "linearizedBaseContracts": [ - 6147 - ], + "linearizedBaseContracts": [6147], "name": "IERC20", "nameLocation": "214:6:45", "nodeType": "ContractDefinition", @@ -74218,10 +72690,7 @@ "scope": 6148, "src": "204:2575:45", "usedErrors": [], - "usedEvents": [ - 6081, - 6090 - ] + "usedEvents": [6081, 6090] } ], "src": "106:2674:45" @@ -74232,12 +72701,8 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/Address.sol", "exportedSymbols": { - "Address": [ - 6407 - ], - "Errors": [ - 6429 - ] + "Address": [6407], + "Errors": [6429] }, "id": 6408, "license": "MIT", @@ -74245,12 +72710,7 @@ "nodes": [ { "id": 6149, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "101:24:46" }, @@ -74293,9 +72753,7 @@ }, "fullyImplemented": true, "id": 6407, - "linearizedBaseContracts": [ - 6407 - ], + "linearizedBaseContracts": [6407], "name": "Address", "nameLocation": "241:7:46", "nodeType": "ContractDefinition", @@ -74616,10 +73074,7 @@ } }, { - "assignments": [ - 6186, - 6188 - ], + "assignments": [6186, 6188], "declarations": [ { "constant": false, @@ -74741,9 +73196,7 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "names": [ - "value" - ], + "names": ["value"], "nodeType": "FunctionCallOptions", "options": [ { @@ -75447,10 +73900,7 @@ } }, { - "assignments": [ - 6255, - 6257 - ], + "assignments": [6255, 6257], "declarations": [ { "constant": false, @@ -75568,9 +74018,7 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "names": [ - "value" - ], + "names": ["value"], "nodeType": "FunctionCallOptions", "options": [ { @@ -75849,10 +74297,7 @@ "src": "3621:154:46", "statements": [ { - "assignments": [ - 6283, - 6285 - ], + "assignments": [6283, 6285], "declarations": [ { "constant": false, @@ -76188,10 +74633,7 @@ "src": "4013:156:46", "statements": [ { - "assignments": [ - 6309, - 6311 - ], + "assignments": [6309, 6311], "declarations": [ { "constant": false, @@ -77493,9 +75935,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 6396, "nodeType": "InlineAssembly", "src": "5815:158:46" @@ -77567,9 +76007,7 @@ ], "scope": 6408, "src": "233:5815:46", - "usedErrors": [ - 6157 - ], + "usedErrors": [6157], "usedEvents": [] } ], @@ -77581,9 +76019,7 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", "exportedSymbols": { - "Errors": [ - 6429 - ] + "Errors": [6429] }, "id": 6430, "license": "MIT", @@ -77591,12 +76027,7 @@ "nodes": [ { "id": 6409, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "100:24:47" }, @@ -77614,9 +76045,7 @@ }, "fullyImplemented": true, "id": 6429, - "linearizedBaseContracts": [ - 6429 - ], + "linearizedBaseContracts": [6429], "name": "Errors", "nameLocation": "419:6:47", "nodeType": "ContractDefinition", @@ -77788,12 +76217,7 @@ ], "scope": 6430, "src": "411:484:47", - "usedErrors": [ - 6417, - 6420, - 6423, - 6428 - ], + "usedErrors": [6417, 6420, 6423, 6428], "usedEvents": [] } ], @@ -77805,9 +76229,7 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", "exportedSymbols": { - "Panic": [ - 6481 - ] + "Panic": [6481] }, "id": 6482, "license": "MIT", @@ -77815,12 +76237,7 @@ "nodes": [ { "id": 6431, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "99:24:48" }, @@ -77838,9 +76255,7 @@ }, "fullyImplemented": true, "id": 6481, - "linearizedBaseContracts": [ - 6481 - ], + "linearizedBaseContracts": [6481], "name": "Panic", "nameLocation": "665:5:48", "nodeType": "ContractDefinition", @@ -78459,9 +76874,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 6478, "nodeType": "InlineAssembly", "src": "1829:135:48" @@ -78542,18 +76955,10 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "exportedSymbols": { - "Math": [ - 9938 - ], - "SafeCast": [ - 11703 - ], - "SignedMath": [ - 11847 - ], - "Strings": [ - 7883 - ] + "Math": [9938], + "SafeCast": [11703], + "SignedMath": [11847], + "Strings": [7883] }, "id": 7884, "license": "MIT", @@ -78561,12 +76966,7 @@ "nodes": [ { "id": 6483, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "101:24:49" }, @@ -78659,9 +77059,7 @@ }, "fullyImplemented": true, "id": 7883, - "linearizedBaseContracts": [ - 7883 - ], + "linearizedBaseContracts": [7883], "name": "Strings", "nameLocation": "305:7:49", "nodeType": "ContractDefinition", @@ -78672,9 +77070,7 @@ "libraryName": { "id": 6491, "name": "SafeCast", - "nameLocations": [ - "325:8:49" - ], + "nameLocations": ["325:8:49"], "nodeType": "IdentifierPath", "referencedDeclaration": 11703, "src": "325:8:49" @@ -79492,9 +77888,7 @@ "src": "1389:545:49", "statements": [ { - "assignments": [ - 6556 - ], + "assignments": [6556], "declarations": [ { "constant": false, @@ -79628,9 +78022,7 @@ "src": "1413:38:49" }, { - "assignments": [ - 6565 - ], + "assignments": [6565], "declarations": [ { "constant": false, @@ -79725,9 +78117,7 @@ "src": "1465:41:49" }, { - "assignments": [ - 6572 - ], + "assignments": [6572], "declarations": [ { "constant": false, @@ -79852,9 +78242,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 6574, "nodeType": "InlineAssembly", "src": "1545:92:49" @@ -79999,9 +78387,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 6579, "nodeType": "InlineAssembly", "src": "1704:111:49" @@ -80738,11 +79124,7 @@ "id": 6629, "name": "toHexString", "nodeType": "Identifier", - "overloadedDeclarations": [ - 6641, - 6724, - 6744 - ], + "overloadedDeclarations": [6641, 6724, 6744], "referencedDeclaration": 6724, "src": "2428:11:49", "typeDescriptions": { @@ -80869,9 +79251,7 @@ "src": "2700:435:49", "statements": [ { - "assignments": [ - 6652 - ], + "assignments": [6652], "declarations": [ { "constant": false, @@ -80918,9 +79298,7 @@ "src": "2710:26:49" }, { - "assignments": [ - 6656 - ], + "assignments": [6656], "declarations": [ { "constant": false, @@ -81464,9 +79842,7 @@ }, "id": 6707, "initializationExpression": { - "assignments": [ - 6679 - ], + "assignments": [6679], "declarations": [ { "constant": false, @@ -82061,11 +80437,7 @@ "id": 6732, "name": "toHexString", "nodeType": "Identifier", - "overloadedDeclarations": [ - 6641, - 6724, - 6744 - ], + "overloadedDeclarations": [6641, 6724, 6744], "referencedDeclaration": 6724, "src": "3384:11:49", "typeDescriptions": { @@ -82191,9 +80563,7 @@ "src": "3699:642:49", "statements": [ { - "assignments": [ - 6753 - ], + "assignments": [6753], "declarations": [ { "constant": false, @@ -82251,11 +80621,7 @@ "id": 6756, "name": "toHexString", "nodeType": "Identifier", - "overloadedDeclarations": [ - 6641, - 6724, - 6744 - ], + "overloadedDeclarations": [6641, 6724, 6744], "referencedDeclaration": 6744, "src": "3737:11:49", "typeDescriptions": { @@ -82326,9 +80692,7 @@ "src": "3709:46:49" }, { - "assignments": [ - 6762 - ], + "assignments": [6762], "declarations": [ { "constant": false, @@ -82469,9 +80833,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 6764, "nodeType": "InlineAssembly", "src": "3867:103:49" @@ -82877,9 +81239,7 @@ }, "id": 6802, "initializationExpression": { - "assignments": [ - 6766 - ], + "assignments": [6766], "declarations": [ { "constant": false, @@ -83760,10 +82120,7 @@ "id": 6854, "name": "parseUint", "nodeType": "Identifier", - "overloadedDeclarations": [ - 6865, - 6896 - ], + "overloadedDeclarations": [6865, 6896], "referencedDeclaration": 6896, "src": "4914:9:49", "typeDescriptions": { @@ -83888,10 +82245,7 @@ "src": "5366:153:49", "statements": [ { - "assignments": [ - 6878, - 6880 - ], + "assignments": [6878, 6880], "declarations": [ { "constant": false, @@ -84006,10 +82360,7 @@ "id": 6881, "name": "tryParseUint", "nodeType": "Identifier", - "overloadedDeclarations": [ - 6917, - 6954 - ], + "overloadedDeclarations": [6917, 6954], "referencedDeclaration": 6954, "src": "5408:12:49", "typeDescriptions": { @@ -85029,9 +83380,7 @@ "src": "6872:347:49", "statements": [ { - "assignments": [ - 6969 - ], + "assignments": [6969], "declarations": [ { "constant": false, @@ -85123,9 +83472,7 @@ "src": "6882:34:49" }, { - "assignments": [ - 6976 - ], + "assignments": [6976], "declarations": [ { "constant": false, @@ -85182,9 +83529,7 @@ "src": "6993:189:49", "statements": [ { - "assignments": [ - 6990 - ], + "assignments": [6990], "declarations": [ { "constant": false, @@ -85606,9 +83951,7 @@ }, "id": 7018, "initializationExpression": { - "assignments": [ - 6980 - ], + "assignments": [6980], "declarations": [ { "constant": false, @@ -86038,10 +84381,7 @@ "id": 7032, "name": "parseInt", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7043, - 7074 - ], + "overloadedDeclarations": [7043, 7074], "referencedDeclaration": 7074, "src": "7533:8:49", "typeDescriptions": { @@ -86166,10 +84506,7 @@ "src": "7984:151:49", "statements": [ { - "assignments": [ - 7056, - 7058 - ], + "assignments": [7056, 7058], "declarations": [ { "constant": false, @@ -86284,10 +84621,7 @@ "id": 7059, "name": "tryParseInt", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7095, - 7137 - ], + "overloadedDeclarations": [7095, 7137], "referencedDeclaration": 7137, "src": "8025:11:49", "typeDescriptions": { @@ -87384,9 +85718,7 @@ "src": "9673:812:49", "statements": [ { - "assignments": [ - 7152 - ], + "assignments": [7152], "declarations": [ { "constant": false, @@ -87478,9 +85810,7 @@ "src": "9683:34:49" }, { - "assignments": [ - 7159 - ], + "assignments": [7159], "declarations": [ { "constant": false, @@ -87741,9 +86071,7 @@ "src": "9774:86:49" }, { - "assignments": [ - 7177 - ], + "assignments": [7177], "declarations": [ { "constant": false, @@ -87869,9 +86197,7 @@ "src": "9941:39:49" }, { - "assignments": [ - 7186 - ], + "assignments": [7186], "declarations": [ { "constant": false, @@ -87997,9 +86323,7 @@ "src": "9990:39:49" }, { - "assignments": [ - 7195 - ], + "assignments": [7195], "declarations": [ { "constant": false, @@ -88127,10 +86451,7 @@ "src": "10039:56:49" }, { - "assignments": [ - 7204, - 7206 - ], + "assignments": [7204, 7206], "declarations": [ { "constant": false, @@ -88275,10 +86596,7 @@ "id": 7207, "name": "tryParseUint", "nodeType": "Identifier", - "overloadedDeclarations": [ - 6917, - 6954 - ], + "overloadedDeclarations": [6917, 6954], "referencedDeclaration": 6954, "src": "10144:12:49", "typeDescriptions": { @@ -89157,10 +87475,7 @@ "id": 7266, "name": "parseHexUint", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7277, - 7308 - ], + "overloadedDeclarations": [7277, 7308], "referencedDeclaration": 7308, "src": "10847:12:49", "typeDescriptions": { @@ -89285,10 +87600,7 @@ "src": "11318:156:49", "statements": [ { - "assignments": [ - 7290, - 7292 - ], + "assignments": [7290, 7292], "declarations": [ { "constant": false, @@ -89403,10 +87715,7 @@ "id": 7293, "name": "tryParseHexUint", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7329, - 7366 - ], + "overloadedDeclarations": [7329, 7366], "referencedDeclaration": 7366, "src": "11360:15:49", "typeDescriptions": { @@ -90426,9 +88735,7 @@ "src": "12851:881:49", "statements": [ { - "assignments": [ - 7381 - ], + "assignments": [7381], "declarations": [ { "constant": false, @@ -90520,9 +88827,7 @@ "src": "12861:34:49" }, { - "assignments": [ - 7388 - ], + "assignments": [7388], "declarations": [ { "constant": false, @@ -90856,9 +89161,7 @@ "src": "12943:99:49" }, { - "assignments": [ - 7410 - ], + "assignments": [7410], "declarations": [ { "constant": false, @@ -90974,9 +89277,7 @@ "src": "13123:39:49" }, { - "assignments": [ - 7418 - ], + "assignments": [7418], "declarations": [ { "constant": false, @@ -91033,9 +89334,7 @@ "src": "13248:447:49", "statements": [ { - "assignments": [ - 7434 - ], + "assignments": [7434], "declarations": [ { "constant": false, @@ -91464,9 +89763,7 @@ }, "id": 7463, "initializationExpression": { - "assignments": [ - 7422 - ], + "assignments": [7422], "declarations": [ { "constant": false, @@ -91926,10 +90223,7 @@ "id": 7477, "name": "parseAddress", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7488, - 7519 - ], + "overloadedDeclarations": [7488, 7519], "referencedDeclaration": 7519, "src": "14047:12:49", "typeDescriptions": { @@ -92055,10 +90349,7 @@ "src": "14470:165:49", "statements": [ { - "assignments": [ - 7501, - 7503 - ], + "assignments": [7501, 7503], "declarations": [ { "constant": false, @@ -92174,10 +90465,7 @@ "id": 7504, "name": "tryParseAddress", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7540, - 7644 - ], + "overloadedDeclarations": [7540, 7644], "referencedDeclaration": 7644, "src": "14512:15:49", "typeDescriptions": { @@ -92562,10 +90850,7 @@ "id": 7529, "name": "tryParseAddress", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7540, - 7644 - ], + "overloadedDeclarations": [7540, 7644], "referencedDeclaration": 7644, "src": "14959:15:49", "typeDescriptions": { @@ -92984,9 +91269,7 @@ } }, { - "assignments": [ - 7574 - ], + "assignments": [7574], "declarations": [ { "constant": false, @@ -93365,9 +91648,7 @@ "src": "15498:105:49" }, { - "assignments": [ - 7599 - ], + "assignments": [7599], "declarations": [ { "constant": false, @@ -93704,10 +91985,7 @@ "src": "15832:243:49", "statements": [ { - "assignments": [ - 7614, - 7616 - ], + "assignments": [7614, 7616], "declarations": [ { "constant": false, @@ -94166,9 +92444,7 @@ "src": "16207:461:49", "statements": [ { - "assignments": [ - 7652 - ], + "assignments": [7652], "declarations": [ { "constant": false, @@ -94938,9 +93214,7 @@ "src": "17334:1331:49", "statements": [ { - "assignments": [ - 7713 - ], + "assignments": [7713], "declarations": [ { "constant": false, @@ -95032,9 +93306,7 @@ "src": "17344:34:49" }, { - "assignments": [ - 7720 - ], + "assignments": [7720], "declarations": [ { "constant": false, @@ -95178,9 +93450,7 @@ "src": "17388:50:49" }, { - "assignments": [ - 7730 - ], + "assignments": [7730], "declarations": [ { "constant": false, @@ -95237,9 +93507,7 @@ "src": "17546:854:49", "statements": [ { - "assignments": [ - 7744 - ], + "assignments": [7744], "declarations": [ { "constant": false, @@ -96809,9 +95077,7 @@ }, "id": 7862, "initializationExpression": { - "assignments": [ - 7734 - ], + "assignments": [7734], "declarations": [ { "constant": false, @@ -97064,9 +95330,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 7863, "nodeType": "InlineAssembly", "src": "18473:154:49" @@ -97333,9 +95597,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 7880, "nodeType": "InlineAssembly", "src": "19174:95:49" @@ -97459,11 +95721,7 @@ ], "scope": 7884, "src": "297:18980:49", - "usedErrors": [ - 6541, - 6544, - 6547 - ], + "usedErrors": [6541, 6544, 6547], "usedEvents": [] } ], @@ -97475,9 +95733,7 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "exportedSymbols": { - "ECDSA": [ - 8231 - ] + "ECDSA": [8231] }, "id": 8232, "license": "MIT", @@ -97485,12 +95741,7 @@ "nodes": [ { "id": 7885, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "112:24:50" }, @@ -97508,9 +95759,7 @@ }, "fullyImplemented": true, "id": 8231, - "linearizedBaseContracts": [ - 8231 - ], + "linearizedBaseContracts": [8231], "name": "ECDSA", "nameLocation": "352:5:50", "nodeType": "ContractDefinition", @@ -97936,9 +96185,7 @@ "src": "2323:464:50", "statements": [ { - "assignments": [ - 7924 - ], + "assignments": [7924], "declarations": [ { "constant": false, @@ -97973,9 +96220,7 @@ "src": "2337:9:50" }, { - "assignments": [ - 7927 - ], + "assignments": [7927], "declarations": [ { "constant": false, @@ -98010,9 +96255,7 @@ "src": "2360:9:50" }, { - "assignments": [ - 7930 - ], + "assignments": [7930], "declarations": [ { "constant": false, @@ -98279,9 +96522,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 7932, "nodeType": "InlineAssembly", "src": "2535:196:50" @@ -98360,11 +96601,7 @@ "id": 7933, "name": "tryRecover", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7957, - 8037, - 8145 - ], + "overloadedDeclarations": [7957, 8037, 8145], "referencedDeclaration": 8145, "src": "2751:10:50", "typeDescriptions": { @@ -98525,9 +96762,7 @@ "pathNode": { "id": 7913, "name": "RecoverError", - "nameLocations": [ - "2251:12:50" - ], + "nameLocations": ["2251:12:50"], "nodeType": "IdentifierPath", "referencedDeclaration": 7891, "src": "2251:12:50" @@ -98584,11 +96819,7 @@ "src": "3801:168:50", "statements": [ { - "assignments": [ - 7968, - 7971, - 7973 - ], + "assignments": [7968, 7971, 7973], "declarations": [ { "constant": false, @@ -98639,9 +96870,7 @@ "pathNode": { "id": 7969, "name": "RecoverError", - "nameLocations": [ - "3831:12:50" - ], + "nameLocations": ["3831:12:50"], "nodeType": "IdentifierPath", "referencedDeclaration": 7891, "src": "3831:12:50" @@ -98725,11 +96954,7 @@ "id": 7974, "name": "tryRecover", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7957, - 8037, - 8145 - ], + "overloadedDeclarations": [7957, 8037, 8145], "referencedDeclaration": 7957, "src": "3871:10:50", "typeDescriptions": { @@ -98973,9 +97198,7 @@ "src": "4358:326:50", "statements": [ { - "assignments": [ - 8005 - ], + "assignments": [8005], "declarations": [ { "constant": false, @@ -99101,9 +97324,7 @@ "src": "4382:92:50" }, { - "assignments": [ - 8014 - ], + "assignments": [8014], "declarations": [ { "constant": false, @@ -99397,11 +97618,7 @@ "id": 8028, "name": "tryRecover", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7957, - 8037, - 8145 - ], + "overloadedDeclarations": [7957, 8037, 8145], "referencedDeclaration": 8145, "src": "4648:10:50", "typeDescriptions": { @@ -99588,9 +97805,7 @@ "pathNode": { "id": 7998, "name": "RecoverError", - "nameLocations": [ - "4314:12:50" - ], + "nameLocations": ["4314:12:50"], "nodeType": "IdentifierPath", "referencedDeclaration": 7891, "src": "4314:12:50" @@ -99647,11 +97862,7 @@ "src": "4903:164:50", "statements": [ { - "assignments": [ - 8050, - 8053, - 8055 - ], + "assignments": [8050, 8053, 8055], "declarations": [ { "constant": false, @@ -99702,9 +97913,7 @@ "pathNode": { "id": 8051, "name": "RecoverError", - "nameLocations": [ - "4933:12:50" - ], + "nameLocations": ["4933:12:50"], "nodeType": "IdentifierPath", "referencedDeclaration": 7891, "src": "4933:12:50" @@ -99804,11 +98013,7 @@ "id": 8056, "name": "tryRecover", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7957, - 8037, - 8145 - ], + "overloadedDeclarations": [7957, 8037, 8145], "referencedDeclaration": 8037, "src": "4973:10:50", "typeDescriptions": { @@ -100300,9 +98505,7 @@ } }, { - "assignments": [ - 8107 - ], + "assignments": [8107], "declarations": [ { "constant": false, @@ -101015,9 +99218,7 @@ "pathNode": { "id": 8083, "name": "RecoverError", - "nameLocations": [ - "5348:12:50" - ], + "nameLocations": ["5348:12:50"], "nodeType": "IdentifierPath", "referencedDeclaration": 7891, "src": "5348:12:50" @@ -101074,11 +99275,7 @@ "src": "6981:166:50", "statements": [ { - "assignments": [ - 8160, - 8163, - 8165 - ], + "assignments": [8160, 8163, 8165], "declarations": [ { "constant": false, @@ -101129,9 +99326,7 @@ "pathNode": { "id": 8161, "name": "RecoverError", - "nameLocations": [ - "7011:12:50" - ], + "nameLocations": ["7011:12:50"], "nodeType": "IdentifierPath", "referencedDeclaration": 7891, "src": "7011:12:50" @@ -101247,11 +99442,7 @@ "id": 8166, "name": "tryRecover", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7957, - 8037, - 8145 - ], + "overloadedDeclarations": [7957, 8037, 8145], "referencedDeclaration": 8145, "src": "7051:10:50", "typeDescriptions": { @@ -102058,9 +100249,7 @@ "pathNode": { "id": 8183, "name": "RecoverError", - "nameLocations": [ - "7301:12:50" - ], + "nameLocations": ["7301:12:50"], "nodeType": "IdentifierPath", "referencedDeclaration": 7891, "src": "7301:12:50" @@ -102119,11 +100308,7 @@ ], "scope": 8232, "src": "344:7470:50", - "usedErrors": [ - 7894, - 7899, - 7904 - ], + "usedErrors": [7894, 7899, 7904], "usedEvents": [] } ], @@ -102135,12 +100320,8 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", "exportedSymbols": { - "MessageHashUtils": [ - 8317 - ], - "Strings": [ - 7883 - ] + "MessageHashUtils": [8317], + "Strings": [7883] }, "id": 8318, "license": "MIT", @@ -102148,12 +100329,7 @@ "nodes": [ { "id": 8233, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "123:24:51" }, @@ -102196,9 +100372,7 @@ }, "fullyImplemented": true, "id": 8317, - "linearizedBaseContracts": [ - 8317 - ], + "linearizedBaseContracts": [8317], "name": "MessageHashUtils", "nameLocation": "529:16:51", "nodeType": "ContractDefinition", @@ -102343,9 +100517,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8244, "nodeType": "InlineAssembly", "src": "1349:325:51" @@ -103264,9 +101436,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8302, "nodeType": "InlineAssembly", "src": "3226:200:51" @@ -103636,9 +101806,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8314, "nodeType": "InlineAssembly", "src": "3993:249:51" @@ -103774,15 +101942,9 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", "exportedSymbols": { - "Math": [ - 9938 - ], - "Panic": [ - 6481 - ], - "SafeCast": [ - 11703 - ] + "Math": [9938], + "Panic": [6481], + "SafeCast": [11703] }, "id": 9939, "license": "MIT", @@ -103790,12 +101952,7 @@ "nodes": [ { "id": 8319, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "103:24:52" }, @@ -103863,9 +102020,7 @@ }, "fullyImplemented": true, "id": 9938, - "linearizedBaseContracts": [ - 9938 - ], + "linearizedBaseContracts": [9938], "name": "Math", "nameLocation": "289:4:52", "nodeType": "ContractDefinition", @@ -104043,9 +102198,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8341, "nodeType": "InlineAssembly", "src": "741:96:52" @@ -104440,9 +102593,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8355, "nodeType": "InlineAssembly", "src": "1412:159:52" @@ -104602,9 +102753,7 @@ "src": "1794:133:52", "statements": [ { - "assignments": [ - 8370 - ], + "assignments": [8370], "declarations": [ { "constant": false, @@ -105036,9 +103185,7 @@ "src": "2153:133:52", "statements": [ { - "assignments": [ - 8405 - ], + "assignments": [8405], "declarations": [ { "constant": false, @@ -105470,9 +103617,7 @@ "src": "2515:375:52", "statements": [ { - "assignments": [ - 8440 - ], + "assignments": [8440], "declarations": [ { "constant": false, @@ -105683,9 +103828,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8445, "nodeType": "InlineAssembly", "src": "2570:213:52" @@ -106119,9 +104262,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8475, "nodeType": "InlineAssembly", "src": "3174:152:52" @@ -106429,9 +104570,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8496, "nodeType": "InlineAssembly", "src": "3630:152:52" @@ -106588,10 +104727,7 @@ "src": "3989:122:52", "statements": [ { - "assignments": [ - 8510, - 8512 - ], + "assignments": [8510, 8512], "declarations": [ { "constant": false, @@ -106987,10 +105123,7 @@ "src": "4294:73:52", "statements": [ { - "assignments": [ - null, - 8540 - ], + "assignments": [null, 8540], "declarations": [ null, { @@ -107231,10 +105364,7 @@ "src": "4564:122:52", "statements": [ { - "assignments": [ - 8560, - 8562 - ], + "assignments": [8560, 8562], "declarations": [ { "constant": false, @@ -109296,10 +107426,7 @@ "src": "7350:3569:52", "statements": [ { - "assignments": [ - 8721, - 8723 - ], + "assignments": [8721, 8723], "declarations": [ { "constant": false, @@ -109791,9 +107918,7 @@ } }, { - "assignments": [ - 8758 - ], + "assignments": [8758], "declarations": [ { "constant": false, @@ -110054,17 +108179,13 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8760, "nodeType": "InlineAssembly", "src": "8390:308:52" }, { - "assignments": [ - 8762 - ], + "assignments": [8762], "declarations": [ { "constant": false, @@ -110420,9 +108541,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 8770, "nodeType": "InlineAssembly", "src": "8962:384:52" @@ -110501,9 +108620,7 @@ "src": "9409:18:52" }, { - "assignments": [ - 8778 - ], + "assignments": [8778], "declarations": [ { "constant": false, @@ -111585,10 +109702,7 @@ "id": 8859, "name": "mulDiv", "nodeType": "Identifier", - "overloadedDeclarations": [ - 8844, - 8881 - ], + "overloadedDeclarations": [8844, 8881], "referencedDeclaration": 8844, "src": "11181:6:52", "typeDescriptions": { @@ -111981,9 +110095,7 @@ "pathNode": { "id": 8852, "name": "Rounding", - "nameLocations": [ - "11113:8:52" - ], + "nameLocations": ["11113:8:52"], "nodeType": "IdentifierPath", "referencedDeclaration": 8329, "src": "11113:8:52" @@ -112052,10 +110164,7 @@ "src": "11510:229:52", "statements": [ { - "assignments": [ - 8894, - 8896 - ], + "assignments": [8894, 8896], "declarations": [ { "constant": false, @@ -112764,10 +110873,7 @@ "id": 8946, "name": "mulShr", "nodeType": "Identifier", - "overloadedDeclarations": [ - 8931, - 8970 - ], + "overloadedDeclarations": [8931, 8970], "referencedDeclaration": 8931, "src": "11980:6:52", "typeDescriptions": { @@ -113194,9 +111300,7 @@ "pathNode": { "id": 8939, "name": "Rounding", - "nameLocations": [ - "11912:8:52" - ], + "nameLocations": ["11912:8:52"], "nodeType": "IdentifierPath", "referencedDeclaration": 8329, "src": "11912:8:52" @@ -113338,9 +111442,7 @@ } }, { - "assignments": [ - 8987 - ], + "assignments": [8987], "declarations": [ { "constant": false, @@ -113417,9 +111519,7 @@ "src": "13235:25:52" }, { - "assignments": [ - 8993 - ], + "assignments": [8993], "declarations": [ { "constant": false, @@ -113466,9 +111566,7 @@ "src": "13274:15:52" }, { - "assignments": [ - 8997 - ], + "assignments": [8997], "declarations": [ { "constant": false, @@ -113519,9 +111617,7 @@ "src": "13425:12:52" }, { - "assignments": [ - 9001 - ], + "assignments": [9001], "declarations": [ { "constant": false, @@ -113578,9 +111674,7 @@ "src": "13501:882:52", "statements": [ { - "assignments": [ - 9008 - ], + "assignments": [9008], "declarations": [ { "constant": false, @@ -114791,10 +112885,7 @@ "src": "16011:174:52", "statements": [ { - "assignments": [ - 9101, - 9103 - ], + "assignments": [9101, 9103], "declarations": [ { "constant": false, @@ -114909,10 +113000,7 @@ "id": 9104, "name": "tryModExp", "nodeType": "Identifier", - "overloadedDeclarations": [ - 9148, - 9230 - ], + "overloadedDeclarations": [9148, 9230], "referencedDeclaration": 9148, "src": "16054:9:52", "typeDescriptions": { @@ -115818,9 +113906,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 9146, "nodeType": "InlineAssembly", "src": "17088:1438:52" @@ -116002,10 +114088,7 @@ "src": "18729:179:52", "statements": [ { - "assignments": [ - 9161, - 9163 - ], + "assignments": [9161, 9163], "declarations": [ { "constant": false, @@ -116120,10 +114203,7 @@ "id": 9164, "name": "tryModExp", "nodeType": "Identifier", - "overloadedDeclarations": [ - 9148, - 9230 - ], + "overloadedDeclarations": [9148, 9230], "referencedDeclaration": 9230, "src": "18777:9:52", "typeDescriptions": { @@ -116599,9 +114679,7 @@ } }, { - "assignments": [ - 9210 - ], + "assignments": [9210], "declarations": [ { "constant": false, @@ -117132,9 +115210,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 9228, "nodeType": "InlineAssembly", "src": "19406:521:52" @@ -117487,9 +115563,7 @@ }, "id": 9259, "initializationExpression": { - "assignments": [ - 9239 - ], + "assignments": [9239], "declarations": [ { "constant": false, @@ -117774,9 +115848,7 @@ } }, { - "assignments": [ - 9279 - ], + "assignments": [9279], "declarations": [ { "constant": false, @@ -117823,9 +115895,7 @@ "src": "21704:14:52" }, { - "assignments": [ - 9283 - ], + "assignments": [9283], "declarations": [ { "constant": false, @@ -120551,9 +118621,7 @@ "src": "25931:155:52", "statements": [ { - "assignments": [ - 9494 - ], + "assignments": [9494], "declarations": [ { "constant": false, @@ -120609,10 +118677,7 @@ "id": 9495, "name": "sqrt", "nodeType": "Identifier", - "overloadedDeclarations": [ - 9482, - 9516 - ], + "overloadedDeclarations": [9482, 9516], "referencedDeclaration": 9482, "src": "25972:4:52", "typeDescriptions": { @@ -120936,9 +119001,7 @@ "pathNode": { "id": 9486, "name": "Rounding", - "nameLocations": [ - "25870:8:52" - ], + "nameLocations": ["25870:8:52"], "nodeType": "IdentifierPath", "referencedDeclaration": 8329, "src": "25870:8:52" @@ -122332,9 +120395,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 9605, "nodeType": "InlineAssembly", "src": "28465:144:52" @@ -122440,9 +120501,7 @@ "src": "28858:159:52", "statements": [ { - "assignments": [ - 9619 - ], + "assignments": [9619], "declarations": [ { "constant": false, @@ -122498,10 +120557,7 @@ "id": 9620, "name": "log2", "nodeType": "Identifier", - "overloadedDeclarations": [ - 9607, - 9641 - ], + "overloadedDeclarations": [9607, 9641], "referencedDeclaration": 9607, "src": "28899:4:52", "typeDescriptions": { @@ -122829,9 +120885,7 @@ "pathNode": { "id": 9611, "name": "Rounding", - "nameLocations": [ - "28797:8:52" - ], + "nameLocations": ["28797:8:52"], "nodeType": "IdentifierPath", "referencedDeclaration": 8329, "src": "28797:8:52" @@ -122895,9 +120949,7 @@ "src": "29216:854:52", "statements": [ { - "assignments": [ - 9650 - ], + "assignments": [9650], "declarations": [ { "constant": false, @@ -124532,9 +122584,7 @@ "src": "30315:161:52", "statements": [ { - "assignments": [ - 9782 - ], + "assignments": [9782], "declarations": [ { "constant": false, @@ -124590,10 +122640,7 @@ "id": 9783, "name": "log10", "nodeType": "Identifier", - "overloadedDeclarations": [ - 9770, - 9804 - ], + "overloadedDeclarations": [9770, 9804], "referencedDeclaration": 9770, "src": "30356:5:52", "typeDescriptions": { @@ -124921,9 +122968,7 @@ "pathNode": { "id": 9774, "name": "Rounding", - "nameLocations": [ - "30254:8:52" - ], + "nameLocations": ["30254:8:52"], "nodeType": "IdentifierPath", "referencedDeclaration": 8329, "src": "30254:8:52" @@ -126112,9 +124157,7 @@ "src": "31722:168:52", "statements": [ { - "assignments": [ - 9893 - ], + "assignments": [9893], "declarations": [ { "constant": false, @@ -126170,10 +124213,7 @@ "id": 9894, "name": "log256", "nodeType": "Identifier", - "overloadedDeclarations": [ - 9881, - 9918 - ], + "overloadedDeclarations": [9881, 9918], "referencedDeclaration": 9881, "src": "31763:6:52", "typeDescriptions": { @@ -126551,9 +124591,7 @@ "pathNode": { "id": 9885, "name": "Rounding", - "nameLocations": [ - "31661:8:52" - ], + "nameLocations": ["31661:8:52"], "nodeType": "IdentifierPath", "referencedDeclaration": 8329, "src": "31661:8:52" @@ -126787,9 +124825,7 @@ "pathNode": { "id": 9920, "name": "Rounding", - "nameLocations": [ - "32046:8:52" - ], + "nameLocations": ["32046:8:52"], "nodeType": "IdentifierPath", "referencedDeclaration": 8329, "src": "32046:8:52" @@ -126861,9 +124897,7 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", "exportedSymbols": { - "SafeCast": [ - 11703 - ] + "SafeCast": [11703] }, "id": 11704, "license": "MIT", @@ -126871,12 +124905,7 @@ "nodes": [ { "id": 9940, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "192:24:53" }, @@ -126894,9 +124923,7 @@ }, "fullyImplemented": true, "id": 11703, - "linearizedBaseContracts": [ - 11703 - ], + "linearizedBaseContracts": [11703], "name": "SafeCast", "nameLocation": "777:8:53", "nodeType": "ContractDefinition", @@ -148231,9 +146258,7 @@ "valueSize": 1 } ], - "flags": [ - "memory-safe" - ], + "flags": ["memory-safe"], "id": 11700, "nodeType": "InlineAssembly", "src": "34863:71:53" @@ -148330,12 +146355,7 @@ ], "scope": 11704, "src": "769:34173:53", - "usedErrors": [ - 9948, - 9953, - 9960, - 9965 - ], + "usedErrors": [9948, 9953, 9960, 9965], "usedEvents": [] } ], @@ -148347,12 +146367,8 @@ "ast": { "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", "exportedSymbols": { - "SafeCast": [ - 11703 - ], - "SignedMath": [ - 11847 - ] + "SafeCast": [11703], + "SignedMath": [11847] }, "id": 11848, "license": "MIT", @@ -148360,12 +146376,7 @@ "nodes": [ { "id": 11705, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], + "literals": ["solidity", "^", "0.8", ".20"], "nodeType": "PragmaDirective", "src": "109:24:54" }, @@ -148408,9 +146419,7 @@ }, "fullyImplemented": true, "id": 11847, - "linearizedBaseContracts": [ - 11847 - ], + "linearizedBaseContracts": [11847], "name": "SignedMath", "nameLocation": "266:10:54", "nodeType": "ContractDefinition", @@ -149294,9 +147303,7 @@ "src": "1537:162:54", "statements": [ { - "assignments": [ - 11787 - ], + "assignments": [11787], "declarations": [ { "constant": false, @@ -149906,9 +147913,7 @@ "src": "1853:751:54", "statements": [ { - "assignments": [ - 11829 - ], + "assignments": [11829], "declarations": [ { "constant": false, @@ -150233,51 +148238,21 @@ "ast": { "absolutePath": "contracts/DisputeManager.sol", "exportedSymbols": { - "Allocation": [ - 16033 - ], - "Attestation": [ - 16290 - ], - "AttestationManager": [ - 17555 - ], - "DisputeManager": [ - 13542 - ], - "DisputeManagerV1Storage": [ - 13575 - ], - "GraphDirectory": [ - 4928 - ], - "IDisputeManager": [ - 15373 - ], - "IGraphToken": [ - 758 - ], - "IHorizonStaking": [ - 2625 - ], - "ISubgraphService": [ - 15634 - ], - "Initializable": [ - 5391 - ], - "MathUtils": [ - 4445 - ], - "OwnableUpgradeable": [ - 5123 - ], - "PPMMath": [ - 4539 - ], - "TokenUtils": [ - 840 - ] + "Allocation": [16033], + "Attestation": [16290], + "AttestationManager": [17555], + "DisputeManager": [13542], + "DisputeManagerV1Storage": [13575], + "GraphDirectory": [4928], + "IDisputeManager": [15373], + "IGraphToken": [758], + "IHorizonStaking": [2625], + "ISubgraphService": [15634], + "Initializable": [5391], + "MathUtils": [4445], + "OwnableUpgradeable": [5123], + "PPMMath": [4539], + "TokenUtils": [840] }, "id": 13543, "license": "GPL-2.0-or-later", @@ -150285,11 +148260,7 @@ "nodes": [ { "id": 11849, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:55" }, @@ -150650,9 +148621,7 @@ "baseName": { "id": 11879, "name": "Initializable", - "nameLocations": [ - "2354:13:55" - ], + "nameLocations": ["2354:13:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "2354:13:55" @@ -150665,9 +148634,7 @@ "baseName": { "id": 11881, "name": "OwnableUpgradeable", - "nameLocations": [ - "2373:18:55" - ], + "nameLocations": ["2373:18:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5123, "src": "2373:18:55" @@ -150680,9 +148647,7 @@ "baseName": { "id": 11883, "name": "GraphDirectory", - "nameLocations": [ - "2397:14:55" - ], + "nameLocations": ["2397:14:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 4928, "src": "2397:14:55" @@ -150695,9 +148660,7 @@ "baseName": { "id": 11885, "name": "AttestationManager", - "nameLocations": [ - "2417:18:55" - ], + "nameLocations": ["2417:18:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 17555, "src": "2417:18:55" @@ -150710,9 +148673,7 @@ "baseName": { "id": 11887, "name": "DisputeManagerV1Storage", - "nameLocations": [ - "2441:23:55" - ], + "nameLocations": ["2441:23:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 13575, "src": "2441:23:55" @@ -150725,9 +148686,7 @@ "baseName": { "id": 11889, "name": "IDisputeManager", - "nameLocations": [ - "2470:15:55" - ], + "nameLocations": ["2470:15:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 15373, "src": "2470:15:55" @@ -150748,17 +148707,7 @@ }, "fullyImplemented": true, "id": 13542, - "linearizedBaseContracts": [ - 13542, - 15373, - 13575, - 17555, - 17567, - 4928, - 5123, - 5437, - 5391 - ], + "linearizedBaseContracts": [13542, 15373, 13575, 17555, 17567, 4928, 5123, 5437, 5391], "name": "DisputeManager", "nameLocation": "2332:14:55", "nodeType": "ContractDefinition", @@ -150769,9 +148718,7 @@ "libraryName": { "id": 11891, "name": "TokenUtils", - "nameLocations": [ - "2498:10:55" - ], + "nameLocations": ["2498:10:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 840, "src": "2498:10:55" @@ -150784,9 +148731,7 @@ "pathNode": { "id": 11892, "name": "IGraphToken", - "nameLocations": [ - "2513:11:55" - ], + "nameLocations": ["2513:11:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 758, "src": "2513:11:55" @@ -150805,9 +148750,7 @@ "libraryName": { "id": 11895, "name": "PPMMath", - "nameLocations": [ - "2536:7:55" - ], + "nameLocations": ["2536:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 4539, "src": "2536:7:55" @@ -151037,11 +148980,7 @@ "id": 11908, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2964:7:55", "typeDescriptions": { @@ -151218,11 +149157,7 @@ "id": 11924, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3223:7:55", "typeDescriptions": { @@ -151473,11 +149408,7 @@ "id": 11933, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3310:7:55", "typeDescriptions": { @@ -151682,11 +149613,7 @@ "id": 11957, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3680:7:55", "typeDescriptions": { @@ -151861,11 +149788,7 @@ "id": 11966, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3767:7:55", "typeDescriptions": { @@ -152022,9 +149945,7 @@ "modifierName": { "id": 11985, "name": "GraphDirectory", - "nameLocations": [ - "4008:14:55" - ], + "nameLocations": ["4008:14:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 4928, "src": "4008:14:55" @@ -152084,9 +150005,7 @@ "visibility": "public" }, { - "baseFunctions": [ - 15196 - ], + "baseFunctions": [15196], "body": { "id": 12039, "nodeType": "Block", @@ -152471,9 +150390,7 @@ "modifierName": { "id": 12009, "name": "initializer", - "nameLocations": [ - "4344:11:55" - ], + "nameLocations": ["4344:11:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5231, "src": "4344:11:55" @@ -152675,9 +150592,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15262 - ], + "baseFunctions": [15262], "body": { "id": 12067, "nodeType": "Block", @@ -153046,9 +150961,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15240 - ], + "baseFunctions": [15240], "body": { "id": 12096, "nodeType": "Block", @@ -153442,18 +151355,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 15252 - ], + "baseFunctions": [15252], "body": { "id": 12210, "nodeType": "Block", "src": "5738:1563:55", "statements": [ { - "assignments": [ - 12111 - ], + "assignments": [12111], "declarations": [ { "constant": false, @@ -153516,9 +151425,7 @@ "src": "5748:30:55" }, { - "assignments": [ - 12119 - ], + "assignments": [12119], "declarations": [ { "constant": false, @@ -153541,10 +151448,7 @@ "pathNode": { "id": 12117, "name": "Attestation.State", - "nameLocations": [ - "5823:11:55", - "5835:5:55" - ], + "nameLocations": ["5823:11:55", "5835:5:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "5823:17:55" @@ -153629,9 +151533,7 @@ "src": "5823:75:55" }, { - "assignments": [ - 12129 - ], + "assignments": [12129], "declarations": [ { "constant": false, @@ -153654,10 +151556,7 @@ "pathNode": { "id": 12127, "name": "Attestation.State", - "nameLocations": [ - "5908:11:55", - "5920:5:55" - ], + "nameLocations": ["5908:11:55", "5920:5:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "5908:17:55" @@ -154065,11 +151964,7 @@ "id": 12135, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "6044:7:55", "typeDescriptions": { @@ -154218,9 +152113,7 @@ "src": "6512:52:55" }, { - "assignments": [ - 12166 - ], + "assignments": [12166], "declarations": [ { "constant": false, @@ -154386,9 +152279,7 @@ "src": "6666:170:55" }, { - "assignments": [ - 12177 - ], + "assignments": [12177], "declarations": [ { "constant": false, @@ -154988,18 +152879,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 15276 - ], + "baseFunctions": [15276], "body": { "id": 12324, "nodeType": "Block", "src": "7555:1148:55", "statements": [ { - "assignments": [ - 12229 - ], + "assignments": [12229], "declarations": [ { "constant": false, @@ -155155,9 +153042,7 @@ "src": "7595:71:55" }, { - "assignments": [ - 12239 - ], + "assignments": [12239], "declarations": [ { "constant": false, @@ -155450,11 +153335,7 @@ "id": 12247, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "7809:7:55", "typeDescriptions": { @@ -155836,9 +153717,7 @@ "src": "7920:293:55" }, { - "assignments": [ - 12284 - ], + "assignments": [12284], "declarations": [ { "constant": false, @@ -155861,9 +153740,7 @@ "pathNode": { "id": 12282, "name": "ISubgraphService", - "nameLocations": [ - "8253:16:55" - ], + "nameLocations": ["8253:16:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 15634, "src": "8253:16:55" @@ -156445,9 +154322,7 @@ "modifierName": { "id": 12223, "name": "onlyArbitrator", - "nameLocations": [ - "7522:14:55" - ], + "nameLocations": ["7522:14:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11919, "src": "7522:14:55" @@ -156623,9 +154498,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15284 - ], + "baseFunctions": [15284], "body": { "id": 12364, "nodeType": "Block", @@ -156787,11 +154660,7 @@ "id": 12339, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "8903:7:55", "typeDescriptions": { @@ -156820,9 +154689,7 @@ "src": "8903:95:55" }, { - "assignments": [ - 12353 - ], + "assignments": [12353], "declarations": [ { "constant": false, @@ -156845,9 +154712,7 @@ "pathNode": { "id": 12351, "name": "Dispute", - "nameLocations": [ - "9008:7:55" - ], + "nameLocations": ["9008:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "9008:7:55" @@ -157008,9 +154873,7 @@ "modifierName": { "id": 12333, "name": "onlyArbitrator", - "nameLocations": [ - "8848:14:55" - ], + "nameLocations": ["8848:14:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11919, "src": "8848:14:55" @@ -157038,9 +154901,7 @@ "modifierName": { "id": 12335, "name": "onlyPendingDispute", - "nameLocations": [ - "8863:18:55" - ], + "nameLocations": ["8863:18:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11952, "src": "8863:18:55" @@ -157132,9 +154993,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15296 - ], + "baseFunctions": [15296], "body": { "id": 12430, "nodeType": "Block", @@ -157281,11 +155140,7 @@ "id": 12383, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "9399:7:55", "typeDescriptions": { @@ -157314,9 +155169,7 @@ "src": "9399:97:55" }, { - "assignments": [ - 12396 - ], + "assignments": [12396], "declarations": [ { "constant": false, @@ -157339,9 +155192,7 @@ "pathNode": { "id": 12394, "name": "Dispute", - "nameLocations": [ - "9506:7:55" - ], + "nameLocations": ["9506:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "9506:7:55" @@ -157803,9 +155654,7 @@ "modifierName": { "id": 12377, "name": "onlyArbitrator", - "nameLocations": [ - "9344:14:55" - ], + "nameLocations": ["9344:14:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11919, "src": "9344:14:55" @@ -157833,9 +155682,7 @@ "modifierName": { "id": 12379, "name": "onlyPendingDispute", - "nameLocations": [ - "9359:18:55" - ], + "nameLocations": ["9359:18:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11952, "src": "9359:18:55" @@ -157981,18 +155828,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 15302 - ], + "baseFunctions": [15302], "body": { "id": 12465, "nodeType": "Block", "src": "10027:199:55", "statements": [ { - "assignments": [ - 12445 - ], + "assignments": [12445], "declarations": [ { "constant": false, @@ -158015,9 +155858,7 @@ "pathNode": { "id": 12443, "name": "Dispute", - "nameLocations": [ - "10037:7:55" - ], + "nameLocations": ["10037:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "10037:7:55" @@ -158204,11 +156045,7 @@ "id": 12450, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "10092:7:55", "typeDescriptions": { @@ -158325,9 +156162,7 @@ "modifierName": { "id": 12437, "name": "onlyArbitrator", - "nameLocations": [ - "9982:14:55" - ], + "nameLocations": ["9982:14:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11919, "src": "9982:14:55" @@ -158355,9 +156190,7 @@ "modifierName": { "id": 12439, "name": "onlyPendingDispute", - "nameLocations": [ - "9997:18:55" - ], + "nameLocations": ["9997:18:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11952, "src": "9997:18:55" @@ -158422,18 +156255,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 15308 - ], + "baseFunctions": [15308], "body": { "id": 12504, "nodeType": "Block", "src": "10371:248:55", "statements": [ { - "assignments": [ - 12480 - ], + "assignments": [12480], "declarations": [ { "constant": false, @@ -158456,9 +156285,7 @@ "pathNode": { "id": 12478, "name": "Dispute", - "nameLocations": [ - "10381:7:55" - ], + "nameLocations": ["10381:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "10381:7:55" @@ -158791,9 +156618,7 @@ "modifierName": { "id": 12472, "name": "onlyArbitrator", - "nameLocations": [ - "10326:14:55" - ], + "nameLocations": ["10326:14:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11919, "src": "10326:14:55" @@ -158821,9 +156646,7 @@ "modifierName": { "id": 12474, "name": "onlyPendingDispute", - "nameLocations": [ - "10341:18:55" - ], + "nameLocations": ["10341:18:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11952, "src": "10341:18:55" @@ -158888,18 +156711,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 15314 - ], + "baseFunctions": [15314], "body": { "id": 12554, "nodeType": "Block", "src": "10776:402:55", "statements": [ { - "assignments": [ - 12520 - ], + "assignments": [12520], "declarations": [ { "constant": false, @@ -158922,9 +156741,7 @@ "pathNode": { "id": 12518, "name": "Dispute", - "nameLocations": [ - "10786:7:55" - ], + "nameLocations": ["10786:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "10786:7:55" @@ -159102,11 +156919,7 @@ "id": 12525, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "10890:7:55", "typeDescriptions": { @@ -159425,9 +157238,7 @@ "modifierName": { "id": 12511, "name": "onlyFisherman", - "nameLocations": [ - "10721:13:55" - ], + "nameLocations": ["10721:13:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11980, "src": "10721:13:55" @@ -159455,9 +157266,7 @@ "modifierName": { "id": 12514, "name": "onlyPendingDispute", - "nameLocations": [ - "10746:18:55" - ], + "nameLocations": ["10746:18:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 11952, "src": "10746:18:55" @@ -159522,9 +157331,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15208 - ], + "baseFunctions": [15208], "body": { "id": 12568, "nodeType": "Block", @@ -159603,9 +157410,7 @@ "modifierName": { "id": 12561, "name": "onlyOwner", - "nameLocations": [ - "11281:9:55" - ], + "nameLocations": ["11281:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "11281:9:55" @@ -159671,9 +157476,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15202 - ], + "baseFunctions": [15202], "body": { "id": 12582, "nodeType": "Block", @@ -159752,9 +157555,7 @@ "modifierName": { "id": 12575, "name": "onlyOwner", - "nameLocations": [ - "11442:9:55" - ], + "nameLocations": ["11442:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "11442:9:55" @@ -159819,9 +157620,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15214 - ], + "baseFunctions": [15214], "body": { "id": 12596, "nodeType": "Block", @@ -159900,9 +157699,7 @@ "modifierName": { "id": 12589, "name": "onlyOwner", - "nameLocations": [ - "11612:9:55" - ], + "nameLocations": ["11612:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "11612:9:55" @@ -159967,9 +157764,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15220 - ], + "baseFunctions": [15220], "body": { "id": 12610, "nodeType": "Block", @@ -160048,9 +157843,7 @@ "modifierName": { "id": 12603, "name": "onlyOwner", - "nameLocations": [ - "11792:9:55" - ], + "nameLocations": ["11792:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "11792:9:55" @@ -160115,9 +157908,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15226 - ], + "baseFunctions": [15226], "body": { "id": 12624, "nodeType": "Block", @@ -160196,9 +157987,7 @@ "modifierName": { "id": 12617, "name": "onlyOwner", - "nameLocations": [ - "11973:9:55" - ], + "nameLocations": ["11973:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "11973:9:55" @@ -160263,9 +158052,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15232 - ], + "baseFunctions": [15232], "body": { "id": 12638, "nodeType": "Block", @@ -160344,9 +158131,7 @@ "modifierName": { "id": 12631, "name": "onlyOwner", - "nameLocations": [ - "12149:9:55" - ], + "nameLocations": ["12149:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "12149:9:55" @@ -160412,9 +158197,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15343 - ], + "baseFunctions": [15343], "body": { "id": 12653, "nodeType": "Block", @@ -160522,10 +158305,7 @@ "pathNode": { "id": 12641, "name": "Attestation.Receipt", - "nameLocations": [ - "12278:11:55", - "12290:7:55" - ], + "nameLocations": ["12278:11:55", "12290:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 16044, "src": "12278:19:55" @@ -160583,9 +158363,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15320 - ], + "baseFunctions": [15320], "body": { "id": 12663, "nodeType": "Block", @@ -160678,9 +158456,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15326 - ], + "baseFunctions": [15326], "body": { "id": 12673, "nodeType": "Block", @@ -160773,18 +158549,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 15360 - ], + "baseFunctions": [15360], "body": { "id": 12705, "nodeType": "Block", "src": "12834:226:55", "statements": [ { - "assignments": [ - 12687 - ], + "assignments": [12687], "declarations": [ { "constant": false, @@ -160807,10 +158579,7 @@ "pathNode": { "id": 12685, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "12844:15:55", - "12860:9:55" - ], + "nameLocations": ["12844:15:55", "12860:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "12844:25:55" @@ -161178,9 +158947,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15372 - ], + "baseFunctions": [15372], "body": { "id": 12725, "nodeType": "Block", @@ -161320,10 +159087,7 @@ "pathNode": { "id": 12708, "name": "Attestation.State", - "nameLocations": [ - "13147:11:55", - "13159:5:55" - ], + "nameLocations": ["13147:11:55", "13159:5:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "13147:17:55" @@ -161358,10 +159122,7 @@ "pathNode": { "id": 12711, "name": "Attestation.State", - "nameLocations": [ - "13196:11:55", - "13208:5:55" - ], + "nameLocations": ["13196:11:55", "13208:5:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "13196:17:55" @@ -161419,18 +159180,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 15352 - ], + "baseFunctions": [15352], "body": { "id": 12782, "nodeType": "Block", "src": "13499:574:55", "statements": [ { - "assignments": [ - 12736 - ], + "assignments": [12736], "declarations": [ { "constant": false, @@ -161515,9 +159272,7 @@ "src": "13581:50:55" }, { - "assignments": [ - 12745 - ], + "assignments": [12745], "declarations": [ { "constant": false, @@ -161540,10 +159295,7 @@ "pathNode": { "id": 12743, "name": "Allocation.State", - "nameLocations": [ - "13642:10:55", - "13653:5:55" - ], + "nameLocations": ["13642:10:55", "13653:5:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "13642:16:55" @@ -161820,11 +159572,7 @@ "id": 12752, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "13733:7:55", "typeDescriptions": { @@ -162041,11 +159789,7 @@ "id": 12765, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "13824:7:55", "typeDescriptions": { @@ -162148,10 +159892,7 @@ "pathNode": { "id": 12728, "name": "Attestation.State", - "nameLocations": [ - "13431:11:55", - "13443:5:55" - ], + "nameLocations": ["13431:11:55", "13443:5:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "13431:17:55" @@ -162210,9 +159951,7 @@ "visibility": "public" }, { - "baseFunctions": [ - 15334 - ], + "baseFunctions": [15334], "body": { "id": 12800, "nodeType": "Block", @@ -162426,9 +160165,7 @@ "src": "15030:1622:55", "statements": [ { - "assignments": [ - 12817 - ], + "assignments": [12817], "declarations": [ { "constant": false, @@ -162513,9 +160250,7 @@ "src": "15095:53:55" }, { - "assignments": [ - 12826 - ], + "assignments": [12826], "declarations": [ { "constant": false, @@ -162538,10 +160273,7 @@ "pathNode": { "id": 12824, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "15196:15:55", - "15212:9:55" - ], + "nameLocations": ["15196:15:55", "15212:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "15196:25:55" @@ -162835,11 +160567,7 @@ "id": 12838, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "15354:7:55", "typeDescriptions": { @@ -162868,9 +160596,7 @@ "src": "15354:58:55" }, { - "assignments": [ - 12848 - ], + "assignments": [12848], "declarations": [ { "constant": false, @@ -163248,11 +160974,7 @@ "id": 12863, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "15772:7:55", "typeDescriptions": { @@ -163281,9 +161003,7 @@ "src": "15772:85:55" }, { - "assignments": [ - 12874 - ], + "assignments": [12874], "declarations": [ { "constant": false, @@ -163399,9 +161119,7 @@ "src": "15893:68:55" }, { - "assignments": [ - 12882 - ], + "assignments": [12882], "declarations": [ { "constant": false, @@ -164087,10 +161805,7 @@ "pathNode": { "id": 12807, "name": "Attestation.State", - "nameLocations": [ - "14921:11:55", - "14933:5:55" - ], + "nameLocations": ["14921:11:55", "14933:5:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "14921:17:55" @@ -164181,9 +161896,7 @@ "src": "17155:1565:55", "statements": [ { - "assignments": [ - 12938 - ], + "assignments": [12938], "declarations": [ { "constant": false, @@ -164465,11 +162178,7 @@ "id": 12947, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "17332:7:55", "typeDescriptions": { @@ -164498,9 +162207,7 @@ "src": "17332:85:55" }, { - "assignments": [ - 12959 - ], + "assignments": [12959], "declarations": [ { "constant": false, @@ -164523,9 +162230,7 @@ "pathNode": { "id": 12957, "name": "ISubgraphService", - "nameLocations": [ - "17461:16:55" - ], + "nameLocations": ["17461:16:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 15634, "src": "17461:16:55" @@ -164576,9 +162281,7 @@ "src": "17461:57:55" }, { - "assignments": [ - 12967 - ], + "assignments": [12967], "declarations": [ { "constant": false, @@ -164601,10 +162304,7 @@ "pathNode": { "id": 12965, "name": "Allocation.State", - "nameLocations": [ - "17528:10:55", - "17539:5:55" - ], + "nameLocations": ["17528:10:55", "17539:5:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "17528:16:55" @@ -164689,9 +162389,7 @@ "src": "17528:77:55" }, { - "assignments": [ - 12974 - ], + "assignments": [12974], "declarations": [ { "constant": false, @@ -164912,11 +162610,7 @@ "id": 12978, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "17656:7:55", "typeDescriptions": { @@ -164945,9 +162639,7 @@ "src": "17656:76:55" }, { - "assignments": [ - 12994 - ], + "assignments": [12994], "declarations": [ { "constant": false, @@ -164970,10 +162662,7 @@ "pathNode": { "id": 12992, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "17785:15:55", - "17801:9:55" - ], + "nameLocations": ["17785:15:55", "17801:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "17785:25:55" @@ -165248,11 +162937,7 @@ "id": 13005, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "17904:7:55", "typeDescriptions": { @@ -165281,9 +162966,7 @@ "src": "17904:58:55" }, { - "assignments": [ - 13015 - ], + "assignments": [13015], "declarations": [ { "constant": false, @@ -165399,9 +163082,7 @@ "src": "17998:68:55" }, { - "assignments": [ - 13023 - ], + "assignments": [13023], "declarations": [ { "constant": false, @@ -166187,9 +163868,7 @@ "src": "19017:384:55", "statements": [ { - "assignments": [ - 13077 - ], + "assignments": [13077], "declarations": [ { "constant": false, @@ -166841,9 +164520,7 @@ "pathNode": { "id": 13069, "name": "Dispute", - "nameLocations": [ - "18959:7:55" - ], + "nameLocations": ["18959:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "18959:7:55" @@ -167318,9 +164995,7 @@ "pathNode": { "id": 13122, "name": "Dispute", - "nameLocations": [ - "19581:7:55" - ], + "nameLocations": ["19581:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "19581:7:55" @@ -167800,9 +165475,7 @@ "pathNode": { "id": 13157, "name": "Dispute", - "nameLocations": [ - "20015:7:55" - ], + "nameLocations": ["20015:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "20015:7:55" @@ -168282,9 +165955,7 @@ "pathNode": { "id": 13194, "name": "Dispute", - "nameLocations": [ - "20467:7:55" - ], + "nameLocations": ["20467:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "20467:7:55" @@ -168320,9 +165991,7 @@ "src": "21378:1390:55", "statements": [ { - "assignments": [ - 13241 - ], + "assignments": [13241], "declarations": [ { "constant": false, @@ -168345,9 +166014,7 @@ "pathNode": { "id": 13239, "name": "ISubgraphService", - "nameLocations": [ - "21388:16:55" - ], + "nameLocations": ["21388:16:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 15634, "src": "21388:16:55" @@ -168398,9 +166065,7 @@ "src": "21388:57:55" }, { - "assignments": [ - 13249 - ], + "assignments": [13249], "declarations": [ { "constant": false, @@ -168423,10 +166088,7 @@ "pathNode": { "id": 13247, "name": "IHorizonStaking.Provision", - "nameLocations": [ - "21500:15:55", - "21516:9:55" - ], + "nameLocations": ["21500:15:55", "21516:9:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 3962, "src": "21500:25:55" @@ -168591,9 +166253,7 @@ "src": "21500:110:55" }, { - "assignments": [ - 13261 - ], + "assignments": [13261], "declarations": [ { "constant": false, @@ -168881,11 +166541,7 @@ "id": 13267, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "21748:7:55", "typeDescriptions": { @@ -168914,9 +166570,7 @@ "src": "21748:158:55" }, { - "assignments": [ - 13282 - ], + "assignments": [13282], "declarations": [ { "constant": false, @@ -169048,9 +166702,7 @@ "src": "22406:75:55" }, { - "assignments": [ - 13291 - ], + "assignments": [13291], "declarations": [ { "constant": false, @@ -169182,9 +166834,7 @@ "src": "22491:82:55" }, { - "assignments": [ - 13300 - ], + "assignments": [13300], "declarations": [ { "constant": false, @@ -169745,11 +167395,7 @@ "id": 13326, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "23022:7:55", "typeDescriptions": { @@ -170037,11 +167683,7 @@ "id": 13352, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "23427:7:55", "typeDescriptions": { @@ -170342,11 +167984,7 @@ "id": 13375, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "23885:7:55", "typeDescriptions": { @@ -170647,11 +168285,7 @@ "id": 13399, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "24390:7:55", "typeDescriptions": { @@ -170975,11 +168609,7 @@ "id": 13423, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "24875:7:55", "typeDescriptions": { @@ -171311,11 +168941,7 @@ "id": 13448, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "25352:7:55", "typeDescriptions": { @@ -171730,11 +169356,7 @@ "id": 13477, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "25808:7:55", "typeDescriptions": { @@ -171826,9 +169448,7 @@ "pathNode": { "id": 13473, "name": "ISubgraphService", - "nameLocations": [ - "25780:16:55" - ], + "nameLocations": ["25780:16:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 15634, "src": "25780:16:55" @@ -172010,9 +169630,7 @@ "pathNode": { "id": 13496, "name": "Dispute", - "nameLocations": [ - "26152:7:55" - ], + "nameLocations": ["26152:7:55"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "26152:7:55" @@ -172076,9 +169694,7 @@ "src": "27164:173:55", "statements": [ { - "assignments": [ - 13523 - ], + "assignments": [13523], "declarations": [ { "constant": false, @@ -172461,55 +170077,12 @@ "scope": 13543, "src": "2323:25016:55", "usedErrors": [ - 4464, - 4655, - 4959, - 4964, - 5140, - 5143, - 7894, - 7899, - 7904, - 15080, - 15083, - 15086, - 15089, - 15092, - 15097, - 15102, - 15107, - 15112, - 15119, - 15125, - 15130, - 15133, - 15138, - 15143, - 15150, - 15155, - 15162, - 15177, - 15180, - 16121 + 4464, 4655, 4959, 4964, 5140, 5143, 7894, 7899, 7904, 15080, 15083, 15086, 15089, 15092, 15097, 15102, + 15107, 15112, 15119, 15125, 15130, 15133, 15138, 15143, 15150, 15155, 15162, 15177, 15180, 16121 ], "usedEvents": [ - 4650, - 4970, - 5148, - 14948, - 14953, - 14958, - 14963, - 14968, - 14973, - 14992, - 15011, - 15026, - 15037, - 15048, - 15059, - 15066, - 15077 + 4650, 4970, 5148, 14948, 14953, 14958, 14963, 14968, 14973, 14992, 15011, 15026, 15037, 15048, 15059, + 15066, 15077 ] } ], @@ -172521,15 +170094,9 @@ "ast": { "absolutePath": "contracts/DisputeManagerStorage.sol", "exportedSymbols": { - "DisputeManagerV1Storage": [ - 13575 - ], - "IDisputeManager": [ - 15373 - ], - "ISubgraphService": [ - 15634 - ] + "DisputeManagerV1Storage": [13575], + "IDisputeManager": [15373], + "ISubgraphService": [15634] }, "id": 13576, "license": "GPL-2.0-or-later", @@ -172537,11 +170104,7 @@ "nodes": [ { "id": 13544, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:56" }, @@ -172609,9 +170172,7 @@ }, "fullyImplemented": true, "id": 13575, - "linearizedBaseContracts": [ - 13575 - ], + "linearizedBaseContracts": [13575], "name": "DisputeManagerV1Storage", "nameLocation": "499:23:56", "nodeType": "ContractDefinition", @@ -172644,9 +170205,7 @@ "pathNode": { "id": 13551, "name": "ISubgraphService", - "nameLocations": [ - "583:16:56" - ], + "nameLocations": ["583:16:56"], "nodeType": "IdentifierPath", "referencedDeclaration": 15634, "src": "583:16:56" @@ -172881,10 +170440,7 @@ "pathNode": { "id": 13571, "name": "IDisputeManager.Dispute", - "nameLocations": [ - "1258:15:56", - "1274:7:56" - ], + "nameLocations": ["1258:15:56", "1274:7:56"], "nodeType": "IdentifierPath", "referencedDeclaration": 14943, "src": "1258:23:56" @@ -172914,66 +170470,26 @@ "ast": { "absolutePath": "contracts/SubgraphService.sol", "exportedSymbols": { - "Allocation": [ - 16033 - ], - "AllocationManager": [ - 17363 - ], - "DataService": [ - 936 - ], - "DataServiceFees": [ - 1278 - ], - "DataServicePausableUpgradeable": [ - 1425 - ], - "Directory": [ - 17720 - ], - "IDataService": [ - 1557 - ], - "IGraphPayments": [ - 2489 - ], - "IGraphTallyCollector": [ - 2605 - ], - "IGraphToken": [ - 758 - ], - "IRewardsIssuer": [ - 561 - ], - "ISubgraphService": [ - 15634 - ], - "Initializable": [ - 5391 - ], - "LegacyAllocation": [ - 16462 - ], - "MulticallUpgradeable": [ - 5540 - ], - "OwnableUpgradeable": [ - 5123 - ], - "PPMMath": [ - 4539 - ], - "SubgraphService": [ - 14879 - ], - "SubgraphServiceV1Storage": [ - 14902 - ], - "TokenUtils": [ - 840 - ] + "Allocation": [16033], + "AllocationManager": [17363], + "DataService": [936], + "DataServiceFees": [1278], + "DataServicePausableUpgradeable": [1425], + "Directory": [17720], + "IDataService": [1557], + "IGraphPayments": [2489], + "IGraphTallyCollector": [2605], + "IGraphToken": [758], + "IRewardsIssuer": [561], + "ISubgraphService": [15634], + "Initializable": [5391], + "LegacyAllocation": [16462], + "MulticallUpgradeable": [5540], + "OwnableUpgradeable": [5123], + "PPMMath": [4539], + "SubgraphService": [14879], + "SubgraphServiceV1Storage": [14902], + "TokenUtils": [840] }, "id": 14880, "license": "GPL-3.0-or-later", @@ -172981,11 +170497,7 @@ "nodes": [ { "id": 13577, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:57" }, @@ -173471,9 +170983,7 @@ "baseName": { "id": 13617, "name": "Initializable", - "nameLocations": [ - "2004:13:57" - ], + "nameLocations": ["2004:13:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "2004:13:57" @@ -173486,9 +170996,7 @@ "baseName": { "id": 13619, "name": "OwnableUpgradeable", - "nameLocations": [ - "2023:18:57" - ], + "nameLocations": ["2023:18:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5123, "src": "2023:18:57" @@ -173501,9 +171009,7 @@ "baseName": { "id": 13621, "name": "MulticallUpgradeable", - "nameLocations": [ - "2047:20:57" - ], + "nameLocations": ["2047:20:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5540, "src": "2047:20:57" @@ -173516,9 +171022,7 @@ "baseName": { "id": 13623, "name": "DataService", - "nameLocations": [ - "2073:11:57" - ], + "nameLocations": ["2073:11:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 936, "src": "2073:11:57" @@ -173531,9 +171035,7 @@ "baseName": { "id": 13625, "name": "DataServicePausableUpgradeable", - "nameLocations": [ - "2090:30:57" - ], + "nameLocations": ["2090:30:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1425, "src": "2090:30:57" @@ -173546,9 +171048,7 @@ "baseName": { "id": 13627, "name": "DataServiceFees", - "nameLocations": [ - "2126:15:57" - ], + "nameLocations": ["2126:15:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1278, "src": "2126:15:57" @@ -173561,9 +171061,7 @@ "baseName": { "id": 13629, "name": "Directory", - "nameLocations": [ - "2147:9:57" - ], + "nameLocations": ["2147:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 17720, "src": "2147:9:57" @@ -173576,9 +171074,7 @@ "baseName": { "id": 13631, "name": "AllocationManager", - "nameLocations": [ - "2162:17:57" - ], + "nameLocations": ["2162:17:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 17363, "src": "2162:17:57" @@ -173591,9 +171087,7 @@ "baseName": { "id": 13633, "name": "SubgraphServiceV1Storage", - "nameLocations": [ - "2185:24:57" - ], + "nameLocations": ["2185:24:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 14902, "src": "2185:24:57" @@ -173606,9 +171100,7 @@ "baseName": { "id": 13635, "name": "IRewardsIssuer", - "nameLocations": [ - "2215:14:57" - ], + "nameLocations": ["2215:14:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 561, "src": "2215:14:57" @@ -173621,9 +171113,7 @@ "baseName": { "id": 13637, "name": "ISubgraphService", - "nameLocations": [ - "2235:16:57" - ], + "nameLocations": ["2235:16:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 15634, "src": "2235:16:57" @@ -173650,31 +171140,8 @@ "1254": 3 }, "linearizedBaseContracts": [ - 14879, - 15634, - 561, - 14902, - 17363, - 17401, - 17720, - 1278, - 1620, - 1308, - 1425, - 1655, - 936, - 1557, - 945, - 2395, - 2425, - 4928, - 6044, - 6069, - 5700, - 5540, - 5123, - 5437, - 5391 + 14879, 15634, 561, 14902, 17363, 17401, 17720, 1278, 1620, 1308, 1425, 1655, 936, 1557, 945, 2395, 2425, + 4928, 6044, 6069, 5700, 5540, 5123, 5437, 5391 ], "name": "SubgraphService", "nameLocation": "1981:15:57", @@ -173686,9 +171153,7 @@ "libraryName": { "id": 13639, "name": "PPMMath", - "nameLocations": [ - "2264:7:57" - ], + "nameLocations": ["2264:7:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 4539, "src": "2264:7:57" @@ -173712,9 +171177,7 @@ "libraryName": { "id": 13642, "name": "Allocation", - "nameLocations": [ - "2295:10:57" - ], + "nameLocations": ["2295:10:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 16033, "src": "2295:10:57" @@ -173749,10 +171212,7 @@ "pathNode": { "id": 13644, "name": "Allocation.State", - "nameLocations": [ - "2329:10:57", - "2340:5:57" - ], + "nameLocations": ["2329:10:57", "2340:5:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "2329:16:57" @@ -173772,9 +171232,7 @@ "libraryName": { "id": 13648, "name": "Allocation", - "nameLocations": [ - "2358:10:57" - ], + "nameLocations": ["2358:10:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 16033, "src": "2358:10:57" @@ -173787,10 +171245,7 @@ "pathNode": { "id": 13649, "name": "Allocation.State", - "nameLocations": [ - "2373:10:57", - "2384:5:57" - ], + "nameLocations": ["2373:10:57", "2384:5:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "2373:16:57" @@ -173809,9 +171264,7 @@ "libraryName": { "id": 13652, "name": "TokenUtils", - "nameLocations": [ - "2401:10:57" - ], + "nameLocations": ["2401:10:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 840, "src": "2401:10:57" @@ -173824,9 +171277,7 @@ "pathNode": { "id": 13653, "name": "IGraphToken", - "nameLocations": [ - "2416:11:57" - ], + "nameLocations": ["2416:11:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 758, "src": "2416:11:57" @@ -173999,11 +171450,7 @@ "id": 13660, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2609:7:57", "typeDescriptions": { @@ -174161,9 +171608,7 @@ "modifierName": { "id": 13685, "name": "DataService", - "nameLocations": [ - "3320:11:57" - ], + "nameLocations": ["3320:11:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 936, "src": "3320:11:57" @@ -174272,9 +171717,7 @@ "modifierName": { "id": 13688, "name": "Directory", - "nameLocations": [ - "3349:9:57" - ], + "nameLocations": ["3349:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 17720, "src": "3349:9:57" @@ -174418,9 +171861,7 @@ "visibility": "public" }, { - "baseFunctions": [ - 15509 - ], + "baseFunctions": [15509], "body": { "id": 13751, "nodeType": "Block", @@ -174923,9 +172364,7 @@ "modifierName": { "id": 13713, "name": "initializer", - "nameLocations": [ - "3675:11:57" - ], + "nameLocations": ["3675:11:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5231, "src": "3675:11:57" @@ -175066,20 +172505,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 1481 - ], + "baseFunctions": [1481], "body": { "id": 13851, "nodeType": "Block", "src": "4979:726:57", "statements": [ { - "assignments": [ - 13770, - 13772, - 13774 - ], + "assignments": [13770, 13772, 13774], "declarations": [ { "constant": false, @@ -175467,11 +172900,7 @@ "id": 13787, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5152:7:57", "typeDescriptions": { @@ -175654,11 +173083,7 @@ "id": 13799, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5219:7:57", "typeDescriptions": { @@ -175822,11 +173247,7 @@ "id": 13811, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5294:7:57", "typeDescriptions": { @@ -175986,16 +173407,8 @@ "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, - "nameLocations": [ - "5454:12:57", - "5485:3:57", - "5495:7:57" - ], - "names": [ - "registeredAt", - "url", - "geoHash" - ], + "nameLocations": ["5454:12:57", "5485:3:57", "5495:7:57"], + "names": ["registeredAt", "url", "geoHash"], "nodeType": "FunctionCall", "src": "5444:70:57", "tryCall": false, @@ -176290,9 +173703,7 @@ "modifierName": { "id": 13760, "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "4901:26:57" - ], + "nameLocations": ["4901:26:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1963, "src": "4901:26:57" @@ -176320,9 +173731,7 @@ "modifierName": { "id": 13763, "name": "onlyValidProvision", - "nameLocations": [ - "4937:18:57" - ], + "nameLocations": ["4937:18:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1988, "src": "4937:18:57" @@ -176336,9 +173745,7 @@ "modifierName": { "id": 13766, "name": "whenNotPaused", - "nameLocations": [ - "4965:13:57" - ], + "nameLocations": ["4965:13:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5590, "src": "4965:13:57" @@ -176431,9 +173838,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 1489 - ], + "baseFunctions": [1489], "body": { "id": 13874, "nodeType": "Block", @@ -176580,9 +173985,7 @@ "modifierName": { "id": 13860, "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "6440:26:57" - ], + "nameLocations": ["6440:26:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1963, "src": "6440:26:57" @@ -176596,9 +173999,7 @@ "modifierName": { "id": 13863, "name": "whenNotPaused", - "nameLocations": [ - "6476:13:57" - ], + "nameLocations": ["6476:13:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5590, "src": "6476:13:57" @@ -176691,21 +174092,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 1497 - ], + "baseFunctions": [1497], "body": { "id": 13931, "nodeType": "Block", "src": "8058:355:57", "statements": [ { - "assignments": [ - 13896, - 13898, - 13900, - 13902 - ], + "assignments": [13896, 13898, 13900, 13902], "declarations": [ { "constant": false, @@ -177222,9 +174616,7 @@ "modifierName": { "id": 13883, "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "7921:26:57" - ], + "nameLocations": ["7921:26:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1963, "src": "7921:26:57" @@ -177252,9 +174644,7 @@ "modifierName": { "id": 13886, "name": "onlyValidProvision", - "nameLocations": [ - "7965:18:57" - ], + "nameLocations": ["7965:18:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1988, "src": "7965:18:57" @@ -177282,9 +174672,7 @@ "modifierName": { "id": 13889, "name": "onlyRegisteredIndexer", - "nameLocations": [ - "8001:21:57" - ], + "nameLocations": ["8001:21:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 13674, "src": "8001:21:57" @@ -177298,9 +174686,7 @@ "modifierName": { "id": 13892, "name": "whenNotPaused", - "nameLocations": [ - "8040:13:57" - ], + "nameLocations": ["8040:13:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5590, "src": "8040:13:57" @@ -177393,18 +174779,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 1505 - ], + "baseFunctions": [1505], "body": { "id": 13983, "nodeType": "Block", "src": "9664:323:57", "statements": [ { - "assignments": [ - 13950 - ], + "assignments": [13950], "declarations": [ { "constant": false, @@ -177737,11 +175119,7 @@ "id": 13959, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "9734:7:57", "typeDescriptions": { @@ -177946,9 +175324,7 @@ "modifierName": { "id": 13940, "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "9583:26:57" - ], + "nameLocations": ["9583:26:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1963, "src": "9583:26:57" @@ -177976,9 +175352,7 @@ "modifierName": { "id": 13943, "name": "onlyRegisteredIndexer", - "nameLocations": [ - "9619:21:57" - ], + "nameLocations": ["9619:21:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 13674, "src": "9619:21:57" @@ -177992,9 +175366,7 @@ "modifierName": { "id": 13946, "name": "whenNotPaused", - "nameLocations": [ - "9650:13:57" - ], + "nameLocations": ["9650:13:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5590, "src": "9650:13:57" @@ -178087,18 +175459,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 1518 - ], + "baseFunctions": [1518], "body": { "id": 14054, "nodeType": "Block", "src": "11826:536:57", "statements": [ { - "assignments": [ - 14010 - ], + "assignments": [14010], "declarations": [ { "constant": false, @@ -178710,9 +176078,7 @@ "modifierName": { "id": 13995, "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "11663:26:57" - ], + "nameLocations": ["11663:26:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1963, "src": "11663:26:57" @@ -178740,9 +176106,7 @@ "modifierName": { "id": 13998, "name": "onlyValidProvision", - "nameLocations": [ - "11707:18:57" - ], + "nameLocations": ["11707:18:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1988, "src": "11707:18:57" @@ -178770,9 +176134,7 @@ "modifierName": { "id": 14001, "name": "onlyRegisteredIndexer", - "nameLocations": [ - "11743:21:57" - ], + "nameLocations": ["11743:21:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 13674, "src": "11743:21:57" @@ -178786,9 +176148,7 @@ "modifierName": { "id": 14004, "name": "whenNotPaused", - "nameLocations": [ - "11782:13:57" - ], + "nameLocations": ["11782:13:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5590, "src": "11782:13:57" @@ -178859,10 +176219,7 @@ "pathNode": { "id": 13988, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "11546:14:57", - "11561:12:57" - ], + "nameLocations": ["11546:14:57", "11561:12:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "11546:27:57" @@ -178947,19 +176304,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 1526 - ], + "baseFunctions": [1526], "body": { "id": 14098, "nodeType": "Block", "src": "12693:226:57", "statements": [ { - "assignments": [ - 14067, - 14069 - ], + "assignments": [14067, 14069], "declarations": [ { "constant": false, @@ -179434,9 +176786,7 @@ "modifierName": { "id": 14063, "name": "onlyDisputeManager", - "nameLocations": [ - "12674:18:57" - ], + "nameLocations": ["12674:18:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 17635, "src": "12674:18:57" @@ -179529,18 +176879,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 15515 - ], + "baseFunctions": [15515], "body": { "id": 14143, "nodeType": "Block", "src": "13046:339:57", "statements": [ { - "assignments": [ - 14112 - ], + "assignments": [14112], "declarations": [ { "constant": false, @@ -179563,10 +176909,7 @@ "pathNode": { "id": 14110, "name": "Allocation.State", - "nameLocations": [ - "13056:10:57", - "13067:5:57" - ], + "nameLocations": ["13056:10:57", "13067:5:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "13056:16:57" @@ -179782,11 +177125,7 @@ "id": 14118, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "13133:7:57", "typeDescriptions": { @@ -179943,11 +177282,7 @@ "id": 14128, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "13244:7:57", "typeDescriptions": { @@ -180068,9 +177403,7 @@ "modifierName": { "id": 14105, "name": "whenNotPaused", - "nameLocations": [ - "13032:13:57" - ], + "nameLocations": ["13032:13:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5590, "src": "13032:13:57" @@ -180136,9 +177469,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15525 - ], + "baseFunctions": [15525], "body": { "id": 14185, "nodeType": "Block", @@ -180338,11 +177669,7 @@ "id": 14165, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "13711:7:57", "typeDescriptions": { @@ -180489,9 +177816,7 @@ "modifierName": { "id": 14153, "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "13564:26:57" - ], + "nameLocations": ["13564:26:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1963, "src": "13564:26:57" @@ -180519,9 +177844,7 @@ "modifierName": { "id": 14156, "name": "onlyValidProvision", - "nameLocations": [ - "13608:18:57" - ], + "nameLocations": ["13608:18:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 1988, "src": "13608:18:57" @@ -180549,9 +177872,7 @@ "modifierName": { "id": 14159, "name": "onlyRegisteredIndexer", - "nameLocations": [ - "13644:21:57" - ], + "nameLocations": ["13644:21:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 13674, "src": "13644:21:57" @@ -180565,9 +177886,7 @@ "modifierName": { "id": 14162, "name": "whenNotPaused", - "nameLocations": [ - "13683:13:57" - ], + "nameLocations": ["13683:13:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5590, "src": "13683:13:57" @@ -180682,9 +178001,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15535 - ], + "baseFunctions": [15535], "body": { "id": 14205, "nodeType": "Block", @@ -180795,9 +178112,7 @@ "modifierName": { "id": 14196, "name": "onlyOwner", - "nameLocations": [ - "14133:9:57" - ], + "nameLocations": ["14133:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "14133:9:57" @@ -180918,9 +178233,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15543 - ], + "baseFunctions": [15543], "body": { "id": 14222, "nodeType": "Block", @@ -181015,9 +178328,7 @@ "modifierName": { "id": 14214, "name": "onlyOwner", - "nameLocations": [ - "14353:9:57" - ], + "nameLocations": ["14353:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "14353:9:57" @@ -181110,9 +178421,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15579 - ], + "baseFunctions": [15579], "body": { "id": 14236, "nodeType": "Block", @@ -181273,9 +178582,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15549 - ], + "baseFunctions": [15549], "body": { "id": 14251, "nodeType": "Block", @@ -181370,9 +178677,7 @@ "modifierName": { "id": 14243, "name": "onlyOwner", - "nameLocations": [ - "14746:9:57" - ], + "nameLocations": ["14746:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "14746:9:57" @@ -181437,9 +178742,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15555 - ], + "baseFunctions": [15555], "body": { "id": 14265, "nodeType": "Block", @@ -181518,9 +178821,7 @@ "modifierName": { "id": 14258, "name": "onlyOwner", - "nameLocations": [ - "14964:9:57" - ], + "nameLocations": ["14964:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "14964:9:57" @@ -181585,9 +178886,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15561 - ], + "baseFunctions": [15561], "body": { "id": 14279, "nodeType": "Block", @@ -181666,9 +178965,7 @@ "modifierName": { "id": 14272, "name": "onlyOwner", - "nameLocations": [ - "15144:9:57" - ], + "nameLocations": ["15144:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "15144:9:57" @@ -181733,9 +179030,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15567 - ], + "baseFunctions": [15567], "body": { "id": 14293, "nodeType": "Block", @@ -181814,9 +179109,7 @@ "modifierName": { "id": 14286, "name": "onlyOwner", - "nameLocations": [ - "15325:9:57" - ], + "nameLocations": ["15325:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "15325:9:57" @@ -181881,9 +179174,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15573 - ], + "baseFunctions": [15573], "body": { "id": 14321, "nodeType": "Block", @@ -182021,11 +179312,7 @@ "id": 14303, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "15515:7:57", "typeDescriptions": { @@ -182169,9 +179456,7 @@ "modifierName": { "id": 14300, "name": "onlyOwner", - "nameLocations": [ - "15495:9:57" - ], + "nameLocations": ["15495:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 5018, "src": "15495:9:57" @@ -182236,9 +179521,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15588 - ], + "baseFunctions": [15588], "body": { "id": 14336, "nodeType": "Block", @@ -182369,10 +179652,7 @@ "pathNode": { "id": 14328, "name": "Allocation.State", - "nameLocations": [ - "15811:10:57", - "15822:5:57" - ], + "nameLocations": ["15811:10:57", "15822:5:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "15811:16:57" @@ -182396,18 +179676,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 552 - ], + "baseFunctions": [552], "body": { "id": 14380, "nodeType": "Block", "src": "16073:300:57", "statements": [ { - "assignments": [ - 14360 - ], + "assignments": [14360], "declarations": [ { "constant": false, @@ -182430,10 +179706,7 @@ "pathNode": { "id": 14358, "name": "Allocation.State", - "nameLocations": [ - "16083:10:57", - "16094:5:57" - ], + "nameLocations": ["16083:10:57", "16094:5:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "16083:16:57" @@ -182932,9 +180205,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 560 - ], + "baseFunctions": [560], "body": { "id": 14394, "nodeType": "Block", @@ -183080,9 +180351,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15597 - ], + "baseFunctions": [15597], "body": { "id": 14409, "nodeType": "Block", @@ -183213,10 +180482,7 @@ "pathNode": { "id": 14401, "name": "LegacyAllocation.State", - "nameLocations": [ - "16717:16:57", - "16734:5:57" - ], + "nameLocations": ["16717:16:57", "16734:5:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "16717:22:57" @@ -183240,9 +180506,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15621 - ], + "baseFunctions": [15621], "body": { "id": 14423, "nodeType": "Block", @@ -183400,9 +180664,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15627 - ], + "baseFunctions": [15627], "body": { "id": 14437, "nodeType": "Block", @@ -183560,9 +180822,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15633 - ], + "baseFunctions": [15633], "body": { "id": 14451, "nodeType": "Block", @@ -183720,9 +180980,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15607 - ], + "baseFunctions": [15607], "body": { "id": 14468, "nodeType": "Block", @@ -183925,9 +181183,7 @@ "visibility": "external" }, { - "baseFunctions": [ - 15615 - ], + "baseFunctions": [15615], "body": { "id": 14483, "nodeType": "Block", @@ -184102,18 +181358,14 @@ "visibility": "external" }, { - "baseFunctions": [ - 2317 - ], + "baseFunctions": [2317], "body": { "id": 14504, "nodeType": "Block", "src": "18254:123:57", "statements": [ { - "assignments": [ - 14494 - ], + "assignments": [14494], "declarations": [ { "constant": false, @@ -184354,9 +181606,7 @@ "visibility": "internal" }, { - "baseFunctions": [ - 2330 - ], + "baseFunctions": [2330], "body": { "id": 14521, "nodeType": "Block", @@ -184563,10 +181813,7 @@ "src": "20565:2975:57", "statements": [ { - "assignments": [ - 14536, - 14538 - ], + "assignments": [14536, 14538], "declarations": [ { "constant": false, @@ -184589,10 +181836,7 @@ "pathNode": { "id": 14534, "name": "IGraphTallyCollector.SignedRAV", - "nameLocations": [ - "20576:20:57", - "20597:9:57" - ], + "nameLocations": ["20576:20:57", "20597:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 2525, "src": "20576:30:57" @@ -184959,11 +182203,7 @@ "id": 14549, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "20755:7:57", "typeDescriptions": { @@ -185269,11 +182509,7 @@ "id": 14563, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "21093:7:57", "typeDescriptions": { @@ -185302,9 +182538,7 @@ "src": "21093:163:57" }, { - "assignments": [ - 14584 - ], + "assignments": [14584], "declarations": [ { "constant": false, @@ -185519,9 +182753,7 @@ "src": "21266:76:57" }, { - "assignments": [ - 14602 - ], + "assignments": [14602], "declarations": [ { "constant": false, @@ -185544,10 +182776,7 @@ "pathNode": { "id": 14600, "name": "Allocation.State", - "nameLocations": [ - "21352:10:57", - "21363:5:57" - ], + "nameLocations": ["21352:10:57", "21363:5:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "21352:16:57" @@ -185788,11 +183017,7 @@ "id": 14608, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "21515:7:57", "typeDescriptions": { @@ -185821,9 +183046,7 @@ "src": "21515:94:57" }, { - "assignments": [ - 14621 - ], + "assignments": [14621], "declarations": [ { "constant": false, @@ -185960,9 +183183,7 @@ "src": "21732:25:57" }, { - "assignments": [ - 14631 - ], + "assignments": [14631], "declarations": [ { "constant": false, @@ -185997,9 +183218,7 @@ "src": "21863:23:57" }, { - "assignments": [ - 14634 - ], + "assignments": [14634], "declarations": [ { "constant": false, @@ -186039,9 +183258,7 @@ "src": "21928:623:57", "statements": [ { - "assignments": [ - 14637 - ], + "assignments": [14637], "declarations": [ { "constant": false, @@ -186550,9 +183767,7 @@ "src": "22019:266:57" }, { - "assignments": [ - 14670 - ], + "assignments": [14670], "declarations": [ { "constant": false, @@ -186840,11 +184055,7 @@ "id": 14680, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "22375:7:57", "typeDescriptions": { @@ -187949,11 +185160,7 @@ "src": "24074:401:57", "statements": [ { - "assignments": [ - 14770, - 14772, - 14774 - ], + "assignments": [14770, 14772, 14774], "declarations": [ { "constant": false, @@ -188380,11 +185587,7 @@ "id": 14787, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "24203:7:57", "typeDescriptions": { @@ -189008,11 +186211,7 @@ "id": 14838, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "25180:7:57", "typeDescriptions": { @@ -189403,10 +186602,7 @@ "pathNode": { "id": 14857, "name": "IGraphTallyCollector.SignedRAV", - "nameLocations": [ - "25679:20:57", - "25700:9:57" - ], + "nameLocations": ["25679:20:57", "25700:9:57"], "nodeType": "IdentifierPath", "referencedDeclaration": 2525, "src": "25679:30:57" @@ -189494,88 +186690,14 @@ "scope": 14880, "src": "1972:23938:57", "usedErrors": [ - 1610, - 1613, - 1639, - 1646, - 1667, - 1918, - 1925, - 1932, - 1937, - 4104, - 4107, - 4110, - 4113, - 4464, - 4655, - 4959, - 4964, - 5140, - 5143, - 5579, - 5582, - 6157, - 6420, - 7894, - 7899, - 7904, - 15431, - 15434, - 15437, - 15440, - 15445, - 15451, - 15458, - 15465, - 15472, - 15479, - 15484, - 15489, - 15492, - 15497, - 15668, - 15673, - 15680, - 16310, - 16615, - 16618, - 16623, - 16630, + 1610, 1613, 1639, 1646, 1667, 1918, 1925, 1932, 1937, 4104, 4107, 4110, 4113, 4464, 4655, 4959, 4964, + 5140, 5143, 5579, 5582, 6157, 6420, 7894, 7899, 7904, 15431, 15434, 15437, 15440, 15445, 15451, 15458, + 15465, 15472, 15479, 15484, 15489, 15492, 15497, 15668, 15673, 15680, 16310, 16615, 16618, 16623, 16630, 17612 ], "usedEvents": [ - 1437, - 1442, - 1449, - 1456, - 1466, - 1473, - 1585, - 1596, - 1605, - 1634, - 1888, - 1893, - 1900, - 1907, - 4650, - 4970, - 5148, - 5571, - 5576, - 6049, - 15409, - 15416, - 15421, - 15426, - 16547, - 16568, - 16581, - 16594, - 16603, - 16608, - 17605 + 1437, 1442, 1449, 1456, 1466, 1473, 1585, 1596, 1605, 1634, 1888, 1893, 1900, 1907, 4650, 4970, 5148, + 5571, 5576, 6049, 15409, 15416, 15421, 15426, 16547, 16568, 16581, 16594, 16603, 16608, 17605 ] } ], @@ -189587,12 +186709,8 @@ "ast": { "absolutePath": "contracts/SubgraphServiceStorage.sol", "exportedSymbols": { - "ISubgraphService": [ - 15634 - ], - "SubgraphServiceV1Storage": [ - 14902 - ] + "ISubgraphService": [15634], + "SubgraphServiceV1Storage": [14902] }, "id": 14903, "license": "GPL-3.0-or-later", @@ -189600,11 +186718,7 @@ "nodes": [ { "id": 14881, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:58" }, @@ -189647,9 +186761,7 @@ }, "fullyImplemented": true, "id": 14902, - "linearizedBaseContracts": [ - 14902 - ], + "linearizedBaseContracts": [14902], "name": "SubgraphServiceV1Storage", "nameLocation": "432:24:58", "nodeType": "ContractDefinition", @@ -189704,10 +186816,7 @@ "pathNode": { "id": 14887, "name": "ISubgraphService.Indexer", - "nameLocations": [ - "555:16:58", - "572:7:58" - ], + "nameLocations": ["555:16:58", "572:7:58"], "nodeType": "IdentifierPath", "referencedDeclaration": 15394, "src": "555:24:58" @@ -189863,12 +186972,8 @@ "ast": { "absolutePath": "contracts/interfaces/IDisputeManager.sol", "exportedSymbols": { - "Attestation": [ - 16290 - ], - "IDisputeManager": [ - 15373 - ] + "Attestation": [16290], + "IDisputeManager": [15373] }, "id": 15374, "license": "GPL-2.0-or-later", @@ -189876,11 +186981,7 @@ "nodes": [ { "id": 14904, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "46:23:59" }, @@ -189923,9 +187024,7 @@ }, "fullyImplemented": false, "id": 15373, - "linearizedBaseContracts": [ - 15373 - ], + "linearizedBaseContracts": [15373], "name": "IDisputeManager", "nameLocation": "373:15:59", "nodeType": "ContractDefinition", @@ -190173,9 +187272,7 @@ "pathNode": { "id": 14931, "name": "DisputeType", - "nameLocations": [ - "1595:11:59" - ], + "nameLocations": ["1595:11:59"], "nodeType": "IdentifierPath", "referencedDeclaration": 14913, "src": "1595:11:59" @@ -190210,9 +187307,7 @@ "pathNode": { "id": 14934, "name": "DisputeStatus", - "nameLocations": [ - "1628:13:59" - ], + "nameLocations": ["1628:13:59"], "nodeType": "IdentifierPath", "referencedDeclaration": 14921, "src": "1628:13:59" @@ -192333,10 +189428,7 @@ "pathNode": { "id": 15121, "name": "IDisputeManager.DisputeStatus", - "nameLocations": [ - "9965:15:59", - "9981:13:59" - ], + "nameLocations": ["9965:15:59", "9981:13:59"], "nodeType": "IdentifierPath", "referencedDeclaration": 14921, "src": "9965:29:59" @@ -194672,10 +191764,7 @@ "pathNode": { "id": 15336, "name": "Attestation.Receipt", - "nameLocations": [ - "22633:11:59", - "22645:7:59" - ], + "nameLocations": ["22633:11:59", "22645:7:59"], "nodeType": "IdentifierPath", "referencedDeclaration": 16044, "src": "22633:19:59" @@ -194772,10 +191861,7 @@ "pathNode": { "id": 15345, "name": "Attestation.State", - "nameLocations": [ - "22886:11:59", - "22898:5:59" - ], + "nameLocations": ["22886:11:59", "22898:5:59"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "22886:17:59" @@ -194963,10 +192049,7 @@ "pathNode": { "id": 15362, "name": "Attestation.State", - "nameLocations": [ - "23463:11:59", - "23475:5:59" - ], + "nameLocations": ["23463:11:59", "23475:5:59"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "23463:17:59" @@ -195001,10 +192084,7 @@ "pathNode": { "id": 15365, "name": "Attestation.State", - "nameLocations": [ - "23510:11:59", - "23522:5:59" - ], + "nameLocations": ["23510:11:59", "23522:5:59"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "23510:17:59" @@ -195065,42 +192145,11 @@ "scope": 15374, "src": "363:23222:59", "usedErrors": [ - 15080, - 15083, - 15086, - 15089, - 15092, - 15097, - 15102, - 15107, - 15112, - 15119, - 15125, - 15130, - 15133, - 15138, - 15143, - 15150, - 15155, - 15162, - 15177, - 15180 + 15080, 15083, 15086, 15089, 15092, 15097, 15102, 15107, 15112, 15119, 15125, 15130, 15133, 15138, 15143, + 15150, 15155, 15162, 15177, 15180 ], "usedEvents": [ - 14948, - 14953, - 14958, - 14963, - 14968, - 14973, - 14992, - 15011, - 15026, - 15037, - 15048, - 15059, - 15066, - 15077 + 14948, 14953, 14958, 14963, 14968, 14973, 14992, 15011, 15026, 15037, 15048, 15059, 15066, 15077 ] } ], @@ -195112,21 +192161,11 @@ "ast": { "absolutePath": "contracts/interfaces/ISubgraphService.sol", "exportedSymbols": { - "Allocation": [ - 16033 - ], - "IDataServiceFees": [ - 1620 - ], - "IGraphPayments": [ - 2489 - ], - "ISubgraphService": [ - 15634 - ], - "LegacyAllocation": [ - 16462 - ] + "Allocation": [16033], + "IDataServiceFees": [1620], + "IGraphPayments": [2489], + "ISubgraphService": [15634], + "LegacyAllocation": [16462] }, "id": 15635, "license": "GPL-3.0-or-later", @@ -195134,11 +192173,7 @@ "nodes": [ { "id": 15375, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:60" }, @@ -195249,9 +192284,7 @@ "baseName": { "id": 15385, "name": "IDataServiceFees", - "nameLocations": [ - "1138:16:60" - ], + "nameLocations": ["1138:16:60"], "nodeType": "IdentifierPath", "referencedDeclaration": 1620, "src": "1138:16:60" @@ -195272,11 +192305,7 @@ }, "fullyImplemented": false, "id": 15634, - "linearizedBaseContracts": [ - 15634, - 1620, - 1557 - ], + "linearizedBaseContracts": [15634, 1620, 1557], "name": "ISubgraphService", "nameLocation": "1118:16:60", "nodeType": "ContractDefinition", @@ -195947,10 +192976,7 @@ "pathNode": { "id": 15447, "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "3987:14:60", - "4002:12:60" - ], + "nameLocations": ["3987:14:60", "4002:12:60"], "nodeType": "IdentifierPath", "referencedDeclaration": 2433, "src": "3987:27:60" @@ -197411,10 +194437,7 @@ "pathNode": { "id": 15584, "name": "Allocation.State", - "nameLocations": [ - "10887:10:60", - "10898:5:60" - ], + "nameLocations": ["10887:10:60", "10898:5:60"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "10887:16:60" @@ -197512,10 +194535,7 @@ "pathNode": { "id": 15593, "name": "LegacyAllocation.State", - "nameLocations": [ - "11214:16:60", - "11231:5:60" - ], + "nameLocations": ["11214:16:60", "11231:5:60"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "11214:22:60" @@ -197936,38 +194956,10 @@ "scope": 15635, "src": "1108:11324:60", "usedErrors": [ - 1610, - 1613, - 15431, - 15434, - 15437, - 15440, - 15445, - 15451, - 15458, - 15465, - 15472, - 15479, - 15484, - 15489, - 15492, + 1610, 1613, 15431, 15434, 15437, 15440, 15445, 15451, 15458, 15465, 15472, 15479, 15484, 15489, 15492, 15497 ], - "usedEvents": [ - 1437, - 1442, - 1449, - 1456, - 1466, - 1473, - 1585, - 1596, - 1605, - 15409, - 15416, - 15421, - 15426 - ] + "usedEvents": [1437, 1442, 1449, 1456, 1466, 1473, 1585, 1596, 1605, 15409, 15416, 15421, 15426] } ], "src": "45:12388:60" @@ -197978,12 +194970,8 @@ "ast": { "absolutePath": "contracts/libraries/Allocation.sol", "exportedSymbols": { - "Allocation": [ - 16033 - ], - "Math": [ - 9938 - ] + "Allocation": [16033], + "Math": [9938] }, "id": 16034, "license": "GPL-3.0-or-later", @@ -197991,11 +194979,7 @@ "nodes": [ { "id": 15636, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:61" }, @@ -198038,9 +195022,7 @@ }, "fullyImplemented": true, "id": 16033, - "linearizedBaseContracts": [ - 16033 - ], + "linearizedBaseContracts": [16033], "name": "Allocation", "nameLocation": "368:10:61", "nodeType": "ContractDefinition", @@ -198051,9 +195033,7 @@ "libraryName": { "id": 15640, "name": "Allocation", - "nameLocations": [ - "391:10:61" - ], + "nameLocations": ["391:10:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 16033, "src": "391:10:61" @@ -198066,9 +195046,7 @@ "pathNode": { "id": 15641, "name": "State", - "nameLocations": [ - "406:5:61" - ], + "nameLocations": ["406:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "406:5:61" @@ -198677,11 +195655,7 @@ "id": 15704, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3053:7:61", "typeDescriptions": { @@ -198710,9 +195684,7 @@ "src": "3053:76:61" }, { - "assignments": [ - 15718 - ], + "assignments": [15718], "declarations": [ { "constant": false, @@ -198735,9 +195707,7 @@ "pathNode": { "id": 15716, "name": "State", - "nameLocations": [ - "3140:5:61" - ], + "nameLocations": ["3140:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "3140:5:61" @@ -199128,9 +196098,7 @@ "pathNode": { "id": 15683, "name": "State", - "nameLocations": [ - "2791:5:61" - ], + "nameLocations": ["2791:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "2791:5:61" @@ -199337,9 +196305,7 @@ "pathNode": { "id": 15700, "name": "State", - "nameLocations": [ - "3029:5:61" - ], + "nameLocations": ["3029:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "3029:5:61" @@ -199369,9 +196335,7 @@ "src": "3994:216:61", "statements": [ { - "assignments": [ - 15754 - ], + "assignments": [15754], "declarations": [ { "constant": false, @@ -199394,9 +196358,7 @@ "pathNode": { "id": 15752, "name": "State", - "nameLocations": [ - "4004:5:61" - ], + "nameLocations": ["4004:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "4004:5:61" @@ -199626,11 +196588,7 @@ "id": 15760, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "4065:7:61", "typeDescriptions": { @@ -199794,9 +196752,7 @@ "pathNode": { "id": 15744, "name": "State", - "nameLocations": [ - "3942:5:61" - ], + "nameLocations": ["3942:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "3942:5:61" @@ -199861,9 +196817,7 @@ "src": "4724:237:61", "statements": [ { - "assignments": [ - 15794 - ], + "assignments": [15794], "declarations": [ { "constant": false, @@ -199886,9 +196840,7 @@ "pathNode": { "id": 15792, "name": "State", - "nameLocations": [ - "4734:5:61" - ], + "nameLocations": ["4734:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "4734:5:61" @@ -200118,11 +197070,7 @@ "id": 15800, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "4795:7:61", "typeDescriptions": { @@ -200271,9 +197219,7 @@ "pathNode": { "id": 15782, "name": "State", - "nameLocations": [ - "4614:5:61" - ], + "nameLocations": ["4614:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "4614:5:61" @@ -200365,9 +197311,7 @@ "src": "5324:201:61", "statements": [ { - "assignments": [ - 15831 - ], + "assignments": [15831], "declarations": [ { "constant": false, @@ -200390,9 +197334,7 @@ "pathNode": { "id": 15829, "name": "State", - "nameLocations": [ - "5334:5:61" - ], + "nameLocations": ["5334:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "5334:5:61" @@ -200622,11 +197564,7 @@ "id": 15837, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5395:7:61", "typeDescriptions": { @@ -200779,9 +197717,7 @@ "pathNode": { "id": 15821, "name": "State", - "nameLocations": [ - "5272:5:61" - ], + "nameLocations": ["5272:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "5272:5:61" @@ -200846,9 +197782,7 @@ "src": "5823:206:61", "statements": [ { - "assignments": [ - 15868 - ], + "assignments": [15868], "declarations": [ { "constant": false, @@ -200871,9 +197805,7 @@ "pathNode": { "id": 15866, "name": "State", - "nameLocations": [ - "5833:5:61" - ], + "nameLocations": ["5833:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "5833:5:61" @@ -201103,11 +198035,7 @@ "id": 15874, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5894:7:61", "typeDescriptions": { @@ -201271,9 +198199,7 @@ "pathNode": { "id": 15858, "name": "State", - "nameLocations": [ - "5771:5:61" - ], + "nameLocations": ["5771:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "5771:5:61" @@ -201470,9 +198396,7 @@ "pathNode": { "id": 15896, "name": "State", - "nameLocations": [ - "6238:5:61" - ], + "nameLocations": ["6238:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "6238:5:61" @@ -201543,9 +198467,7 @@ "pathNode": { "id": 15903, "name": "State", - "nameLocations": [ - "6304:5:61" - ], + "nameLocations": ["6304:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "6304:5:61" @@ -201575,9 +198497,7 @@ "src": "6686:178:61", "statements": [ { - "assignments": [ - 15925 - ], + "assignments": [15925], "declarations": [ { "constant": false, @@ -201922,9 +198842,7 @@ "pathNode": { "id": 15915, "name": "State", - "nameLocations": [ - "6614:5:61" - ], + "nameLocations": ["6614:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "6614:5:61" @@ -202122,9 +199040,7 @@ "pathNode": { "id": 15948, "name": "State", - "nameLocations": [ - "7027:5:61" - ], + "nameLocations": ["7027:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "7027:5:61" @@ -202360,9 +199276,7 @@ "pathNode": { "id": 15963, "name": "State", - "nameLocations": [ - "7283:5:61" - ], + "nameLocations": ["7283:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "7283:5:61" @@ -202598,9 +199512,7 @@ "pathNode": { "id": 15982, "name": "State", - "nameLocations": [ - "7573:5:61" - ], + "nameLocations": ["7573:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "7573:5:61" @@ -202664,9 +199576,7 @@ "src": "8043:165:61", "statements": [ { - "assignments": [ - 16015 - ], + "assignments": [16015], "declarations": [ { "constant": false, @@ -202689,9 +199599,7 @@ "pathNode": { "id": 16013, "name": "State", - "nameLocations": [ - "8053:5:61" - ], + "nameLocations": ["8053:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "8053:5:61" @@ -202861,11 +199769,7 @@ "id": 16020, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "8108:7:61", "typeDescriptions": { @@ -202973,9 +199877,7 @@ "pathNode": { "id": 16002, "name": "State", - "nameLocations": [ - "7963:5:61" - ], + "nameLocations": ["7963:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "7963:5:61" @@ -203046,9 +199948,7 @@ "pathNode": { "id": 16009, "name": "State", - "nameLocations": [ - "8028:5:61" - ], + "nameLocations": ["8028:5:61"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "8028:5:61" @@ -203074,11 +199974,7 @@ ], "scope": 16034, "src": "360:7850:61", - "usedErrors": [ - 15668, - 15673, - 15680 - ], + "usedErrors": [15668, 15673, 15680], "usedEvents": [] } ], @@ -203090,9 +199986,7 @@ "ast": { "absolutePath": "contracts/libraries/Attestation.sol", "exportedSymbols": { - "Attestation": [ - 16290 - ] + "Attestation": [16290] }, "id": 16291, "license": "GPL-3.0-or-later", @@ -203100,11 +199994,7 @@ "nodes": [ { "id": 16035, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:62" }, @@ -203122,9 +200012,7 @@ }, "fullyImplemented": true, "id": 16290, - "linearizedBaseContracts": [ - 16290 - ], + "linearizedBaseContracts": [16290], "name": "Attestation", "nameLocation": "300:11:62", "nodeType": "ContractDefinition", @@ -204508,10 +201396,7 @@ "pathNode": { "id": 16123, "name": "Attestation.State", - "nameLocations": [ - "3197:11:62", - "3209:5:62" - ], + "nameLocations": ["3197:11:62", "3209:5:62"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "3197:17:62" @@ -204546,10 +201431,7 @@ "pathNode": { "id": 16126, "name": "Attestation.State", - "nameLocations": [ - "3245:11:62", - "3257:5:62" - ], + "nameLocations": ["3245:11:62", "3257:5:62"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "3245:17:62" @@ -204767,11 +201649,7 @@ "id": 16162, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3841:7:62", "typeDescriptions": { @@ -204800,11 +201678,7 @@ "src": "3841:150:62" }, { - "assignments": [ - 16175, - 16177, - 16179 - ], + "assignments": [16175, 16177, 16179], "declarations": [ { "constant": false, @@ -205037,9 +201911,7 @@ "src": "4028:154:62" }, { - "assignments": [ - 16193 - ], + "assignments": [16193], "declarations": [ { "constant": false, @@ -205139,9 +202011,7 @@ "src": "4307:43:62" }, { - "assignments": [ - 16200 - ], + "assignments": [16200], "declarations": [ { "constant": false, @@ -205241,9 +202111,7 @@ "src": "4360:43:62" }, { - "assignments": [ - 16207 - ], + "assignments": [16207], "declarations": [ { "constant": false, @@ -205551,9 +202419,7 @@ "pathNode": { "id": 16158, "name": "State", - "nameLocations": [ - "3776:5:62" - ], + "nameLocations": ["3776:5:62"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "3776:5:62" @@ -205797,11 +202663,7 @@ "id": 16233, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "4828:7:62", "typeDescriptions": { @@ -205830,9 +202692,7 @@ "src": "4828:160:62" }, { - "assignments": [ - 16250 - ], + "assignments": [16250], "declarations": [ { "constant": false, @@ -206329,11 +203189,7 @@ "id": 16266, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "5700:7:62", "typeDescriptions": { @@ -206362,9 +203218,7 @@ "src": "5700:164:62" }, { - "assignments": [ - 16283 - ], + "assignments": [16283], "declarations": [ { "constant": false, @@ -206643,9 +203497,7 @@ ], "scope": 16291, "src": "292:5790:62", - "usedErrors": [ - 16121 - ], + "usedErrors": [16121], "usedEvents": [] } ], @@ -206657,12 +203509,8 @@ "ast": { "absolutePath": "contracts/libraries/LegacyAllocation.sol", "exportedSymbols": { - "IHorizonStaking": [ - 2625 - ], - "LegacyAllocation": [ - 16462 - ] + "IHorizonStaking": [2625], + "LegacyAllocation": [16462] }, "id": 16463, "license": "GPL-3.0-or-later", @@ -206670,11 +203518,7 @@ "nodes": [ { "id": 16292, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:63" }, @@ -206717,9 +203561,7 @@ }, "fullyImplemented": true, "id": 16462, - "linearizedBaseContracts": [ - 16462 - ], + "linearizedBaseContracts": [16462], "name": "LegacyAllocation", "nameLocation": "412:16:63", "nodeType": "ContractDefinition", @@ -206730,9 +203572,7 @@ "libraryName": { "id": 16296, "name": "LegacyAllocation", - "nameLocations": [ - "441:16:63" - ], + "nameLocations": ["441:16:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16462, "src": "441:16:63" @@ -206745,9 +203585,7 @@ "pathNode": { "id": 16297, "name": "State", - "nameLocations": [ - "462:5:63" - ], + "nameLocations": ["462:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "462:5:63" @@ -207091,11 +203929,7 @@ "id": 16330, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2087:7:63", "typeDescriptions": { @@ -207224,14 +204058,8 @@ "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, - "nameLocations": [ - "2209:7:63", - "2227:20:63" - ], - "names": [ - "indexer", - "subgraphDeploymentId" - ], + "nameLocations": ["2209:7:63", "2227:20:63"], + "names": ["indexer", "subgraphDeploymentId"], "nodeType": "FunctionCall", "src": "2201:71:63", "tryCall": false, @@ -207312,9 +204140,7 @@ "pathNode": { "id": 16318, "name": "State", - "nameLocations": [ - "1949:5:63" - ], + "nameLocations": ["1949:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "1949:5:63" @@ -207566,9 +204392,7 @@ "pathNode": { "id": 16355, "name": "State", - "nameLocations": [ - "2516:5:63" - ], + "nameLocations": ["2516:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "2516:5:63" @@ -207639,9 +204463,7 @@ "pathNode": { "id": 16362, "name": "State", - "nameLocations": [ - "2582:5:63" - ], + "nameLocations": ["2582:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "2582:5:63" @@ -207824,11 +204646,7 @@ "id": 16386, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3274:7:63", "typeDescriptions": { @@ -208003,11 +204821,7 @@ "id": 16398, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "3366:7:63", "typeDescriptions": { @@ -208097,9 +204911,7 @@ "pathNode": { "id": 16375, "name": "State", - "nameLocations": [ - "3156:5:63" - ], + "nameLocations": ["3156:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "3156:5:63" @@ -208135,9 +204947,7 @@ "pathNode": { "id": 16379, "name": "IHorizonStaking", - "nameLocations": [ - "3185:15:63" - ], + "nameLocations": ["3185:15:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 2625, "src": "3185:15:63" @@ -208353,9 +205163,7 @@ "pathNode": { "id": 16412, "name": "State", - "nameLocations": [ - "3642:5:63" - ], + "nameLocations": ["3642:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "3642:5:63" @@ -208419,9 +205227,7 @@ "src": "4058:171:63", "statements": [ { - "assignments": [ - 16444 - ], + "assignments": [16444], "declarations": [ { "constant": false, @@ -208444,9 +205250,7 @@ "pathNode": { "id": 16442, "name": "State", - "nameLocations": [ - "4068:5:63" - ], + "nameLocations": ["4068:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "4068:5:63" @@ -208616,11 +205420,7 @@ "id": 16449, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "4123:7:63", "typeDescriptions": { @@ -208728,9 +205528,7 @@ "pathNode": { "id": 16431, "name": "State", - "nameLocations": [ - "3978:5:63" - ], + "nameLocations": ["3978:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "3978:5:63" @@ -208801,9 +205599,7 @@ "pathNode": { "id": 16438, "name": "State", - "nameLocations": [ - "4043:5:63" - ], + "nameLocations": ["4043:5:63"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "4043:5:63" @@ -208829,10 +205625,7 @@ ], "scope": 16463, "src": "404:3827:63", - "usedErrors": [ - 16310, - 16315 - ], + "usedErrors": [16310, 16315], "usedEvents": [] } ], @@ -208844,18 +205637,10 @@ "ast": { "absolutePath": "contracts/mocks/imports.sol", "exportedSymbols": { - "ICallhookReceiver": [ - 382 - ], - "IDisputeManager": [ - 314 - ], - "IL2Curation": [ - 481 - ], - "IL2GNS": [ - 532 - ] + "ICallhookReceiver": [382], + "IDisputeManager": [314], + "IL2Curation": [481], + "IL2GNS": [532] }, "id": 16468, "license": "GPL-2.0-or-later", @@ -208863,15 +205648,7 @@ "nodes": [ { "id": 16464, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], + "literals": ["solidity", "^", "0.7", ".6", "||", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:33:64" }, @@ -208920,45 +205697,19 @@ "ast": { "absolutePath": "contracts/utilities/AllocationManager.sol", "exportedSymbols": { - "Allocation": [ - 16033 - ], - "AllocationManager": [ - 17363 - ], - "AllocationManagerV1Storage": [ - 17401 - ], - "ECDSA": [ - 8231 - ], - "EIP712Upgradeable": [ - 6044 - ], - "GraphDirectory": [ - 4928 - ], - "IGraphPayments": [ - 2489 - ], - "IGraphToken": [ - 758 - ], - "IHorizonStakingTypes": [ - 4073 - ], - "LegacyAllocation": [ - 16462 - ], - "PPMMath": [ - 4539 - ], - "ProvisionTracker": [ - 1801 - ], - "TokenUtils": [ - 840 - ] + "Allocation": [16033], + "AllocationManager": [17363], + "AllocationManagerV1Storage": [17401], + "ECDSA": [8231], + "EIP712Upgradeable": [6044], + "GraphDirectory": [4928], + "IGraphPayments": [2489], + "IGraphToken": [758], + "IHorizonStakingTypes": [4073], + "LegacyAllocation": [16462], + "PPMMath": [4539], + "ProvisionTracker": [1801], + "TokenUtils": [840] }, "id": 17364, "license": "GPL-3.0-or-later", @@ -208966,11 +205717,7 @@ "nodes": [ { "id": 16469, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:65" }, @@ -209281,9 +206028,7 @@ "baseName": { "id": 16495, "name": "EIP712Upgradeable", - "nameLocations": [ - "1586:17:65" - ], + "nameLocations": ["1586:17:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 6044, "src": "1586:17:65" @@ -209296,9 +206041,7 @@ "baseName": { "id": 16497, "name": "GraphDirectory", - "nameLocations": [ - "1605:14:65" - ], + "nameLocations": ["1605:14:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 4928, "src": "1605:14:65" @@ -209311,9 +206054,7 @@ "baseName": { "id": 16499, "name": "AllocationManagerV1Storage", - "nameLocations": [ - "1621:26:65" - ], + "nameLocations": ["1621:26:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 17401, "src": "1621:26:65" @@ -209334,14 +206075,7 @@ }, "fullyImplemented": true, "id": 17363, - "linearizedBaseContracts": [ - 17363, - 17401, - 4928, - 6044, - 6069, - 5391 - ], + "linearizedBaseContracts": [17363, 17401, 4928, 6044, 6069, 5391], "name": "AllocationManager", "nameLocation": "1565:17:65", "nodeType": "ContractDefinition", @@ -209352,9 +206086,7 @@ "libraryName": { "id": 16501, "name": "ProvisionTracker", - "nameLocations": [ - "1660:16:65" - ], + "nameLocations": ["1660:16:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 1801, "src": "1660:16:65" @@ -209401,9 +206133,7 @@ "libraryName": { "id": 16506, "name": "Allocation", - "nameLocations": [ - "1720:10:65" - ], + "nameLocations": ["1720:10:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 16033, "src": "1720:10:65" @@ -209438,10 +206168,7 @@ "pathNode": { "id": 16508, "name": "Allocation.State", - "nameLocations": [ - "1754:10:65", - "1765:5:65" - ], + "nameLocations": ["1754:10:65", "1765:5:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "1754:16:65" @@ -209461,9 +206188,7 @@ "libraryName": { "id": 16512, "name": "Allocation", - "nameLocations": [ - "1783:10:65" - ], + "nameLocations": ["1783:10:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 16033, "src": "1783:10:65" @@ -209476,10 +206201,7 @@ "pathNode": { "id": 16513, "name": "Allocation.State", - "nameLocations": [ - "1798:10:65", - "1809:5:65" - ], + "nameLocations": ["1798:10:65", "1809:5:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "1798:16:65" @@ -209498,9 +206220,7 @@ "libraryName": { "id": 16516, "name": "LegacyAllocation", - "nameLocations": [ - "1826:16:65" - ], + "nameLocations": ["1826:16:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 16462, "src": "1826:16:65" @@ -209535,10 +206255,7 @@ "pathNode": { "id": 16518, "name": "LegacyAllocation.State", - "nameLocations": [ - "1866:16:65", - "1883:5:65" - ], + "nameLocations": ["1866:16:65", "1883:5:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "1866:22:65" @@ -209558,9 +206275,7 @@ "libraryName": { "id": 16522, "name": "PPMMath", - "nameLocations": [ - "1901:7:65" - ], + "nameLocations": ["1901:7:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 4539, "src": "1901:7:65" @@ -209584,9 +206299,7 @@ "libraryName": { "id": 16525, "name": "TokenUtils", - "nameLocations": [ - "1932:10:65" - ], + "nameLocations": ["1932:10:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 840, "src": "1932:10:65" @@ -209599,9 +206312,7 @@ "pathNode": { "id": 16526, "name": "IGraphToken", - "nameLocations": [ - "1947:11:65" - ], + "nameLocations": ["1947:11:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 758, "src": "1947:11:65" @@ -210978,9 +207689,7 @@ "modifierName": { "id": 16637, "name": "onlyInitializing", - "nameLocations": [ - "6773:16:65" - ], + "nameLocations": ["6773:16:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "6773:16:65" @@ -211088,9 +207797,7 @@ "modifierName": { "id": 16652, "name": "onlyInitializing", - "nameLocations": [ - "7000:16:65" - ], + "nameLocations": ["7000:16:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "7000:16:65" @@ -211577,11 +208284,7 @@ "id": 16697, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "8768:7:65", "typeDescriptions": { @@ -211801,9 +208504,7 @@ "src": "9077:65:65" }, { - "assignments": [ - 16723 - ], + "assignments": [16723], "declarations": [ { "constant": false, @@ -211904,9 +208605,7 @@ "src": "9153:58:65" }, { - "assignments": [ - 16733 - ], + "assignments": [16733], "declarations": [ { "constant": false, @@ -211929,10 +208628,7 @@ "pathNode": { "id": 16731, "name": "Allocation.State", - "nameLocations": [ - "9221:10:65", - "9232:5:65" - ], + "nameLocations": ["9221:10:65", "9232:5:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "9221:16:65" @@ -212815,9 +209511,7 @@ "src": "12059:3207:65", "statements": [ { - "assignments": [ - 16801 - ], + "assignments": [16801], "declarations": [ { "constant": false, @@ -212840,10 +209534,7 @@ "pathNode": { "id": 16799, "name": "Allocation.State", - "nameLocations": [ - "12069:10:65", - "12080:5:65" - ], + "nameLocations": ["12069:10:65", "12080:5:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "12069:16:65" @@ -213041,11 +209732,7 @@ "id": 16807, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "12147:7:65", "typeDescriptions": { @@ -213074,9 +209761,7 @@ "src": "12147:78:65" }, { - "assignments": [ - 16817 - ], + "assignments": [16817], "declarations": [ { "constant": false, @@ -213953,9 +210638,7 @@ "src": "12982:47:65" }, { - "assignments": [ - 16877 - ], + "assignments": [16877], "declarations": [ { "constant": false, @@ -214006,9 +210689,7 @@ "src": "13040:32:65" }, { - "assignments": [ - 16881 - ], + "assignments": [16881], "declarations": [ { "constant": false, @@ -214114,9 +210795,7 @@ "src": "13151:1507:65", "statements": [ { - "assignments": [ - 16888 - ], + "assignments": [16888], "declarations": [ { "constant": false, @@ -214360,9 +211039,7 @@ "src": "13213:200:65" }, { - "assignments": [ - 16907 - ], + "assignments": [16907], "declarations": [ { "constant": false, @@ -214385,10 +211062,7 @@ "pathNode": { "id": 16905, "name": "IHorizonStakingTypes.DelegationPool", - "nameLocations": [ - "13427:20:65", - "13448:14:65" - ], + "nameLocations": ["13427:20:65", "13448:14:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 3992, "src": "13427:35:65" @@ -216523,9 +213197,7 @@ "src": "16142:1867:65", "statements": [ { - "assignments": [ - 17058 - ], + "assignments": [17058], "declarations": [ { "constant": false, @@ -216548,10 +213220,7 @@ "pathNode": { "id": 17056, "name": "Allocation.State", - "nameLocations": [ - "16152:10:65", - "16163:5:65" - ], + "nameLocations": ["16152:10:65", "16163:5:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "16152:16:65" @@ -216749,11 +213418,7 @@ "id": 17064, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "16230:7:65", "typeDescriptions": { @@ -216922,11 +213587,7 @@ "id": 17073, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "16318:7:65", "typeDescriptions": { @@ -216955,9 +213616,7 @@ "src": "16318:98:65" }, { - "assignments": [ - 17085 - ], + "assignments": [17085], "declarations": [ { "constant": false, @@ -217396,9 +214055,7 @@ } }, { - "assignments": [ - 17119 - ], + "assignments": [17119], "declarations": [ { "constant": false, @@ -217533,9 +214190,7 @@ "src": "16878:142:65" }, { - "assignments": [ - 17128 - ], + "assignments": [17128], "declarations": [ { "constant": false, @@ -218652,9 +215307,7 @@ "src": "18738:920:65", "statements": [ { - "assignments": [ - 17215 - ], + "assignments": [17215], "declarations": [ { "constant": false, @@ -218677,10 +215330,7 @@ "pathNode": { "id": 17213, "name": "Allocation.State", - "nameLocations": [ - "18748:10:65", - "18759:5:65" - ], + "nameLocations": ["18748:10:65", "18759:5:65"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "18748:16:65" @@ -220283,9 +216933,7 @@ "src": "21521:210:65", "statements": [ { - "assignments": [ - 17341 - ], + "assignments": [17341], "declarations": [ { "constant": false, @@ -220579,11 +217227,7 @@ "id": 17351, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "21628:7:65", "typeDescriptions": { @@ -220731,26 +217375,8 @@ ], "scope": 17364, "src": "1547:20186:65", - "usedErrors": [ - 4655, - 5140, - 5143, - 16615, - 16618, - 16623, - 16630 - ], - "usedEvents": [ - 4650, - 5148, - 6049, - 16547, - 16568, - 16581, - 16594, - 16603, - 16608 - ] + "usedErrors": [4655, 5140, 5143, 16615, 16618, 16623, 16630], + "usedEvents": [4650, 5148, 6049, 16547, 16568, 16581, 16594, 16603, 16608] } ], "src": "45:21689:65" @@ -220761,15 +217387,9 @@ "ast": { "absolutePath": "contracts/utilities/AllocationManagerStorage.sol", "exportedSymbols": { - "Allocation": [ - 16033 - ], - "AllocationManagerV1Storage": [ - 17401 - ], - "LegacyAllocation": [ - 16462 - ] + "Allocation": [16033], + "AllocationManagerV1Storage": [17401], + "LegacyAllocation": [16462] }, "id": 17402, "license": "GPL-3.0-or-later", @@ -220777,11 +217397,7 @@ "nodes": [ { "id": 17365, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:66" }, @@ -220849,9 +217465,7 @@ }, "fullyImplemented": true, "id": 17401, - "linearizedBaseContracts": [ - 17401 - ], + "linearizedBaseContracts": [17401], "name": "AllocationManagerV1Storage", "nameLocation": "494:26:66", "nodeType": "ContractDefinition", @@ -220905,10 +217519,7 @@ "pathNode": { "id": 17373, "name": "Allocation.State", - "nameLocations": [ - "594:10:66", - "605:5:66" - ], + "nameLocations": ["594:10:66", "605:5:66"], "nodeType": "IdentifierPath", "referencedDeclaration": 15663, "src": "594:16:66" @@ -220972,10 +217583,7 @@ "pathNode": { "id": 17379, "name": "LegacyAllocation.State", - "nameLocations": [ - "725:16:66", - "742:5:66" - ], + "nameLocations": ["725:16:66", "742:5:66"], "nodeType": "IdentifierPath", "referencedDeclaration": 16305, "src": "725:22:66" @@ -221210,21 +217818,11 @@ "ast": { "absolutePath": "contracts/utilities/AttestationManager.sol", "exportedSymbols": { - "Attestation": [ - 16290 - ], - "AttestationManager": [ - 17555 - ], - "AttestationManagerV1Storage": [ - 17567 - ], - "ECDSA": [ - 8231 - ], - "Initializable": [ - 5391 - ] + "Attestation": [16290], + "AttestationManager": [17555], + "AttestationManagerV1Storage": [17567], + "ECDSA": [8231], + "Initializable": [5391] }, "id": 17556, "license": "GPL-3.0-or-later", @@ -221232,11 +217830,7 @@ "nodes": [ { "id": 17403, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:67" }, @@ -221347,9 +217941,7 @@ "baseName": { "id": 17413, "name": "Initializable", - "nameLocations": [ - "771:13:67" - ], + "nameLocations": ["771:13:67"], "nodeType": "IdentifierPath", "referencedDeclaration": 5391, "src": "771:13:67" @@ -221362,9 +217954,7 @@ "baseName": { "id": 17415, "name": "AttestationManagerV1Storage", - "nameLocations": [ - "786:27:67" - ], + "nameLocations": ["786:27:67"], "nodeType": "IdentifierPath", "referencedDeclaration": 17567, "src": "786:27:67" @@ -221385,11 +217975,7 @@ }, "fullyImplemented": true, "id": 17555, - "linearizedBaseContracts": [ - 17555, - 17567, - 5391 - ], + "linearizedBaseContracts": [17555, 17567, 5391], "name": "AttestationManager", "nameLocation": "749:18:67", "nodeType": "ContractDefinition", @@ -221847,9 +218433,7 @@ "modifierName": { "id": 17447, "name": "onlyInitializing", - "nameLocations": [ - "1785:16:67" - ], + "nameLocations": ["1785:16:67"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "1785:16:67" @@ -222175,9 +218759,7 @@ "modifierName": { "id": 17457, "name": "onlyInitializing", - "nameLocations": [ - "2042:16:67" - ], + "nameLocations": ["2042:16:67"], "nodeType": "IdentifierPath", "referencedDeclaration": 5286, "src": "2042:16:67" @@ -222214,9 +218796,7 @@ "src": "2607:605:67", "statements": [ { - "assignments": [ - 17492 - ], + "assignments": [17492], "declarations": [ { "constant": false, @@ -222239,10 +218819,7 @@ "pathNode": { "id": 17490, "name": "Attestation.Receipt", - "nameLocations": [ - "2695:11:67", - "2707:7:67" - ], + "nameLocations": ["2695:11:67", "2707:7:67"], "nodeType": "IdentifierPath", "referencedDeclaration": 16044, "src": "2695:19:67" @@ -222407,9 +218984,7 @@ "src": "2695:188:67" }, { - "assignments": [ - 17504 - ], + "assignments": [17504], "declarations": [ { "constant": false, @@ -222751,10 +219326,7 @@ "pathNode": { "id": 17481, "name": "Attestation.State", - "nameLocations": [ - "2536:11:67", - "2548:5:67" - ], + "nameLocations": ["2536:11:67", "2548:5:67"], "nodeType": "IdentifierPath", "referencedDeclaration": 16058, "src": "2536:17:67" @@ -223186,10 +219758,7 @@ "pathNode": { "id": 17526, "name": "Attestation.Receipt", - "nameLocations": [ - "3677:11:67", - "3689:7:67" - ], + "nameLocations": ["3677:11:67", "3689:7:67"], "nodeType": "IdentifierPath", "referencedDeclaration": 16044, "src": "3677:19:67" @@ -223249,13 +219818,8 @@ ], "scope": 17556, "src": "731:3593:67", - "usedErrors": [ - 5140, - 5143 - ], - "usedEvents": [ - 5148 - ] + "usedErrors": [5140, 5143], + "usedEvents": [5148] } ], "src": "45:4280:67" @@ -223266,9 +219830,7 @@ "ast": { "absolutePath": "contracts/utilities/AttestationManagerStorage.sol", "exportedSymbols": { - "AttestationManagerV1Storage": [ - 17567 - ] + "AttestationManagerV1Storage": [17567] }, "id": 17568, "license": "GPL-3.0-or-later", @@ -223276,11 +219838,7 @@ "nodes": [ { "id": 17557, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:68" }, @@ -223298,9 +219856,7 @@ }, "fullyImplemented": true, "id": 17567, - "linearizedBaseContracts": [ - 17567 - ], + "linearizedBaseContracts": [17567], "name": "AttestationManagerV1Storage", "nameLocation": "367:27:68", "nodeType": "ContractDefinition", @@ -223411,21 +219967,11 @@ "ast": { "absolutePath": "contracts/utilities/Directory.sol", "exportedSymbols": { - "Directory": [ - 17720 - ], - "ICuration": [ - 165 - ], - "IDisputeManager": [ - 15373 - ], - "IGraphTallyCollector": [ - 2605 - ], - "ISubgraphService": [ - 15634 - ] + "Directory": [17720], + "ICuration": [165], + "IDisputeManager": [15373], + "IGraphTallyCollector": [2605], + "ISubgraphService": [15634] }, "id": 17721, "license": "GPL-3.0-or-later", @@ -223433,11 +219979,7 @@ "nodes": [ { "id": 17569, - "literals": [ - "solidity", - "0.8", - ".27" - ], + "literals": ["solidity", "0.8", ".27"], "nodeType": "PragmaDirective", "src": "45:23:69" }, @@ -223555,9 +220097,7 @@ }, "fullyImplemented": true, "id": 17720, - "linearizedBaseContracts": [ - 17720 - ], + "linearizedBaseContracts": [17720], "name": "Directory", "nameLocation": "814:9:69", "nodeType": "ContractDefinition", @@ -223589,9 +220129,7 @@ "pathNode": { "id": 17580, "name": "ISubgraphService", - "nameLocations": [ - "884:16:69" - ], + "nameLocations": ["884:16:69"], "nodeType": "IdentifierPath", "referencedDeclaration": 15634, "src": "884:16:69" @@ -223632,9 +220170,7 @@ "pathNode": { "id": 17584, "name": "IDisputeManager", - "nameLocations": [ - "995:15:69" - ], + "nameLocations": ["995:15:69"], "nodeType": "IdentifierPath", "referencedDeclaration": 15373, "src": "995:15:69" @@ -223675,9 +220211,7 @@ "pathNode": { "id": 17588, "name": "IGraphTallyCollector", - "nameLocations": [ - "1188:20:69" - ], + "nameLocations": ["1188:20:69"], "nodeType": "IdentifierPath", "referencedDeclaration": 2605, "src": "1188:20:69" @@ -223718,9 +220252,7 @@ "pathNode": { "id": 17592, "name": "ICuration", - "nameLocations": [ - "1354:9:69" - ], + "nameLocations": ["1354:9:69"], "nodeType": "IdentifierPath", "referencedDeclaration": 165, "src": "1354:9:69" @@ -224200,11 +220732,7 @@ "id": 17615, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], + "overloadedDeclarations": [-18, -18, -18], "referencedDeclaration": -18, "src": "2290:7:69", "typeDescriptions": { @@ -224903,9 +221431,7 @@ "pathNode": { "id": 17682, "name": "ISubgraphService", - "nameLocations": [ - "3440:16:69" - ], + "nameLocations": ["3440:16:69"], "nodeType": "IdentifierPath", "referencedDeclaration": 15634, "src": "3440:16:69" @@ -224998,9 +221524,7 @@ "pathNode": { "id": 17692, "name": "IDisputeManager", - "nameLocations": [ - "3674:15:69" - ], + "nameLocations": ["3674:15:69"], "nodeType": "IdentifierPath", "referencedDeclaration": 15373, "src": "3674:15:69" @@ -225093,9 +221617,7 @@ "pathNode": { "id": 17702, "name": "IGraphTallyCollector", - "nameLocations": [ - "3923:20:69" - ], + "nameLocations": ["3923:20:69"], "nodeType": "IdentifierPath", "referencedDeclaration": 2605, "src": "3923:20:69" @@ -225188,9 +221710,7 @@ "pathNode": { "id": 17712, "name": "ICuration", - "nameLocations": [ - "4146:9:69" - ], + "nameLocations": ["4146:9:69"], "nodeType": "IdentifierPath", "referencedDeclaration": 165, "src": "4146:9:69" @@ -225216,12 +221736,8 @@ ], "scope": 17721, "src": "796:3395:69", - "usedErrors": [ - 17612 - ], - "usedEvents": [ - 17605 - ] + "usedErrors": [17612], + "usedEvents": [17605] } ], "src": "45:4147:69" @@ -315162,4 +311678,4 @@ } } } -} \ No newline at end of file +} diff --git a/packages/subgraph-service/ignition/modules/DisputeManager.ts b/packages/subgraph-service/ignition/modules/DisputeManager.ts index 823cabb01..4ea298d90 100644 --- a/packages/subgraph-service/ignition/modules/DisputeManager.ts +++ b/packages/subgraph-service/ignition/modules/DisputeManager.ts @@ -1,5 +1,4 @@ -import { deployImplementation } from '@graphprotocol/horizon/ignition/modules/proxy/implementation' -import { upgradeTransparentUpgradeableProxy } from '@graphprotocol/horizon/ignition/modules/proxy/TransparentUpgradeableProxy' +import { deployImplementation, upgradeTransparentUpgradeableProxy } from '@graphprotocol/horizon/ignition' import { buildModule } from '@nomicfoundation/hardhat-ignition/modules' import ProxyAdminArtifact from '@openzeppelin/contracts/build/contracts/ProxyAdmin.json' import TransparentUpgradeableProxyArtifact from '@openzeppelin/contracts/build/contracts/TransparentUpgradeableProxy.json' diff --git a/packages/subgraph-service/ignition/modules/Proxies.ts b/packages/subgraph-service/ignition/modules/Proxies.ts index 6210c07f8..24d1968a9 100644 --- a/packages/subgraph-service/ignition/modules/Proxies.ts +++ b/packages/subgraph-service/ignition/modules/Proxies.ts @@ -1,4 +1,4 @@ -import { deployTransparentUpgradeableProxy } from '@graphprotocol/horizon/ignition/modules/proxy/TransparentUpgradeableProxy' +import { deployTransparentUpgradeableProxy } from '@graphprotocol/horizon/ignition' import { buildModule } from '@nomicfoundation/hardhat-ignition/modules' import DisputeManagerArtifact from '../../build/contracts/contracts/DisputeManager.sol/DisputeManager.json' diff --git a/packages/subgraph-service/ignition/modules/SubgraphService.ts b/packages/subgraph-service/ignition/modules/SubgraphService.ts index c8656b29b..8efb6800b 100644 --- a/packages/subgraph-service/ignition/modules/SubgraphService.ts +++ b/packages/subgraph-service/ignition/modules/SubgraphService.ts @@ -1,5 +1,4 @@ -import { deployImplementation } from '@graphprotocol/horizon/ignition/modules/proxy/implementation' -import { upgradeTransparentUpgradeableProxy } from '@graphprotocol/horizon/ignition/modules/proxy/TransparentUpgradeableProxy' +import { deployImplementation, upgradeTransparentUpgradeableProxy } from '@graphprotocol/horizon/ignition' import { buildModule } from '@nomicfoundation/hardhat-ignition/modules' import ProxyAdminArtifact from '@openzeppelin/contracts/build/contracts/ProxyAdmin.json' import TransparentUpgradeableProxyArtifact from '@openzeppelin/contracts/build/contracts/TransparentUpgradeableProxy.json' diff --git a/packages/subgraph-service/package.json b/packages/subgraph-service/package.json index 5ea16e0b4..4801dcc25 100644 --- a/packages/subgraph-service/package.json +++ b/packages/subgraph-service/package.json @@ -8,6 +8,10 @@ "author": "The Graph core devs", "license": "GPL-2.0-or-later", "types": "typechain-types/index.ts", + "exports": { + "./artifacts/*": "./build/contracts/*", + "./addresses*": "./addresses*" + }, "files": [ "build/contracts/**/*", "typechain-types/**/*", @@ -15,10 +19,11 @@ "addresses.json" ], "scripts": { - "lint": "pnpm lint:ts && pnpm lint:sol", + "lint": "pnpm lint:ts; pnpm lint:sol; pnpm lint:natspec; pnpm lint:json", "lint:ts": "eslint --fix --cache '**/*.{js,ts,cjs,mjs,jsx,tsx}'; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", "lint:sol": "solhint --config ../../.solhint.json --fix --noPrompt --noPoster 'contracts/**/*.sol'; prettier -w --cache --log-level warn '**/*.sol'", - "lint:sol:natspec": "natspec-smells --config natspec-smells.config.js", + "lint:natspec": "natspec-smells --config natspec-smells.config.js", + "lint:json": "prettier -w --cache --log-level warn '**/*.json'", "clean": "rm -rf build dist cache cache_forge typechain-types", "build": "hardhat compile", "test": "forge test", @@ -27,8 +32,9 @@ }, "devDependencies": { "@defi-wonderland/natspec-smells": "^1.1.6", - "@graphprotocol/contracts": "workspace:^7.1.2", + "@graphprotocol/contracts": "workspace:^7.2.1", "@graphprotocol/horizon": "workspace:^0.3.3", + "@graphprotocol/interfaces": "workspace:^", "@graphprotocol/toolshed": "workspace:^", "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", "@nomicfoundation/hardhat-ethers": "3.0.8", @@ -55,7 +61,7 @@ "hardhat": "^2.22.18", "hardhat-contract-sizer": "^2.10.0", "hardhat-gas-reporter": "^1.0.8", - "hardhat-graph-protocol": "workspace:^0.1.22", + "hardhat-graph-protocol": "workspace:^0.1.24", "hardhat-secure-accounts": "^1.0.5", "json5": "^2.2.3", "lint-staged": "^15.2.2", diff --git a/packages/subgraph-service/remappings.txt b/packages/subgraph-service/remappings.txt index f3589b38b..2ed2aa7db 100644 --- a/packages/subgraph-service/remappings.txt +++ b/packages/subgraph-service/remappings.txt @@ -3,4 +3,5 @@ @openzeppelin/foundry-upgrades/=node_modules/@openzeppelin/foundry-upgrades/src/ @graphprotocol/contracts/=node_modules/@graphprotocol/contracts/ @graphprotocol/horizon/=node_modules/@graphprotocol/horizon/ +@graphprotocol/interfaces/=node_modules/@graphprotocol/interfaces/ forge-std/=node_modules/forge-std/src/ \ No newline at end of file diff --git a/packages/subgraph-service/tasks/deploy.ts b/packages/subgraph-service/tasks/deploy.ts index 95f9ceaac..581138439 100644 --- a/packages/subgraph-service/tasks/deploy.ts +++ b/packages/subgraph-service/tasks/deploy.ts @@ -1,5 +1,5 @@ /* eslint-disable no-case-declarations */ -import HorizonModule from '@graphprotocol/horizon/ignition/modules/deploy' +import { HorizonModule } from '@graphprotocol/horizon/ignition' import { ZERO_ADDRESS } from '@graphprotocol/toolshed' import type { AddressBook } from '@graphprotocol/toolshed/deployments' import { loadConfig, patchConfig, saveToAddressBook } from '@graphprotocol/toolshed/hardhat' @@ -30,7 +30,7 @@ task('deploy:protocol', 'Deploy a new version of the Graph Protocol Horizon cont types.string, ) .setAction(async (args, hre: HardhatRuntimeEnvironment) => { - const graph = hre.graph() + const graph = hre.graph({ createAddressBook: true }) // Load configuration files for the deployment console.log('\n========== ⚙️ Deployment configuration ==========') diff --git a/packages/subgraph-service/tasks/test/seed.ts b/packages/subgraph-service/tasks/test/seed.ts index 03e97e592..b7f8ce969 100644 --- a/packages/subgraph-service/tasks/test/seed.ts +++ b/packages/subgraph-service/tasks/test/seed.ts @@ -1,4 +1,3 @@ -import { HorizonStakingExtension } from '@graphprotocol/horizon' import { encodeRegistrationData, encodeStartServiceData, @@ -14,7 +13,6 @@ task('test:seed', 'Seed the test environment, must be run after deployment').set // Get contracts const graph = hre.graph() const horizonStaking = graph.horizon.contracts.HorizonStaking - const horizonStakingExtension = graph.horizon.contracts.HorizonStaking as HorizonStakingExtension const subgraphService = graph.subgraphService.contracts.SubgraphService const disputeManager = graph.subgraphService.contracts.DisputeManager @@ -47,7 +45,7 @@ task('test:seed', 'Seed the test environment, must be run after deployment').set // Close allocation const poi = generatePOI() - await horizonStakingExtension.connect(indexerSigner).closeAllocation(allocation.allocationID, poi) + await horizonStaking.connect(indexerSigner).closeAllocation(allocation.allocationID, poi) const allocationData = await horizonStaking.getAllocation(allocation.allocationID) console.log(`Allocation closed at epoch: ${allocationData.closedAtEpoch}`) diff --git a/packages/subgraph-service/test/unit/SubgraphBaseTest.t.sol b/packages/subgraph-service/test/unit/SubgraphBaseTest.t.sol index d2fdbfa78..0997d1aeb 100644 --- a/packages/subgraph-service/test/unit/SubgraphBaseTest.t.sol +++ b/packages/subgraph-service/test/unit/SubgraphBaseTest.t.sol @@ -9,10 +9,10 @@ import { GraphProxy } from "@graphprotocol/contracts/contracts/upgrades/GraphPro import { GraphProxyAdmin } from "@graphprotocol/contracts/contracts/upgrades/GraphProxyAdmin.sol"; import { HorizonStaking } from "@graphprotocol/horizon/contracts/staking/HorizonStaking.sol"; import { HorizonStakingExtension } from "@graphprotocol/horizon/contracts/staking/HorizonStakingExtension.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; -import { IHorizonStaking } from "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol"; -import { IPaymentsEscrow } from "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol"; -import { IGraphTallyCollector } from "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IHorizonStaking } from "@graphprotocol/interfaces/contracts/horizon/IHorizonStaking.sol"; +import { IPaymentsEscrow } from "@graphprotocol/interfaces/contracts/horizon/IPaymentsEscrow.sol"; +import { IGraphTallyCollector } from "@graphprotocol/interfaces/contracts/horizon/IGraphTallyCollector.sol"; import { GraphTallyCollector } from "@graphprotocol/horizon/contracts/payments/collectors/GraphTallyCollector.sol"; import { PaymentsEscrow } from "@graphprotocol/horizon/contracts/payments/PaymentsEscrow.sol"; import { UnsafeUpgrades } from "@openzeppelin/foundry-upgrades/Upgrades.sol"; diff --git a/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol b/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol index ebe35e4fa..e6475960c 100644 --- a/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol @@ -5,10 +5,11 @@ import "forge-std/Test.sol"; import { MathUtils } from "@graphprotocol/horizon/contracts/libraries/MathUtils.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; -import { Attestation } from "../../../contracts/libraries/Attestation.sol"; -import { Allocation } from "../../../contracts/libraries/Allocation.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; +import { Attestation } from "../../../contracts/libraries/Attestation.sol"; import { SubgraphServiceSharedTest } from "../shared/SubgraphServiceShared.t.sol"; contract DisputeManagerTest is SubgraphServiceSharedTest { @@ -74,7 +75,7 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { bytes32 expectedDisputeId = keccak256(abi.encodePacked(_allocationId, _poi)); uint256 disputeDeposit = disputeManager.disputeDeposit(); uint256 beforeFishermanBalance = token.balanceOf(fisherman); - Allocation.State memory alloc = subgraphService.getAllocation(_allocationId); + IAllocation.State memory alloc = subgraphService.getAllocation(_allocationId); uint256 stakeSnapshot = disputeManager.getStakeSnapshot(alloc.indexer); uint256 cancellableAt = block.timestamp + disputeManager.disputePeriod(); @@ -132,7 +133,7 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { function _createQueryDispute(bytes memory _attestationData) internal returns (bytes32) { (, address fisherman, ) = vm.readCallers(); - Attestation.State memory attestation = Attestation.parse(_attestationData); + IAttestation.State memory attestation = Attestation.parse(_attestationData); address indexer = disputeManager.getAttestationIndexer(attestation); bytes32 expectedDisputeId = keccak256( abi.encodePacked( @@ -275,8 +276,8 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { } struct BeforeValues_CreateQueryDisputeConflict { - Attestation.State attestation1; - Attestation.State attestation2; + IAttestation.State attestation1; + IAttestation.State attestation2; address indexer1; address indexer2; uint256 stakeSnapshot1; @@ -755,9 +756,9 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { bytes32 requestCID, bytes32 responseCID, bytes32 subgraphDeploymentId - ) internal pure returns (Attestation.Receipt memory receipt) { + ) internal pure returns (IAttestation.Receipt memory receipt) { return - Attestation.Receipt({ + IAttestation.Receipt({ requestCID: requestCID, responseCID: responseCID, subgraphDeploymentId: subgraphDeploymentId @@ -772,8 +773,16 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { uint256 signer1, uint256 signer2 ) internal view returns (bytes memory attestationData1, bytes memory attestationData2) { - Attestation.Receipt memory receipt1 = _createAttestationReceipt(requestCID, responseCID1, subgraphDeploymentId); - Attestation.Receipt memory receipt2 = _createAttestationReceipt(requestCID, responseCID2, subgraphDeploymentId); + IAttestation.Receipt memory receipt1 = _createAttestationReceipt( + requestCID, + responseCID1, + subgraphDeploymentId + ); + IAttestation.Receipt memory receipt2 = _createAttestationReceipt( + requestCID, + responseCID2, + subgraphDeploymentId + ); bytes memory _attestationData1 = _createAtestationData(receipt1, signer1); bytes memory _attestationData2 = _createAtestationData(receipt2, signer2); @@ -781,7 +790,7 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { } function _createAtestationData( - Attestation.Receipt memory receipt, + IAttestation.Receipt memory receipt, uint256 signer ) internal view returns (bytes memory attestationData) { bytes32 digest = disputeManager.encodeReceipt(receipt); diff --git a/packages/subgraph-service/test/unit/disputeManager/constructor/constructor.t.sol b/packages/subgraph-service/test/unit/disputeManager/constructor/constructor.t.sol index d0cb831d3..9382cd83a 100644 --- a/packages/subgraph-service/test/unit/disputeManager/constructor/constructor.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/constructor/constructor.t.sol @@ -8,7 +8,7 @@ import { GraphDirectory } from "@graphprotocol/horizon/contracts/utilities/Graph import { UnsafeUpgrades } from "@openzeppelin/foundry-upgrades/Upgrades.sol"; import { DisputeManager } from "../../../../contracts/DisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; contract DisputeManagerConstructorTest is DisputeManagerTest { using PPMMath for uint256; diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol index 71d40e055..e1664f528 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; contract DisputeManagerDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol index e06f105b8..fbf4dc996 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingAcceptDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol index 8b8e0f587..6514525e8 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingCancelDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol index fdf803d5d..673ad2d71 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol index 62a384b52..5fdbe88ec 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingDrawDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol index a084bee14..5e2dab01f 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingRejectDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/legacy.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/legacy.t.sol index 417b8e7bd..3bab2eaa6 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/legacy.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/legacy.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import { Attestation } from "../../../../contracts/libraries/Attestation.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; contract DisputeManagerLegacyDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/query/accept.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/accept.t.sol index ed70b6bc9..74a51b28a 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/query/accept.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/accept.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { @@ -23,7 +23,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -38,7 +38,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -56,7 +56,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -71,7 +71,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -87,7 +87,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, uint256(maxSlashingPercentage).mulPPM(tokens) + 1, type(uint256).max); resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -110,7 +110,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -130,7 +130,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, maxTokensToSlash + 1, type(uint256).max); resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -162,7 +162,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { // Create a new dispute with delegation slashing enabled resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -205,7 +205,7 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { // Create a dispute with prov.maxVerifierCut == fishermanRewardCut uint256 beforeFishermanBalance = token.balanceOf(users.fisherman); resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/query/cancel.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/cancel.t.sol index 484b1ac4a..16bc188e0 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/query/cancel.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/cancel.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryCancelDisputeTest is DisputeManagerTest { @@ -18,7 +18,7 @@ contract DisputeManagerQueryCancelDisputeTest is DisputeManagerTest { function test_Query_Cancel_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -31,7 +31,7 @@ contract DisputeManagerQueryCancelDisputeTest is DisputeManagerTest { function test_Query_Cancel_RevertIf_CallerIsNotFisherman(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -42,7 +42,7 @@ contract DisputeManagerQueryCancelDisputeTest is DisputeManagerTest { function test_Query_Cancel_RevertIf_DisputePeriodNotOver(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -52,7 +52,7 @@ contract DisputeManagerQueryCancelDisputeTest is DisputeManagerTest { function test_Query_Cancel_After_DisputePeriodIncreased(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -71,7 +71,7 @@ contract DisputeManagerQueryCancelDisputeTest is DisputeManagerTest { function test_Query_Cancel_After_DisputePeriodDecreased(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol index 6abd890a2..a25768015 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; -import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { @@ -18,7 +18,7 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { function test_Query_Create_Dispute_Only(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); _createQueryDispute(attestationData); } @@ -27,7 +27,7 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { uint256 tokens ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); // clear subgraph service address from storage @@ -44,7 +44,7 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { uint256 tokens ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); _createQueryDispute(attestationData); @@ -52,7 +52,7 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { address otherFisherman = makeAddr("otherFisherman"); resetPrank(otherFisherman); mint(otherFisherman, MAX_TOKENS); - Attestation.Receipt memory otherFishermanReceipt = _createAttestationReceipt( + IAttestation.Receipt memory otherFishermanReceipt = _createAttestationReceipt( requestCID, responseCID, subgraphDeploymentId @@ -69,7 +69,7 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { ) public useIndexer useAllocation(tokens) { // Create first dispute for indexer resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); _createQueryDispute(attestationData); @@ -91,11 +91,11 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { function test_Query_Create_RevertIf_Duplicate(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); - Attestation.Receipt memory newReceipt = _createAttestationReceipt( + IAttestation.Receipt memory newReceipt = _createAttestationReceipt( requestCID, responseCID, subgraphDeploymentId @@ -110,7 +110,7 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { function test_Query_Create_RevertIf_DepositUnderMinimum(uint256 tokensDispute) public useFisherman { tokensDispute = bound(tokensDispute, 0, disputeDeposit - 1); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); token.approve(address(disputeManager), tokensDispute); @@ -126,7 +126,7 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { function test_Query_Create_RevertIf_AllocationDoesNotExist(uint256 tokens) public useFisherman { tokens = bound(tokens, disputeDeposit, 10_000_000_000 ether); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); token.approve(address(disputeManager), tokens); bytes memory expectedError = abi.encodeWithSelector( @@ -150,7 +150,7 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { // Atempt to create dispute resetPrank(users.fisherman); token.approve(address(disputeManager), tokens); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerZeroTokens.selector)); disputeManager.createQueryDispute(attestationData); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/query/draw.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/draw.t.sol index 8f1c9c4d1..7269704dc 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/query/draw.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/draw.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryDrawDisputeTest is DisputeManagerTest { @@ -19,7 +19,7 @@ contract DisputeManagerQueryDrawDisputeTest is DisputeManagerTest { function test_Query_Draw_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -29,7 +29,7 @@ contract DisputeManagerQueryDrawDisputeTest is DisputeManagerTest { function test_Query_Draw_RevertIf_CallerIsNotArbitrator(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/query/reject.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/reject.t.sol index 0e03b05ec..5078ff047 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/query/reject.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/reject.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryRejectDisputeTest is DisputeManagerTest { @@ -18,7 +18,7 @@ contract DisputeManagerQueryRejectDisputeTest is DisputeManagerTest { function test_Query_Reject_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); @@ -28,7 +28,7 @@ contract DisputeManagerQueryRejectDisputeTest is DisputeManagerTest { function test_Query_Reject_RevertIf_CallerIsNotArbitrator(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + IAttestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); bytes32 disputeID = _createQueryDispute(attestationData); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/accept.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/accept.t.sol index 35850ebe3..4c2c2567d 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/accept.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/accept.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictAcceptDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/cancel.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/cancel.t.sol index 94b83b699..f20f19aae 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/cancel.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/cancel.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictCancelDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/create.t.sol index 684c10ec7..3ab0b1e45 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/create.t.sol @@ -3,8 +3,8 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; -import { Attestation } from "../../../../../contracts/libraries/Attestation.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; +import { IAttestation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAttestation.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictCreateDisputeTest is DisputeManagerTest { @@ -83,10 +83,10 @@ contract DisputeManagerQueryConflictCreateDisputeTest is DisputeManagerTest { function test_Query_Conflict_Create_RevertIf_AttestationsHaveDifferentSubgraph() public useFisherman { bytes32 subgraphDeploymentId2 = keccak256(abi.encodePacked("Subgraph Deployment ID 2")); - Attestation.Receipt memory receipt1 = _createAttestationReceipt(requestCID, responseCID1, subgraphDeployment); + IAttestation.Receipt memory receipt1 = _createAttestationReceipt(requestCID, responseCID1, subgraphDeployment); bytes memory attestationData1 = _createAtestationData(receipt1, allocationIDPrivateKey); - Attestation.Receipt memory receipt2 = _createAttestationReceipt( + IAttestation.Receipt memory receipt2 = _createAttestationReceipt( requestCID, responseCID2, subgraphDeploymentId2 diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/draw.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/draw.t.sol index e7c7622c7..6f116854d 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/draw.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/draw.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictDrawDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/reject.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/reject.t.sol index cdfed4ecf..dfde41d2b 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/reject.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/queryConflict/reject.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictRejectDisputeTest is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/disputeManager/governance/arbitrator.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/arbitrator.t.sol index dac0f7c74..e3b69bc69 100644 --- a/packages/subgraph-service/test/unit/disputeManager/governance/arbitrator.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/arbitrator.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/unit/disputeManager/governance/disputeDeposit.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/disputeDeposit.t.sol index cdc4a6bc1..ea2b145bc 100644 --- a/packages/subgraph-service/test/unit/disputeManager/governance/disputeDeposit.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/disputeDeposit.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/unit/disputeManager/governance/fishermanRewardCut.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/fishermanRewardCut.t.sol index a949f6732..b7719078c 100644 --- a/packages/subgraph-service/test/unit/disputeManager/governance/fishermanRewardCut.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/fishermanRewardCut.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/unit/disputeManager/governance/maxSlashingCut.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/maxSlashingCut.t.sol index 5b3ce35c5..e524e9dc2 100644 --- a/packages/subgraph-service/test/unit/disputeManager/governance/maxSlashingCut.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/maxSlashingCut.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/unit/disputeManager/governance/subgraphService.t.sol b/packages/subgraph-service/test/unit/disputeManager/governance/subgraphService.t.sol index 286f797ae..3bd0b7db4 100644 --- a/packages/subgraph-service/test/unit/disputeManager/governance/subgraphService.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/governance/subgraphService.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManager.sol"; +import { IDisputeManager } from "@graphprotocol/interfaces/contracts/subgraph-service/IDisputeManager.sol"; import { DisputeManagerTest } from "../DisputeManager.t.sol"; contract DisputeManagerGovernanceSubgraphService is DisputeManagerTest { diff --git a/packages/subgraph-service/test/unit/shared/HorizonStakingShared.t.sol b/packages/subgraph-service/test/unit/shared/HorizonStakingShared.t.sol index 2c3ab9d04..f75a50d6c 100644 --- a/packages/subgraph-service/test/unit/shared/HorizonStakingShared.t.sol +++ b/packages/subgraph-service/test/unit/shared/HorizonStakingShared.t.sol @@ -3,11 +3,11 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; -import { IHorizonStakingTypes } from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; import { IHorizonStakingExtension -} from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol"; +} from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingExtension.sol"; import { SubgraphBaseTest } from "../SubgraphBaseTest.t.sol"; diff --git a/packages/subgraph-service/test/unit/shared/SubgraphServiceShared.t.sol b/packages/subgraph-service/test/unit/shared/SubgraphServiceShared.t.sol index 9c018d282..ed8af6f08 100644 --- a/packages/subgraph-service/test/unit/shared/SubgraphServiceShared.t.sol +++ b/packages/subgraph-service/test/unit/shared/SubgraphServiceShared.t.sol @@ -5,13 +5,15 @@ import "forge-std/Test.sol"; import { Allocation } from "../../../contracts/libraries/Allocation.sol"; import { AllocationManager } from "../../../contracts/utilities/AllocationManager.sol"; -import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; + +import { IDataService } from "@graphprotocol/interfaces/contracts/data-service/IDataService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; import { HorizonStakingSharedTest } from "./HorizonStakingShared.t.sol"; abstract contract SubgraphServiceSharedTest is HorizonStakingSharedTest { - using Allocation for Allocation.State; + using Allocation for IAllocation.State; /* * VARIABLES @@ -115,7 +117,7 @@ abstract contract SubgraphServiceSharedTest is HorizonStakingSharedTest { subgraphService.startService(_indexer, _data); // Check allocation data - Allocation.State memory allocation = subgraphService.getAllocation(allocationId); + IAllocation.State memory allocation = subgraphService.getAllocation(allocationId); assertEq(allocation.tokens, tokens); assertEq(allocation.indexer, _indexer); assertEq(allocation.subgraphDeploymentId, subgraphDeploymentId); @@ -134,7 +136,7 @@ abstract contract SubgraphServiceSharedTest is HorizonStakingSharedTest { function _stopService(address _indexer, bytes memory _data) internal { address allocationId = abi.decode(_data, (address)); - Allocation.State memory allocation = subgraphService.getAllocation(allocationId); + IAllocation.State memory allocation = subgraphService.getAllocation(allocationId); assertTrue(allocation.isOpen()); uint256 previousSubgraphAllocatedTokens = subgraphService.getSubgraphAllocatedTokens( allocation.subgraphDeploymentId diff --git a/packages/subgraph-service/test/unit/subgraphService/SubgraphService.t.sol b/packages/subgraph-service/test/unit/subgraphService/SubgraphService.t.sol index 3b1a74e18..74c677504 100644 --- a/packages/subgraph-service/test/unit/subgraphService/SubgraphService.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/SubgraphService.t.sol @@ -3,26 +3,28 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; +import { IDataService } from "@graphprotocol/interfaces/contracts/data-service/IDataService.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; -import { IHorizonStakingTypes } from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol"; -import { IGraphTallyCollector } from "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { IGraphTallyCollector } from "@graphprotocol/interfaces/contracts/horizon/IGraphTallyCollector.sol"; import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import { LinkedList } from "@graphprotocol/horizon/contracts/libraries/LinkedList.sol"; -import { IDataServiceFees } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol"; -import { IHorizonStakingTypes } from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IDataServiceFees } from "@graphprotocol/interfaces/contracts/data-service/IDataServiceFees.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; +import { ILinkedList } from "@graphprotocol/interfaces/contracts/horizon/internal/ILinkedList.sol"; +import { ILegacyAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol"; import { Allocation } from "../../../contracts/libraries/Allocation.sol"; import { AllocationManager } from "../../../contracts/utilities/AllocationManager.sol"; -import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; import { LegacyAllocation } from "../../../contracts/libraries/LegacyAllocation.sol"; import { SubgraphServiceSharedTest } from "../shared/SubgraphServiceShared.t.sol"; contract SubgraphServiceTest is SubgraphServiceSharedTest { using PPMMath for uint256; - using Allocation for Allocation.State; - using LinkedList for LinkedList.List; + using Allocation for IAllocation.State; + using LinkedList for ILinkedList.List; /* * MODIFIERS @@ -101,7 +103,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { function _resizeAllocation(address _indexer, address _allocationId, uint256 _tokens) internal { // before state - Allocation.State memory beforeAllocation = subgraphService.getAllocation(_allocationId); + IAllocation.State memory beforeAllocation = subgraphService.getAllocation(_allocationId); bytes32 subgraphDeploymentId = beforeAllocation.subgraphDeploymentId; uint256 beforeSubgraphAllocatedTokens = subgraphService.getSubgraphAllocatedTokens(subgraphDeploymentId); uint256 beforeAllocatedTokens = subgraphService.allocationProvisionTracker(_indexer); @@ -128,7 +130,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { // after state uint256 afterSubgraphAllocatedTokens = subgraphService.getSubgraphAllocatedTokens(subgraphDeploymentId); uint256 afterAllocatedTokens = subgraphService.allocationProvisionTracker(_indexer); - Allocation.State memory afterAllocation = subgraphService.getAllocation(_allocationId); + IAllocation.State memory afterAllocation = subgraphService.getAllocation(_allocationId); uint256 accRewardsPerAllocatedTokenDelta = afterAllocation.accRewardsPerAllocatedToken - beforeAllocation.accRewardsPerAllocatedToken; uint256 afterAccRewardsPending = rewardsManager.calcRewards( @@ -149,7 +151,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { } function _closeStaleAllocation(address _allocationId) internal { - Allocation.State memory allocation = subgraphService.getAllocation(_allocationId); + IAllocation.State memory allocation = subgraphService.getAllocation(_allocationId); assertTrue(allocation.isOpen()); uint256 previousSubgraphAllocatedTokens = subgraphService.getSubgraphAllocatedTokens( allocation.subgraphDeploymentId @@ -287,7 +289,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { (IGraphTallyCollector.SignedRAV, uint256) ); address allocationId = address(uint160(uint256(signedRav.rav.collectionId))); - Allocation.State memory allocation = subgraphService.getAllocation(allocationId); + IAllocation.State memory allocation = subgraphService.getAllocation(allocationId); bytes32 subgraphDeploymentId = allocation.subgraphDeploymentId; address payer = graphTallyCollector.isAuthorized(signedRav.rav.payer, _recoverRAVSigner(signedRav)) @@ -334,7 +336,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { _data, (address, bytes32, bytes) ); - Allocation.State memory allocation = subgraphService.getAllocation(allocationId); + IAllocation.State memory allocation = subgraphService.getAllocation(allocationId); // Calculate accumulated tokens, this depends on the rewards manager which we have mocked uint256 accRewardsPerTokens = allocation.tokens.mulPPM(rewardsManager.rewardsPerSignal()); @@ -385,7 +387,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { _data, (IGraphTallyCollector.SignedRAV, uint256) ); - Allocation.State memory allocation = subgraphService.getAllocation( + IAllocation.State memory allocation = subgraphService.getAllocation( address(uint160(uint256(signedRav.rav.collectionId))) ); QueryFeeData memory queryFeeData = _queryFeeData(allocation.subgraphDeploymentId); @@ -420,7 +422,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { assertEq(collectPaymentDataAfter.lockedTokens, collectPaymentDataBefore.lockedTokens + tokensToLock); // Check the stake claim - LinkedList.List memory claimsList = _getClaimList(_indexer); + ILinkedList.List memory claimsList = _getClaimList(_indexer); bytes32 claimId = _buildStakeClaimId(_indexer, claimsList.nonce - 1); IDataServiceFees.StakeClaim memory stakeClaim = _getStakeClaim(claimId); uint64 disputePeriod = disputeManager.getDisputePeriod(); @@ -437,7 +439,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { CollectPaymentData memory collectPaymentDataBefore, CollectPaymentData memory collectPaymentDataAfter ) private { - Allocation.State memory allocation = subgraphService.getAllocation(allocationId); + IAllocation.State memory allocation = subgraphService.getAllocation(allocationId); // Check allocation state assertEq(allocation.accRewardsPending, 0); @@ -490,7 +492,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { subgraphService.migrateLegacyAllocation(_indexer, _allocationId, _subgraphDeploymentID); - LegacyAllocation.State memory afterLegacyAllocation = subgraphService.getLegacyAllocation(_allocationId); + ILegacyAllocation.State memory afterLegacyAllocation = subgraphService.getLegacyAllocation(_allocationId); assertEq(afterLegacyAllocation.indexer, _indexer); assertEq(afterLegacyAllocation.subgraphDeploymentId, _subgraphDeploymentID); } @@ -525,9 +527,9 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { return ECDSA.recover(messageHash, _signedRAV.signature); } - function _getClaimList(address _indexer) private view returns (LinkedList.List memory) { + function _getClaimList(address _indexer) private view returns (ILinkedList.List memory) { (bytes32 head, bytes32 tail, uint256 nonce, uint256 count) = subgraphService.claimsLists(_indexer); - return LinkedList.List(head, tail, nonce, count); + return ILinkedList.List(head, tail, nonce, count); } function _buildStakeClaimId(address _indexer, uint256 _nonce) private view returns (bytes32) { diff --git a/packages/subgraph-service/test/unit/subgraphService/allocation/forceClose.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/forceClose.t.sol index 9acfbc37f..6f75888f8 100644 --- a/packages/subgraph-service/test/unit/subgraphService/allocation/forceClose.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/forceClose.t.sol @@ -4,10 +4,10 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { PausableUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceAllocationForceCloseTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/unit/subgraphService/allocation/overDelegated.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/overDelegated.t.sol index 0113b36f2..263f031ec 100644 --- a/packages/subgraph-service/test/unit/subgraphService/allocation/overDelegated.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/overDelegated.t.sol @@ -3,11 +3,11 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; -import { IHorizonStakingTypes } from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IHorizonStakingTypes } from "@graphprotocol/interfaces/contracts/horizon/internal/IHorizonStakingTypes.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceAllocationOverDelegatedTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/unit/subgraphService/allocation/resize.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/resize.t.sol index c9984bdba..638356e2b 100644 --- a/packages/subgraph-service/test/unit/subgraphService/allocation/resize.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/resize.t.sol @@ -6,8 +6,8 @@ import "forge-std/Test.sol"; import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; import { AllocationManager } from "../../../../contracts/utilities/AllocationManager.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; contract SubgraphServiceAllocationResizeTest is SubgraphServiceTest { /* diff --git a/packages/subgraph-service/test/unit/subgraphService/allocation/start.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/start.t.sol index 2f132e132..4a251f506 100644 --- a/packages/subgraph-service/test/unit/subgraphService/allocation/start.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/start.t.sol @@ -6,10 +6,12 @@ import "forge-std/Test.sol"; import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; import { ProvisionTracker } from "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; +import { ILegacyAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/ILegacyAllocation.sol"; import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; import { AllocationManager } from "../../../../contracts/utilities/AllocationManager.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { LegacyAllocation } from "../../../../contracts/libraries/LegacyAllocation.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; @@ -143,7 +145,7 @@ contract SubgraphServiceAllocationStartTest is SubgraphServiceTest { bytes memory data = _generateData(tokens); _startService(users.indexer, data); - vm.expectRevert(abi.encodeWithSelector(Allocation.AllocationAlreadyExists.selector, allocationID)); + vm.expectRevert(abi.encodeWithSelector(IAllocation.AllocationAlreadyExists.selector, allocationID)); subgraphService.startService(users.indexer, data); } @@ -158,7 +160,7 @@ contract SubgraphServiceAllocationStartTest is SubgraphServiceTest { resetPrank(users.indexer); bytes memory data = _generateData(tokens); - vm.expectRevert(abi.encodeWithSelector(LegacyAllocation.LegacyAllocationAlreadyExists.selector, allocationID)); + vm.expectRevert(abi.encodeWithSelector(ILegacyAllocation.LegacyAllocationAlreadyExists.selector, allocationID)); subgraphService.startService(users.indexer, data); } @@ -172,7 +174,7 @@ contract SubgraphServiceAllocationStartTest is SubgraphServiceTest { _setStorage_allocation_hardcoded(users.indexer, allocationID, tokens); bytes memory data = _generateData(tokens); - vm.expectRevert(abi.encodeWithSelector(LegacyAllocation.LegacyAllocationAlreadyExists.selector, allocationID)); + vm.expectRevert(abi.encodeWithSelector(ILegacyAllocation.LegacyAllocationAlreadyExists.selector, allocationID)); subgraphService.startService(users.indexer, data); } diff --git a/packages/subgraph-service/test/unit/subgraphService/allocation/stop.t.sol b/packages/subgraph-service/test/unit/subgraphService/allocation/stop.t.sol index 2c4391cb2..de215da04 100644 --- a/packages/subgraph-service/test/unit/subgraphService/allocation/stop.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/allocation/stop.t.sol @@ -3,14 +3,14 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; +import { IDataService } from "@graphprotocol/interfaces/contracts/data-service/IDataService.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; import { ProvisionTracker } from "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol"; import { Allocation } from "../../../../contracts/libraries/Allocation.sol"; import { AllocationManager } from "../../../../contracts/utilities/AllocationManager.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; -import { LegacyAllocation } from "../../../../contracts/libraries/LegacyAllocation.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; +import { IAllocation } from "@graphprotocol/interfaces/contracts/subgraph-service/internal/IAllocation.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceAllocationStopTest is SubgraphServiceTest { @@ -70,7 +70,7 @@ contract SubgraphServiceAllocationStopTest is SubgraphServiceTest { ) public useIndexer useAllocation(tokens) { bytes memory data = abi.encode(allocationID); _stopService(users.indexer, data); - vm.expectRevert(abi.encodeWithSelector(Allocation.AllocationClosed.selector, allocationID, block.timestamp)); + vm.expectRevert(abi.encodeWithSelector(IAllocation.AllocationClosed.selector, allocationID, block.timestamp)); subgraphService.stopService(users.indexer, data); } } diff --git a/packages/subgraph-service/test/unit/subgraphService/collect/collect.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/collect.t.sol index aff11d578..8dd319c26 100644 --- a/packages/subgraph-service/test/unit/subgraphService/collect/collect.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/collect.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceCollectTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol index 6d2d18571..61224ff23 100644 --- a/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; -import { ISubgraphService } from "../../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { SubgraphServiceTest } from "../../SubgraphService.t.sol"; import { Allocation } from "../../../../../contracts/libraries/Allocation.sol"; contract SubgraphServiceCollectIndexingTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol index 433e32375..a785c4e39 100644 --- a/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol @@ -3,13 +3,13 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; -import { IGraphTallyCollector } from "@graphprotocol/horizon/contracts/interfaces/IGraphTallyCollector.sol"; +import { IGraphPayments } from "@graphprotocol/interfaces/contracts/horizon/IGraphPayments.sol"; +import { IGraphTallyCollector } from "@graphprotocol/interfaces/contracts/horizon/IGraphTallyCollector.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; -import { ISubgraphService } from "../../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { SubgraphServiceTest } from "../../SubgraphService.t.sol"; contract SubgraphServiceRegisterTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/unit/subgraphService/governance/stakeToFeesRatio.t.sol b/packages/subgraph-service/test/unit/subgraphService/governance/stakeToFeesRatio.t.sol index a6ce1ae1d..346b15347 100644 --- a/packages/subgraph-service/test/unit/subgraphService/governance/stakeToFeesRatio.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/governance/stakeToFeesRatio.t.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/packages/subgraph-service/test/unit/subgraphService/provider/register.t.sol b/packages/subgraph-service/test/unit/subgraphService/provider/register.t.sol index 333f03f10..7ab37e06e 100644 --- a/packages/subgraph-service/test/unit/subgraphService/provider/register.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/provider/register.t.sol @@ -4,7 +4,7 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceProviderRegisterTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/unit/subgraphService/provider/rewardsDestination.t.sol b/packages/subgraph-service/test/unit/subgraphService/provider/rewardsDestination.t.sol index ab8f2e55c..d266739f0 100644 --- a/packages/subgraph-service/test/unit/subgraphService/provider/rewardsDestination.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/provider/rewardsDestination.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; +import { IDataService } from "@graphprotocol/interfaces/contracts/data-service/IDataService.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceProviderRewardsDestinationTest is SubgraphServiceTest { diff --git a/packages/subgraph-service/test/unit/subgraphService/provision/accept.t.sol b/packages/subgraph-service/test/unit/subgraphService/provision/accept.t.sol index fb21c7ce0..19110aaa5 100644 --- a/packages/subgraph-service/test/unit/subgraphService/provision/accept.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/provision/accept.t.sol @@ -3,9 +3,9 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; +import { IDataService } from "@graphprotocol/interfaces/contracts/data-service/IDataService.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; -import { ISubgraphService } from "../../../../contracts/interfaces/ISubgraphService.sol"; +import { ISubgraphService } from "@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceProvisionAcceptTest is SubgraphServiceTest { diff --git a/packages/toolshed/CHANGELOG.md b/packages/toolshed/CHANGELOG.md index e10f1782c..cebbfb693 100644 --- a/packages/toolshed/CHANGELOG.md +++ b/packages/toolshed/CHANGELOG.md @@ -1,5 +1,23 @@ # @graphprotocol/toolshed +## 0.5.7 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/contracts@7.2.1 + - @graphprotocol/horizon@0.3.3 + - @graphprotocol/subgraph-service@0.3.5 + +## 0.5.6 + +### Patch Changes + +- Updated dependencies + - @graphprotocol/contracts@7.2.0 + - @graphprotocol/horizon@0.3.3 + - @graphprotocol/subgraph-service@0.3.5 + ## 0.5.5 ### Patch Changes diff --git a/packages/toolshed/README.md b/packages/toolshed/README.md index 11b274f4e..86f64ed34 100644 --- a/packages/toolshed/README.md +++ b/packages/toolshed/README.md @@ -21,14 +21,14 @@ The package is organized into several modules that can be imported separately: ```typescript // Import core functionality -import { generateAllocationProof } from '@graphprotocol/toolshed'; +import { generateAllocationProof } from '@graphprotocol/toolshed' // Import deployment -import { loadGraphHorizon } from '@graphprotocol/toolshed/deployments/horizon'; +import { loadGraphHorizon } from '@graphprotocol/toolshed/deployments/horizon' // Import Hardhat utilities -import { hardhatBaseConfig } from '@graphprotocol/toolshed/hardhat'; +import { hardhatBaseConfig } from '@graphprotocol/toolshed/hardhat' // Import utility functions -import { printBanner } from '@graphprotocol/toolshed/utils'; +import { printBanner } from '@graphprotocol/toolshed/utils' ``` diff --git a/packages/toolshed/package.json b/packages/toolshed/package.json index c63b3a0ea..ab63a4257 100644 --- a/packages/toolshed/package.json +++ b/packages/toolshed/package.json @@ -1,6 +1,6 @@ { "name": "@graphprotocol/toolshed", - "version": "0.5.5", + "version": "0.5.7", "publishConfig": { "access": "public" }, @@ -31,7 +31,9 @@ "build": "tsc", "watch": "tsc --watch", "prepublishOnly": "tsc", - "lint": "eslint --fix --cache '**/*.{js,ts,cjs,mjs,jsx,tsx}'; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", + "lint": "pnpm lint:ts; pnpm lint:json", + "lint:ts": "eslint --fix --cache '**/*.{js,ts,cjs,mjs,jsx,tsx}'; prettier -w --cache --log-level warn '**/*.{js,ts,cjs,mjs,jsx,tsx}'", + "lint:json": "prettier -w --cache --log-level warn '**/*.json'", "clean": "rm -rf dist" }, "keywords": [ @@ -44,9 +46,7 @@ "horizon" ], "dependencies": { - "@graphprotocol/contracts": "workspace:^", - "@graphprotocol/horizon": "workspace:^", - "@graphprotocol/subgraph-service": "workspace:^", + "@graphprotocol/interfaces": "workspace:^", "@nomicfoundation/hardhat-ethers": "3.0.8", "debug": "^4.4.0", "ethers": "6.13.7", @@ -60,4 +60,4 @@ "eslint": "^8.56.0", "typescript": "^5.0.0" } -} \ No newline at end of file +} diff --git a/packages/toolshed/src/core/abi.ts b/packages/toolshed/src/core/abi.ts deleted file mode 100644 index 5cdc1cd8d..000000000 --- a/packages/toolshed/src/core/abi.ts +++ /dev/null @@ -1,10 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function mergeABIs(abi1: any[], abi2: any[]) { - for (const item of abi2) { - if (abi1.find((v) => v.name === item.name) === undefined) { - abi1.push(item) - } - } - - return abi1 -} diff --git a/packages/toolshed/src/core/index.ts b/packages/toolshed/src/core/index.ts index 1cf58f3b6..d921cccc3 100644 --- a/packages/toolshed/src/core/index.ts +++ b/packages/toolshed/src/core/index.ts @@ -1,4 +1,3 @@ -export * from './abi' export * from './accounts' export * from './allocation' export * from './attestations' diff --git a/packages/toolshed/src/deployments/address-book.ts b/packages/toolshed/src/deployments/address-book.ts index fe665bab4..002ecbbcc 100644 --- a/packages/toolshed/src/deployments/address-book.ts +++ b/packages/toolshed/src/deployments/address-book.ts @@ -176,31 +176,18 @@ export abstract class AddressBook, - signerOrProvider?: Signer | Provider, - enableTxLogging?: boolean, - ): ContractList { + _loadContracts(signerOrProvider?: Signer | Provider, enableTxLogging?: boolean): ContractList { const contracts = {} as ContractList if (this.listEntries().length == 0) { logError('No valid contracts found in address book') return contracts } for (const contractName of this.listEntries()) { - const artifactPath = - typeof artifactsPath === 'object' && !Array.isArray(artifactsPath) ? artifactsPath[contractName] : artifactsPath - - if (Array.isArray(artifactPath) ? !artifactPath.some(fs.existsSync) : !fs.existsSync(artifactPath)) { - logWarn(`Could not load contract ${contractName} - artifact not found`) - logWarn(artifactPath) - continue - } logDebug(`Loading contract ${contractName}`) const contract = loadContract( contractName, this.getEntry(contractName).address, - artifactPath, signerOrProvider, enableTxLogging, ) diff --git a/packages/toolshed/src/deployments/artifact.ts b/packages/toolshed/src/deployments/artifact.ts deleted file mode 100644 index b9e8a2329..000000000 --- a/packages/toolshed/src/deployments/artifact.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Artifacts } from 'hardhat/internal/artifacts' -import type { Artifact } from 'hardhat/types' - -/** - * Load a contract's artifact from the build output folder - * If multiple build output folders are provided, they will be searched in order - * @param name Name of the contract - * @param buildDir Path to the build output folder(s). Defaults to `build/contracts`. - * @returns The artifact corresponding to the contract name - */ -export const loadArtifact = (name: string, buildDir?: string[] | string): Artifact => { - let artifacts: Artifacts - let artifact: Artifact | undefined - buildDir = buildDir ?? ['build/contracts'] - - if (typeof buildDir === 'string') { - buildDir = [buildDir] - } - - for (const dir of buildDir) { - try { - artifacts = new Artifacts(dir) - artifact = artifacts.readArtifactSync(name) - break - } catch (error) { - if (error instanceof Error) { - throw new Error(`Could not load artifact ${name} from ${dir} - ${error.message}`) - } else { - throw new Error(`Could not load artifact ${name} from ${dir}`) - } - } - } - - if (artifact === undefined) { - throw new Error(`Could not load artifact ${name}`) - } - - return artifact -} diff --git a/packages/toolshed/src/deployments/contract.ts b/packages/toolshed/src/deployments/contract.ts index 844b31008..cc4b4c2fc 100644 --- a/packages/toolshed/src/deployments/contract.ts +++ b/packages/toolshed/src/deployments/contract.ts @@ -1,6 +1,6 @@ +import { getInterface } from '@graphprotocol/interfaces' import { Contract, Provider, Signer } from 'ethers' -import { loadArtifact } from './artifact' import { wrapTransactionCalls } from './tx-logging' export type ContractList = Partial> @@ -20,12 +20,11 @@ export type ContractList = Partial export function loadContract( name: ContractName, address: string, - artifactsPath: string | string[], signerOrProvider?: Signer | Provider, enableTxLogging?: boolean, ): Contract { try { - let contract = new Contract(address, loadArtifact(name, artifactsPath).abi, signerOrProvider) + let contract = new Contract(address, getInterface(name), signerOrProvider) if (signerOrProvider) { contract = contract.connect(signerOrProvider) as Contract diff --git a/packages/toolshed/src/deployments/horizon/actions.ts b/packages/toolshed/src/deployments/horizon/actions.ts index d40174b97..f406e598f 100644 --- a/packages/toolshed/src/deployments/horizon/actions.ts +++ b/packages/toolshed/src/deployments/horizon/actions.ts @@ -1,6 +1,6 @@ import type { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' -import type { GraphHorizonContracts, HorizonStakingExtension } from '.' +import type { GraphHorizonContracts } from '.' /** * It's important to use JSDoc in the return functions here for good developer experience as @@ -166,7 +166,7 @@ async function collect( const [tokens, allocationID] = args await GraphToken.connect(signer).approve(HorizonStaking.target, tokens) - await (HorizonStaking as HorizonStakingExtension).connect(signer).collect(tokens, allocationID) + await HorizonStaking.connect(signer).collect(tokens, allocationID) } async function delegate( diff --git a/packages/toolshed/src/deployments/horizon/address-book.ts b/packages/toolshed/src/deployments/horizon/address-book.ts index 6df18d145..34e32cbe6 100644 --- a/packages/toolshed/src/deployments/horizon/address-book.ts +++ b/packages/toolshed/src/deployments/horizon/address-book.ts @@ -1,14 +1,13 @@ +import { getInterface } from '@graphprotocol/interfaces' import { Provider, Signer } from 'ethers' import { Contract } from 'ethers' -import { mergeABIs } from '../../core/abi' import { assertObject } from '../../lib/assert' import { logDebug, logError } from '../../lib/logger' import { AddressBook } from '../address-book' -import { loadArtifact } from '../artifact' import { wrapTransactionCalls } from '../tx-logging' import type { GraphHorizonContractName, GraphHorizonContracts } from './contracts' -import { GraphHorizonArtifactsMap, GraphHorizonContractNameList } from './contracts' +import { GraphHorizonContractNameList } from './contracts' import type { LegacyStaking } from './types' export class GraphHorizonAddressBook extends AddressBook { @@ -19,38 +18,18 @@ export class GraphHorizonAddressBook extends AddressBook { // @graphprotocol/contracts EpochManager: EpochManager @@ -74,7 +50,7 @@ export interface GraphHorizonContracts extends ContractList): Promise => + collect: (signer: HardhatEthersSigner, args: Parameters): Promise => collect(contracts, signer, args), } } // Collects payment from the subgraph service async function collect( - contracts: { SubgraphService: ISubgraphService }, + contracts: { SubgraphService: SubgraphService }, signer: HardhatEthersSigner, - args: Parameters, + args: Parameters, ): Promise { const { SubgraphService } = contracts const [indexer, paymentType, data] = args diff --git a/packages/toolshed/src/deployments/subgraph-service/address-book.ts b/packages/toolshed/src/deployments/subgraph-service/address-book.ts index 2cec83ed8..39a467f5a 100644 --- a/packages/toolshed/src/deployments/subgraph-service/address-book.ts +++ b/packages/toolshed/src/deployments/subgraph-service/address-book.ts @@ -1,14 +1,10 @@ import { Provider, Signer } from 'ethers' -import { Contract } from 'ethers' import { assertObject } from '../../lib/assert' import { logDebug, logError } from '../../lib/logger' import { AddressBook } from '../address-book' -import { loadArtifact } from '../artifact' -import { wrapTransactionCalls } from '../tx-logging' import type { SubgraphServiceContractName, SubgraphServiceContracts } from './contracts' -import { SubgraphServiceArtifactsMap, SubgraphServiceContractNameList } from './contracts' -import type { LegacyDisputeManager, LegacyServiceRegistry } from './types' +import { SubgraphServiceContractNameList } from './contracts' export class SubgraphServiceAddressBook extends AddressBook { isContractName(name: unknown): name is SubgraphServiceContractName { @@ -18,50 +14,15 @@ export class SubgraphServiceAddressBook extends AddressBook { // @graphprotocol/contracts L2Curation: L2Curation @@ -47,13 +34,13 @@ export interface SubgraphServiceContracts extends ContractList = { type EnhancedNetworkConfig = T & { secureAccounts?: SecureAccountsOptions deployments?: { - horizon: string - subgraphService: string + horizon?: string + subgraphService?: string } } type BaseNetworksUserConfig = { [K in keyof NetworksUserConfig]: EnhancedNetworkConfig } -export const networksUserConfig: BaseNetworksUserConfig = { - hardhat: { - chainId: 31337, - accounts: { - mnemonic: 'myth like bonus scare over problem client lizard pioneer submit female collect', +export const networksUserConfig = function (callerRequire: typeof require): BaseNetworksUserConfig { + return { + hardhat: { + chainId: 31337, + accounts: { + mnemonic: 'myth like bonus scare over problem client lizard pioneer submit female collect', + }, + deployments: { + horizon: resolveAddressBook(callerRequire, '@graphprotocol/horizon', 'addresses-hardhat.json'), + subgraphService: resolveAddressBook(callerRequire, '@graphprotocol/subgraph-service', 'addresses-hardhat.json'), + }, }, - deployments: { - horizon: resolveNodeModulesPath('@graphprotocol/horizon/addresses-hardhat.json'), - subgraphService: resolveNodeModulesPath('@graphprotocol/subgraph-service/addresses-hardhat.json'), + localNetwork: { + chainId: 1337, + url: LOCAL_NETWORK_RPC, + deployments: { + horizon: resolveAddressBook(callerRequire, '@graphprotocol/horizon', 'addresses-local-network.json'), + subgraphService: resolveAddressBook( + callerRequire, + '@graphprotocol/subgraph-service', + 'addresses-local-network.json', + ), + }, }, - }, - localNetwork: { - chainId: 1337, - url: LOCAL_NETWORK_RPC, - deployments: { - horizon: resolveNodeModulesPath('@graphprotocol/horizon/addresses-local-network.json'), - subgraphService: resolveNodeModulesPath('@graphprotocol/subgraph-service/addresses-local-network.json'), - }, - }, - localhost: { - chainId: 31337, - url: LOCALHOST_RPC, - secureAccounts: { - enabled: true, + localhost: { + chainId: 31337, + url: LOCALHOST_RPC, + secureAccounts: { + enabled: true, + }, + deployments: { + horizon: resolveAddressBook(callerRequire, '@graphprotocol/horizon', 'addresses-localhost.json'), + subgraphService: resolveAddressBook( + callerRequire, + '@graphprotocol/subgraph-service', + 'addresses-localhost.json', + ), + }, }, - deployments: { - horizon: resolveNodeModulesPath('@graphprotocol/horizon/addresses-localhost.json'), - subgraphService: resolveNodeModulesPath('@graphprotocol/subgraph-service/addresses-localhost.json'), + arbitrumOne: { + chainId: 42161, + url: ARBITRUM_ONE_RPC, + secureAccounts: { + enabled: true, + }, }, - }, - arbitrumOne: { - chainId: 42161, - url: ARBITRUM_ONE_RPC, - secureAccounts: { - enabled: true, + arbitrumSepolia: { + chainId: 421614, + url: ARBITRUM_SEPOLIA_RPC, + secureAccounts: { + enabled: true, + }, }, - }, - arbitrumSepolia: { - chainId: 421614, - url: ARBITRUM_SEPOLIA_RPC, - secureAccounts: { - enabled: true, - }, - }, + } } type BaseHardhatConfig = HardhatUserConfig & { etherscan: Partial } & { graph: GraphRuntimeEnvironmentOptions } & { secureAccounts: SecureAccountsOptions } -export const hardhatBaseConfig: BaseHardhatConfig = { - solidity: solidityUserConfig, - paths: projectPathsUserConfig, - secureAccounts: { - enabled: false, - }, - networks: networksUserConfig, - graph: { - deployments: { - horizon: resolveNodeModulesPath('@graphprotocol/horizon/addresses.json'), - subgraphService: resolveNodeModulesPath('@graphprotocol/subgraph-service/addresses.json'), +export const hardhatBaseConfig = function (callerRequire: typeof require): BaseHardhatConfig { + return { + solidity: solidityUserConfig, + paths: projectPathsUserConfig, + secureAccounts: { + enabled: false, }, - }, - etherscan: etherscanUserConfig, + networks: networksUserConfig(callerRequire), + graph: { + deployments: { + horizon: resolveAddressBook(callerRequire, '@graphprotocol/horizon'), + subgraphService: resolveAddressBook(callerRequire, '@graphprotocol/subgraph-service'), + }, + }, + etherscan: etherscanUserConfig, + } } export default hardhatBaseConfig diff --git a/packages/toolshed/src/lib/path.ts b/packages/toolshed/src/lib/path.ts deleted file mode 100644 index bab48884e..000000000 --- a/packages/toolshed/src/lib/path.ts +++ /dev/null @@ -1,38 +0,0 @@ -import fs from 'fs' -import path from 'path' - -export function findPathUp(startPath: string, pathToFind: string): string | null { - let currentDir = path.resolve(startPath) - - while (currentDir !== path.dirname(currentDir)) { - const candidate = path.join(currentDir, pathToFind) - if (fs.existsSync(candidate) && fs.statSync(candidate).isDirectory()) { - return candidate - } - - const parentDir = path.dirname(currentDir) - if (parentDir === currentDir) { - return null - } - - currentDir = parentDir - } - - return null -} - -// Useful if you need to resolve a path to a file that might not exist but you -// know it will eventually exist in the node_modules directory -export function resolveNodeModulesPath(fileName: string): string { - const basePath = findPathUp(__dirname, 'node_modules') - if (!basePath) { - throw new Error('Could not find node_modules directory') - } - return path.resolve(basePath, fileName) -} - -// Useful if you need to resolve a path to a file that exists in a package -export function resolvePackagePath(packageName: string, relativePath: string): string { - const packageRoot = path.dirname(require.resolve(`${packageName}/package.json`)) - return path.join(packageRoot, relativePath) -} diff --git a/packages/toolshed/src/lib/resolve.ts b/packages/toolshed/src/lib/resolve.ts new file mode 100644 index 000000000..89c3ce5d9 --- /dev/null +++ b/packages/toolshed/src/lib/resolve.ts @@ -0,0 +1,22 @@ +import path from 'path' + +/** + * Use to get a resolved path to an address book file wether it exists or not + * If addresses.json does not exist in the package root, returns undefined + * @param callerRequire - The require function to use + * @param packageName - The name of the package to resolve the address book for + * @param addressBook - The name of the address book file to resolve + * @returns The resolved path to the address book file + */ +export function resolveAddressBook( + callerRequire: typeof require, + packageName: string, + addressBook?: string, +): string | undefined { + try { + const packageRoot = path.dirname(callerRequire.resolve(`${packageName}/addresses.json`)) + return path.join(packageRoot, addressBook ?? 'addresses.json') + } catch (_) { + return undefined + } +} diff --git a/packages/toolshed/tsconfig.json b/packages/toolshed/tsconfig.json index 9cc384416..f6387508a 100644 --- a/packages/toolshed/tsconfig.json +++ b/packages/toolshed/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "dist", + "outDir": "dist" }, - "include": ["src/**/*.ts", "test/**/*.ts"], + "include": ["src/**/*.ts", "test/**/*.ts"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 095511ccc..09a1125ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -110,49 +110,6 @@ importers: specifier: ^1.7.0 version: 1.7.0 - packages/common: - dependencies: - dotenv: - specifier: ^16.3.1 - version: 16.5.0 - devDependencies: - '@defi-wonderland/natspec-smells': - specifier: ^1.1.6 - version: 1.1.6(typescript@5.8.3)(zod@3.24.4) - '@types/node': - specifier: ^20.17.50 - version: 20.19.0 - eslint: - specifier: ^9.28.0 - version: 9.28.0(jiti@2.4.2) - eslint-config-prettier: - specifier: ^10.1.5 - version: 10.1.5(eslint@9.28.0(jiti@2.4.2)) - globals: - specifier: ^16.1.0 - version: 16.1.0 - hardhat: - specifier: ^2.24.0 - version: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) - markdownlint-cli: - specifier: ^0.45.0 - version: 0.45.0 - prettier: - specifier: ^3.5.3 - version: 3.5.3 - prettier-plugin-solidity: - specifier: ^2.0.0 - version: 2.0.0(prettier@3.5.3) - solhint: - specifier: 5.1.0 - version: 5.1.0(typescript@5.8.3) - typescript: - specifier: ^5.8.3 - version: 5.8.3 - typescript-eslint: - specifier: ^8.33.1 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - packages/contracts: devDependencies: '@arbitrum/sdk': @@ -176,9 +133,6 @@ importers: '@ethersproject/providers': specifier: ^5.8.0 version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@graphprotocol/common': - specifier: workspace:^ - version: link:../common '@graphprotocol/common-ts': specifier: ^1.8.3 version: 1.8.7(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -306,8 +260,8 @@ importers: specifier: workspace:^ version: link:.. '@graphprotocol/sdk': - specifier: workspace:^ - version: link:../../sdk + specifier: 0.6.0 + version: 0.6.0(bufferutil@4.0.9)(encoding@0.1.13)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) axios: specifier: ^1.9.0 version: 1.9.0(debug@4.4.0) @@ -333,9 +287,6 @@ importers: '@ethersproject/providers': specifier: ^5.8.0 version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@graphprotocol/common': - specifier: workspace:^ - version: link:../../common '@graphprotocol/common-ts': specifier: ^1.8.3 version: 1.8.7(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -448,8 +399,8 @@ importers: specifier: workspace:^ version: link:.. '@graphprotocol/sdk': - specifier: workspace:^ - version: link:../../sdk + specifier: 0.6.0 + version: 0.6.0(bufferutil@4.0.9)(encoding@0.1.13)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) devDependencies: '@arbitrum/sdk': specifier: ~3.1.13 @@ -472,9 +423,6 @@ importers: '@ethersproject/providers': specifier: ^5.8.0 version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@graphprotocol/common': - specifier: workspace:^ - version: link:../../common '@graphprotocol/common-ts': specifier: ^1.8.3 version: 1.8.7(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -780,8 +728,11 @@ importers: specifier: ^1.1.6 version: 1.1.6(typescript@5.8.3)(zod@3.24.4) '@graphprotocol/contracts': - specifier: workspace:^7.1.2 + specifier: workspace:^7.2.1 version: link:../contracts + '@graphprotocol/interfaces': + specifier: workspace:^ + version: link:../interfaces '@graphprotocol/toolshed': specifier: workspace:^ version: link:../toolshed @@ -861,7 +812,7 @@ importers: specifier: ^1.0.8 version: 1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) hardhat-graph-protocol: - specifier: workspace:^0.1.22 + specifier: workspace:^0.1.24 version: link:../hardhat-graph-protocol hardhat-secure-accounts: specifier: ^1.0.5 @@ -891,102 +842,38 @@ importers: specifier: ^5.8.3 version: 5.8.3 - packages/sdk: - dependencies: - '@arbitrum/sdk': - specifier: ~3.1.13 - version: 3.1.13(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@ethersproject/abstract-provider': - specifier: ^5.8.0 - version: 5.8.0 - '@ethersproject/experimental': - specifier: ^5.7.0 - version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@ethersproject/providers': - specifier: ^5.8.0 - version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@graphprotocol/common-ts': - specifier: ^2.0.7 - version: 2.0.11(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@graphprotocol/contracts': - specifier: workspace:^ - version: link:../contracts - '@nomicfoundation/hardhat-network-helpers': - specifier: ^1.0.9 - version: 1.0.12(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) - '@nomiclabs/hardhat-ethers': - specifier: ^2.2.3 - version: 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) - debug: - specifier: ^4.3.4 - version: 4.4.0(supports-color@9.4.0) + packages/interfaces: + devDependencies: + '@defi-wonderland/natspec-smells': + specifier: ^1.1.6 + version: 1.1.6(typescript@5.8.3)(zod@3.24.4) + '@nomicfoundation/hardhat-toolbox': + specifier: ^4.0.0 + version: 4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3))(@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3)))(@types/chai@4.3.20)(@types/mocha@10.0.10)(@types/node@22.7.5)(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(solidity-coverage@0.8.16(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3) + '@openzeppelin/contracts': + specifier: 3.4.1 + version: 3.4.1 + '@openzeppelin/contracts-upgradeable': + specifier: 3.4.2 + version: 3.4.2 ethers: - specifier: ^5.7.0 - version: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + specifier: 6.13.7 + version: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) hardhat: specifier: ^2.24.0 - version: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) - hardhat-secure-accounts: - specifier: 0.0.6 - version: 0.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) - inquirer: - specifier: ^8.0.0 - version: 8.0.0 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - yaml: - specifier: ^1.10.2 - version: 1.10.2 - devDependencies: - '@eslint/js': - specifier: ^9.28.0 - version: 9.28.0 - '@types/chai': - specifier: ^4.3.9 - version: 4.3.20 - '@types/chai-as-promised': - specifier: ^7.1.7 - version: 7.1.8 - '@types/debug': - specifier: ^4.1.10 - version: 4.1.12 - '@types/inquirer': - specifier: ^8.0.0 - version: 8.2.11 - '@types/lodash': - specifier: ^4.14.200 - version: 4.17.17 - '@types/mocha': - specifier: ^10.0.3 - version: 10.0.10 - '@types/node': - specifier: ^20.17.50 - version: 20.19.0 - chai: - specifier: ^4.3.10 - version: 4.5.0 - chai-as-promised: - specifier: ^7.1.1 - version: 7.1.2(chai@4.5.0) - eslint: - specifier: ^9.28.0 - version: 9.28.0(jiti@2.4.2) - globals: - specifier: 16.1.0 - version: 16.1.0 + version: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) markdownlint-cli: - specifier: 0.45.0 + specifier: ^0.45.0 version: 0.45.0 prettier: specifier: ^3.5.3 version: 3.5.3 - ts-node: - specifier: ^10.9.1 - version: 10.9.2(@types/node@20.19.0)(typescript@5.8.3) - typescript: - specifier: ^5.8.3 - version: 5.8.3 + prettier-plugin-solidity: + specifier: ^2.0.0 + version: 2.0.0(prettier@3.5.3) + solhint: + specifier: 5.1.0 + version: 5.1.0(typescript@5.8.3) packages/solhint-plugin-graph: {} @@ -996,11 +883,14 @@ importers: specifier: ^1.1.6 version: 1.1.6(typescript@5.8.3)(zod@3.24.4) '@graphprotocol/contracts': - specifier: workspace:^7.1.2 + specifier: workspace:^7.2.1 version: link:../contracts '@graphprotocol/horizon': specifier: workspace:^0.3.3 version: link:../horizon + '@graphprotocol/interfaces': + specifier: workspace:^ + version: link:../interfaces '@graphprotocol/toolshed': specifier: workspace:^ version: link:../toolshed @@ -1080,7 +970,7 @@ importers: specifier: ^1.0.8 version: 1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) hardhat-graph-protocol: - specifier: workspace:^0.1.22 + specifier: workspace:^0.1.24 version: link:../hardhat-graph-protocol hardhat-secure-accounts: specifier: ^1.0.5 @@ -1256,15 +1146,9 @@ importers: packages/toolshed: dependencies: - '@graphprotocol/contracts': - specifier: workspace:^ - version: link:../contracts - '@graphprotocol/horizon': - specifier: workspace:^ - version: link:../horizon - '@graphprotocol/subgraph-service': + '@graphprotocol/interfaces': specifier: workspace:^ - version: link:../subgraph-service + version: link:../interfaces '@nomicfoundation/hardhat-ethers': specifier: 3.0.8 version: 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) @@ -2557,10 +2441,16 @@ packages: '@graphprotocol/contracts@5.3.3': resolution: {integrity: sha512-fmFSKr+VDinWWotj2q/Ztn92PppcRrYXeO/62gLgkLos/DcYa7bGWKbcOWyMUw0vsUvXxk6QAtr5o/LG3yQ1WQ==} + '@graphprotocol/contracts@7.2.1': + resolution: {integrity: sha512-Ge2RD5QoEeSabCzdlMG3DT1mdsTGaD3aqxDsxRWwDx9nejudkrTlhjTTRAGVtBkfxlEy7P4Kxejr+fZmK29yRg==} + '@graphprotocol/pino-sentry-simple@0.7.1': resolution: {integrity: sha512-iccKFdFBjarSp8/liXuK1EtGq8Vwn118tqymbOJBxblecRsi4rOebk63qnL+dK/a0IvxH6h2+RjjWDbRt7UsUA==} engines: {node: '>=10'} + '@graphprotocol/sdk@0.6.0': + resolution: {integrity: sha512-oZGzUNFvZZ5MVsBvKXE0IzVBMzQ6Rxp9L3eCSeeOvHxQD7fUTFwbNr3SsGQagQlo3axLemAvK1hrl+aB5DlZIA==} + '@graphql-codegen/core@3.1.0': resolution: {integrity: sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw==} peerDependencies: @@ -3328,6 +3218,9 @@ packages: peerDependencies: '@openzeppelin/contracts': 5.3.0 + '@openzeppelin/contracts@3.4.1': + resolution: {integrity: sha512-cUriqMauq1ylzP2TxePNdPqkwI7Le3Annh4K9rrpvKfSBB/bdW+Iu1ihBaTIABTAAJ85LmKL5SSPPL9ry8d1gQ==} + '@openzeppelin/contracts@3.4.2': resolution: {integrity: sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==} @@ -3903,9 +3796,6 @@ packages: '@types/http-cache-semantics@4.0.4': resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - '@types/inquirer@8.2.11': - resolution: {integrity: sha512-15UboTvxb9SOaPG7CcXZ9dkv8lNqfiAwuh/5WxJDLjmElBt9tbx1/FDsEnJddUBKvN4mlPKvr8FyO1rAmBanzg==} - '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -3937,9 +3827,6 @@ packages: '@types/levelup@4.3.3': resolution: {integrity: sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==} - '@types/lodash@4.17.17': - resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==} - '@types/lru-cache@5.1.1': resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} @@ -4009,9 +3896,6 @@ packages: '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/through@0.0.33': - resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} - '@types/triple-beam@1.3.5': resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} @@ -12417,7 +12301,7 @@ snapshots: '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -12770,7 +12654,7 @@ snapshots: '@babel/parser': 7.27.1 '@babel/template': 7.27.1 '@babel/types': 7.27.1 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -13259,7 +13143,7 @@ snapshots: '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -13287,7 +13171,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -13433,7 +13317,7 @@ snapshots: '@ethereumjs/block': 3.6.3 '@ethereumjs/common': 2.6.5 '@ethereumjs/ethash': 1.1.0 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) ethereumjs-util: 7.1.5 level-mem: 5.0.1 lru-cache: 5.1.1 @@ -14527,6 +14411,8 @@ snapshots: - bufferutil - utf-8-validate + '@graphprotocol/contracts@7.2.1': {} + '@graphprotocol/pino-sentry-simple@0.7.1': dependencies: '@sentry/node': 5.30.0 @@ -14536,6 +14422,39 @@ snapshots: transitivePeerDependencies: - supports-color + '@graphprotocol/sdk@0.6.0(bufferutil@4.0.9)(encoding@0.1.13)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)': + dependencies: + '@arbitrum/sdk': 3.1.13(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/experimental': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@graphprotocol/common-ts': 2.0.11(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@graphprotocol/contracts': 7.2.1 + '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + debug: 4.4.1(supports-color@8.1.1) + ethers: 5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-secure-accounts: 0.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + inquirer: 8.0.0 + lodash: 4.17.21 + yaml: 1.10.2 + transitivePeerDependencies: + - bufferutil + - encoding + - ibm_db + - mariadb + - mysql2 + - oracledb + - pg-native + - snowflake-sdk + - sqlite3 + - supports-color + - tedious + - ts-node + - typescript + - utf-8-validate + '@graphql-codegen/core@3.1.0(graphql@16.11.0)': dependencies: '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.11.0) @@ -15518,6 +15437,17 @@ snapshots: hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) ordinal: 1.0.3 + '@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@types/chai-as-promised': 7.1.8 + chai: 4.5.0 + chai-as-promised: 7.1.2(chai@4.5.0) + deep-eql: 4.1.4 + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + ordinal: 1.0.3 + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': dependencies: debug: 4.4.0(supports-color@9.4.0) @@ -15545,6 +15475,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + debug: 4.4.0(supports-color@9.4.0) + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.isequal: 4.5.0 + transitivePeerDependencies: + - supports-color + '@nomicfoundation/hardhat-foundry@1.1.3(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': dependencies: hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) @@ -15584,6 +15523,11 @@ snapshots: ethereumjs-util: 7.1.5 hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + ethereumjs-util: 7.1.5 + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + ? '@nomicfoundation/hardhat-toolbox@4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3))(@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3)))(@types/chai@4.3.20)(@types/mocha@10.0.10)(@types/node@20.19.0)(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(solidity-coverage@0.8.15(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3)' : dependencies: '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) @@ -15604,6 +15548,26 @@ snapshots: typechain: 8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3) typescript: 5.8.3 + ? '@nomicfoundation/hardhat-toolbox@4.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3))(@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3)))(@types/chai@4.3.20)(@types/mocha@10.0.10)(@types/node@22.7.5)(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(solidity-coverage@0.8.16(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3)' + : dependencies: + '@nomicfoundation/hardhat-chai-matchers': 2.0.8(@nomicfoundation/hardhat-ethers@3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-verify': 2.0.13(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + '@typechain/ethers-v6': 0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3) + '@typechain/hardhat': 9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3)) + '@types/chai': 4.3.20 + '@types/mocha': 10.0.10 + '@types/node': 22.7.5 + chai: 4.5.0 + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + hardhat-gas-reporter: 1.0.10(bufferutil@4.0.9)(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + solidity-coverage: 0.8.16(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) + ts-node: 10.9.2(@types/node@22.7.5)(typescript@5.8.3) + typechain: 8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3) + typescript: 5.8.3 + '@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': dependencies: '@ethersproject/abi': 5.8.0 @@ -15634,6 +15598,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@nomicfoundation/hardhat-verify@2.0.13(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))': + dependencies: + '@ethersproject/abi': 5.8.0 + '@ethersproject/address': 5.8.0 + cbor: 8.1.0 + debug: 4.4.0(supports-color@9.4.0) + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + lodash.clonedeep: 4.5.0 + picocolors: 1.1.1 + semver: 6.3.1 + table: 6.9.0 + undici: 5.29.0 + transitivePeerDependencies: + - supports-color + '@nomicfoundation/ignition-core@0.15.11(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@ethersproject/address': 5.6.1 @@ -15735,6 +15714,8 @@ snapshots: dependencies: '@openzeppelin/contracts': 5.3.0 + '@openzeppelin/contracts@3.4.1': {} + '@openzeppelin/contracts@3.4.2': {} '@openzeppelin/contracts@4.9.6': {} @@ -15832,7 +15813,7 @@ snapshots: cbor: 10.0.3 chalk: 4.1.2 compare-versions: 6.1.1 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) ethereumjs-util: 7.1.5 minimatch: 9.0.5 minimist: 1.2.8 @@ -16503,6 +16484,14 @@ snapshots: hardhat: 2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) typechain: 8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3) + '@typechain/hardhat@9.1.0(@typechain/ethers-v6@0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3))(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))': + dependencies: + '@typechain/ethers-v6': 0.5.1(ethers@6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3))(typescript@5.8.3) + ethers: 6.13.7(bufferutil@4.0.9)(utf-8-validate@5.0.10) + fs-extra: 9.1.0 + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + typechain: 8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3) + '@types/abstract-leveldown@7.2.5': {} '@types/babel__core@7.20.5': @@ -16582,11 +16571,6 @@ snapshots: '@types/http-cache-semantics@4.0.4': {} - '@types/inquirer@8.2.11': - dependencies: - '@types/through': 0.0.33 - rxjs: 7.8.2 - '@types/istanbul-lib-coverage@2.0.6': {} '@types/istanbul-lib-report@3.0.3': @@ -16620,8 +16604,6 @@ snapshots: '@types/level-errors': 3.0.2 '@types/node': 20.19.0 - '@types/lodash@4.17.17': {} - '@types/lru-cache@5.1.1': {} '@types/mdast@3.0.15': @@ -16693,10 +16675,6 @@ snapshots: '@types/stack-utils@2.0.3': {} - '@types/through@0.0.33': - dependencies: - '@types/node': 20.19.0 - '@types/triple-beam@1.3.5': {} '@types/underscore@1.13.0': {} @@ -16743,7 +16721,7 @@ snapshots: '@typescript-eslint/types': 8.33.1 '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.33.1 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: @@ -16753,7 +16731,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) '@typescript-eslint/types': 8.33.1 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -16771,7 +16749,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) eslint: 9.28.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 @@ -16786,11 +16764,11 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) '@typescript-eslint/types': 8.33.1 '@typescript-eslint/visitor-keys': 8.33.1 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 + semver: 7.7.2 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -16983,7 +16961,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -18960,21 +18938,17 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0(supports-color@8.1.1): - dependencies: - ms: 2.1.3 - optionalDependencies: - supports-color: 8.1.1 - debug@4.4.0(supports-color@9.4.0): dependencies: ms: 2.1.3 optionalDependencies: supports-color: 9.4.0 - debug@4.4.1: + debug@4.4.1(supports-color@8.1.1): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 decamelize-keys@1.1.1: dependencies: @@ -19516,7 +19490,7 @@ snapshots: '@es-joy/jsdoccomment': 0.50.2 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint: 9.28.0(jiti@2.4.2) espree: 10.3.0 @@ -19621,7 +19595,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 @@ -20678,6 +20652,10 @@ snapshots: optionalDependencies: debug: 4.4.0(supports-color@9.4.0) + follow-redirects@1.15.9(debug@4.4.1): + optionalDependencies: + debug: 4.4.1(supports-color@8.1.1) + for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -21326,6 +21304,18 @@ snapshots: - debug - utf-8-validate + hardhat-gas-reporter@1.0.10(bufferutil@4.0.9)(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + dependencies: + array-uniq: 1.0.3 + eth-gas-reporter: 0.2.27(bufferutil@4.0.9)(utf-8-validate@5.0.10) + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + sha1: 1.1.1 + transitivePeerDependencies: + - '@codechecks/client' + - bufferutil + - debug + - utf-8-validate + hardhat-secure-accounts@0.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)))(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): dependencies: '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.8.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)) @@ -21535,7 +21525,7 @@ snapshots: boxen: 5.1.2 chokidar: 4.0.3 ci-info: 2.0.0 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) enquirer: 2.4.1 env-paths: 2.2.1 ethereum-cryptography: 1.2.0 @@ -21555,7 +21545,7 @@ snapshots: raw-body: 2.5.2 resolve: 1.17.0 semver: 6.3.1 - solc: 0.8.26(debug@4.4.0) + solc: 0.8.26(debug@4.4.1) source-map-support: 0.5.21 stacktrace-parser: 0.1.11 tinyglobby: 0.2.13 @@ -21571,6 +21561,57 @@ snapshots: - supports-color - utf-8-validate + hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10): + dependencies: + '@ethereumjs/util': 9.1.0 + '@ethersproject/abi': 5.8.0 + '@nomicfoundation/edr': 0.11.0 + '@nomicfoundation/solidity-analyzer': 0.1.2 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.6 + '@types/lru-cache': 5.1.1 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + boxen: 5.1.2 + chokidar: 4.0.3 + ci-info: 2.0.0 + debug: 4.4.1(supports-color@8.1.1) + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + find-up: 5.0.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + immutable: 4.3.7 + io-ts: 1.10.4 + json-stream-stringify: 3.1.6 + keccak: 3.0.4 + lodash: 4.17.21 + micro-eth-signer: 0.14.0 + mnemonist: 0.38.5 + mocha: 10.8.2 + p-map: 4.0.0 + picocolors: 1.1.1 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.8.26(debug@4.4.1) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + tinyglobby: 0.2.13 + tsort: 0.0.1 + undici: 5.29.0 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + ts-node: 10.9.2(@types/node@22.7.5)(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + has-ansi@2.0.0: dependencies: ansi-regex: 2.1.1 @@ -21750,14 +21791,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -22690,7 +22731,7 @@ snapshots: dependencies: chalk: 5.4.1 commander: 14.0.0 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) lilconfig: 3.1.3 listr2: 8.3.3 micromatch: 4.0.8 @@ -23116,7 +23157,7 @@ snapshots: metro-file-map@0.82.2: dependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) fb-watchman: 2.0.2 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -23212,7 +23253,7 @@ snapshots: chalk: 4.1.2 ci-info: 2.0.0 connect: 3.7.0 - debug: 4.4.1 + debug: 4.4.1(supports-color@8.1.1) error-stack-parser: 2.1.4 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -23418,7 +23459,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -23590,7 +23631,7 @@ snapshots: ansi-colors: 4.1.3 browser-stdout: 1.3.1 chokidar: 3.6.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.1(supports-color@8.1.1) diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 @@ -24125,7 +24166,7 @@ snapshots: got: 12.6.1 registry-auth-token: 5.1.0 registry-url: 6.0.1 - semver: 7.7.1 + semver: 7.7.2 package-manager-detector@0.2.11: dependencies: @@ -24498,7 +24539,7 @@ snapshots: '@nomicfoundation/slang': 1.1.0 '@solidity-parser/parser': 0.20.1 prettier: 3.5.3 - semver: 7.7.1 + semver: 7.7.2 prettier@3.5.3: {} @@ -25313,7 +25354,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 '@types/validator': 13.15.0 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) dottie: 2.0.6 inflection: 1.13.4 lodash: 4.17.21 @@ -25321,7 +25362,7 @@ snapshots: moment-timezone: 0.5.48 pg-connection-string: 2.8.5 retry-as-promised: 7.1.1 - semver: 7.7.1 + semver: 7.7.2 sequelize-pool: 7.1.0 toposort-class: 1.0.1 uuid: 8.3.2 @@ -25573,7 +25614,7 @@ snapshots: findup-sync: 5.0.0 fs-extra: 11.3.0 jsel: 1.1.6 - semver: 7.7.1 + semver: 7.7.2 solc: 0.8.25 src-location: 1.1.0 web3-eth-abi: 4.4.1(typescript@5.8.3)(zod@3.24.4) @@ -25637,6 +25678,18 @@ snapshots: transitivePeerDependencies: - debug + solc@0.8.26(debug@4.4.1): + dependencies: + command-exists: 1.2.9 + commander: 8.3.0 + follow-redirects: 1.15.9(debug@4.4.1) + js-sha3: 0.8.0 + memorystream: 0.3.1 + semver: 5.7.2 + tmp: 0.0.33 + transitivePeerDependencies: + - debug + solhint@5.1.0(typescript@5.8.3): dependencies: '@solidity-parser/parser': 0.20.1 @@ -25710,6 +25763,29 @@ snapshots: shelljs: 0.8.5 web3-utils: 1.10.4 + solidity-coverage@0.8.16(hardhat@2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): + dependencies: + '@ethersproject/abi': 5.8.0 + '@solidity-parser/parser': 0.20.1 + chalk: 2.4.2 + death: 1.1.0 + difflib: 0.2.4 + fs-extra: 8.1.0 + ghost-testrpc: 0.0.2 + global-modules: 2.0.0 + globby: 10.0.2 + hardhat: 2.24.2(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10) + jsonschema: 1.5.0 + lodash: 4.17.21 + mocha: 10.8.2 + node-emoji: 1.11.0 + pify: 4.0.1 + recursive-readdir: 2.2.3 + sc-istanbul: 0.4.6 + semver: 7.7.1 + shelljs: 0.8.5 + web3-utils: 1.10.4 + solidity-docgen@0.6.0-beta.36(hardhat@2.23.0(bufferutil@4.0.9)(ts-node@10.9.2(@types/node@20.19.0)(typescript@5.8.3))(typescript@5.8.3)(utf-8-validate@5.0.10)): dependencies: handlebars: 4.7.8 @@ -26326,7 +26402,6 @@ snapshots: typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - optional: true ts-node@8.10.2(typescript@5.8.3): dependencies: @@ -26408,7 +26483,7 @@ snapshots: typechain@3.0.0(typescript@5.8.3): dependencies: command-line-args: 4.0.7 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) fs-extra: 7.0.1 js-sha3: 0.8.0 lodash: 4.17.21 @@ -26421,7 +26496,7 @@ snapshots: typechain@8.3.2(patch_hash=zy6bsbkpcar7tt6jjbnwpaczsm)(typescript@5.8.3): dependencies: '@types/prettier': 2.7.3 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@8.1.1) fs-extra: 7.0.1 glob: 7.1.7 js-sha3: 0.8.0 diff --git a/remappings.txt b/remappings.txt index 52a63ec26..349436e0c 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,2 +1,2 @@ -@graphprotocol/common/=packages/common/ +@graphprotocol/interfaces/=packages/interfaces/ @openzeppelin/=node_modules/@openzeppelin/ diff --git a/scripts/build b/scripts/build deleted file mode 100755 index 9157191cd..000000000 --- a/scripts/build +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -BUILD_HORIZON_ONLY=${BUILD_HORIZON_ONLY:-false} - -# List packages to build - order matters! -horizon_packages=( - "packages/contracts" - "packages/horizon" - "packages/subgraph-service" -) - -all_packages=( - # "packages/solhint-graph-config" -- disabled since it doesn't have a build script - # "packages/solhint-plugin-graph" -- disabled since it doesn't have a build script - "packages/contracts" - "packages/horizon" - "packages/subgraph-service" - "packages/toolshed" - "packages/hardhat-graph-protocol" - "packages/data-edge" - "packages/token-distribution" -) - -if [ "$BUILD_HORIZON_ONLY" = "true" ]; then - packages=("${horizon_packages[@]}") -else - packages=("${all_packages[@]}") -fi - -for package in "${packages[@]}"; do - echo -e "\n\n==== Building $package..." - - cd "$package" || { echo "Failed to navigate to $package"; exit 1; } - - if BUILD_RUN=true pnpm build; then - echo "Successfully built $package" - else - echo "Build failed for $package" >&2 - exit 1 - fi - - cd - > /dev/null -done - -echo "All packages built successfully!"