diff --git a/.env.example b/.env.example deleted file mode 100644 index 24478c2..0000000 --- a/.env.example +++ /dev/null @@ -1,25 +0,0 @@ -# Logs -LOG_PATH='./logs/' -LOG_LEVEL='' - -# Provider (disables multi-provider if set) -# If not set, uses the accounts set defined in the deployment config -DATA_PROVIDER_VOTING_KEY='' - -# Deployer -DEPLOYER_PRIVATE_KEY='' - -# Governance -GOVERNANCE_SETTINGS_DEPLOYER_PRIVATE_KEY='' -TENDERLY='' -GENESIS_GOVERNANCE_PRIVATE_KEY='' -GOVERNANCE_PRIVATE_KEY='' - -# Possible options: 'local-test', 'docker', 'coston2', 'from-env' -# If using docker, this should be commented out as it will be set automatically -# NETWORK='' - -# If 'from-env' is selected above, the following variables should be set -# CONFIG_PATH='./deployment/config/config-local.json' -# ACCOUNTS_PATH='./deployment/config/test-11-accounts.json' -# CONTRACTS_PATH='./deployment/config/deployed-contracts.json' diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 3f8601a..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,74 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - project: 'tsconfig.json', - }, - plugins: ['@typescript-eslint', 'import'], - extends: ['plugin:@typescript-eslint/strict-type-checked', 'prettier'], - root: true, - env: { - node: true, - }, - ignorePatterns: [ - '.eslintrc.js', - 'nyc.config.js', - 'coverage', - 'artifacts', - 'visualizer', - ], - rules: { - '@typescript-eslint/restrict-template-expressions': [ - 'error', - { - allowNumber: true, - allowBoolean: true, - }, - ], - '@typescript-eslint/explicit-function-return-type': 'warn', - '@typescript-eslint/explicit-module-boundary-types': 'warn', - '@typescript-eslint/no-explicit-any': 'warn', - '@typescript-eslint/no-unused-vars': 'warn', - '@typescript-eslint/consistent-type-imports': 'warn', - '@typescript-eslint/no-extraneous-class': 'warn', - '@typescript-eslint/require-await': 'warn', - '@typescript-eslint/no-floating-promises': 'warn', - '@typescript-eslint/no-unsafe-member-access': 'warn', - 'import/order': [ - 'error', - { - groups: ['builtin', 'external', 'parent', 'sibling', 'index'], - pathGroups: [ - { - pattern: '@custom-lib/**', - group: 'external', - position: 'after', - }, - ], - pathGroupsExcludedImportTypes: ['builtin'], - alphabetize: { - order: 'asc', - }, - 'newlines-between': 'always', - }, - ], - 'sort-imports': [ - 'error', - { - allowSeparatedGroups: true, - ignoreDeclarationSort: true, - }, - ], - 'no-multiple-empty-lines': [ - 'error', - { - max: 1, - maxEOF: 0, - maxBOF: 0, - }, - ], - 'import/first': 'error', - 'import/newline-after-import': 'error', - }, -} diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml new file mode 100644 index 0000000..a23467c --- /dev/null +++ b/.github/workflows/build-docker.yml @@ -0,0 +1,47 @@ +name: container-images + +on: + push: + branches: [ "main" ] + tags: [ "v*" ] + +jobs: + build-container-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: docker/setup-qemu-action@v3 + - uses: docker/setup-buildx-action@v3 + + - run: echo "IMAGE_TAG=latest" >> $GITHUB_ENV + if: github.ref_name == 'main' + - run: echo "IMAGE_TAG=${GITHUB_REF##*/}" >> $GITHUB_ENV + if: startsWith(github.ref, 'refs/tags/v') + + - name: Login to ghcr.io + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: set lower case repository + run: | + echo "REPOSITORY_LC=${REPOSITORY,,}" >>${GITHUB_ENV} + env: + REPOSITORY: '${{ github.repository }}' + + - name: Build and push default image + uses: docker/build-push-action@v5 + with: + context: go-client # Because GH actions are for kids and put protection on everything; https://stackoverflow.com/a/71159809/11276254 + file: go-client/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/${{ env.REPOSITORY_LC }}/go-client:${{ env.IMAGE_TAG }} diff --git a/.gitignore b/.gitignore index 613e3be..ddd220e 100644 --- a/.gitignore +++ b/.gitignore @@ -90,11 +90,5 @@ artifacts nul # other files -deployment/config/deployed-contracts/deployed-contracts.json - - -nul - -# other files -deployment/config/deployed-contracts/deployed-contracts.json - +go-client/sig.out +go-client/keys.out diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5fbdf97..037a479 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,34 +1,69 @@ workflow: - rules: - - if: '$CI_OPEN_MERGE_REQUESTS != null && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "webide")' - when: never - - when: always + rules: + - if: '$CI_OPEN_MERGE_REQUESTS != null && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "webide")' + when: never + - when: always -.test: - stage: test - image: node:18 - cache: - - key: - files: - - yarn.lock - paths: - - node_modules/ - policy: pull - before_script: - - yarn install --immutable - - yarn compile +# lint-ts-simulation: +# image: node:18 +# before_script: +# - cd ts-simulation +# script: +# - yarn install --immutable +# - yarn lint -lint: - extends: .test - script: - - yarn lint +# test-ts-simulation: +# extends: .lint-ts-simulation +# before_script: +# - cd ts-simulation +# script: +# - yarn install --immutable +# - yarn test -test: - extends: .test - script: - - yarn test +lint-py-visualizer: + image: python:3.12 + before_script: + - curl -sSL https://install.python-poetry.org | python3 - + - export PATH="/root/.local/bin:$PATH" + - cd py-visualizer + script: + - poetry install --no-root + - poetry run ruff check --fix -test-coverage: - extends: .test - script: - - yarn test-coverage +lint-go-client: + image: golang:1.21.0 + before_script: + - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.57.2 + - cd go-client + script: + - go vet ./... + - go fmt ./... + - go mod tidy + - go mod verify + - golangci-lint run + +test-go-client: + image: golang:1.21.0 + before_script: + - cd go-client + script: + - go test -v provider/random_provider_test.go + - go test -v provider/feed_provider_test.go + - go test -v sortition/sortition_test.go + +test-go-client-docker: + image: docker + services: + - docker:dind + variables: + DOCKER_HOST: tcp://docker:2375 + DOCKER_TLS_CERTDIR: "" + DOCKER_DRIVER: overlay2 + before_script: + - cd go-client/tests + script: + - docker compose up ganache --detach + - VALUE_PROVIDER_IMPL=random docker compose up value-provider --detach + - docker compose up test-client --exit-code-from test-client + - docker compose stop ganache + - docker compose stop value-provider diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..fa04d04 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "flare-smart-contracts-v2"] + path = flare-smart-contracts-v2 + url = git@gitlab.com:flarenetwork/flare-smart-contracts-v2.git + branch = fast_updates diff --git a/.yarnrc.yml b/.yarnrc.yml deleted file mode 100644 index 3186f3f..0000000 --- a/.yarnrc.yml +++ /dev/null @@ -1 +0,0 @@ -nodeLinker: node-modules diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 770b562..0000000 --- a/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM node:20 -WORKDIR /fast-updates -COPY . . -RUN corepack enable -RUN yarn install --immutable -RUN yarn compile -ENV NETWORK="docker" -ENTRYPOINT [] diff --git a/README.md b/README.md index f252cb7..2506c26 100644 --- a/README.md +++ b/README.md @@ -1,103 +1,21 @@ # FTSO Fast Updates -This repo contains MVP of an implementation of the new Fast Updates proposal. +This repo contains all the client side code associated with the new FTSO Fast Updates protocol. The Fast Updates smart contracts are pulled in from [flarenetwork/flare-smart-contracts-v2](https://gitlab.com/flarenetwork/flare-smart-contracts-v2). -## Setup +## go-client -### Node.JS +The go-client is a FTSO Fast Updates client implementation in Golang. It is responsible for generating the sortition proof and submitting the updates to the Flare blockchain. -Install [NVM](https://github.com/nvm-sh/nvm), and Node v18 (LTS): +The full README can be found at [go-client/README.md](./go-client/README.md) -```bash -nvm install 18 -``` +## py-visualizer -### Yarn +The py-visualizer is a FTSO Fast Updates Visualizer implemented in Python. It is used to provide a real-time visualization of the time-series feeds generated by the Fast Updates client. -Install dependencies with `yarn`: +The full README can be found at [py-visualizer/README.md](./py-visualizer/README.md) -```bash -corepack enable -yarn install -``` +## ts-simulation -### Project +The ts-simulation is a FTSO Fast Updates Simulation implemented in TypeScript. It is used to optimize and test new contract parameters. It can be used alongside py-visualizer to visualize the Fast Updates protocol in action. -To compile smart contracts: - -```bash -yarn compile -``` - -To format with prettier: - -```bash -yarn format -``` - -To lint with eslint: - -```bash -yarn lint -``` - -## Docker - -To build a docker image, run: - -```bash -docker build -t fast-updates . -``` - -To test the protocol using docker, navigate to the `test` directory and run docker compose: - -```bash -cd test -docker compose up -``` - -## Simulating locally - -Start the chain: - -```bash -yarn hardhat node -``` - -Deploy the contracts and run the admin daemon: - -```bash -yarn hardhat deploy-contracts --network localhost && yarn hardhat run-admin-daemon --network localhost -``` - -Run the fast updates providers: - -```bash -yarn ts-node client/run-fast-updates-provider.ts $ID --network localhost -``` - -where `$ID` is the ID of the provider (1, 2, ...) - -## Visualizer - -Uses `dash` and `plotly` to render a live graph of the price feed in the browser, along with monitoring error rates of individual providers. Follow the instructions in `visualizer/README.md` to install and run the visualizer. - -## Simulating with Docker - -A simulation of the protocol using docker is available. It includes deploying and setting a chain node, -deploying contracts, running a daemon, and running multiple fast updates providers. Navigate to -`deployment/simulation` (assuming that the docker image `fast-updates` was build, as explained above) -and run docker compose: - -```bash -cd deployment -docker compose up -``` - -## Notes - -Strict type checked (in addition to strict mode) is enforced throughout the project (see `tsconfig.json` and `.eslintrc.js`). - -For testing purposes (under `test/`), `typechain-truffle` is used to generate typechain artifacts from the contracts. The contracts are locally instantiated and used in the tests. - -For deployment purposes (under `deployment/`), `typechain-web3-v1` is used to interact with the contracts. +The full README can be found at [ts-simulation/README.md](./ts-simulation/README.md) diff --git a/contracts/fastUpdates/implementation/FastUpdateIncentiveManager.sol b/contracts/fastUpdates/implementation/FastUpdateIncentiveManager.sol deleted file mode 100644 index 2b24685..0000000 --- a/contracts/fastUpdates/implementation/FastUpdateIncentiveManager.sol +++ /dev/null @@ -1,90 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import {IncreaseManager} from "./abstract/IncreaseManager.sol"; -import "../lib/FixedPointArithmetic.sol" as FPA; -import {IIFastUpdateIncentiveManager} from "../interface/IIFastUpdateIncentiveManager.sol"; - -contract FastUpdateIncentiveManager is IIFastUpdateIncentiveManager, IncreaseManager { - constructor( - address _governance, - address payable _rp, - FPA.SampleSize _bss, - FPA.Range _br, - FPA.SampleSize _sil, - FPA.Fee _rip, - uint _dur - ) IIFastUpdateIncentiveManager(_governance, _rp, _bss, _br, _sil, _rip) IncreaseManager(_dur) { - sampleSize = baseSampleSize; - range = baseRange; - excessOfferValue = FPA.Fee.wrap(1); // Arbitrary initial value, but must not be 0 - } - - function getExpectedSampleSize() external view returns (FPA.SampleSize) { - return sampleSize; - } - - function getRange() external view returns (FPA.Range) { - return range; - } - - function getPrecision() external view returns (FPA.Precision) { - return computePrecision(); - } - - function computePrecision() private view returns (FPA.Precision) { - return FPA.div(range, sampleSize); // todo: if range is bigger than sample size, this is problematic - } - - function getScale() public view returns (FPA.Scale) { - return FPA.scaleWithPrecision(computePrecision()); - } - - // This is expected to be called once per block by the Flare daemon - function advance() external override onlyGovernance { - IncreaseManager.step(); - } - - function offerIncentive(IncentiveOffer calldata offer) external payable { - (FPA.Fee dc, FPA.Range dr) = processIncentiveOffer(offer); - FPA.SampleSize de = sampleSizeIncrease(dc, dr); - - IncreaseManager.increaseSampleSize(de); - IncreaseManager.increaseRange(dr); - - rewardPool.transfer(FPA.Fee.unwrap(dc)); - emit IncentiveOffered(dr, de, dc); - payable(msg.sender).transfer(msg.value - FPA.Fee.unwrap(dc)); - } - - function processIncentiveOffer( - IncentiveOffer calldata offer - ) private returns (FPA.Fee contribution, FPA.Range rangeIncrease) { - require(msg.value >> 120 == 0, "Incentive offer value capped at 120 bits"); - contribution = FPA.Fee.wrap(msg.value); - rangeIncrease = offer.rangeIncrease; - - FPA.Range finalRange = FPA.add(range, rangeIncrease); - if (FPA.lessThan(offer.rangeLimit, finalRange)) { - finalRange = offer.rangeLimit; - FPA.Range newRangeIncrease = FPA.lessThan(finalRange, range) ? FPA.zeroR : FPA.sub(finalRange, range); - contribution = FPA.mul(FPA.frac(newRangeIncrease, rangeIncrease), contribution); - rangeIncrease = newRangeIncrease; - } - require(FPA.lessThan(finalRange, sampleSize), "Offer would make the precision greater than 100%"); - } - - function setIncentiveDuration(uint _duration) external override onlyGovernance { - _setIncentiveDuration(_duration); - } - - function sampleSizeIncrease(FPA.Fee dc, FPA.Range dr) private returns (FPA.SampleSize de) { - FPA.Fee rangeCost = FPA.mul(rangeIncreasePrice, dr); - require(!FPA.lessThan(dc, rangeCost), "Insufficient contribution to pay for range increase"); - FPA.Fee dx = FPA.sub(dc, rangeCost); - - IncreaseManager.increaseExcessOfferValue(dx); - - de = FPA.mul(FPA.frac(dx, excessOfferValue), sampleIncreaseLimit); - } -} diff --git a/contracts/fastUpdates/implementation/FastUpdater.sol b/contracts/fastUpdates/implementation/FastUpdater.sol deleted file mode 100644 index fc9e82d..0000000 --- a/contracts/fastUpdates/implementation/FastUpdater.sol +++ /dev/null @@ -1,444 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; -pragma abicoder v2; - -import {FastUpdateIncentiveManager} from "./FastUpdateIncentiveManager.sol"; -import {SortitionState, SortitionCredential, verifySortitionCredential} from "../lib/Sortition.sol"; -import {IIFastUpdater} from "../interface/IIFastUpdater.sol"; -import {IIFastUpdateIncentiveManager} from "../interface/IIFastUpdateIncentiveManager.sol"; -import {CircularListManager} from "./abstract/CircularListManager.sol"; -import "../interface/mocks/FlareSystemManager.sol"; -import "../interface/mocks/VoterRegistry.sol"; -import "../lib/FixedPointArithmetic.sol" as FPA; -import "../lib/Bn256.sol"; -import {recoverSigner} from "../lib/Signature.sol"; -import {Signature} from "../lib/Signature.sol"; - - -// The number of units of weight distributed among providers is 1 << VIRTUAL_PROVIDER_BITS -uint constant VIRTUAL_PROVIDER_BITS = 12; -// value 128 bellow can be replaced with x such that x >= numBits(FPA.SampleSize) + VIRTUAL_PROVIDER_BITS -// and x <= 256 - numBits(FPA.SampleSize) -uint constant UINT_SPLIT = 128; -uint constant SMALL_P = Bn256.p & (2 ** (UINT_SPLIT) - 1); -uint constant BIG_P = Bn256.p >> UINT_SPLIT; - -struct SubmittedHashes { - bytes32[] hashes; -} - -contract FastUpdater is IIFastUpdater, CircularListManager { - bytes32[] private prices; - uint submissionWindow; - - SubmittedHashes[] internal submitted; - bytes[] internal submittedDeltas; - uint currentDelta; - uint backlogDelta; - - constructor( - address _governance, - VoterRegistry _voterRegistry, - FlareSystemManager _flareSystemManager, - IIFastUpdateIncentiveManager _fastUpdateIncentiveManager, - FPA.Price[] memory _prices, - uint _submissionWindow, - uint _deltasBacklog - ) - IIFastUpdater(_governance, _voterRegistry, _flareSystemManager, _fastUpdateIncentiveManager) - CircularListManager(_submissionWindow + 1) - { - _setPrices(_prices); - - _setSubmissionWindow(_submissionWindow); - _initSubmitted(); - - for (uint slot = 0; slot < _deltasBacklog; ++slot) { - submittedDeltas.push(); - } - } - - function setSubmissionWindow(uint _submissionWindow) external override onlyGovernance { - _setSubmissionWindow(_submissionWindow); - } - - function _setSubmissionWindow(uint _submissionWindow) private { - submissionWindow = _submissionWindow; - } - - function setPrices(FPA.Price[] memory _prices) external override onlyGovernance { - _setPrices(_prices); - } - - function _setPrices(FPA.Price[] memory _prices) private { - prices = new bytes32[](((_prices.length - 1) / 8) + 1); - - uint feed; - for (uint slot = 0; slot < prices.length; ++slot) { - bytes32 newSlot; - for (uint entry = 0; entry < 8; ++entry) { - newSlot <<= 32; - if (feed < _prices.length) { - FPA.check(_prices[feed]); - newSlot |= bytes32(uint(FPA.Price.unwrap(_prices[feed]))); - } - ++feed; - } - prices[slot] = newSlot; - if (feed >= _prices.length) { - break; - } - } - } - - function _initSubmitted() private { - for (uint i = 0; i < circularLength; ++i) { - submitted.push(); - } - } - - function freeSubmitted() external override onlyGovernance { - delete submitted[nextIx()]; - } - - function getSubmitted(uint blockNum) private view returns (SubmittedHashes storage submittedI) { - string memory failMsg = "Sortition round for the given block is no longer or not yet available"; - uint ix = blockIx(blockNum, failMsg); - submittedI = submitted[ix]; - } - - function _providerData(address voter) private view returns (Bn256.G1Point memory key, uint weight) { - uint epochId = flareSystemManager.getCurrentRewardEpochId(); - (bytes32 pk_1, bytes32 pk_2, uint16 normalizedWeight) = voterRegistry.getPublicKeyAndNormalisedWeight( - epochId, - voter - ); - key = Bn256.G1Point(uint(pk_1), uint(pk_2)); - weight = (uint(normalizedWeight) << VIRTUAL_PROVIDER_BITS) >> 16; - } - - function currentSortitionWeight(address voter) external view returns (uint weight) { - (, weight) = _providerData(voter); - } - - function currentScoreCutoff() public view returns (uint cutoff) { - FPA.SampleSize expectedSampleSize = fastUpdateIncentiveManager.getExpectedSampleSize(); - // The formula is: (exp. s.size)/(num. prov.) = (score)/(score range) - // score range = p = 21888242871839275222246405745257275088696311157297823662689037894645226208583 - // num. providers = 2**VIRTUAL_PROVIDER_BITS - // exp. sample size = "expectedSampleSize8x8 >> 8", in that we keep the fractional bits: - cutoff = (BIG_P * uint(FPA.SampleSize.unwrap(expectedSampleSize))) << (UINT_SPLIT - 8 - VIRTUAL_PROVIDER_BITS); - cutoff += (SMALL_P * uint(FPA.SampleSize.unwrap(expectedSampleSize))) >> (8 + VIRTUAL_PROVIDER_BITS); - } - - function submitUpdates(FastUpdates calldata updates) external { - require( - block.number < updates.sortitionBlock + submissionWindow, - "Updates no longer accepted for the given block" - ); - require(block.number >= updates.sortitionBlock, "Updates not yet available for the given block"); - require((updates.deltas.length * 4) <= prices.length * 8, "More updates than available prices"); - - bytes32 msgHashed = sha256(abi.encode(updates.sortitionBlock, updates.sortitionCredential, updates.deltas)); - // console.log(uint(msgHashed)); - address sender = recoverSigner(msgHashed, updates.signature); - - (Bn256.G1Point memory key, uint weight) = _providerData(sender); - SortitionState memory sortitionState = SortitionState({ - baseSeed: flareSystemManager.getCurrentRandom(), - blockNumber: updates.sortitionBlock, - scoreCutoff: currentScoreCutoff(), - weight: weight, - pubKey: key - }); - - SubmittedHashes storage submittedI = getSubmitted(updates.sortitionBlock); - bytes32 hashedRandomness = sha256(abi.encode(key, updates.sortitionBlock, updates.sortitionCredential.replicate)); - - for (uint j = 0; j < submittedI.hashes.length; j++) { - if (submittedI.hashes[j] == hashedRandomness) { - revert("submission already provided"); - } - } - submittedI.hashes.push(hashedRandomness); - - (bool check, ) = verifySortitionCredential(sortitionState, updates.sortitionCredential); - require(check, "sortition proof invalid"); - - submitDeltas(updates.deltas); - - emit FastUpdate(msg.sender); - } - - function submitDeltas(bytes calldata deltas) internal { - submittedDeltas[currentDelta] = deltas; - currentDelta = (currentDelta + 1) % submittedDeltas.length; - } - - - function applySubmitted() external onlyGovernance { - FPA.Scale scale = fastUpdateIncentiveManager.getScale(); - assembly { - let arg := mload(0x40) - let slot := add(arg, 0x20) - let loacationDeltas := add(arg, 0x40) - let loacationPrices := add(arg, 0x60) - mstore(add(arg, 0x80), sload(submittedDeltas.slot)) // add(arg, 0x80) not saved in a variable to avoid the stack too long error - mstore(add(arg, 0xa0), sload(currentDelta.slot)) // add(arg, 0xa0) not saved in a variable to avoid the stack too long error - let deltaReduced - let price - let priceReduced - let newPrice - let delta - let deltasLen - - mstore(loacationPrices, prices.slot) - mstore(loacationPrices, keccak256(loacationPrices, 32)) - mstore(slot, submittedDeltas.slot) - - // iterate over updates in the backlog - for { let i := sload(backlogDelta.slot) } iszero(eq(i, mload(add(arg, 0xa0)))) { i := mod(add(i, 1), mload(add(arg, 0x80)))} { - // get location of the i-th update in the updates backlog - mstore(loacationDeltas, add(keccak256(slot, 32), i)) - deltasLen := sload(mload(loacationDeltas)) - - // data is stored differnetly if there is more or less than 31 bytes - // more than 31 bytes - if eq(mod(deltasLen, 2), 1) { - mstore(loacationDeltas, keccak256(loacationDeltas, 32)) - deltasLen := div(deltasLen, 2) - for { let j := 0 } lt(j, add(div(sub(deltasLen, 1), 32), 1)) { j := add(j, 1) } { - // load from storage a bytes32 element containing 128 deltas - delta := sload(add(mload(loacationDeltas), j)) - - // the delta consists of 128 updates saved in 256 bits - for { let k := 0 } lt(k, 256) {} { - if iszero(lt(add(mul(j, 32), div(k, 8)), deltasLen)) { - break - } - // load from storage the value that covers 8 prices - price := sload(add(mload(loacationPrices), add(mul(j, 16), div(k, 16)))) - - // use 8 updates to change 8 prices - newPrice := 0 - for { let l := 0 } lt(l, 8) {l := add(l, 1) } { - priceReduced := shl(mul(l, 32), price) - priceReduced := shr(224, priceReduced) - - if lt(add(mul(j, 32), div(k, 8)), deltasLen) { - deltaReduced := shl(k, delta) - deltaReduced := shr(254, deltaReduced) - - if eq(deltaReduced, 1) { - // mul - priceReduced := mul(priceReduced, scale) - priceReduced := shr(127, priceReduced) - } - if eq(deltaReduced, 3) { - // div - priceReduced := shl(127, priceReduced) - priceReduced := div(priceReduced, scale) - } - } - priceReduced := shl(sub(224, mul(l, 32)), priceReduced) - newPrice := or(newPrice, priceReduced) - - k:= add(k, 2) - } - - // store a new value covering 8 prices - sstore(add(mload(loacationPrices), add(mul(j, 16), div(sub(k, 16), 16))), newPrice) - } - } - deltasLen := 1 // to avoid executing the other if case - } - - // less than 32 bytes - if eq(mod(deltasLen, 2), 0) { - delta := deltasLen - deltasLen := div(mod(deltasLen, 64), 2) - - // the delta consists of 128 updates saved in 256 bits - for { let k := 0 } lt(k, 256) {} { - if iszero(lt(div(k, 8), deltasLen)) { - break - } - // load from storage the value that covers 8 prices - price := sload(add(mload(loacationPrices), div(k, 16))) - - // use 8 updates to change 8 prices - newPrice := 0 - for { let l := 0 } lt(l, 8) {l := add(l, 1) } { - priceReduced := shl(mul(l, 32), price) - priceReduced := shr(224, priceReduced) - if lt(div(k, 8), deltasLen) { - deltaReduced := shl(k, delta) - deltaReduced := shr(254, deltaReduced) - if eq(deltaReduced, 1) { - // mul - priceReduced := mul(priceReduced, scale) - priceReduced := shr(127, priceReduced) - } - if eq(deltaReduced, 3) { - // div - priceReduced := shl(127, priceReduced) - priceReduced := div(priceReduced, scale) - } - } - priceReduced := shl(sub(224, mul(l, 32)), priceReduced) - newPrice := or(newPrice, priceReduced) - - k:= add(k, 2) - } - - // store a new value covering 8 prices - sstore(add(mload(loacationPrices), div(sub(k, 16), 16)), newPrice) - } - } - } - // change backlogDelta variable to equal currentDelta - sstore(backlogDelta.slot, mload(add(arg, 0xa0))) - } - } - - // feeds should be sorted for better performance - function fetchCurrentPrices(uint[] calldata feeds) external view returns (uint256[] memory _prices) { - _prices = new uint256[](feeds.length); - - FPA.Scale scale = fastUpdateIncentiveManager.getScale(); - - assembly { - let arg := mload(0x40) - // let arg2 := add(arg, 0x20) // not defined to lower the stack size - // let arg3 := add(arg, 0x40) // not defined to lower the stack size - // let locationDeltasBacklog := add(arg, 0x60) // not defined to lower the stack size - let loacationDeltas := add(arg, 0x80) - let loacationPrices := add(arg, 0xa0) - - let length - let delta - let price - let tmpVar - - length := mul(sload(prices.slot), 8) - mstore(loacationPrices, prices.slot) - mstore(loacationPrices, keccak256(loacationPrices, 32)) - mstore(add(arg, 0x60), submittedDeltas.slot) // location of deltas backlog, not defined in a variable to lower the stack size - mstore(add(arg, 0x60), keccak256(add(arg, 0x60), 32)) - mstore(add(arg, 0xc0), sload(submittedDeltas.slot)) // size of deltas backlog, not defined in a variable to lower the stack size - mstore(add(arg, 0xe0), sload(currentDelta.slot)) // current position in the backlog, not defined in a variable to lower the stack size - - calldatacopy(arg, feeds.offset, 0x20) - mstore(add(arg, 0x20), div(mload(arg), 8)) // slot - mstore(add(arg, 0x40), mod(mload(arg), 8)) // position - price := sload(add(mload(loacationPrices), mload(add(arg, 0x40)))) - - for { let j := 0 } lt(j, feeds.length) { j := add(j, 1) } { - calldatacopy(arg, add(feeds.offset, mul(j, 0x20)), 0x20) - if iszero(lt(mload(arg), length)) { - revert(0, 0) - } - - tmpVar := div(mload(arg), 8) // use tmpVar for temporary value of slot - mstore(add(arg, 0x40), mod(mload(arg), 8)) // position - if iszero(eq(tmpVar, mload(add(arg, 0x20)))) { - mstore(add(arg, 0x20), tmpVar) - price := sload(add(mload(loacationPrices), tmpVar)) - } - - tmpVar := shl(mul(mload(add(arg, 0x40)), 32), price) // use tmpVar for temporary value extracting price - mstore(add(add(_prices, 0x20), mul(j, 0x20)), shr(224, tmpVar)) - } - - // iterate over updates in the backlog - for { let i := sload(backlogDelta.slot) } iszero(eq(i, mload(add(arg, 0xe0)))) { i := mod(add(i, 1), mload(add(arg, 0xc0)))} { - // get location of the i-th update in the updates backlog - mstore(loacationDeltas, add(mload(add(arg, 0x60)), i)) - length := sload(mload(loacationDeltas)) - - // data is stored differnetly if there is more or less than 31 bytes - // more than 31 bytes - if eq(mod(length, 2), 1) { - mstore(loacationDeltas, keccak256(loacationDeltas, 32)) - length := div(length, 2) - // length := add(div(sub(length, 1), 32), 1) - // get indexes of the first feed - calldatacopy(arg, feeds.offset, 0x20) - mstore(add(arg, 0x20), div(mload(arg), 128)) // slot offset - - // get delta that has information about the first feed, if it exists - if lt(mload(arg), mul(length, 4)) { - delta := sload(add(mload(loacationDeltas), mload(add(arg, 0x20)))) - } - - for { let j := 0 } lt(j, feeds.length) { j := add(j, 1) } { - calldatacopy(arg, add(feeds.offset, mul(j, 0x20)), 0x20) - tmpVar := div(mload(arg), 128) // use tmpVar for temporary value of slot - - // if this update did not update the requested feed, skip it - if iszero(lt(mload(arg), mul(length, 4))) { - continue - } - - mstore(add(arg, 0x40), mod(mload(arg), 128)) // position - - if iszero(eq(tmpVar, mload(add(arg, 0x20)))) { - mstore(add(arg, 0x20), tmpVar) - delta := sload(add(mload(loacationDeltas), tmpVar)) - } - - tmpVar := shl(mul(mload(add(arg, 0x40)), 2), delta) // use tmpVar for temporary value extracting one delta - tmpVar := shr(254, tmpVar) - if eq(tmpVar, 1) { - // mul - price := mul(mload(add(add(_prices, 0x20), mul(j, 0x20))), scale) - mstore(add(add(_prices, 0x20), mul(j, 0x20)), shr(127, price)) - } - if eq(tmpVar, 3) { - // div - price := shl(127, mload(add(add(_prices, 0x20), mul(j, 0x20)))) - mstore(add(add(_prices, 0x20), mul(j, 0x20)), div(price, scale)) - } - } - length := 1 // to avoid executing the other if case - } - - // less than 32 bytes - if eq(mod(length, 2), 0) { - delta := length - length := div(mod(length, 64), 2) - - // get indexes of the first feed - calldatacopy(arg, feeds.offset, 0x20) - mstore(add(arg, 0x20), div(mload(arg), 128)) // slot offset - - for { let j := 0 } lt(j, feeds.length) { j := add(j, 1) } { - calldatacopy(arg, add(feeds.offset, mul(j, 0x20)), 0x20) - - // if this update did not update the requested feed, skip it - if iszero(lt(mload(arg), mul(length, 4))) { - continue - } - - mstore(add(arg, 0x40), mod(mload(arg), 128)) // position - - tmpVar := shl(mul(mload(add(arg, 0x40)), 2), delta) // use tmpVar for temporary value extracting one delta - tmpVar := shr(254, tmpVar) - if eq(tmpVar, 1) { - // mul - price := mul(mload(add(add(_prices, 0x20), mul(j, 0x20))), scale) - mstore(add(add(_prices, 0x20), mul(j, 0x20)), shr(127, price)) - } - if eq(tmpVar, 3) { - // div - price := shl(127, mload(add(add(_prices, 0x20), mul(j, 0x20)))) - mstore(add(add(_prices, 0x20), mul(j, 0x20)), div(price, scale)) - } - } - } - } - } - } -} - - diff --git a/contracts/fastUpdates/implementation/abstract/CircularListManager.sol b/contracts/fastUpdates/implementation/abstract/CircularListManager.sol deleted file mode 100644 index 9036433..0000000 --- a/contracts/fastUpdates/implementation/abstract/CircularListManager.sol +++ /dev/null @@ -1,41 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -abstract contract CircularListManager { - uint circularLength; - - constructor(uint _l) { - setCircularLength(_l); - } - - function setCircularLength(uint _l) internal { - circularLength = _l; - } - - function ix(uint i) internal view returns (uint) { - return (i + block.number) % circularLength; - } - - function blockIx(uint blockNum, string memory failMsg) internal view returns (uint) { - require(blockNum <= block.number && block.number < blockNum + circularLength, failMsg); - uint blocksAgo = block.number - blockNum; - return backIx(blocksAgo); - } - - function backIx(uint i) internal view returns (uint) { - assert(i < circularLength); - return ix(circularLength - i); - } - - function prevIx() internal view returns (uint) { - return backIx(1); - } - - function thisIx() internal view returns (uint) { - return ix(0); - } - - function nextIx() internal view returns (uint) { - return ix(1); - } -} \ No newline at end of file diff --git a/contracts/fastUpdates/implementation/abstract/IncreaseManager.sol b/contracts/fastUpdates/implementation/abstract/IncreaseManager.sol deleted file mode 100644 index f93f9d7..0000000 --- a/contracts/fastUpdates/implementation/abstract/IncreaseManager.sol +++ /dev/null @@ -1,69 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; -pragma abicoder v2; - -import {CircularListManager} from "./CircularListManager.sol"; -import {IIncreaseManager} from "../../interface/IIncreaseManager.sol"; -import "../../lib/FixedPointArithmetic.sol" as FPA; -import {Governed} from "../../interface/Governed.sol"; - -abstract contract IncreaseManager is IIncreaseManager, CircularListManager { - // Circular lists all - FPA.SampleSize[] private sampleIncreases; - FPA.Range[] private rangeIncreases; - FPA.Fee[] private excessOfferIncreases; - - FPA.SampleSize sampleSize; - FPA.Range range; - FPA.Fee excessOfferValue; - - constructor(uint _dur) CircularListManager(_dur) { - init(); - } - - function init() private { - delete sampleIncreases; - delete rangeIncreases; - delete excessOfferIncreases; - - for (uint i = 0; i < circularLength; ++i) { - sampleIncreases.push(); - rangeIncreases.push(); - excessOfferIncreases.push(); - } - } - - function step() internal { - // Bookkeeping for the cached values - excessOfferValue = FPA.sub(excessOfferValue, excessOfferIncreases[nextIx()]); - range = FPA.sub(range, rangeIncreases[nextIx()]); - sampleSize = FPA.sub(sampleSize, sampleIncreases[nextIx()]); - sampleIncreases[nextIx()] = FPA.zeroS; - rangeIncreases[nextIx()] = FPA.zeroR; - excessOfferIncreases[nextIx()] = FPA.zeroF; - } - - function increaseSampleSize(FPA.SampleSize de) internal { - sampleIncreases[thisIx()] = FPA.add(sampleIncreases[thisIx()], de); - sampleSize = FPA.add(sampleSize, de); - } - - function increaseRange(FPA.Range dr) internal { - rangeIncreases[thisIx()] = FPA.add(rangeIncreases[thisIx()], dr); - range = FPA.add(range, dr); - } - - function increaseExcessOfferValue(FPA.Fee dx) internal { - excessOfferIncreases[thisIx()] = FPA.add(excessOfferIncreases[thisIx()], dx); - excessOfferValue = FPA.add(excessOfferValue, dx); - } - - function getIncentiveDuration() external view returns (uint) { - return circularLength; - } - - function _setIncentiveDuration(uint _duration) internal { - setCircularLength(_duration); - init(); - } -} diff --git a/contracts/fastUpdates/interface/Governed.sol b/contracts/fastUpdates/interface/Governed.sol deleted file mode 100644 index 0023618..0000000 --- a/contracts/fastUpdates/interface/Governed.sol +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import { GovernedBase } from "./GovernedBase.sol"; - - -/** - * @title Governed - * @dev For deployed, governed contracts, enforce a non-zero address at create time. - **/ -contract Governed is GovernedBase { - constructor(address _governance) GovernedBase(_governance) { - require(_governance != address(0), "_governance zero"); - } -} diff --git a/contracts/fastUpdates/interface/GovernedBase.sol b/contracts/fastUpdates/interface/GovernedBase.sol deleted file mode 100644 index 4050dec..0000000 --- a/contracts/fastUpdates/interface/GovernedBase.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - - -/** - * @title Governed Base - * @notice This abstract base class defines behaviors for a governed contract. - * @dev This class is abstract so that specific behaviors can be defined for the constructor. - * Contracts should not be left ungoverned, but not all contract will have a constructor - * (for example those pre-defined in genesis). - **/ -abstract contract GovernedBase { - address public governance; - address public proposedGovernance; - bool private initialised; - - event GovernanceProposed(address proposedGovernance); - event GovernanceUpdated (address oldGovernance, address newGoveranance); - - modifier onlyGovernance () { - require (msg.sender == governance, "only governance"); - _; - } - - constructor(address _governance) { - if (_governance != address(0)) { - initialise(_governance); - } - } - - /** - * @notice First of a two step process for turning over governance to another address. - * @param _governance The address to propose to receive governance role. - * @dev Must hold governance to propose another address. - */ - function proposeGovernance(address _governance) external onlyGovernance { - proposedGovernance = _governance; - emit GovernanceProposed(_governance); - } - - /** - * @notice Once proposed, claimant can claim the governance role as the second of a two-step process. - */ - function claimGovernance() external { - require(msg.sender == proposedGovernance, "not claimaint"); - - emit GovernanceUpdated(governance, proposedGovernance); - governance = proposedGovernance; - proposedGovernance = address(0); - } - - /** - * @notice In a one-step process, turn over governance to another address. - * @dev Must hold governance to transfer. - */ - function transferGovernance(address _governance) external onlyGovernance { - emit GovernanceUpdated(governance, _governance); - governance = _governance; - proposedGovernance = address(0); - } - - /** - * @notice Initialize the governance address if not first initialized. - */ - function initialise(address _governance) public virtual { - require(initialised == false, "initialised != false"); - - initialised = true; - emit GovernanceUpdated(governance, _governance); - governance = _governance; - proposedGovernance = address(0); - } -} diff --git a/contracts/fastUpdates/interface/IFastUpdateIncentiveManager.sol b/contracts/fastUpdates/interface/IFastUpdateIncentiveManager.sol deleted file mode 100644 index 9697d9a..0000000 --- a/contracts/fastUpdates/interface/IFastUpdateIncentiveManager.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import "../lib/FixedPointArithmetic.sol" as FPA; - -interface IFastUpdateIncentiveManager { - struct IncentiveOffer { - FPA.Range rangeIncrease; - FPA.Range rangeLimit; - } - - function getExpectedSampleSize() external view returns (FPA.SampleSize); - - function getPrecision() external view returns (FPA.Precision); - - function getRange() external view returns (FPA.Range); - - function getScale() external view returns (FPA.Scale); - - event IncentiveOffered(FPA.Range rangeIncrease, FPA.SampleSize sampleSizeIncrease, FPA.Fee indexed offerAmount); - - function offerIncentive(IncentiveOffer calldata) external payable; -} diff --git a/contracts/fastUpdates/interface/IFastUpdater.sol b/contracts/fastUpdates/interface/IFastUpdater.sol deleted file mode 100644 index fe9340a..0000000 --- a/contracts/fastUpdates/interface/IFastUpdater.sol +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import {SortitionCredential} from "../lib/Sortition.sol"; -import "../lib/Bn256.sol"; -import "../lib/FixedPointArithmetic.sol" as FPA; -import {Signature} from "../lib/Signature.sol"; - -interface IFastUpdater { - struct FastUpdates { - uint sortitionBlock; - SortitionCredential sortitionCredential; - Signature signature; - bytes deltas; - } - - struct Deltas { - bytes32[] deltaSlots; -} - - event FastUpdate(address indexed providerAddress); - - function submitUpdates(FastUpdates calldata) external; - function fetchCurrentPrices(uint[] calldata) external returns (uint[] memory); - function currentScoreCutoff() external view returns (uint); - function currentSortitionWeight(address voter) external view returns (uint); -} diff --git a/contracts/fastUpdates/interface/IIFastUpdateIncentiveManager.sol b/contracts/fastUpdates/interface/IIFastUpdateIncentiveManager.sol deleted file mode 100644 index 30cc589..0000000 --- a/contracts/fastUpdates/interface/IIFastUpdateIncentiveManager.sol +++ /dev/null @@ -1,78 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import {IFastUpdateIncentiveManager} from "./IFastUpdateIncentiveManager.sol"; -import {Governed} from "./Governed.sol"; -import "../lib/FixedPointArithmetic.sol" as FPA; - -abstract contract IIFastUpdateIncentiveManager is IFastUpdateIncentiveManager, Governed { - address payable internal rewardPool; - - FPA.SampleSize internal baseSampleSize; - FPA.Range internal baseRange; - - FPA.SampleSize internal sampleIncreaseLimit; - FPA.Fee internal rangeIncreasePrice; - - function setRewardPool(address payable _rp) external onlyGovernance { - _setRewardPool(_rp); - } - - function _setRewardPool(address payable _rp) private { - rewardPool = _rp; - } - - function setBaseSampleSize(FPA.SampleSize _sz) external onlyGovernance { - _setBaseSampleSize(_sz); - } - - function _setBaseSampleSize(FPA.SampleSize _sz) private { - require(FPA.check(_sz), "Base sample size too large"); - baseSampleSize = _sz; - } - - function setBaseRange(FPA.Range _rn) external onlyGovernance { - _setBaseRange(_rn); - } - - function _setBaseRange(FPA.Range _rn) private { - require(FPA.check(_rn), "Base range too large"); - baseRange = _rn; - } - - function setSampleIncreaseLimit(FPA.SampleSize _lim) external onlyGovernance { - _setSampleIncreaseLimit(_lim); - } - - function _setSampleIncreaseLimit(FPA.SampleSize _lim) private { - require(FPA.check(_lim), "Sample increase limit too large"); - sampleIncreaseLimit = _lim; - } - - function setRangeIncreasePrice(FPA.Fee _price) external onlyGovernance { - _setRangeIncreasePrice(_price); - } - - function _setRangeIncreasePrice(FPA.Fee _price) private { - require(FPA.check(_price), "Range increase price too large"); - rangeIncreasePrice = _price; - } - - constructor( - address _governance, - address payable _rp, - FPA.SampleSize _bss, - FPA.Range _br, - FPA.SampleSize _sil, - FPA.Fee _rip - ) Governed(_governance) { - _setRewardPool(_rp); - _setBaseSampleSize(_bss); - _setBaseRange(_br); - _setSampleIncreaseLimit(_sil); - _setRangeIncreasePrice(_rip); - } - - function advance() external virtual; - function setIncentiveDuration(uint _duration) external virtual; -} diff --git a/contracts/fastUpdates/interface/IIFastUpdater.sol b/contracts/fastUpdates/interface/IIFastUpdater.sol deleted file mode 100644 index c25ebc1..0000000 --- a/contracts/fastUpdates/interface/IIFastUpdater.sol +++ /dev/null @@ -1,58 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import {IFastUpdater} from "./IFastUpdater.sol"; -import {IIFastUpdateIncentiveManager} from "./IIFastUpdateIncentiveManager.sol"; -import "./mocks/FlareSystemManager.sol"; -import "./mocks/VoterRegistry.sol"; -import {Governed} from "./Governed.sol"; -import "../lib/FixedPointArithmetic.sol" as FPA; - -abstract contract IIFastUpdater is IFastUpdater, Governed { - VoterRegistry voterRegistry; - FlareSystemManager flareSystemManager; - IIFastUpdateIncentiveManager internal fastUpdateIncentiveManager; - - constructor( - address _governance, - VoterRegistry _voterRegistry, - FlareSystemManager _flareSystemManager, - IIFastUpdateIncentiveManager _fastUpdateIncentiveManager - ) Governed(_governance) { - _setVoterRegistry(_voterRegistry); - _setFlareSystemManager(_flareSystemManager); - _setFastUpdateIncentiveManager(_fastUpdateIncentiveManager); - } - - function freeSubmitted() external virtual; - - function setSubmissionWindow(uint _submissionWindow) external virtual; - - function setPrices(FPA.Price[] memory _prices) external virtual; - - function setVoterRegistry(VoterRegistry _voterRegistry) external onlyGovernance { - _setVoterRegistry(_voterRegistry); - } - - function _setVoterRegistry(VoterRegistry _voterRegistry) private { - voterRegistry = _voterRegistry; - } - - function setFlareSystemManager(FlareSystemManager _flareSystemManager) external onlyGovernance { - _setFlareSystemManager(_flareSystemManager); - } - - function _setFlareSystemManager(FlareSystemManager _flareSystemManager) private { - flareSystemManager = _flareSystemManager; - } - - function setFastUpdateIncentiveManager( - IIFastUpdateIncentiveManager _newFastUpdateIncentiveManager - ) external onlyGovernance { - _setFastUpdateIncentiveManager(_newFastUpdateIncentiveManager); - } - - function _setFastUpdateIncentiveManager(IIFastUpdateIncentiveManager _newFastUpdateIncentiveManager) private { - fastUpdateIncentiveManager = _newFastUpdateIncentiveManager; - } -} diff --git a/contracts/fastUpdates/interface/IIncreaseManager.sol b/contracts/fastUpdates/interface/IIncreaseManager.sol deleted file mode 100644 index 308507b..0000000 --- a/contracts/fastUpdates/interface/IIncreaseManager.sol +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; -pragma abicoder v2; - -interface IIncreaseManager { - function getIncentiveDuration() external view returns (uint); -} diff --git a/contracts/fastUpdates/interface/mocks/FlareSystemManager.sol b/contracts/fastUpdates/interface/mocks/FlareSystemManager.sol deleted file mode 100644 index 7c26fbb..0000000 --- a/contracts/fastUpdates/interface/mocks/FlareSystemManager.sol +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -// Copied as a stub from ftso-scaling repo -interface FlareSystemManager { - function getCurrentRandom() external view returns(uint256 _currentRandom); - function getCurrentRewardEpochId() external view returns(uint24 _currentRewardEpochId); -} \ No newline at end of file diff --git a/contracts/fastUpdates/interface/mocks/VoterRegistry.sol b/contracts/fastUpdates/interface/mocks/VoterRegistry.sol deleted file mode 100644 index e83039c..0000000 --- a/contracts/fastUpdates/interface/mocks/VoterRegistry.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -// Copied as a stub from ftso-scaling repo -interface VoterRegistry { - /** - * Returns voter's public key and normalised weight for a given reward epoch and signing policy address - */ - function getPublicKeyAndNormalisedWeight( - uint256 _rewardEpochId, - address _signingPolicyAddress - ) - external view - returns ( - bytes32 _publicKeyPart1, - bytes32 _publicKeyPart2, - uint16 _normalisedWeight - ); -} diff --git a/contracts/fastUpdates/lib/Bn256.sol b/contracts/fastUpdates/lib/Bn256.sol deleted file mode 100644 index 4c3327e..0000000 --- a/contracts/fastUpdates/lib/Bn256.sol +++ /dev/null @@ -1,149 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import "hardhat/console.sol"; - -/** - * @title Operations on bn256 aka alt_bn128 - * @dev Implementations of common elliptic curve operations on Ethereum's - * (poorly named) alt_bn128 curve. Implementation is a modification of - * https://github.com/keep-network/keep-core/blob/main/solidity-v1/contracts/cryptography/AltBn128.sol - */ -library Bn256 { - // G1Point implements a point in G1 group. - struct G1Point { - uint256 x; - uint256 y; - } - - // p is a prime over which we form a basic field, q is order of the group - // Taken from go-ethereum/crypto/bn256/cloudflare/constants.go - uint256 constant p = 21888242871839275222246405745257275088696311157297823662689037894645226208583; - uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; - - function getQ() internal pure returns (uint256) { - return q; - } - - /** - * @dev Gets generator of G1 group. - * Taken from go-ethereum/crypto/bn256/cloudflare/curve.go - */ - uint256 constant g1x = 1; - uint256 constant g1y = 2; - - function g1() internal pure returns (G1Point memory) { - return G1Point(g1x, g1y); - } - - /** - * @dev Wrap the modular exponent pre-compile introduced in Byzantium. - * Returns base^exponent mod p. - */ - function modExp(uint256 base, uint256 exponent) internal view returns (uint256 o) { - /* solium-disable-next-line */ - assembly { - // Args for the precompile: [ - // ] - let output := mload(0x40) - let args := add(output, 0x20) - mstore(args, 0x20) - mstore(add(args, 0x20), 0x20) - mstore(add(args, 0x40), 0x20) - mstore(add(args, 0x60), base) - mstore(add(args, 0x80), exponent) - mstore(add(args, 0xa0), p) - - // 0x05 is the modular exponent contract address - if iszero(staticcall(not(0), 0x05, args, 0xc0, output, 0x20)) { - revert(0, 0) - } - o := mload(output) - } - } - - /** - * @dev g1YFromX computes a Y value for a G1 point based on an X value. - * This computation is simply evaluating the curve equation for Y on a - * given X, and allows a point on the curve to be represented by just - * an X value + a sign bit. - */ - function g1YFromX(uint256 x) internal view returns (uint256) { - uint256 ySquare = (modExp(x, 3) + 3) % p; - // check if there exists square root - uint256 raised = modExp(ySquare, (p - 1) / uint256(2)); - if (raised != 1 || ySquare == 0) { - return 0; - } - - return modExp(ySquare, (p + 1) / 4); - } - - /** - * @dev Hash a byte array message, m, and map it deterministically to a - * point on G1. Note that this approach was chosen for its simplicity / - * lower gas cost on the EVM, rather than good distribution of points on - * G1. - */ - function g1HashToPoint(bytes memory m) internal view returns (G1Point memory o) { - bytes32 h = sha256(m); - uint256 x = uint256(h) % p; - uint256 y; - - while (true) { - y = g1YFromX(x); - if (y > 0) { - o = G1Point(x, y); - return o; - } - x += 1; - } - } - - - /** - * @dev Wrap the point addition pre-compile introduced in Byzantium. Return - * the sum of two points on G1. Revert if the provided points aren't on the - * curve. - */ - function g1Add(G1Point memory a, G1Point memory b) internal view returns (G1Point memory c) { - /* solium-disable-next-line */ - assembly { - let arg := mload(0x40) - mstore(arg, mload(a)) - mstore(add(arg, 0x20), mload(add(a, 0x20))) - mstore(add(arg, 0x40), mload(b)) - mstore(add(arg, 0x60), mload(add(b, 0x20))) - // 0x60 is the ECADD precompile address - if iszero(staticcall(not(0), 0x06, arg, 0x80, c, 0x40)) { - revert(0, 0) - } - } - } - - /** - * @dev Return true if G1 point is on the curve. - */ - function isG1PointOnCurve(G1Point memory point) internal view returns (bool) { - return modExp(point.y, 2) == (modExp(point.x, 3) + 3) % p; - } - - /** - * @dev Wrap the scalar point multiplication pre-compile introduced in - * Byzantium. The result of a point from G1 multiplied by a scalar should - * match the point added to itself the same number of times. Revert if the - * provided point isn't on the curve. - */ - function scalarMultiply(G1Point memory p_1, uint256 scalar) internal view returns (G1Point memory p_2) { - assembly { - let arg := mload(0x40) - mstore(arg, mload(p_1)) - mstore(add(arg, 0x20), mload(add(p_1, 0x20))) - mstore(add(arg, 0x40), scalar) - // 0x07 is the ECMUL precompile address - if iszero(staticcall(not(0), 0x07, arg, 0x60, p_2, 0x40)) { - revert(0, 0) - } - } - } -} diff --git a/contracts/fastUpdates/lib/FixedPointArithmetic.sol b/contracts/fastUpdates/lib/FixedPointArithmetic.sol deleted file mode 100644 index 177b10a..0000000 --- a/contracts/fastUpdates/lib/FixedPointArithmetic.sol +++ /dev/null @@ -1,221 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -/* - Opaque type synonyms to enforce arithemtic correctness. - All of these are internally uint to avert solc's restricted-bit-size internal handling. - Since the space is available, the fractional parts of all (except Price, which is not controlled by us) are very wide. -*/ - -type Scale is uint; // 1x127 -type Precision is uint; // 0x127; the fractional part of Scale, top bit always 0 -type SampleSize is uint; // 8x120; current gas usage and block gas limit force <32 update transactions per block -type Range is uint; // 8x120, with some space for >100% fluctuations (measured volatility per block is ~1e-3 at most) -type Fractional is uint; // 0x128 - -type Fee is uint; // 128x0; same scale as currency units, restricted to bottom 128 bits (1e18 integer and fractional parts) to accommodate arithmetic -type Price is uint; // 32x0; an FTSO v2 price is 32-bit, as per the ftso-scaling repo - -Scale constant one = Scale.wrap(1 << 127); -SampleSize constant zeroS = SampleSize.wrap(0); -Range constant zeroR = Range.wrap(0); -Fee constant zeroF = Fee.wrap(0); - -function _check(uint x) pure returns(bool) { - return x < 1<<128; -} - -function check(Scale x) pure returns(bool) { - return _check(Scale.unwrap(x)); -} - -function check(Precision x) pure returns(bool) { - return _check(Precision.unwrap(x)); -} - -function check(SampleSize x) pure returns(bool) { - return _check(SampleSize.unwrap(x)); -} - -function check(Range x) pure returns(bool) { - return _check(Range.unwrap(x)); -} - -function check(Fractional x) pure returns(bool) { - return _check(Fractional.unwrap(x)); -} - -function check(Fee x) pure returns(bool) { - return _check(Fee.unwrap(x)); -} - -function check(Price x) pure returns(bool) { - return Price.unwrap(x) < 1<<32; -} - -function add(SampleSize x, SampleSize y) pure returns (SampleSize z) { - unchecked { - z = SampleSize.wrap(SampleSize.unwrap(x) + SampleSize.unwrap(y)); - } -} - -function add(Range x, Range y) pure returns (Range z) { - unchecked { - z = Range.wrap(Range.unwrap(x) + Range.unwrap(y)); - } -} - -function add(Fee x, Fee y) pure returns (Fee z) { - unchecked { - z = Fee.wrap(Fee.unwrap(x) + Fee.unwrap(y)); - } -} - -function sub(SampleSize x, SampleSize y) pure returns (SampleSize z) { - unchecked { - z = SampleSize.wrap(SampleSize.unwrap(x) - SampleSize.unwrap(y)); - } -} - -function sub(Range x, Range y) pure returns (Range z) { - unchecked { - z = Range.wrap(Range.unwrap(x) - Range.unwrap(y)); - } -} - -function sub(Fee x, Fee y) pure returns (Fee z) { - unchecked { - z = Fee.wrap(Fee.unwrap(x) - Fee.unwrap(y)); - } -} - -function sum(SampleSize[] storage list) view returns (SampleSize z) { - unchecked { - z = zeroS; - for (uint i = 0; i < list.length; ++i) { - z = add(z, list[i]); - } - } -} - -function sum(Range[] storage list) view returns (Range z) { - unchecked { - z = zeroR; - for (uint i = 0; i < list.length; ++i) { - z = add(z, list[i]); - } - } -} - -function sum(Fee[] storage list) view returns (Fee z) { - unchecked { - for (uint i = 0; i < list.length; ++i) { - z = add(z, list[i]); - } - } -} - -function scaleWithPrecision(Precision p) pure returns (Scale s) { - unchecked { - return Scale.wrap(Scale.unwrap(one) + Precision.unwrap(p)); - } -} - -function lessThan(Range x, Range y) pure returns (bool) { - unchecked { - return Range.unwrap(x) < Range.unwrap(y); - } -} - -function lessThan(Fee x, Fee y) pure returns (bool) { - unchecked { - return Fee.unwrap(x) < Fee.unwrap(y); - } -} - -function lessThan(Range x, SampleSize y) pure returns (bool) { - unchecked { - return Range.unwrap(x) < SampleSize.unwrap(y); - } -} - -function mul(Scale x, Scale y) pure returns(Scale z) { - unchecked { - uint xWide = Scale.unwrap(x); - uint yWide = Scale.unwrap(y); - uint zWide = (xWide * yWide) >> 127; - z = Scale.wrap(zWide); - } -} - -function mul(Price x, Scale y) pure returns (Price z) { - unchecked { - uint xWide = Price.unwrap(x); - uint yWide = Scale.unwrap(y); - uint zWide = (xWide * yWide) >> 127; - z = Price.wrap(zWide); - } -} - -function mul(Fee x, Range y) pure returns (Fee z) { - unchecked { - uint xWide = Fee.unwrap(x); - uint yWide = Range.unwrap(y); - uint zWide = (xWide * yWide) >> 120; - z = Fee.wrap(zWide); - } -} - -function mul(Fractional x, Fee y) pure returns (Fee z) { - unchecked { - uint xWide = Fractional.unwrap(x); - uint yWide = Fee.unwrap(y); - uint zWide = (xWide * yWide) >> 128; - z = Fee.wrap(zWide); - } -} - -function mul(Fractional x, SampleSize y) pure returns (SampleSize z) { - unchecked { - uint xWide = Fractional.unwrap(x); - uint yWide = SampleSize.unwrap(y); - uint zWide = (xWide * yWide) >> 128; - z = SampleSize.wrap(zWide); - } -} - -function frac(Range x, Range y) pure returns (Fractional z) { - unchecked { - uint xWide = Range.unwrap(x) << 128; - uint yWide = Range.unwrap(y); - uint zWide = xWide / yWide; - z = Fractional.wrap(zWide); - } -} - -function frac(Fee x, Fee y) pure returns (Fractional z) { - unchecked { - uint xWide = Fee.unwrap(x) << 128; - uint yWide = Fee.unwrap(y); - uint zWide = xWide / yWide; - z = Fractional.wrap(zWide); - } -} - -function div(Range x, SampleSize y) pure returns (Precision z) { - unchecked { - uint xWide = Range.unwrap(x) << 127; - uint yWide = SampleSize.unwrap(y); - uint zWide = xWide / yWide; - z = Precision.wrap(zWide); - } -} - -function div(Price x, Scale y) pure returns (Price z) { - unchecked { - uint xWide = Price.unwrap(x) << 127; - uint yWide = Scale.unwrap(y); - uint zWide = xWide / yWide; - z = Price.wrap(zWide); - } -} diff --git a/contracts/fastUpdates/lib/ModUtils.sol b/contracts/fastUpdates/lib/ModUtils.sol deleted file mode 100644 index da311c1..0000000 --- a/contracts/fastUpdates/lib/ModUtils.sol +++ /dev/null @@ -1,112 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -library ModUtils { - /** - * @dev Wrap the modular exponent pre-compile introduced in Byzantium. - * Returns base^exponent mod p. Implementation is taken from - * https://github.com/keep-network/keep-core/blob/main/solidity-v1/contracts/cryptography/AltBn128.sol - */ - function modExp(uint256 base, uint256 exponent, uint256 p) internal view returns (uint256 o) { - /* solium-disable-next-line */ - assembly { - // Args for the precompile: [ - // ] - let output := mload(0x40) - let args := add(output, 0x20) - mstore(args, 0x20) - mstore(add(args, 0x20), 0x20) - mstore(add(args, 0x40), 0x20) - mstore(add(args, 0x60), base) - mstore(add(args, 0x80), exponent) - mstore(add(args, 0xa0), p) - - // 0x05 is the modular exponent contract address - if iszero(staticcall(not(0), 0x05, args, 0xc0, output, 0x20)) { - revert(0, 0) - } - o := mload(output) - } - } - - /** - * @dev Calculates and returns the square root of a mod p if such a square - * root exists. The modulus p must be an odd prime. If a square root does - * not exist, function returns 0. - */ - function modSqrt(uint256 a, uint256 p) internal view returns (uint256 o) { - if (legendre(a, p) != 1) { - return 0; - } - - if (a == 0) { - return 0; - } - - if (p % 4 == 3) { - return modExp(a, (p + 1) / 4, p); - } - - uint256 s = p - 1; - uint256 e = 0; - - while (s % 2 == 0) { - s = s / 2; - e = e + 1; - } - - // Note the smaller int- finding n with Legendre symbol or -1 - // should be quick - uint256 n = 2; - while (legendre(n, p) != -1) { - n = n + 1; - } - - uint256 x = modExp(a, (s + 1) / 2, p); - uint256 b = modExp(a, s, p); - uint256 g = modExp(n, s, p); - uint256 r = e; - uint256 gs = 0; - uint256 m = 0; - uint256 t = b; - - while (true) { - t = b; - m = 0; - - for (m = 0; m < r; m++) { - if (t == 1) { - break; - } - t = modExp(t, 2, p); - } - - if (m == 0) { - return x; - } - - gs = modExp(g, uint256(2) ** (r - m - 1), p); - g = (gs * gs) % p; - x = (x * gs) % p; - b = (b * g) % p; - r = m; - } - } - - /** - * @dev Calculates the Legendre symbol of the given a mod p. - * @return Returns 1 if a is a quadratic residue mod p, -1 if it is - * a non-quadratic residue, and 0 if a is 0. - */ - function legendre(uint256 a, uint256 p) internal view returns (int256) { - uint256 raised = modExp(a, (p - 1) / uint256(2), p); - - if (raised == 0 || raised == 1) { - return int256(raised); - } else if (raised == p - 1) { - return -1; - } - - revert("Failed to calculate legendre."); - } -} diff --git a/contracts/fastUpdates/lib/Signature.sol b/contracts/fastUpdates/lib/Signature.sol deleted file mode 100644 index 67f5360..0000000 --- a/contracts/fastUpdates/lib/Signature.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -struct Signature { - uint8 v; - bytes32 r; - bytes32 s; -} - -function recoverSigner(bytes32 _hash, Signature memory _signature) pure returns (address) { - bytes memory prefix = "\x19Ethereum Signed Message:\n32"; - bytes32 prefixedHashMessage = keccak256(abi.encodePacked(prefix, _hash)); - address signer = ecrecover(prefixedHashMessage, _signature.v, _signature.r, _signature.s); - require(signer != address(0), "ECDSA: invalid signature"); - return signer; -} diff --git a/contracts/fastUpdates/lib/Sortition.sol b/contracts/fastUpdates/lib/Sortition.sol deleted file mode 100644 index 3988ba3..0000000 --- a/contracts/fastUpdates/lib/Sortition.sol +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import "hardhat/console.sol"; -import {Bn256} from "./Bn256.sol"; - -// Encoding of EC point when space is premium -struct ECPoint { - uint256 x; - bool signed; -} - -function g1SignedPointToG1Point(ECPoint memory ecPt) view returns (Bn256.G1Point memory pt) { - pt.x = ecPt.x; - pt.y = Bn256.g1YFromX(ecPt.x); - if (ecPt.signed) { - pt.y = Bn256.p - pt.y; - } -} - -struct SortitionCredential { - uint256 replicate; - Bn256.G1Point gamma; - uint256 c; - uint256 s; -} - -struct SortitionState { - uint baseSeed; - uint blockNumber; - uint scoreCutoff; - uint weight; - - Bn256.G1Point pubKey; -} - -function verifySortitionCredential( - SortitionState memory sortitionState, - SortitionCredential memory sortitionCredential -) view returns (bool, uint256) { - require(sortitionCredential.replicate < sortitionState.weight, "Credential's replicate value is not less than provider's weight"); - bool check = verifySortitionProof(sortitionState, sortitionCredential); - uint256 vrfVal = sortitionCredential.gamma.x; - - return (check && vrfVal <= sortitionState.scoreCutoff, vrfVal); -} - -function verifySortitionProof( - SortitionState memory sortitionState, - SortitionCredential memory sortitionCredential -) view returns (bool) { - require(Bn256.isG1PointOnCurve(sortitionState.pubKey)); // this also checks that it is not zero - require(Bn256.isG1PointOnCurve(sortitionCredential.gamma)); - Bn256.G1Point memory u = Bn256.g1Add( - Bn256.scalarMultiply(sortitionState.pubKey, sortitionCredential.c), - Bn256.scalarMultiply(Bn256.g1(), sortitionCredential.s) - ); - - bytes memory seed = abi.encodePacked(sortitionState.baseSeed, sortitionState.blockNumber, sortitionCredential.replicate); - Bn256.G1Point memory h = Bn256.g1HashToPoint(seed); - - Bn256.G1Point memory v = Bn256.g1Add( - Bn256.scalarMultiply(sortitionCredential.gamma, sortitionCredential.c), - Bn256.scalarMultiply(h, sortitionCredential.s) - ); - uint256 c2 = uint256(sha256(abi.encode(Bn256.g1(), h, sortitionState.pubKey, sortitionCredential.gamma, u, v))); - c2 = c2 % Bn256.getQ(); - - return c2 == sortitionCredential.c; -} diff --git a/contracts/fastUpdates/test/FlareSystemMock.sol b/contracts/fastUpdates/test/FlareSystemMock.sol deleted file mode 100644 index c4a0b92..0000000 --- a/contracts/fastUpdates/test/FlareSystemMock.sol +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import "../interface/mocks/VoterRegistry.sol"; -import "../interface/mocks/FlareSystemManager.sol"; - -contract FlareSystemMock is VoterRegistry, FlareSystemManager { - uint randomSeed; - uint epochLen; - - struct Policy { - bytes32 pk_1; - bytes32 pk_2; - uint weight; - } - - mapping(uint => mapping(address => Policy)) policies; - mapping(uint => uint) totalWeights; - - constructor(uint _randomSeed, uint _epochLen) { - randomSeed = _randomSeed; - epochLen = _epochLen; - } - - function getCurrentRandom() external view returns (uint256 _currentRandom) { - return uint(sha256(abi.encodePacked(block.number / epochLen, randomSeed))); - } - - function getCurrentRewardEpochId() external view returns (uint24 _currentRewardEpochId) { - return uint24(block.number / epochLen); - } - - function getPublicKeyAndNormalisedWeight( - uint256 _rewardEpochId, - address _signingPolicyAddress - ) external view returns (bytes32 _publicKeyPart1, bytes32 _publicKeyPart2, uint16 _normalisedWeight) { - Policy storage policy = policies[_rewardEpochId][_signingPolicyAddress]; - _publicKeyPart1 = policy.pk_1; - _publicKeyPart2 = policy.pk_2; - require(_publicKeyPart1 != 0 || _publicKeyPart2 != 0, "Invalid signing policy address"); - - uint weightsSum = totalWeights[_rewardEpochId]; - _normalisedWeight = uint16((policy.weight * type(uint16).max) / weightsSum); - } - - // Combines the functionality of VoterRegistry.registerVoter and EntityManager.registerPublicKey - // from flare-smart-contracts-v2 - function registerAsVoter(uint epoch, address sender, Policy calldata policy) external { - require(policy.weight != 0, "Weight must be nonzero"); - policies[epoch][sender] = policy; - totalWeights[epoch] += policy.weight; - } -} diff --git a/contracts/fastUpdates/test/TestBn256.sol b/contracts/fastUpdates/test/TestBn256.sol deleted file mode 100644 index 544eb7c..0000000 --- a/contracts/fastUpdates/test/TestBn256.sol +++ /dev/null @@ -1,69 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -// it is just a stub, not a live deployment; -// we are fine with experimental feature -/* solium-disable-next-line */ -pragma experimental ABIEncoderV2; - -import "../lib/Bn256.sol"; - -contract TestBn256 { - Bn256.G1Point g1 = Bn256.g1(); - - function runHashingTest() public view { - string memory hello = "hello!"; - string memory goodbye = "goodbye."; - Bn256.G1Point memory p_1; - Bn256.G1Point memory p_2; - p_1 = Bn256.g1HashToPoint(bytes(hello)); - p_2 = Bn256.g1HashToPoint(bytes(goodbye)); - - require(p_1.x != 0, "X should not equal 0 in a hashed point."); - require(p_1.y != 0, "Y should not equal 0 in a hashed point."); - require(p_2.x != 0, "X should not equal 0 in a hashed point."); - require(p_2.y != 0, "Y should not equal 0 in a hashed point."); - - require(Bn256.isG1PointOnCurve(p_1), "Hashed points should be on the curve."); - require(Bn256.isG1PointOnCurve(p_2), "Hashed points should be on the curve."); - } - - function runHashAndAddTest() public view { - string memory hello = "hello!"; - string memory goodbye = "goodbye."; - Bn256.G1Point memory p_1; - Bn256.G1Point memory p_2; - p_1 = Bn256.g1HashToPoint(bytes(hello)); - p_2 = Bn256.g1HashToPoint(bytes(goodbye)); - - Bn256.G1Point memory p_3; - Bn256.G1Point memory p_4; - - p_3 = Bn256.g1Add(p_1, p_2); - p_4 = Bn256.g1Add(p_2, p_1); - - require(p_3.x == p_4.x, "Point addition should be commutative."); - require(p_3.y == p_4.y, "Point addition should be commutative."); - - require(Bn256.isG1PointOnCurve(p_3), "Added points should be on the curve."); - } - - function runHashAndScalarMultiplyTest() public view { - string memory hello = "hello!"; - Bn256.G1Point memory p_1; - Bn256.G1Point memory p_2; - p_1 = Bn256.g1HashToPoint(bytes(hello)); - - p_2 = Bn256.scalarMultiply(p_1, 12); - - require(Bn256.isG1PointOnCurve(p_2), "Multiplied point should be on the curve."); - } - - function publicG1Add(Bn256.G1Point memory a, Bn256.G1Point memory b) public view returns (Bn256.G1Point memory c) { - c = Bn256.g1Add(a, b); - } - - function publicG1ScalarMultiply(Bn256.G1Point memory a, uint256 s) public view returns (Bn256.G1Point memory c) { - c = Bn256.scalarMultiply(a, s); - } -} diff --git a/contracts/fastUpdates/test/TestFixedPointArithmetic.sol b/contracts/fastUpdates/test/TestFixedPointArithmetic.sol deleted file mode 100644 index 5c49475..0000000 --- a/contracts/fastUpdates/test/TestFixedPointArithmetic.sol +++ /dev/null @@ -1,108 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -// it is just a stub, not a live deployment; -// we are fine with experimental feature -/* solium-disable-next-line */ -pragma experimental ABIEncoderV2; - -import "../lib/FixedPointArithmetic.sol" as FPA; - -contract TestFixedPointArithmetic { - // Bit length tests - - function identityScaleTest(FPA.Scale x) public pure returns (FPA.Scale y) { - y = x; - } - function identityPrecisionTest(FPA.Precision x) public pure returns (FPA.Precision y) { - y = x; - } - function identitySampleSizeTest(FPA.SampleSize x) public pure returns (FPA.SampleSize y) { - y = x; - } - function identityRangeTest(FPA.Range x) public pure returns (FPA.Range y) { - y = x; - } - function identityPriceTest(FPA.Price x) public pure returns (FPA.Price y) { - y = x; - } - function identityFractionalTest(FPA.Fractional x) public pure returns (FPA.Fractional y) { - y = x; - } - function identityFeeTest(FPA.Fee x) public pure returns (FPA.Fee y) { - y = x; - } - - function oneTest(FPA.Scale x) public pure returns(FPA.Scale y1, FPA.Scale y2) { - y1 = FPA.mul(FPA.one, x); - y2 = FPA.mul(x, FPA.one); - } - function zeroSTest(FPA.SampleSize x) public pure returns(FPA.SampleSize y1, FPA.SampleSize y2) { - y1 = FPA.add(FPA.zeroS, x); - y2 = FPA.add(x, FPA.zeroS); - } - function zeroRTest(FPA.Range x) public pure returns(FPA.Range y1, FPA.Range y2) { - y1 = FPA.add(FPA.zeroR, x); - y2 = FPA.add(x, FPA.zeroR); - } - - // Addition/subtraction tests - - function addSampleSizeTest(FPA.SampleSize x, FPA.SampleSize y) public pure returns(FPA.SampleSize z1, FPA.SampleSize z2) { - z1 = FPA.add(x, y); - z2 = FPA.sub(x, y); - } - function addRangeTest(FPA.Range x, FPA.Range y) public pure returns(FPA.Range z1, FPA.Range z2) { - z1 = FPA.add(x, y); - z2 = FPA.sub(x, y); - } - function addFeeTest(FPA.Fee x, FPA.Fee y) public pure returns(FPA.Fee z1, FPA.Fee z2) { - z1 = FPA.add(x, y); - z2 = FPA.sub(x, y); - } - - // Multiplication/division tests - - function mulScaleTest(FPA.Scale x, FPA.Scale y) public pure returns (FPA.Scale z) { - z = FPA.mul(x, y); - } - function mulPriceScaleTest(FPA.Price x, FPA.Scale y) public pure returns (FPA.Price z) { - z = FPA.mul(x, y); - } - function mulFeeRangeTest(FPA.Fee x, FPA.Range y) public pure returns (FPA.Fee z) { - z = FPA.mul(x, y); - } - function mulFractionalFeeTest(FPA.Fractional x, FPA.Fee y) public pure returns (FPA.Fee z) { - z = FPA.mul(x, y); - } - function mulFractionalSampleSizeTest(FPA.Fractional x, FPA.SampleSize y) public pure returns (FPA.SampleSize z) { - z = FPA.mul(x, y); - } - function divRangeTest(FPA.Range x, FPA.Range y) public pure returns (FPA.Fractional z) { - z = FPA.frac(x, y); - } - function divFeeTest(FPA.Fee x, FPA.Fee y) public pure returns (FPA.Fractional z) { - z = FPA.frac(x, y); - } - function divRangeSampleSizeTest(FPA.Range x, FPA.SampleSize y) public pure returns (FPA.Precision z) { - z = FPA.div(x, y); - } - function divPriceScaleTest(FPA.Price x, FPA.Scale y) public pure returns (FPA.Price z) { - z = FPA.div(x, y); - } - - // Comparison and conversion tests - - function scaleWithPrecisionTest(FPA.Precision x) public pure returns (FPA.Scale y) { - y = FPA.scaleWithPrecision(x); - } - function lessThanRangeTest(FPA.Range x, FPA.Range y) public pure returns (bool) { - return FPA.lessThan(x, y); - } - function lessThanFeeTest(FPA.Fee x, FPA.Fee y) public pure returns (bool) { - return FPA.lessThan(x, y); - } - function lessThanRangeSampleSizeTest(FPA.Range x, FPA.SampleSize y) public pure returns (bool) { - return FPA.lessThan(x, y); - } -} \ No newline at end of file diff --git a/contracts/fastUpdates/test/TestSortition.sol b/contracts/fastUpdates/test/TestSortition.sol deleted file mode 100644 index 26dde27..0000000 --- a/contracts/fastUpdates/test/TestSortition.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.18; - -import "../lib/Bn256.sol"; -import {SortitionState, SortitionCredential, verifySortitionCredential, verifySortitionProof} from "../lib/Sortition.sol"; - -contract TestSortitionContract { - function testVerifySortitionCredential( - SortitionState calldata sortitionState, - SortitionCredential calldata sortitionCredential - ) public view returns (bool) { - bool check; - uint256 score; - (check, score) = verifySortitionCredential(sortitionState, sortitionCredential); - return check; - } - - function testVerifySortitionProof( - SortitionState calldata sortitionState, - SortitionCredential calldata sortitionCredential - ) public view returns (bool) { - return verifySortitionProof(sortitionState, sortitionCredential); - } -} diff --git a/deployment/config/account-config/test-1020-accounts.json b/deployment/config/account-config/test-1020-accounts.json deleted file mode 100644 index 6dd5cd4..0000000 --- a/deployment/config/account-config/test-1020-accounts.json +++ /dev/null @@ -1,4087 +0,0 @@ -[ - { - "privateKey": "0xc5e8f61d1ab959b397eecc0a37a6517b8e67a0e7cf1f4bce5591f3ed80199122", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x87630b2d1de0fbd5044eb6891b3d9d98c34c8d310c852f98550ba774480e47cc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x275cc4a2bfd4f612625204a20a2280ab53a6da2d14860c47a9f5affe58ad86d4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7f307c41137d1ed409f0a7b028f6c7596f12734b1d289b58099b99d60a96efff", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2a8aede924268f84156a00761de73998dac7bf703408754b776ff3f873bcec60", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8b24fd94f1ce869d81a34b95351e7f97b2cd88a891d5c00abc33d0ec9501902e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29085", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29086", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29087", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29088", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908f", - "balance": "100000000000000000000000000000000" - }, - - { - "privateKey": "0xa70f57123a4f41420f92c66c3f49dbf00c9da53af782683a4d6b744a053981c4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3470bca8ba3507255a31d99a04ae7ed047974c1aba721021a0dfdcffa29a685c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb92dccaac0192f8a886371e56539503cb5f57d2760dd53ab0c62259fb98b7f8c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbbef1ecbbc00fa11a117900962e29d235a88090761d0446d9e1eb322dfb21658", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xca6d4f53adac71df9e5a132e42c798554512e87bfe19c1672727fb43ca7bc5bb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xad517b519b4e162b7f0c859e12153b6f0406d09759a7de9d2f16f5d4220e7aa5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa40bece3e5ea1681000f0c2eeb10827cde3a73e1eb349712778d5415ddc466d6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe054b2f3d170aa427dffe941a52c896b61f642e6cbd3e91ff526034debacebfc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfb0995e2f723bde3bcea5790a5e9d03bf359024a19e4dd0cd469ad9443dd0872", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xac2d97a862a1ecd1de650c12074752aa198c1f4a4572aef427cac7b4c42822aa", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5ad7aa6e094e82c4416f5aca2ddfed6d024f74d90448dc2989caaf7496269b40", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdf4f7806ab90522667c93d49751c9a745fc1b9a69521b26db609ca022faeb6d8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd78107cec9f57a2033447b2d9dc3af47b8cf2ab96976e03b593007018ec4ff6b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2b32cd5c4b960c5777eb04c3683c1ebc6e66e191a9f1dce8503a402dfef42059", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3ed1bab3a98d1630a9e8c13c0668605f9fe693eabec9640cbd4b32eb5f3075bd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf354bac3df628666ecf3331c749bc712716edc841213032eb0dc2e2f466469bf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x171788b925666277dac5d05d3858682c1fed5fe1a9b3020792f4736328cbd66e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3f07c1f85058c1055876d117b6157486ee5b7e6249dca0ec60b724e91d177a65", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf87fff64b332846dc02f211e2baf8df1176eca53b3c7fc89c6fb193acd769263", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x26e4793e95b93811d9fd6dfd69c8902ffefe977806339c1a9c353bf20e41d4a2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x671248b3d926f4187849912a95c69358d1a637f78fa2f11d25623a57d90f28ce", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x16e2d4bc9896b218d7a2239ee4678c3b405d099981dd7ce6f7c246875b00917f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x81c1058e17db2f680565cf3ef279e61c7b730cf936fd22c6d86eb7d1009e55a1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8ce83d0831c3baa0d1bdf8c8462efd21e37f67d6a51a87e657c8980a160f372d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x94a011f36ffc0698f54aaef28536c07c4f4a1abfb0c71baf5edd1b4a5a118c67", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xde04a730d07c8e41cf94623ee6b7118044a42cee9e6cdeecc36b12ba4b45421c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4d03afff62e30a3eafcbe76739f7642f6b2673499e838051b1c73aa998bafaa5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5b3a926786c3a165358fcfa32824e3fb5694ae59be74883e7ff090174371ffbf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6db4d960df198172c109a75ba7d52644a9ddc8b699fb2341ca659b92ff2a93f2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb063759334480695240886d82cf7a40a7b9dbe1329a57f39b841f1db96c14f4d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x23e61c079907f26f12382b4d0ca05661c643d65aabbc038f39758056f2334c65", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc7b16da7276cedb1205afc3280aac18df518799f2fe2700a77556771a3647103", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xaeab3110c59c7eeceee74d7216c9df16a89705878503784236076defe9af0918", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0d4a077dad88d5a038b05fd184fe116318b64d819996051dde6d90dc442394c1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8a00a9c5910b3da7883811941e5b52715bd70a80aecb2a0a763ab6d1f04940df", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x972d742c25342faa84ea36e5d5b864ad189265f40d73fd3bd2ae82dc63194b7d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x452002902176c3624cbdbe40a3c6d1fcb3cfc76c969649b11618b0223272e398", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa59d3dfeab17abb5d499cb94b50437791613b9f188213b369249567f2cd036c0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf8a2f1a4a83b859f008b27609a89c2f5db164e4d22448c7d8d90425eeb9a9ec2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8a19dd247b811f73d224bbf0dd79d2a3f996400f8be6bfe8288c6b9148f40bc8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc7f8d7bdadd87c232d2cbe98f459c1e229ae165dc08ff84027cb097387e382ea", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7411ea42aa2a82c8a58b1096a8e72514a6f6b7389e1dc09bd2a0841e610d061b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc2c6011609028fa6a1c283686a0bd243f0e64da18ace77c3c89e2951ff00fd81", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb96f54eb3d5ce0facc1694ece0094cc6de9ae23feb1a7935a59fd452d696a16d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6fd7acfa0497a4e3ab4d03ca4e69d10d284a913c1386eef61baa9bf23feb20f1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa63cd2c5dfd8a6da2d9a07a83b056a9cc559fe06d9bb1e95a6d8a009951cce2f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x56bf688cc93d565809e702aab7130db1e115945a3ecbdcb4af63909555e926b6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7b012f8577e75ff37093d94a7e45a95aaf9cebd710fdac3a7dfd6d1a98b44e0c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc986e4b9cdad29d320fef5885a00b4059f21bca899669ffdb1aad63da499cfc1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1acaa639bfd13050064cf32483f466226f9f3da0851ead1de9b92f686d9c15b4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x73a822057b7752d03bfde4c3a5de22d2abdac8861540f4408b6cbccd36921499", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x398f7ea42298446530931712a7bbb9079be0b0d38a10922e56f38245994793d4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6faca71be88a722b01ba33cadb5bd1059e4be6efd812afa4d4122d1de4176657", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1228bbcaa7c37d66343c66d0ab0136468b80b8456cc94d12182b34c04a08d4aa", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe7631170e49481db19c5070c524cf13172caf3e802b67db3d92734fe055b1877", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe287db7cbcd123f806e130c23cd4d447959fb51a786ef4615b04803b89b47ddb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc1d8156807baa44eaccb0ceb092cf14d7cd74246373d7eb6aa9bec6a95ef653a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xba4c1a0fc91557edccd4374e2ab17919849e4e87e85b32ffb024399acf171404", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe205a6c303110a96f97bdba04c019715275f187b82c9b420a52a07c5a0cbea6c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x38ef4e43ea1ae7e49ad87a720865c2c29a93aa207e3a7b06994a713f9c8e145d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd4f9c25d03e1e7de352378860f351ae132df34edb2a5e24973771f03ba5298ba", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x577260d439d4dc2f728939d097ea6cbab55e0714d31147aa5b35fde31ffd6fe5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4f053dc7a07ee507414f6e73ec0a95b7e1662a184e789d9b6b892b9750bd27f9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc5b7dc60d6d650413756bf83762066983068128c7224ffc4c1d7ae5af46bb048", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3fe3ca264d2e00d6f2ec0a1a283228fa2402b186757e61ad4693161d8449cd37", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe5a34d2649a8055ae2791a908359f59a90dad507cd168adbfafdc9e67129ab85", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x69e65553ac4ab7e71c9ee76571bd99d1b4ae5d397e838da804a9c417a16d1014", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x179141725f1d84cee0df57d58a0ac8629c4c2f89b782ed61a4ef5679e6ba5cf5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf11f0a2ab40dfccc6e91a4b77434da74e760673695867c577d486485fa62276b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfa517eef8c1362e13a9d9b00a0343993073cb333d478a144ad1559685384b22b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe687e14de7408b7733f8929556c79a5e19ec6a78789e9db4521f8b669370c2e1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x228bff9d2cdad8219230cb617cdfc64b4f5d0ca244085cc36e209b611bbd6af9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc970a7874381bc925837b2d7de6df8cc8cd455df438cc6bca80c56b5b8a0caf9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x694f07ecb60e5405f2f2509cb2962741875a2e92f0300d85f95c5a2556347f36", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2d8c911f0d01e8e4fba263e5a08a99244b5571252c24b6eedac245a2d224928d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9d60eb488e66994e057a598d8226288117a9a2247f0b95d6f666a6779919658b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x18640ce58ba6baa58d9709eae689dded7f45edaac682b31310356f2d3f611a4f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfdb0f0ce008addd32df0cb173a3f9128013e4df60d09ee10373c4a41b712145a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1aabe34d319ab617a5077491ed846475e1a38f98d7f1a957247822f2411f1d34", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x907d8f3888d38c3a6048fbd4fce73dc98fe623a8a3e015d5f13a4cc0e78924da", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4816d3f21f4b68529d1dada324573ec04667738f1650470cbeca8e39bae21425", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1d8b17e30745185b6cec6be851bcad31e038d16b6c580e66342df179bd4d3943", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x27daa478316c1bbfa5c1ac7dd7deca8134edc6615cac20aec52ebd1c97c2de60", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa45684ba9160c818d5297d825140d0f71c2d5649385c951746fbdd10a99f9142", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x62f768837a7d9569c35f0c84869ee27ec43fbd4c6c1ba94367811901daeac231", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3b4e80eb0b3c347f78dcf6674b84243dfde96dd67554990f7792cf1970f01e6a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2ab7a39471e6a08223e6026b8f3fb1427e5c49a345eda8f2a307d1bb45d5a210", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdecf6e9b0d23cb3d49d5ca17df6f73e1d06856a9cb59f17d6a4bf0f39c19ce54", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xccfda64faeae7d91f11f0c09cd3102d7192d9ff0e3c1c833d8a4990f8dee7278", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0c7556aac177fa323a1aa62c04571895f9fe2860191dc3cf1619ef8ba9ab1cd7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfd652f23ae4281121b9c53ff35da47651c5b3b99353a7f6e2a291a7b1c1e53b5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x56c8650ec077727ba75d728d42cf0bfb123cd9dd2b9a4f54b664639d95bb239b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x15415202bc8e5e5c34a0871e4a1c14ae0d4cbc74870a4944184c7dab866cda63", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x76182da3f284bc4902a268fb795fe888661d55f6a0a92a2cba62d14303f87fd1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6530818695a30215f2568e12d4ba08ecdea8a4c0bee54c144d6d43594dfc340b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf551c9e5dad538dc412308d94492e5117b8f2d548dc14c40c5218d6182621930", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0322179bd9fecc81d5c8fe57a5243c73996098ed825ae718f5908e0dc3f73a54", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3e56086e8ac6f3543790192134bac4258e741fa78d64bf7539878b704128205a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe84d36c9ae027e550bf125853edec545cb776e03a57270a189d1b0c46a5fa960", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfd72a4f548b22d3bf0424d94719fe0d9b54db9057aff74184b901893f9047158", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x76a40fad76cfaea550b5dc167e78c6fcfe34e380247eea263603751a910fb896", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3991ec4f593c5a2f40d80525ec53f054877c8f6efed22d3b1914ac15f9967e71", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf6a1c3d54703586343dca67bfc6692a6cf74a35a22561b0c16a2ff173420797d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8beb2377a612a75fe160d30a8779d46fde2fd31bbf0ac2f9a7ca4fbd5a336a12", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x03042af4520194ba26464e76d447f7accdcae5662322bc347140535f72a2c6cd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3b09b6a5743682f8a0255811d2f6ce3f076b9a34d8bb1b83d6d11055ea907606", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0b50912476f706184d3e229d3879ab6d8507bff11d2fcbecd771b7d5b0a609f9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd9f7d0ee2596c82576ebbe0a18d57fd1cbcd552d6443d248b3e2a12128d45690", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xed16e0fd7d6f02a826a7e2624fcdcf2a05653b36d687ea2d7dca72baf04c94b1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8b8a9a734b2cc8e4c373b692f59e781c89ebdb953facfce7f29b4bdb6150a8de", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc290d7b49ca3d40ab824f36da673fc4ec7ab7ab71fbfdd8677f31f610e0fdd96", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc4825eb9d66d1ffcd187596cfe6b769f45b1ccd949345b201d3551ab7e8d5660", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x98f3d78b79a3529e69f9c06c4dae6a10128b120b2075f6e8da7815ed73b0576d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x548dea70081f3ae9837d71f3d1950145557307c67b0c15f4e57b3bc45f58391c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x37945e3519137bea649ceeaf8027d942fc0800c62e1f6b59263911058946ec16", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc70d6877e8c00badbd655b8fe4b313ffd305e3d647f999da63d8092d925aade2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x65acc3ea6333db7db9d3d631fa88f5e906e1330aea9cd4f1f4a249b8e8bd847e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb77668a9bbd75b95d80a4e9402c703e80a467f4c5137427098dc2b6672451480", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8594c2d8897409c4643a5afecdd0af3590cabd140866f414a5fdab9cf9703a6b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd62b86c452439c4556077df7f7fb42d6bb95fc1f78d478e317ac220ab192761d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6aa2ef21534cbcb0ccf68ea3f5079ea82219b5a7ec70853f45067b29597d6901", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x088d7fb4be8b2d451ff0a303cae27ba6328fb4d19face70832daadd8bb905412", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x369857a4baed0cce770717423bf0be2272dc68b0a642d292ca725e122335cac9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x13d561987a54b6562c7e96da082f7a1bb398dac336469289a8030146a0d70ee4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc6616697c62d6741d178af61fd7f754e24ff3aa6615ee599c73a535f9e99c6d5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2885626ec2f65d74e94dfd11da4bee2dd28cd7d8ec844f0a67b02e772f7a906e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x67e41dbe69d95a82b6bc3d4bddc286f22bde0e17d9a6bd860ca9b1b6609f84d7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa5c8cc8bbe8bacea11619be6bbfe15850393b60e6bf4e68e658c12da9e8ba4fd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4fa433d644e3c5103d05d98524bb95ad2158f84d9267d939eb4f0ad0df5a24b4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x530c9733ed66ab24323011f590f7f18e8821ddcae79f931e3cef2007167ceb3d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa93a5d9399334eea9eb66340ed0691cdcc00c9afece35129668319908ed97262", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf8a1169762d23c111e7f05b8615e029d0e3831c585e53d0d87a706d667272ab6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4d259ad89a3c8fa36f403bc183a94f979e56b9b790ed977035ef7dcb5eb9e8a2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc13ecf21b55f9a41b551ab2a4ea65d6c9ac0db867af85f752b663c6fc4ecdd43", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf097e01c3a1a339787b06fb134b71b322cbb5051df25c00121930fd387fc4847", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x666924c6783d603c75d678ccba02ae7c24d1619c89233cd8b9a95964973e307a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfb19f63eb3ea75bc2b269f63e3c6612ec0ef05bc36eb58b4c9ddc64b4cd40b8c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x06b383179fc23d3ba2e103a672eb1932479ed9f5373b80ac9f0685b0e869e9be", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcaa747e0233b07a18005d20dc0cbaeadedd9b3fba331f25a2cb11637b152d3b2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5dcbda34deccf137082eac3d0f4c4026c360d450db9306b8673ff2a27e6f2878", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xaea1508f11cea9c362c7d5e415a35dc88d155f25ff1fd6a581fe814693adff89", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x31412511275f78777ed8b2d72b89365a805537a85a29739dde047b5b94c983c1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x243ec9186991f99d07caba19bd2c60e88dd506d184ea0beb640bd57cfcfb1273", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xaf3fae460a4a4047ba3f59e2f4627b4fd1e69ed0c13cca286db755aa1ed0d5d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2c25d734376c2c1dbbe8470563ea9d7e5ff284377bdd03ea9d28272ecd290b7b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa950e8cfa159a48a4c0bdba6cb364f3be605288d8ec8ce36174297265630cba5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x63c367701463edeb93f2b36c364eb20dee5b14d4c970dec18db9296fc6895798", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2f575a04237454d41be6a9e94c6fcac05b9ccf3794423c44beee7cb34e381e58", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8c620e3003a992517796cbd9237c67c74486a2d2ac6e032398eda4eec4ed9549", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x42df8e8aa6646296199cc76822b42bd52d81fc758fed0ec68bb3a3895d2a504e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd8c1cab2931ad385b2b1e774a715615557b47dbf4e5b49837785a0f08e6b6c08", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x096695d5b4a5c2b4b676341b4bc5779fb575811ce152d8e6adaafe61716a9656", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x589ac1ce97fc1e6774fc6d61dd9fef21d7be6d22a4a6b30b23f453a0a0fb7b66", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x47b9ce8672935274f2b2997ab00ede955fa46e6ea074f37456f2c7d34dad66b0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc331bfb4f630ed8bc7cb532a3aca0d40f61cd01a2e592f41cfad84f46038228d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x54c3ffa616b643afa71b3a6c879c9f81359d422d89ad2afa2ed0c5d819a01afd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x20e4d25055eb36b4b0308d33c408d6136d552022365a6296efef23e3689c4ea9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x98be6355572963f9c8ba5213e5a176f29d7d4a7781d9e0c9dc68f701414324e6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfdf5af11d394362e7bded8d34135c313a68df0099999fcfbb7d045758eb19c00", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9093c0d56986a212ae18f51daa17b95551c88b76ccd77e900af69282244a0489", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb465d0c82f4aee642ab42a3d466fe6f709925fbc7d0f3b56fd387b871062d92f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x72d5653117891e6946ec17ecd5cd13e41c4ac59a52902bcfc46bd1e2b180b704", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc9cafaff7d1e99adc788fb915cdab4dfa31e51e44fa0dee08bd2318d57e03924", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xaa6e5220d30ca6976c8a48d662fb781e654b6f16f45a703883899cb4d19ef854", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x93c8b737bc923ddb24366d1d55915a92ff2d1a8e4558db2bdb85e37400b05699", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8d4e260a6136b87479fc189006bafb5dd6e5475279e3acaa06b6c571a5ae7b3e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9e4c8cb2517e94cec4aff04342834e9518ea50885847393868962f49b9cef8d7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x45d8f7d26117736aa997563638a4a152dd79091cd2657e0e8702f3517a3c26b0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x633dc54fe5137e4b4cf4539d07da4bccfc1182a368853f318db5af3a55e4e1a5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6b1a6bb235a8e331beeba4b28ef29c0ffc4257908caf3558e209e38ac8ba56f2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x788e0ca2e63f32b24014339c5cb4fd758ca25b0127cc17039e30173ac32d371d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd0adecbdd344accf0960af3f1107585ced02df5fee0d3cbb9608e6cc4411a54c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6e43f7c9fe52be3717764188636569679b98d03596e84e9392b1c58d45df4084", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4258aa0bdeb1905570b5c72d1b9f9c20f2cbece0aed5d6c0f7ea438d0ce05548", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x467b1252eca624d4b5fad0592b48a64f53b9218e86841499c58fff9a72dd0200", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x748c22fd28cb3cdf0fc64bbce1653b3bef0877d34974e0a86b9e09452410f6d9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcca543dabb1cf277b16d698d31b6c84e59bb600d963dfa99f85a24c81640b186", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdbede56f79eeba6e1c9b683b97c4b1c4efa80b8be249e8a9bfcd6e4d124704e9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8f33845f38b2d7e644af43a9838720ce463605cb2fed1e21e8c5f375a6b2fa10", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6dea47ffd44f7c0de56a2c51bed8c6468667e1c3a896bb4001884b54ce74ece4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7e99371e0e29510f5285caa6950f3e94d924c6b124470a75beff57647953d37c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xadd66af82a91e6fd1b9b653443933394ccd24ac4a5d4dd6aea5c8e876f3d9993", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x460320644f2c3eefc11e4217a62de9b3aad6bd550102676cbb1728a4e838c8d9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x24e601352fefe682026651987d9eeeb6fe48b6d0fadd3cf0de793deb282134cc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4f015806da3c9d293b60f7f5847d6ca42779dee8cefbfe3721d1bf34c1641c00", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x57f0641587bbe85808d2c9d31ea9b6c958e76202fa9c6307f9ff3d1485ccb96a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x179da0e74feec15cb42ca3ab1ccf9986c2a0179d836b99ffa6e31ceba5907e38", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb9ba4ae800eb33b4a99ad135b02c70ee9f84fd45b4dfc0b2ef4534cdc719ce01", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3016388acaea8e685c36662caa361a27ee178277af720557118355bcf0a47829", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf6ce05305e6e26fcf8055d22290538959f6a179c668f8bafcaf856ea2f93b822", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe9874da9d2db1b8eb4202fe618b51c74445fc1ca09d4d41587a168a12782fc82", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb9d9c4d4275abd174246ffc1a9bcee626cd6b7885e915f0e5c4307f02d9c51eb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6de13cb2c8ab1e012bbf7edd5258ea1af9d1ba8f9652158b2f1b7906231ef06f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5330c8d801956f48ce5c4efc71414382d946dbc2555886a08e78cbde0f0bbe17", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdf9e394e5fd14529c0df363478a7198a06cb69bcdd53c17dc63e9c2790a15db9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa0abd5d2ba60279892323bc8ca2591fb8e18461f2d2e19574635a751b6a1967e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa3b5fceede8fceb01498cfb9557abfcd5214888bf0257e5659778bce0d4ec456", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x93840140b763603b637e9a69998f987958977be8faf5ca178bb512dee9b68fa0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0e3dd890fe7aa85ad82d875c982d142c310dd1eb6acafca3363f3791546902d2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe9e2ecd93524429cce7f0a24e7773bc6c09ad03d3527682c02b2392a200b80ee", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7546b11f65ed8644e238c43cedaba702881533f9cee4ebfbe5a84bc659e876b8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb0e5167bc6cef57663895bdb001d90e604ccbf1b5ad351d3b4daf3193e4bb066", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5542e0d168336f42002798340ff9d06d3b9ebb1e9d5aa46f524acd65b5618998", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x10caa2db6bde6cc8ff73c75d437e9088525e324969538d041034ff10625c46ee", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xed71f08e84af85b9e2b93c84a3a8bf5f78ba811781f65463f01f82908db568fa", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0fce3765cb18b5b141ca2fa235f4130ac440be3a430ec61b0ebbcd16f48c56dd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x72095aee76849134ce50cf13d5a66a0b27333bc7480e5c1f0344d5535f9d42be", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa7e82e78d3ce280e645097506feeb0860b1b117e180cb2f7f6c5b9aef32d23d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xabf412b9a7ed9b1c3cf3e69dde3119590526fa8005410befa897352ec7c2745b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x59885c6ecc69abecc0a5a45e5a3085e5f621cf3c467024e02bddc48928435ae5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x00cb3c8149fd99382d6030392db96d7ee436652932b3c3369d246bd70ca9bd0e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x00328014112f979c669f84f242a213c0579f5dacae7fda5938f76096ad1f9270", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xda5ff0f32974840413e39ef5239dc609adc138a22def73079b78ae3be5467a97", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf24bc543a7fb55255be9df8cf03b9031da67af92e532be34d0addee2a9b07a40", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5de0eeb30a332448af3ade7e07c69f3269f958693dc8cd719286ba451c40ad84", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe503272c7102f6d002ed2485db2983bc17026c72e146258e6b262b7af8cb421f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6c1528fb288b899ea68f6382dd3ce5aadca8a88275361f968dab1c05614269e0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4fbe99d04b4de756e6fa1490ce2dac32b1fb4149189d58105c0f73420dbc7110", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x75a84d5829064c7b684d2633dff9a7f759e898e6d17d5220282f20404c08c5ac", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0a59e1297d158b6294ed99377e860ce74a418a403be7e7b5b2bebe142b8f352c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3ada543cc5dd2b7fb41d3707fadb55c19ba6d76f7c8062670e568333db65e399", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x11ea862a298934f1c3ef6ff92d2e85b59d5febcf580557fdfe1cf62bb365199e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x043e914762856f6113b8e575998f7a8b1360efa4947aa024936961c945c6efec", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x76425a62647e481cb8bee515d8e3e98a09340962705b3b87558214947bae9687", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe0b59a31e513610d55d9cc9bc5e7204825878de2cd6885bc93c2ee3a006b5f6b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8476e62315682cd84d5ae1d6d2ed953ecf7b56dbf8c640f9c8097e3c1527d4d1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc20a440e0645ee1cbd448e8e5c9ad0690cebcba2b0178c34c4f3cee0c62e88ed", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xddf8aee6b5a44e0cf8839441fac545c539afc6ea70ef3962689120f240b74a1b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x93748847a38dc62c1f961096f741a9b6b9f7dcf26bb9fd969c6d2f22033b18fe", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x26b0f54b136e855b6e141b785373c5247465cda8d0844c2344fbb6f7462bde96", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xadabc5fb1e4329c53fc43d963c926032d8e610f28310e220860ffa9d8591f43f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x340d3a940e6b48ab8279c07796e974253cb181a0bc969895db20fa5f97a00ffe", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x96a9c209d17b4f8072ddb9fc72265607bf1d2b96d7d6cfeaf334e0e8654ebd04", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xaad571858b1d70ecea0e1c2eaa979241f41f000364a2d54253b71a1092d8d693", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6144b8ad636f9a9ef783971b20e684d689833717477caba9d439515ad704ab7f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfb2873b340d5493cd4bd04d7b6e1f326d1fad27c77e2844e59ce8f70c9560482", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbbed827bf1bc92f2b862609b02f8e3e5a4d53bfc785cb29a7a06a43650b5d898", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x62d2f5bda93057773890228f7dd01fa50325d73f2db011413d47af20ea506397", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x07289f90f5f60957a7e679e59b6e158b85ff6e463c25abd7f38b91cdef1039df", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x02ca4af0dea2a62428e084336aed6f284b6082b2188b7a40469d857f946e2e77", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x48a6be79e0c73021f942eabb648fd7b6874c1ccfe06ddae73bbcb8acc5ba067a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2ea7dbebd810308598b4b394760eb5955802d6b0b3dc63da55ce4d0c2a67e6cc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd636898297468d4c67c63096de0ca25698f2c210f1e850e2fe1d26871ccceab9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0ffb54dcf44850cb95419c1918215f56d662121a17af1efd29539a2ccbd0f3bf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2523372a27897bbf8b6a336ae7fc53432b429834831733abac87d8f39a755f48", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xab88e6ad44b81a292f5c0597810832ba14f0f05b627e5e1b01fa562b83bd7f7b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x46114bdf43497338c6e77e61ebfcfa6bd228e837effa9f9886c10a6f61ed7df6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3234bbad2f3e6bf87325367ed26a7dc2bd3a69436baf47c345c0b25de580a669", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1fe57d7663bbd8bad247ae3ba9fdd08e97c28fc0d805924fe7bb823b2f05b066", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd22c537f46aebc3967e0f1288f6ae6f823213fcac46237747c3e3450e4718151", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe10aa29c0d0284e18893e419731078d39e5dcd93d896661b33bdd81121769385", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe3c1e48b9e2949f88e283eb120b77df49ee6b80961acf1f67193b9acd21f810b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9191a5c05c012f71d18424ec43cc0aec4a103c55c740d7f4b5af4dd8dfe1d061", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcd9e6521ee279a8a88894472ec61323b39ba52efc37fb18376c8cc47d4db740e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x091ba32fe580b625a0c49096ce2a660b13189a89ca3bb9a4cc19ce0f1966835f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xecc8ab6a72e47af518ea4901b8bd91fb34ecebf558ceaa666cc7a0a09b131852", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x856deae6e6f02c0692c2b1db607a5b9339d0ac81811dccf10f144972ef00497a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x72acf7c1eb56f4c13e1d544659b0c80b820a92491795dccc3b35db3ab6b07fdd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x686b5de1d4985b6c287015561ab98022ced9331106d088369350c2221a0f3f9b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x870f8a549fe4629600ebbd5c5639f41718496aef77e1bf3643cac8dd1a83d331", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb0bc464c7984d23e81f2dcf47ba6f3ac2331fd599d85657e56ede90baf959f1f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5f1935f7d68966a2d1144b55ce10a8c335eda95810ca3a11cad201493e889ceb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd387663dabf8ce4d7db4356f3c87fef080b67b6f1e04f6776ed11ffdc11266be", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9112ffc9f761444b3a8be44784f5dc013551aac78f5a2240166fb4ac117c8030", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcd708828c437021b12f30a9aaf63e234cba6d854744a9cdb1f4a172589c9e3e6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x25621308a069fcb4d136c0bceb6d1805105d07f2d214cfe1715050844ab5c90b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x515efe5aab29c914bf61482830d1badbac87693cd929f82feee384b223d0094d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x16b91b8f0198c75a62f65b9ede02c1018371cc639ef58afac31d790661362e38", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4899d1b94c7ee88de67ff3fda0e2b1e48a8254b178953b414b7263228ed553ef", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x778aff5a622de06a26781e96db9642fb2995c8c15068433d962a9560eb9444e1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb42baba1214c497b0bc09bfc3c4d7287360cd3509f6180b046a5c608768a6596", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa8727a86428b0a312202daae764976e9dd5deda2d2dbe368180e84628462d234", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28190246ccd970203bf8e7cb645322cfaa9f27511d1ec9004204a0d87d66b95d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa6312fa29add7a313ef9b8d83c9d9bd527094eb4369dc5d73d2fb4d9805faa94", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc35b5b007c99565ce82275fd32a9c46e839449d273c56d1436d9d575e3667c9a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x27bf3b1df1e0940d5e6b888707de8f4d6bd06d360dc93ba9e68bbe1a1f219927", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x17d1c995065082afd124d9c04714810c1df650087bb55258697b9070368b8485", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1a619a9e6770cd2c0cf6de15fae18706693407cb8bb2f3b0e764a7ab1e5ebae1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x67b9b8485f337f9a7b23d027087c556e0ecdbe8740c01ccc4f73015138c0c59a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe8918ce91333b0a8bc633e62668313035d0698e03f6be1bfbfebc5784e4defdb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf8ec8ff0b97931a7a6984324086dc91aefdfb58889bd3abcc5e6a1286b46e3be", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf7a852d2fd1007e61987d5fb0b261e2360eb7bc8c923d28c6c76dfe913fce124", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x44a48926a5e4e1cea944ace46cede72a8e74aa6e7f0878ec34b58a489b37f42b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb342920d3c79ee2fcb39f7fccfc6a083e0759524ab970128254082efac1b23f4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x020e6c2e908a40aca0034194e706669501f765bf6e9b337f0cb906f09261616a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x69a72eea74e1387b2d5d7a51cf65267a9b36f2d01d91f53db019a56b8c5011c0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x52298dce0e9abbba4d2355839b40018da2994012637be9ef8459224a471ce4a1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8e43be26c245664773ce8bc8df0416e5853edaa0b02690679aa7ed656a76d574", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9ff4fcc7795ce7fe34ec0938346aca9293598619da71343e6ab05561e2456ac3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfc2f266fea793f8942217ab678be31894aab61fe23072658b0c40e361ce9ba4a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x647ad8fa46876340bb83a65df3c693b67732b6834e3eb332a94f74282bc64e0b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x128524d5d9abb536774aa0e4a4b5a808054d66fc7a74ca56ba70a8129ed43502", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7a10526f16bd0b1ebc0ab0026781320d241ea886a317d83943123b7e27b5875e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8ef02f8723d8dec3bdd7bd7dbda28e98318441f10671971c2f3a36f32ca68dfc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa33dc32dd141e54b1ea9cfd02a4791dac2403a42ecb2bc046172892353d7732c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5d27eab24c1f39d8b36f481312c79e99376934c9345ae53f7d81d5db5995ce2f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x70019f5c7bbb1581cd5ccb296b94018bbd14dac7446f5af72f780cdc36c849fa", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x633a7495e9c63a3d5911ed25d21bfffb9829506b3ca86e4554aa0333a55413a2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x877ce13d31e93232953dea3b4379e9ebf4e8f2d6430c69702c6cfb89b78d2da0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfd0941497973a6f6e52099404bf82c3a01e427c03bd7d57b2621d541d42312cf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd71a77eddae4cc71e5b1995741400bb3959e650ce1018c9cf4aef133d8d8076d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd1cae21599196ff24030b8fa7fb318a3e9808cb4370ff6f833e3d243465ce19c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x678468abf2637830b8d030822c76b8aeeef31a4cb499565eccd4ef2707b13806", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf27e871b370c087fad4ce1ab47710dacb625e6742c39860b99ec9da9a996c0e7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6acd4c23cabb1bdd181645deb40ff655461271c36b532941dc14d85ec64666ff", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf5dbe67a5675b675b8436679e00a22952d3e83e80e84891d7966fe4004472c35", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x937042fac46c12a4d0305c4aded60bca46ffdab172ae1e43ac0345d572b77167", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa7bfda2e99d9d2da2d4341b4633c4e9fbc7dd0918213fd28adea9f734259d2f4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf5754c7cfd9186ced4f65f847d5cc9ffb5a82e8615ad94839e4475a9cb986bab", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfed27daed7bdbd1990352abf3f65a90158a1fbe3b03840d8ab1997d7be79ecc9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6aabd575b391a9b4e024c3a2fdd6e70b9484262a4675342e469adc9f25e50c12", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28c5a4bbdb7762015986a26d1a7619a7a22cb661e32e26f84337e571ad323b4d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x51e9f60c61f0c78342560761a86220c83abcc29b523d7f38cd670a4650d2fb87", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe95ad78f41e56c5289fb6a6e6d7600e59fb0486ac2e2e8940d0e057fea877b01", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2698195c56d2b0413fd0a0354cf4c4ad1ed37a6c5a2c76022fce4756ca8ee52f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x647e2311eaccbb7a2526f30b97bb97020fbf94bc597bcc3d6e3ff2be1ff73d17", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x71200a781000fe07977d1e42249378336330eca2a64b2b0f38ce6bbf451b31ce", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4c6cbe823c290bba5e4eae8b9f315cc5718c0bc089aa4f6549f27ea2c3e23578", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc76c21d7d4fec48f7ba094f32478497284b0d5959a62627317bbcdd7f2396800", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9f8aa2b44a8701c320e522838d2298687b3bae7f1cbd9abd18f9a7622dcea209", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfa0733607504b1550f90619ac82346d2b11cfc812a495ecf68e607257c99efa6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe3dfab211f813fcbd16145d22f714645d0bdbb0ef8d87000d21f117fcded5a70", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7ae9bd5177318dab6c20766443b9e8eafb05ef29f96e501cffe3392a8c330e0a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3045efac69d7a9ab6f13f6fb14db7377a4f55a4ebd9bbba233f08b89d30df0e8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x776c181bfd76c1ef7ddf1e45be5bd6d57a0a3ac3d3c4471a95ebfe4695c2175d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x734e537fc1a2c9c05423c4991245ef977a325fb7453497f9243d3f593d2129e7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe06aaf4da2d81e5b4b996c197cd297eec691b83606be65d4773468a7d4049c3d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe16e123dbcfa14aea5ac87c6dbe35b0ac43a5b31f87221a86bc0255e236f9d71", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x98ed6da5dcca5db650199bbcff589aacccdd1d97f2d5513b64289cf60c7d1368", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xae2a2072af719edced54b614155433a64d3c4b24ec2a24cc92b51a132b11ff0d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7ede6e35cf3ec150dfc11c7144c378892c2e61d7c67f15b8d64b132e00358892", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x169e599e0f8536d4f344af3ff0e6c15d260cf5d0528b8fdb8be5f1f17b5f6e41", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xee3689cd276b0d0dd48a2ad9cb97bc2d114341bd468f1e258fa89c4c0d31c5a7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x72d58c33e386be79aa71d0fae0b366a62bad7ba02d80e6d82305fa1241a47181", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb0dd751fc4d97f1d287d33c6b6cf1731b38fc2326fb35c19646e1945053a9c27", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x12a5555a6034f6cbc23e657c5aac94c74e3bfe8c008cc1b2c45ec4875565d134", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1705b3cc2822349caed11e92ad2423dd28597e1f5c3371f2f277afef6689ffd4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x464aada2ecfd6f124f9aef7943ef70d03eee0c23644c3978f8a93fb2f0a43585", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1b13357325620416b8557876b46f7b04d897419e94fa6d98dc23abfd0dcd458a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd9b10314238ed9ecdb13821aaa3c856394e663d9aab84f2f05fa75d0648872cb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb6b82b00efae6961912c0511b95d4227e8f3906c9cf69810163f9d128f75c918", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2eb6e84fb182f060bd55e72a461a367d35aa0b914ebbacbb9ba1bfc07c98d27b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf5d23eb64651867bc110ef4732e381ece20bcea36c1049597e50ba73bb62cb18", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb100f7e37ac2fdae76d24d031db8310765586ea763ff6508ec20210419577910", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x965f99a3339098d654ce9babcaeab66471fc83e6274b4ad25468d27f1f05e59f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4eab73c9fc957096ad66c4c45dcf15c42d4ba29b82346bc69d2598da2d83e27e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2821e4fac39277350f33bc86f3468dd78ee5f040ba37ccf7a77459611557ee2d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf139c46bb99a1e16f7fd90ed803aba850ecba13832358c173ceeb4e0f5fca28c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0fe99ff728ef171e3abd076f29699aa1ed663fe847a7403ea944ffc9b2299f50", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x000a1b91560824f6fc215e11f3f43d99eb07eca4a503a926d1d1687ae123eeda", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdb7fe303cac9c91490003e13844585af8d150e20a95cc76ae403e527083b4a7f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x16b72fd8085aecd61b87bc23d770ef1358ebf1c9142b51ed4b54c0498fbab026", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2a645e912476896cf2ff9e88acebba80b29dcd8378622c63866151493c3a64d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3afc0f46c887978f8a3103e9761cef4aef0c65c027edf507adb64e4ef11efa6f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x569b003c78e6155454cd1582867568c3dc0131c1cc3bb8251fbeda8f1a9b0c8e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7a0cf9a4cb774bae5a869b3f8715bbeda36f2b4fd8bfe4ba126b203bbfc236a6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xca3c72d9e11f7fecc059d0bf5889f1d2cca876ef4c6e52a272d5436ac93dd040", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x16d0d3192460483a6eda129373a197a93b786f1c0c925dea96758606b0aed68e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc0c03aac30cf659a42582e20da5c40aebc73f2cc6067666d8080e5219baecee9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x34a8cc97a6651ac00c269ba1dd2ce82ce46c422a94ca1c40dedee74a558bfcee", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x184f177b8480e69bc4e8dea2679e758d3a15a35ebc909113add25e38800e3fd3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x34d165678a29e8ace36045c04ea5bff0a0bd7140ad347edd5e5d521cf58218c3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa2391ab1b62a0eb9aba4d1b71ea4b71803c67540cd9413fb3eb0ae4642392a82", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x572588c4d6276ded530c38ad471676be4a8ae30dce8ca3ddb6a544bc4ddbf404", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xea8efcb894dd3ccff779e02ba4b2bb41e790592c82cb6278256e67dc78ec6174", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5652b16b83064eea5ae9ca6a14bf73714dae757ad799059abc14a1d04afbcd1a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4096c6b1bd7b8e1c2769e1dd6069d04138e9729d6a3ed173effe2902df4078d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x17d472ee5242a424e369608d5d4a81a6dd928f4b80b840addeab8055df45f667", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd9d9b3a540a2922a803789a9eaf528b70588014d6cb7859c03f25163df602a74", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x19339ba3cdad49a7203ac183c99d5bbb2d10979da292cf08b5fb10f09f29610e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa63ba41a1e849714e87eceb49edbfaec2df1f8927785d60e5378404fa3220b01", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x35d3309b07e34b10c6e7ea80dca741dfe9ce8e2a457f74e86490e73e0acb0ecc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7317cef4ff485ce6af415286487c103bf0b10361d2c014e2af3cdeb8c8e7a3cf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc331297ee023a070137843dd6ebb9081a7aa3e3110c2ca50247f15244cdc9d8c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x73cdb80eb903cacc9687334d97953c06d33385f130be093b6dd0d016c9fdf201", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xae9664b4757f37c8f75ae524f2fd3ed1e87dee804c816d232b58aed977d57b40", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe6e016e8338b9ad71169e610234e634f2569dd9bcc9a24fd144d93d915bb4520", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf8e56ea9adbae8fd1c6340443bbf21041ff31299fb427a02ada8a0c61cb47e32", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd7d7a16dcd4fb515ba0a438b653a74e7297d1f451e4ac6a7a7ad6ee500d3b941", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfac1eccfea9277713fe906f6368824b94082b52eab19dc75360df2c2c6954122", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd21dad85583cc12b5ca8cd95a0c713f9961d04fdeed41a816689031c5e655beb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x79af6f3bdd24b0daaea6e507c4c6f5ff849654dace15a5ba10201d4bd3837f4f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7741b37395457d7d478ec589e0a76705ed61fbbf2130f141605f81b3d151dc10", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6eac2e23bf2a89fa57d31011c792a60943f08d74ce82cf9e110da3be14eb4167", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x314a256a813fdd850290f49d555c772a6bbcc46e597dfd75c286a43a19aed679", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa253f0e2f071e0e14ef4d3123369723b34bb143ed29058b44961bfc157e8bb1e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x84340a215d5fdf79d9b720c14db972a2f61d84340d97ba1a3e01a0d0097e8052", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x89b8d4f651b6f70dda3ad7ede3b736f935117e94b8bf551b9549bc65e2cf1519", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xadfee8a8169f44d8fe818b3d5e76d1e806274b322eb532fad80b22db163c6173", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4f955f39a4e3e9675a2d4b94f62f245c609a2c787388a4d6042b83c1f644585c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb99cdf1166d5569a9dd01a25baf8a6dd3a293fcd65fa4ba1de30b39abd0ecc83", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa4064d0d78a9b2c7ba1143958acb5829150dba47f8008c5bc87eb9f474bb2c2c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa20a209a4aec0eac812a5dbf6a0af2af5af34968eec0d18d1fce215883df3a30", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe81fbc9d43ca7aaad701d803f91c85cfa9e05238896a6f81b6215897cbe300d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1a8365a10d256d73625ba82f4d8b7e1c7130f114b0a991a18079d0991b07f77c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x76abd5767515cd308250195964ecd44964dd30b510a8de5c2dfccbb349cf753f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb7abb25b42564098859506c1c25aa7d3cf43fa8097c112114cf81993a9137d9f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8def249268b70887a1fbb18f3657deadc7892e9eb69b7961542ec3ff803cb849", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe95668bab9b044069e4e1ece026cfe848e8c5849f68fd9b6f09c5d2cad8c9891", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf3841bcc7ead953670228f278dd192a8869d7f3221f471906e379905bbff4277", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xac709decb56de285f67701a7066dc153fd62c79e6207fcad8c64267d0f06196d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd9beb22082bca00a81437e63196261301335e6d4de14948e49add7dd4fcdc99c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc9727f11f76cacc0744e2d1d352a7573ac9f71eb4d1821e980a4384cc1307a2a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbe7fac4d337499f20452e3367c5db6c9d2c8fa7553b3bcbd5ee7c0ddfbbe5ad6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf2ca000edb3125ce938f643068c18b131854f91cdd6415102f51758c74489533", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe4294f99f62d8c91398366725aa0f5d2d0e3067e8173ab58a146e282b30eb8ba", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xabbfd536d573fba1d3bcd9799449701ff8a06daf740303c84782486034a19bd9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x60d2c54bc49bfc8f7acb031edfec2371b21f21cf4def2b41589be67da1b5dbd5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb44f9f631d53bf35fa7ee079915d60b7aefab972e44e60ba61973cccafd155da", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0de340958b15639810067dd76fdb6956a42c12cd029ffeabf885d266b3b5b9be", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf6c1eb916124d84accac2bcae87b80c6851c1fe6a2b867a89c9749541bc2e060", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2e0883386fc6ec0aad2854896d0200e5d178f4cfbc5c22d54cb855f7848e677c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcf7c21cc9f70715c9f13a576c0ee60ca0ea44021e139fcf76a139b0d00af92d8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3f893d93ea5b18984881db901fbb7289e47c568138f0739c68bd7b20bf591789", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9911b5f04867d39ca502f7bf77ca0eb085ab2be0945dbcd63a01e60fc2f36a04", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbbf342cdeb1a471dc968cc74d6218d3aaac260655ff02b28d0767af8d02e9f72", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7eb994a28803194e7740fcbdfc6fe6424a288d5718147066609f429c79550bbc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5d0b5752275f90ed24515cf3bc7dda38d4b5d04191c292c202b96172a1b13434", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x06878cb5e0bf65e50dd39babd31c1e20648988c1078dbb97b593256c99873091", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x785a9ffd7a10ac8437ae05aa628121fb84507da0e8c35d88335791487a5e2070", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc877b4a7dd82f42bdf90b57feffcd34266213e2272d6e78138facc50e2f61faf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x25032ce7373ffcbbbd587cf53eb0cec058636a1d8a9d2c5f433fff31013c1ef6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb2ee0c52a012dc063861f20cf98271d6667d17d3f0396e04e48ed4a4f19de322", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8750ee00e63fdca8d641cad0b37dfd3d9e3756c6d99fb483d3a45e9f4cdab64f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x72ec2b74f69ba7100fe9ffce96c2bde0735622026496ccd504e3b934464c2380", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf21410fe1389e23a985d861fe06086e4de77c0fd2c0ecb8fea26f9b58b3d9ff8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x07f0e40d0d9ab567fee6490ff3135dec7395fc6bd43fb32e85659bd5a6bd7a8f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2ac9acd36254aed7d020826b74b45b23890bb62aa1c94d704508fe66396b7d9b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc5b1e095d18eee23461dae476c691e78599fead777bb18143790167ae51ea3c5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x39b5a3db476fea9e8acb4507a0db50bbab3798bba95f85c02ed3a9515dede744", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3a41c8d6fa89afea92442899e6313e6342cda469c5045b2583123d3b34891f11", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8fd83bc50b6074f41c2c27e53d296186223bf640c4fe8f565e7d99d537931649", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe3dd9c0f1892ad21dccbf3dd2104fda3b956f21528b0c84bc2380176d8c8d0ad", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdcd294f7e961fda15ddfd785efb15ee5a555a8884569952c1ac443db04ddfea1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9e9edae33aad5558d9aa629082152c5c62d4dd22a6cca215f519d30d9bdcc5bc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x187884725f92db34d5f80c48d0781fc4bed9e9e0189536f29f0e5267dc9ad2bf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1f16332bdf90613e61d4978790a8627593f5068e39487420880c7ecb76ed258d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6e737171cc07c05af724a3485feaea5a934bb1f0af9fb19ccff87cd7dec83107", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdf3e56952ee1ae7a6e721a8f3f053cf271944a73c047ce9eb2af0bcf3549baa8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7d9c0ec24f6f94be5f53f0efcddafd55595e9ecdc5becb9c91fba7200138fac7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x217f3b31ca3badd7337c1aaf09732a84b4cff81e376e712fe27debf8afce2ff0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa7e7e4c4ee59f9dfc6fa13af5a271a97c484488e053f8604dc3e1f7a98823bd4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x88e479ce5f5a898dfbd84dd16ac9b3c09d86b32cbd3e407d3ff99531531bd5fa", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4f993065220285ef79ab3cfe3106078129871dfcb346189821d79151e660b25b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9dcc2aa0c143da16e867b369e05c4f05e513ccfdd00188d20892dbfe85d6ad65", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x88ec0955a371821f13d3b3ca326a3d5ec3e70ef1776b1217f3dbc596e39bb8c6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5cde08b4df1bfa2a402665711b7c2c3715535bec2fb5243dade6ab9b0133d6ea", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x15fb2250e9479939f044ea4545fb7a49e123498384ec7d9b33fbb5b180f6ce46", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9ecb9a5536fdad8f99c848947731c4bedce75955766f262b130bc8804bc964d8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3f7d0d5dea25dea8d631657f6747124a1a33971d51152decbebd4508261f1498", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4bf350f9e94eb234fd65d923b9197473ecd9cbd93400290996ee6fcde50cc2b3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x75a6de74068e8d556b11308753bdd241531c8ffd8e0325e1e4f22c40bc25abb0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0198cb521a93a2a79eef0cd1ba7267e8a69be85084b8aa85cb3e0de4724a9b79", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x86d1ac65bce574353b135c229cdd303360a99ce2909416bb431ac36314c0c5da", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbe2eed4bde3130a823e616c8bd95d598bc19eb4bff9f6cc4bbcf27be4c88d22c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbff39edeb000f8a2675031b72c6bdcde7ab7c0a8a41667e2ddeca073e24551a5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x818b0dedd2508034f6b46a5fddec618ac28d065b12846d0c39b8a4cd1446aca0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x163de1a7c491774ce99c85df3874ded43a97628f7ed08479a5b1013c06f8e0f7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb1841fe7938ab36545034a937f447f7007990048633ef9bbfb89a94c3c316fa4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x30a11b14dbdb7459f759bcbb20f92739fbfd04c0489b21f310f789e190b049fb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x142a3847f9577557daf100f42726412c80d2f9b8711a2e6b298d00a9c6e72d53", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x27378f11f78b019d7aedc259ee80d0e7158c781513769a228d20016360fc943c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5e553ecbce343e45a0f9158d2f323615f0633aa65ff07d5ca9fdd65d2ef26f9b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9a9da56a3781ac2b46a6eda64d438acd7030bf7bf169132fb923ee65d93c9041", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3ac632d933395187616149ce244b5e54b6d97daa7ef4b259d9918d0099ec7e3f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x480d88135e36f7cc8dd9a98455b932a0b269094e0f078594bf7dca53dd1b5a13", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x45bd1005b188ecd11f6bd997060d87220e1839b8e478dddbe97de7e84f4767c3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x86163199f6f2ef8195c82311d17cdfb74c2d2bf444eb94e777691b6967087e67", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa5b0508c9831219badbeb22b03bec1da3f0716bfe84b138005fba9e327a9ba85", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4d2f0ec84b4d0f544b4628b1989c287d67c8bf25767d4114e6f5d2969e7ea756", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x729210958c1f2e0677733356b842442549c8a6c493fa1ae12466898b9a48571b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0ed9a5c02e3527838cdbe917bdbde1e8992328218c1d8d13d8535f3915c35254", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x30dd13a4c722013a0b343e18c257fef4f258e4cb102a0ea8f3341034b469fe71", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9a4fe015e521799af51d75fa5a1b0ac6d799b70d4d9dcec274fea1feea07ad34", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x926d1b206a6c834a448ec27161ed739632e99ff1075683198819611fcf348a1e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x282cbd523f01f568564d52892afbe7eecc2551625505715cdcce0fb8869086dc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5473ed3482a462189ee3ab29c6b9bebdffb63ade90fff389424d0bfdc99c7e78", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x65f5c332acc0d22730ad06456bb865755d1fb1588ae877f7a3c6269d3d59dc2a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x43a8d59bfc76c0b96a7435bd54f007b45025d0faa5f77becf41b430c4ae93a66", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3ddf3b9a77d2b888cdecc6033b30a1b6a66490f3523ef856fd4809ddb06e141d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1af643fcd1d8f081c5fa3c954baa319b5bd09d38bd4498497d5257022d332a1f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x165e17bf4553b1938ecaa8fe75a782a9cea797b724110611dab0315441ca7cdf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x64e978290fb4b4d351a81fe7c3a6a87cfc5a0dda279cd37d8b22422caddfabd0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x674a34cce8923ee109877155982bd27014205d00eda3c3207ff645847352c9cd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5365e9b518b3f08e80e1a2b5c1ba7d5934ba6ff12872af15850b0b92ced9eb4a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x71dd1e07b0af3fa52fc063fa9bf3c2a03eceebcc7daa68213752af7f10a969cf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1f2879ed7fdca427dea0bea70b9db1dd503ad65ed1e86eed18a2b4ea1bf196fa", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb3981d14a95455f33d457c2b799c456ba349f388312e57418fe2622db2991c68", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd8a0ae5e8414747f3ee4a4983ba965a8f72f47c3e8886811cd8bc9706de52c76", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x63c413c439dd37950e2114e40ce64ea626684a8b8061df31784b6a821be24af8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xda777d1e0b87182307ced84f8aa9dc7a37c5dd547cae69959b5ff64085a80d5b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc3770de6b775f92081ca518efb72e720932e713f5673bf11a379d1ba6c7078c0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x46b87b6616835f385f0f03d414acb09e948d71ff4ea86e2dd6b299c055859d91", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf748e92196bf5ea2c1b9a678d9f8ad2019c865f12248e6d9dde0c07a90181d47", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbe6fe6c91019a490b4e16a82ab419b1feb86bfa57520111fa501a5f1f67f33d0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe091d7342fb13847cfb118b3cfa09e373bce689d0fedf172c1bb0d2c86be3259", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe9c229dfbb0fd70ba6d74c28000661c4eb073d775e7bf6f7bab4ab530c278c2c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf6f99b01fdb28fbf031c5d3c61c65239ce0858b61bcd69812ab347c014077a88", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4ea41b36f674b65b15b8cbc1ba90db6d0a3946d2d5a4db78db01cee15f16d91b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc51b12bb59ce67dab8481b9facba8273936d31917f8c74a115713aa90778fff2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x719507e352199c6be8edb05337af9387a70bf77b3203d7f944820237a0b58b5b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4e0d3a7d89a198da014d8688bdfb8dae7341137776b8d6d036534e1291f1521b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xeb4df368857fff3001c28c65eaf9a2570031ecaf26a774da80cc12bbfb72ad91", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x01930dcbc5565c6dfbad926bec3d67519700e7a183348b5114e437fa756f9348", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe4e70942f60adf5a88de1f380d4c481adc543053872e1266bacee816e11e4af1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5d941d9811ad2b68d0cb4ddccf3caaefa4c3fcd3afd9015b556647fa8ece6f61", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xad8858472a825782870b78b1404bbdbdfb9b8918014693b959e43725db76e052", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7f4f1b063d0c798d06d153af5769702d27a516eec9e30f0368fc2e2a81d6a6e9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x392c09d12ecd93c13b015a3c92e63b273c9e059a23bbba154780672294ac704e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x87720e9cb3bebe0c4f1ef88f8bebef2dcb703d8375911be8005d7eb5da881417", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xebef80cdae05e74285bf14dab08e4a1ae59579126d4f26359049acb4eae16da3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdf9f184cfa67b1f66ff70ce3507b5dcde699119bd1bf3ee91c71238170e55f1f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc1435fa47a0cd9ecdaef7cf1f933d0d0d15aebf66d532e8e15e6e9c0fd9c340e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x77b3d8c296f33a00d24841c8979e44b4d0ba0cad0209b1d799cf214ff4bb7d56", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc6565d88363a35e0bee58d9bf4c88297358ce2cc561cf355c40b4d42a22536b6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf27f34de5eb586be72702682768670ab7b45653f9f6b7e9b394f40d5de262cf8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfefe6ac7fd9b0ca761a5479897c026a00a09ae33bc3a6c553ed181d8a59a8652", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd39d5c12c261ce616d7a175e583895c02e51e1527e1d5a56fda2fd43eb5af17a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf97d5d355e23c8265bf1bbc0be0656e98323d5656fb11ee242baf2c42b159a61", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x92f1f84e7bb3e4f637299eb2bdd9ec8d2ab58e5f67a43bf23026908a713e4972", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x32047af8833993e6089c8c1f58824c49880c0abc1e1db99a2a92f49a5ba64d39", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2e84bd0614b8c28832ca2c42221451cf6ab21232c9c5e1204b4b278048e42ca0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x38144b28180d6345904c712d92a0270adf2d64e1d4884c15c2f76bed1882d712", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x62af2f3ade5396cdbf5e3650e94d4711761f930976150d4b0472b4019be251ba", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbbd072b34d2f243b3f84288d759c850f1a644db594e837adb8d4ab6b3b38a374", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x174ab595cf5afae57bf142ec01ff6040e8c2ab0ea4b85bc5076d65965aae4e3c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc3f6de17846ec0fae1027dd7b2751b52f5d8d1d53ea75f524551c16d67b4131b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbd5baea53298198ea1d0726e65ff1153a239b438d1fcb8211b7da3352a648e7a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcf42f2890652895b66a5448ace67cbe5691553cf7cb9510f7a102dbacb27fe59", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc18596ff75908899b180a1c9e9d2f7924c98395b79b3cab71666898cff7f6e94", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x01feee70bd40917b772da3d32dca958dab11ca627c3869251846e5b3df5597c8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x73925cd7aa88926c302552546d04919bfff36eb2e08b0bd75f8d2fafe731dcf7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7d20191d18ba24be39600a8927a980bb31a8317d4e45e3240d9400e83358146e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9a67dd2ca89523bf03203aa87164f7831954b13ac9bf05154c5ef3bea2389f67", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa391da74fbe1504218c7131d5d8d3b60b9f7388755faa7ca47c5e239dc0b7478", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9d2eae6ea4f24b479287fbe896a3a72e6b9c7a9c5634236c65db2eb09a0be8b4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbb28bdb5fffe749606db9da389b295b8c6521283510eabc9e759d99db89125bd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3e32c162766f19d8324003f1900198e2d297d1780f25d126e74d6f5496d26169", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x31a225115df6e5b5f549bb9450fb07ea100b5bb6b85c5fdac6af42b01e5f54df", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8542af4473b4f4663ac2d1ee3f676a2ff46a1efe70143c5d0ec3bbd96d0230e5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x191c53e21f26ee9048005ab835026e139d940ce95d5871690219ed5dcab7958f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5523df35ff53efa306f5f69ef52206f936e081aab39859d25f7eee2d02a12700", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x068b251effa993e337fa7128bf44a84bebc2581ea07f0df40d7b8464802b8467", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x08cc6b4e941cd59db41631067811a93084cb305f52b11614141050ab89eb3d88", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf80f447680d3c392ede659521a826a2d17208e4c0884e80b8e4eaa56df7294f4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9b014b1297f2c68dff37ba936daa5a0038dfaf95691b7358efcfde7ff0926efb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8bbecdbd9868e9af2ff99123b0c8ef134080477155576dd969258dda93aeba5c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbb964ccd015d5b268a5f26f395bf67a5aee04020661d8eacc1d6eec3cc80ede1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4723aea0c2a77a3d4c90190c5eaa562640f21d3c98e465a93476c5510c8951a1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x30871bae0e7df4e2f297222236703f24e6f0dc1329a41e0218da0d2f22e76895", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x19860b598db4a0cc613edc04667f71894bc993938bbf2fbbd143922825894cff", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x16570df3e9bb73f29b0cbcb57d619e91bf5e431bb3142617c7e9f33691645022", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x51240feb1fb1a016415164bb5cb1d2c401c49fb4fc4cf28b7cf8b639efdca5d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd05d4b5619437863115389daef6c9266dbf63a8123cd41cc7f3b41efbf815b06", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4dbd35d1f1d9051afe8a96775a5a4ea376f1a313eea8224ad998a7ddcfe2c00c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa72abb7169ef1f3e219bdcf139d724dedeace51d1235fd3f365359459153c8c8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8c9a638f85bd37544270481c264e042f3083bbf65d43f95f4ba5fe431a4eb8b6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcb76f04d964d1b68f3ba1d6ade514419caa6388f1e6b447267e9e467a2dcead6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7910da0893fd596cdfb86a007bf4138a44e456c6f4d854349a617766f980e9ef", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf3497b2d070268133b916284bc8758dce2127cdf9213fad6a6ff6e03b7309edc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1a17042bf27f3f08dfa9db433643905f6d7b4d26ec70498600c4cbcd4189946a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x37fbf07da8c088297d4f4059873f65b0abd45cbc973e6d83c205d9fc4fbe04ce", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x804b01a8c27a65cc694a867be76edae3ccce7a7161cda1f67a8349df696d2207", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa6e1741818d41de64c15e04ba0820a9714c254e69790e52324c240d02576d5e5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x237e2de4452792394d3ceaf26d096eb0763092d93f731925dc910413d1642456", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x179b10c0edb30f0ef3ae89d3680052417bb8b4a5bd0a1998a9b083576c8e44d6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x59cf379f195ef4193a29d7abcce666ce1be88d7030c2a1e8bea7938c85cde556", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x65bc960d473535ba819c95332e7ad398742f8f28816686f4de92c24d38a4c396", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2845972a8035a8d17acfb2db7ecd761258be4365bc12cf2bb720c98d39820461", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x14c97e5a223983e3f61e2b8eefe51fded0a1d47f9b88fe273f4a7efa15d9a786", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbe40c7fa933a361a375c76737474090f2767e141cfc77d55a149dd798a2ebb35", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb4235b369e9d3fcbc3c0b3cd25be3f44b792255c9f638f72ec77c43ec174ad94", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe2e1eca4e7714f2427b9180a3bae2215828fe9ea500e74217ce9cd14ebeece80", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5bf16308601d58958da258a10eee06d45e14aeb72da6f47abe82b651ad6bfe63", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x87af97e89a761d8ed7d8c59938b56f15ff5c86eee424a7db78c4cff347d8e8b8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0512fce996ebba79d5de167a3144a54ede6b24a6e6b51b4a878ef45a3098d5b2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x92ac06e169fad0638a3c9eb3a6d04b5318240ab066320a17c151bccf5ee82516", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4921496fae127aee75ee2e09bdcd2b251a8259e04395cf2559ca65040ccbebd0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8ea2943139ebf45bd44049e8f6c0baa0afcede5d235efdc7bdb054ca53620ad5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7f680002836fd996089299db933adb9d293f532cd74c9ba8459d3306ed382833", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbc0df1d04fa69166a2c73d94a6df176c8cf9904f5be322242aa9198e74febe0c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x970990b7c2206859497827d147ae8ae1994a0bed7342cf7759564b35609a6add", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcabf77eedc3e2a20b0af3fd010e346f432688502904e2bcbb589a916435045ba", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd3220017668b0cb9dde4f127b5fa3cec12391bc84327a78fae11d4b88923ab1b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5552cb0c72c69e2044708409c278863ef6d1f44668b58729bba70ea199a78fb8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9e3db7a342718c4b94c3d676c40492b4e39442273cebd076474cb490d122221c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa8ce0ae40e93c07282492a9183c9feec2efbfd86de5558439616102f47d59763", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7bdf91794e9d8303a19d320c976d26cc404c8bb1f252780b278e0ef5b2289e88", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa9e503f5a9eabf4cfab638bb9b2b8d74b46852bc6ab5a88cd4126d58fd323935", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb123e3be47f37277136c621060560978f5352da4fbe0cee82687819ad7b32e31", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x068e7851d3c9c8404a1bc6d289fd1ab53854d9aa8434f4ce4ad0776521034e9f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbd21fe25d5bf7640b4ec32f63d7382f9f57721f29c49b06144df94d607c6de73", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3040b01d59f2f27eef70c10eecee10388a3581b924e1f9d8d14201ca9663cb4a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xeae523bc7fd0e2b746f6b5470d97b166454c8118a15ddfb0c141cd42bde84ad7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6639e75929e75868afce5ba535fbfa60325f3ab5234b976e993e21c3a7fac166", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xee4026ae7fd741be93a316a28442f960bcbc020436118d0d99970091618869ac", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe27377eb53c180f5ae4f00c647251b66dc825c387941ca2e1acd45d7ab10f9e2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x84444eca7163e024b3ebe3457db89f95fbe42fde387fb834224278d4cc7efb9a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4949ce392f380a2582a45606b32d95135b3e56a9583e762f3ac1996c863547cc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5c0fb3392d9c24584df2163a148ec8ef713cd70913520d6ea1ca96bf98f5cbf0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x930302d3d900a36e4e88da53e5504421a3bd1da6b35e057e35db78e5128d3919", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9e697e34cdf3ed3196f993ff33025af9f30032af714456426f0f8fdf4de79a4d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0fcca3e279156bbd2b6261430f60b75a836350924b4b8734da9af22684994967", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc896dc9f295351c723b4cb5d7d75dd36cf20c3ae96bd58aa0dc343dc6f4599b7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3aaea64e9b9a37b46ebccc030d603626ca71ae72e9a68f8ed15f392fb5fb214c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x709705570f7a7f1db31709620369eb2b5c38bdadeb5359866d8219dbde11a793", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5230f2759ffa9eb38e624634427b912439ffafeee64d35d374fdba59a677e23a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4acd1cb94833165fc213f1ab5f7ff97b32e7c3d1503aa26cb5a5b3c932d614ef", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x10c460be7ca4bfcac4779153eccfbfbfda683f70077bcb537b3b49bb912c8480", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9bbe07739ee2b1b1ebb5abc7afe883d3857f7ad3f93736eb64b6eea6e8a0091a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xde5ca1682b2deffc2a529cb45d57006c273aafafc6901c3a5ab6ab0a9875fa31", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4d038887728f369bef69b7f5898bbaa1e5136d1c3a1cdb07fcfc0d5bc9b9035b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6c978d694d68b6593187aeeb3e55ea3abbff745b63998d1ac8233ef342f38f1b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4d188288791f8d88a4b8fb580add9b432889037aed89d938b4aa651dac439c69", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7d7ee1b77bb788dd905416ca4d9aca4201d3195f5361f9de25ee932d142390f9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4c6d9bcf5d0770cdf6eb232049b2356d91683a3cd20d12ca1b79a76308512965", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xeb911bc67ec407a2cc7d411479c94131d5b84f64bd539b0d4fba4092c9b7d8b3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8bed72e5dde71c017371235640ad3b78e116a27628841c77eb13a2a901dd2c0d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4df5a4085f0baea00e20eb1938eac0281c96642b05d21a682ed85faf4dc5909e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb36bd664e310d0c90bb0d73d10b6a67c821f07192e87a1f2dfc09617e58dd654", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf37025fa01eb22f5f78ad22f92c207d7b2e09a14f6d91e95ba92e675e18a1f20", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd2114e0746b52dc68783dd972c0b98f1a511ea7cfde1d41810788ff13eef240f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x793e5fb2e0091e22a276832c918c225516dffd02740a1a62c94ac0c2c0363c56", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4a24eab5798ae90b714fba61e1c8e46ad7e126645c3d711c11acb77720064bc7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb216229bbd388228907b0c1a3cd097acdeb3928d5e866c7f66917852d7dd1079", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd2c2e342d5e5655502f40ce6e0de6630384d854d06d90e1780c2ede5f67cc93a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x43e2e6ed1ab6080ff73eac87e28672a45de87cc89102d9ed37dbda5519bd6924", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6242e32bbb5e7c970850847a8517664a7d9ceaf7833c348312d463c03e1e146c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7bcd777fc980d6a1d592769865db38dc773f67693ba21233effce7647f480866", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x89ed293da80aca0f3eeefa126254a01080cf71f5e693e6240b86b38190a0d145", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3f831d017a0d17da3e1c1cfa5d1919d9794cbb2196c6ce7bd6b5bd310e270e3d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x910ebea7123c19980472195377eb83019e3c406398eb8d2f213fd2ac593065bd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0b380a10060e26df1a06e8f17352a049c66719cc361e1c1aa31dac4274876628", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd0da94159a4b7ce4b56ea1c980f19279297d4ecadafc8aedaad33495aed2838a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2a5d71684ba79f09034e775aacaeeccf7fba3e854794c7651b351d12f6715afe", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd16a8805354e5e82b8e528dea7b61a765d58cb2556663c18c05ef7e3009c81c1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb692c893cffc83611053a81bc6b3153af311be6093de2b5101fa8762b99b14fd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x78ea21c6b8d8a7bf87efe6f14236e5a039cc3320443bdc2fe7d5658646637752", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb280a47bff7f077fff123ee79de527e9ea231467d02bb9c7e2089928fefe3d94", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe401e471e674dde4716f31c00f7ae7e1421ae355b85c18abc2d22e41e491d658", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf7ad9b34726d8385e991a0cd46d8bb84364d73b462184f7b4382b86aeabb53e0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x580096bce7b979c7d63a20947a27c37a61f7a54c49efa62a0e3e1501a5cdc06d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xab19ba5a4bd84eef0ba3fb368a2d2d811443aff2bd7d3306d9451a0c4da5bf1d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x15d83501bc19d9d2be2974723568ab2e54a50cff0a93512a02c98ff601b16187", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x868b26b74c6db85369a5c2b976baa1c00c7da77391ac2e2a1008ecdf882cf204", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x198ba5facbc110082a467c76e312589fea7b9d5b80f468b18c119316b255510b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc993cacfe5417f60c44f519c199768b121dbb9c7208db662c258f8fee7d383dd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x04242d7cccb3bfa4d018a27011b4fbcf44c17b72f0c234bb4808c9b1c66ff1f4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xff3e9d7f8d332810cee4d8bb8ee8ab4d56d6f9e05c7bbe697274cc52e100f5a6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x29e2f1a30efe73417a638f236793b5e2da134588a5d007733d8add73cb03e4e6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x58295d7e7a1be70001ac9a59b9ea6bac3ded9f2870ee60e227156705b56c25ac", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5f6034b921287892cb83a2b42f9d5d276bad6ef9be6b7277369f92d5c1679b9d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xaab77a0e59851deb9a82bbdcbc4f08668faf8d5641efb558fd68303102e68170", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc2b8cd53783bd4878d53e2026908a9f062b1be1017a6fbd7674eb66a9c4b6e89", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x75e391e21f7d55a48cbe6b017514a5ae56c0372ee8b8a6e819ad5ec3bd999882", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x14cc2ba02d3e6a2a9854e40bf12d25ba137285255ba7899e10008732605b418c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9d42a0ce40f50213f1e20236b6dc7d79312eb22cd21f8f58159b8086f7f227cb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8b6b3aaedac2dbd5e5d3638d6ef9120eb18f68780f543e9571cb972fe108f3c1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x661846e081eba44ca9e9349f582ae563f8b5cfc603bc6d0544dc875092b7b209", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcc09295494836377024849dd5fc8a7eec2514f83a25af0418de9a4d311de2bf4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcc51218bd06a61ff355a44c6b3ff35182c7c2b265aa834ac7c9cdf68ce00ccf4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc13ea49baa1a28da0a88457503602a3ee217e05c4911844afb991984f39f01a1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x13859cecab1c35a05faed7236306c40da3a8524baa9031cdd7b7bb9f89442d51", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x736255c9b3f78fc31dd9c3359fba65d1fa1782ab644d9108f1ef9746e42e298e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9f13e6ea1b80bba4eb08c9455efea9187f0ef1a85151a3c6af6867339b80fb1f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdfebbc723e6821ca65f6b49e3415c6165b00332a2af48bfb6e5f8a47fa8f739c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2dc1148223ed9d26f6b13960e0736e01eb7494d676beea1f03aec24c928ed96d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5763786ddd2b9bd85cad7045763a6bf30a07cb602e6ea5599657ff427aeeee2a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2e2655426552125ddfd6181daf8335d0c8737b37d913f189ef67b1432c80b5b9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2ff2068bfa9910ea35acfe4353c1ee9833dcd996cc17db6bd1aabcbfad4fcce8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x22489f34b493cd742d58dbd308f26e74e3d3a54fe402daf07e454c55035e5054", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x87dd1dbc15469a017a622cfd671012bb7fc927a838c01cafebe7cc210264b16a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe9e0b47a0bd4e5a6e74a7c4f6ba542cadde39a14debb2e255a30bc921efe13e3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6b4a1c2682881d0ab1d7150519094145f55f479e61263c73e5d84114bed3eda5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7a6a02032fc72cc50ee0c5c0c43f4d7aac3437051b0c55d59b811929b941399b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x32d5c213cba75a2f0cc738802d7e80e34868d40ec8415f9b2bb102ab47e4e96e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x359e1d038f01c5c8d4317fc2423b8dc1fa83e376362bfeb710987f23cce46256", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe3cc8bc57213afcdb34914e4e722757a9ffc96997a021910692d99aba764dc50", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x741c8578cdaf050f3377912d3376a44bdc866136714ccd7e5ba2ec347a0056cb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4c56c375ba2962b92dcdfe2c848bcaaf4d03b8193aa00d2f4ade5efb20391f5c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xec4e8d5d4195cbc1e34483d7aafec4107e99d558d5d1f6eda6dcfb2660989a1b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x22166a702f306a596b3bd694b93fe28f99b3f07546cbae0427093043a687ba81", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3e30a666c028721c74bcd501b56a852787c83a3e749041ba925526d67b634a77", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6b555f0bf4e53781bcc050d1fac0cb48128394e8f64598597772b408f1a8bdb9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x66d9e33729f271ac0415916ebc26244e714850cbea2baf31ecc445ab226f04fe", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc92d721a4bc5725c3e8fec1d496d3f4a3a54689a1d6706c945640ed8404b1414", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9b429e7ba29a495cc0120e9e5042927bbf75d01e59a0ff054d3a52168b0199cf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3a45dd26482ecdd33e61f739701405c251dd0fe950b38f68c3306532d209038d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0bd436910dec380ac35a6a4c0c3f33b8165eb4fcf5a5cc44afc5bb971dc2a1a0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6d8c22e4f83c9cea868a4f538e840cca314f7277f6ba18e3101922acdb91e66f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x173b55921a6f6496dc580fc3c15aaad7802bb5e4be7c350eaa566a629246fbd2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8c2236f433e9b1594a62a1642c09286f221d454d33a3c7cbf7f0d95e1d51d610", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x251c6d3b77848fdd80cbd2600c8d347a92c4b11d764ac8c9046ea3ae71c127f9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc03a63fd447612f2822eae7d0f89cb6d4ca194b9ac7ea8b285098e4fc5fa7c22", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9bce35dfcb4dd85d934e4bb60355a6e6463950d3a0d8aad245b47a43ba9dc591", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2ffffdb17cb17af8c00f92fd866817526ebefa4fe60ef7773b8135e8ed33bf1c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5537a04678c3c211a44a35933d1e45ad919c08c322e462a9722bf4cdf0fbd71b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xca427afa82195f41dd98cb1d99fe1f74fe496cad592a45d06768a24aa9cf6b39", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x76d9f6d1e3832193639e630579792e92376bf3a74ddcf14582563c40f398ab9a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0609de43a0b72763641d2e36737c891256ba4f564d209f0a1b2ff4d735b6f41d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb72568e04a3f1cc386fcf867b036830cb7231de02bfafefeb259c198b0023cfe", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8cf5a14b63cd322503a5556caed85fa65168d6c52b4b4ab0cf579d1e6fd7bbbd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9cdb003809d6645a6677f7badcc18c6598004dc827f793b2ff952db48f8136c9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x97feb48863299fc630799e58c6605c8aec9f42a04ae67b6e24f2ee1e8cfccc33", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb1451086a3545f87cef3cdb14e8e807a16829d6ee365e1b7f44036a47c81fa84", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0e6138dab81b8423968c8e39e432984b6535649dcfbb5e8296aea4ac0bcc075d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x21ac6c6a6b86d9cd6c3b58760ae93fc37e31de9013098a38e474dbaf02b18595", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9236b221f9fe7ce42309dd200bbec96c99a96ee8accd5974c816e607667bdf67", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x515b9b77ea592d2fb13367b5625f54878c97dec15130153da03fc3877d9ba1ee", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe8a433bfe71f0969827fed155899fb156d8440ba66de78fd06692cc4e595a514", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x14f4ddb89a2daa09ca2adb1fe8d4db358c405572f7fe17ad61c8a211fc5b8bf5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x86515c929788039e9f88341a9ba1195936c855c1799475cc905a88775c60c598", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf7a330514abb9de45602a1502148c0963fb83ca504e89fa4ae31331f09ac5121", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa76974365eee3595fbb8dff35b05bd5b2faf0e1de94e41f21aa05244d697a151", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x02262598f34f5c9ae31ff532f7148e4e9c7682b338eea162e41a2047b082183e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x83cd54cccab9692735f6f01b7ea9e64d72a382eff810cf71ee0293ae73bad4b8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe5f6a20df15656bb566be9bf5c1c6160bbaf23e2367db50d0089a283b6aa292e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe634a7256ae44f257df8bbefa9b60078d7639156f545d2e1ebbcca2d68950348", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5905f794e02bba2e99e83de2b468192f8c14eea9791e0b5477444ccee0841ea5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x40bd7c080cbf4061a8452a3e3c6f8e2a0bc48cae43dfbf282b1fa7533b4b920d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x56f6ec16a857c15f94c445f690dd57acca9fd8119894e23165f79f6b24949593", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x33b25a6fb3d5dcc78ffcadf69f81a9c7017cd6e49ca865036527ddd68df141d1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x069d7a9bfab095e3b199e6aa73e041005809d68b5f3efd732a9c87769289ea0a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x69727f17e7546f4773dd895cb29589a2ce5e314e5389f664d4ea056e9b73dde2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdc67bba1b6894634dd70c54f5272405ec535a93555668f24391ad13316fa45fd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5c5de66012455a64d6ceae659a8e21af70e1de7bdb602fbe518c74ab5b97b4d5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7c6655e7c46c6763a2ac7e6b7cf26240bb7af848cfe45c2a4ddc33cbc78a7b00", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa6e2fc13195ca7d9a2f4b03c5080fd038abcdd2dc2f448e4b7882d1a350df539", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfcf0d044cad4d4880c48a5262d82534db24a262af777af240d4179634b7af5d5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdc8f3094c47de6c00ab02605565b110b500d9573c1cd2de307f844ebfc470882", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9c6172e76a54fda2c92d9dc9a99cea76925b9207f7bc9c6d523524b031510a99", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbb74852e2b2edc73ce03c453f89529f0b1625c0d4ab2fe392408aa54c7805e1d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2fb388261e70d0df386b8405e0835efad02fe04bb436e1682798d27b174603d8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x483be941b8a975bfb39e2f02bded005ffc390785c500783ac165a181809e5dd3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xac9f0d4e1a33b04f1424399eafa37c12dcadb858ea7b6ae979dbbfb377f3e52e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf7d92163b49d93b0fb810b9bb7fb2b3a7a3833495b9f04c1148fa311a538870d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf2369231bdf51d8b3f994b63a675ba413169bcdd27228cee057db8f18348ea7c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd3882b3e164d4c0c2167041b0a693311093a081ac070e3f52720e6602c0c5a2e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfd5530a8635d52ed005ca3bc373afabfe0c3cb19fb98e8f817717851a52b27e0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa97b38b31b82ec9625b5d3e676b157b8feb5f37511cffb1ac0e2a186b32088ad", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xef47811d16008e26090a629d205cb80a57e0515ab73349cd01eb4f18d29782bf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4be7bbacf640bb188f4d7faaba95537c5d81c860af42ca9c84e56f0214d4742d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x47f234638c3bb44e3a35dcd57b7e57727f301caaf9232d4661763a685d3aa5d6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4f57fb560c0ac60b8556a0ddd08a04befb4a3c93d0a62e6923b3b74c9c45a0ec", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9af36beedf7efdedccb631bf95c2b4e14e0fb6b6af4f89f89ff30001f7510bee", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8c2031e28c286fabc972b25f33a1cc8e7458a7149f011e012f7da6071b96f9c5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8a7cc825423deba90728a4c9174bc1cda8a9be367d19e5b62d65244e54542e84", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5e23b8d877b09c3c0ac524d407c44c8b0e3bb58821bcfe4565167a7083180f59", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9b10dd1a624d0c8386e1589b1e658fa6bffd81df66320553a16b0a5e4cbb2591", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4b120106bf85cfeacce7043b684b225c560bbad289ec598478b05144f77d5cd7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcad0de23361c9a3c9016417c7c09c6c3bc364327857f8cbbf605f609c63613d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x617bd1f7adfda4d3eecf2fc9f3a2a23a4554d153b7e2e8f2f9ec6245f0895591", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe4331509ab217acfb4e4b40bc764c2209ecd594bd99499203d5ec7fce8896c9d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2a941fcf112ca1ca9040d05bf4bea98f6fc55d39af7374f5139bffb81044332b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x47458dcad7a6e93772f49e1583d2748fc2e015ea5f1d7dc2484cd17631cd0b8a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0fb2b0318e138860fe7bfb7c56fec1f634c9fff2ea36f65750c1d7cf80ea027a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2642f3a050528d0eae070b0f77b8c921b81bfa0092ecfe1edddd01be017623ac", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x87a6fbfcbb9b0d9a2ec6385917503e5f8d7408301bc8c4a42655890f1a78108f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x18da4a45ce515c4ab3eb8afa44174b9f318141d95ab535c1d1db045bf5521956", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x553efcf52fccbf10a0080f63463bc2bee5b3a8ba02e1e28dba887157bae89528", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x85996dea2f35a72732a8cd5092e333ffb70e045f3e13fa544d236c17b4ef2d21", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x94bec69bb1acd513d31c49937839b75a78534adfccc14c4f5531a6f389eb4c9d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9e8afbd4e30329bafea43c7299b88b8c217a223475c12cb4cf0c4a3caed0ae6f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2c4b42b89f055dd115dccbeccd8bdcbb504e91583eaeb9db8a80f56d1e0b7bdf", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x254007b67493eff25970bc063a478f20a235963572fa560926be9cc65d8f8f07", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x54e0bb23cc00bff9dbf87487e503fa4be2f67dd55facd23c850a46364cf41c11", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdabd0325bbc0e9dd0e5a4c85311edba73490ac5a7a08792cc3acd0b91a168412", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd38a8d24dacb0c6995f62f910453634b0354ddf474005bf4331d2f52920c6470", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa84a8a330b9e9fe537ded4f498701451c63ac270d978f74e5c05d5e28327175e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa45b094d9c0cd12e7667f4c37fb859ba771fbdedc2e116ff1c284bfec92892dc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1401fcbafef8483c7cb35140bf8e40ea4964fc3b22a4d3748dad8121d0586046", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2219f32b9754e926d367e416976e10e081a4c43a7a6f4cf6e39eee807c03a656", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcc6196d4748ee4b9094c9fb91c0f644a5cfb8c4c8992199ab71679dd40419d96", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3767fd6233dd6d07984244076f5e4712d419501841dd247a229e231bfc6e5058", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x63ebf090078e04ca04e6d537fd5dfed321501178a0ded530621c3ecbfb99b2d7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x54b13d6943f339b34e6e917968c2c643eab76199c6ae6dcd1c9f525d588bf294", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb4a8e02b89975ee6a769e4664323a9aea0f31f6e6f3aee452c7cd8eb08506ad1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xeb469386213b9c99d6d8728db7861848816a875f0935598059fa01822cced80e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd95973c0b62a7553a925476eda443859afaec407b9d4ee8bffce872df2e1fa46", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x746f0dbf50c4d8b3565945ad52c0d9615620dbf205b6c9b90c9bec030d724dca", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x46c73b5c58409a1a8dd2f0966b0d29a709469b8ae0a2c6868c0508cc94a75363", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x307de53ecf722df53fcfbe84d19654cd971be40a8a2c76ea601a09c65bad8494", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x799007c24215ea2df01e19ae122cc74bf926eed2a9e151740842e773cbab89d6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9061223e441bc90c86411710f6073fdfbb3a282296fc125f21b683cca7392465", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1b92b498a9da5d50e96a00508e4edd37bc63d51640c7d3e186104203dbb332e3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x85171143bb0f82b2bc4295ed7088e73e290958454a7db013dbe49e0d463da8b0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb4e518944a1f3bc336ef88f695f29882c19a08c98e1bc6fdba98c73019ea1ecb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x942e24e51ad854ace7df33b996b798158fe987567ba982506bec131e0ce07f1c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x40b4bfc9d45488256fe8e8af17ae7ecf20ff937c78f046ec764da18c3680eb32", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1527c8431971ed6536ff56d2900cfe9f09625c2b915075025f801a26a97a7f01", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4108dab7fead83cdec338a9634b652bdc0764073b641a4b998ba52ba9a220148", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xad8738e1a4978724850327a4d9f9bc8bc912f1ce5aa5f8955d1eb3d7b5d71c86", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd60c2a58ea4d6ff7d9286d8108dbe7ccfe7b8b47c9a6e4540ef8ed5cf2154fd3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8d36110d3228244507e12c8d697e73297899606ab7d00f1214ef64e643bc1e23", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x437692c2b03e9452beadb14dd0c3f97138550124f84791e41d18f50cda97ef9b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfccec9d6f96da22960baf1060a8346e88fec6da3b89157749cb02d0a62d1e68a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8aceec0c556c347ec184738e7a7793681a8655d567ef3ec718f727eda9d45adc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xda8925cba3f5301e948a4bf984363a0618ef72b3bf958227851d01142be3b63c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x82218cd2c2a97aec4bcafc3d37499c8d9bf44821027b65680528b57a0e1b714e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x488e5246213c8c209e970dfe92d274323686c2e4646f88179d09d63fabb7b316", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x63ec79eda93930898369b25650c0b92fe68af31e0cd02685c94e31e9dd645d8d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8f9f4077a252ad6566968195afb7370b6243395d64c8a1a58c68a844eb78348b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc43343d8ff809758aa1013699bca7f5bdf8febe35ad4e0697102eab69a6fb581", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x971ad12e96ad1a88e124a0635b337006b11ee33ba7e88225b608b072247cc875", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb35b7d9ccd2102d5fc616be8b08d339486e0dd6b91f30c2135aca963f1b904fe", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xda267c5988d79d9a34b1b5164a6228f579b4768e6d8b94ed3431c194e8436bad", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x24bcf57612377b03ca817ec7fa47df333af29b1337a7ca550edab86d30842556", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x11141a73e2f6396d417c8b9e3264fbf86c4489af8232e03848dbff2df883d3c5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2e6e72ead9d45ff537f00086120e0b52a140338ed25b6d65a8035462240cb05e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3e296434e2e738c66334387bc1f56902e6d5d434f6a6f755b23829558606d2f9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x307ab353ee6d61f01d35c6e5ce41246c6d9d3d77eab6b03544acdd990bda9bb0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8b4b0b37c852632aed41b9b1e257816fbf48db97fa14577aafe3a5d26618567e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6abe2eaa4b84d68f131085ce8c26830f0541753a5558e9a1d5c7fb61e7eb325e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x23724a278ccad07e01386663d65e712df55a8356967a3878d3e65ffeb2b37d7c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x52385804b8c7cfee1d598b6128e8891bb06fb1ec200dd260e41e6b8976165e0b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xda9cabd9d1d8ac5981b5c797080b6753e7549ea341a1fde078ffe201aab28e2b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc5c31b8eac3fe09e18ec56c4fd454081acbf4261885148cd87732a7c060050a6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5561238cb7f01b1ed950a3adc34a46ae4bd8c6fb2b8f74050cf786e101adc64c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2985899e804fd0da23122672dbe6f7d4afea075d3fc2e9e884ae61ce529f14c0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd686a396a8a765f57a5815b8d8f41cba332ec57659f34d0141ebd38e6d7fa2c4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9d6576de05e4fc70458c2ad3a3ee301edd0bb08325abfb732949b80447c43a52", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x983760a4ebf75b2ac3a93531168a0f225d01e5dc6e3568adbd46233ba1fb4fa4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xed2f4583612e6eed1ef7b7220910384a9f26c895a787e6b1379d863b01892461", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf2cdfb00772695032af4226aced18d63e0df5b0018a00770937399532e1f8a00", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x781381403b8099a11d1190a637fc3da78aa26615cc21681f08264b928b37199c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf25afdbd3da77f9a7552bffbbf3617fcde85a132d9d0ce13e132d2eefabe06d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x814e09715114688a44b80bb7b3a3a2d2e9ec6287a04265f1b4055d7a32de6540", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0154c16c050d027f34f56841d04555a9a6be67028866a8951a1b898991ab7405", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x64a84dc5229fe4eb9ef897962af723c3ef5d49e541ebde468f3eddc2b12fea78", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xba611a133778f1cc423941554f5daeef6bbbd65163a41edba789c5db3164278f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1db97224bb57244b0abef47ebe033d867e7cc2119e951040e96c78db345f8f6f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf337b461d5612b4edc26d70f64b5839936ae37f348dee1d618ade18171b56016", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd341ec5292cdddd39e9d89f4793693a5fd39ccb220cb5f8fc8d8cba17fe9e2af", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x51f58c80757634354c5c3ffb12f777476bf5084c97d9415da8bceec28c706e09", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x511be25b9b305888279244f3a67e318a37072f89b651af806772b060c328b167", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa14e912c23a139bffae5af25de1de4587e83a7460cc062e46438d88867a3d41b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe01a8cf5349742ec791b67564593619ae61b9ec6cc5f4a7448a61d08479d03a1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9ddadd1ee87d8868c3cfc9281422f069a5e1c9113d5f99ff9b4fbc16adfe371f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x56ec150900d0e030385b00f201097636da61ca63ea7354b30897cfbbcf9554ba", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc3d1239be28afb7dbd922b36740508018e1070d9af8495403277a247ad99b5a4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb91b4fed6a4694f98d30fe4050c756f5c1968152b0acf1970f794cf7f8a6bef0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x64fb4d9d080c78dabcb06e1443f706371d9d89644818b9e7df907073995667e4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc2c075787fe7c96254b20302024820e9b448172c0e75bd737baa84139802352e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x233b526b337b64dcf583efc5ef480e7efe9bea7105aaa4d009c1f11a1cdf69d1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8703ebf985b26306f36d07aca713228d2a3fa8b7b67f14a641a42c4b50cbb4bc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4f1338178135ed8db1186399912e94aac27c71ffdc81b4808025fba3ad4adf08", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x81718c155feee8dfb66026e9d54b30493a542709061a28febd5abf5519a95da9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x98ca362aa5202a41930a0bea41d700b52c7c46656de235e3af2ba64d4d3d644a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa8494e6548ead720eec95e1cd11bc7c0bf7c642d1774a95aa4a4e1fb19881ec2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcf5b4c0e322208e7f7ae4f3a6924c0d27e4460bd6cf804f453a76e020b383209", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcb26f1f237b2e109c378ca179a20b5f9ece81406488b88a2aaf7c4ab096abbb5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc824bfcdc6f833b849b88e61d6ba171f7c63e3c2bb5952020fdc8eb9eb3c6d92", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf6f856cedadbc84de8bb25b94e3cb93288382fff8717419604299787640c4d27", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb69a565c4dd542203e3a31bc772937623989723fd2ecd1a00804436492c0edd5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7d1f647829fd6c490874a6cc1e7eaa7d7c2b6a95179b753a09af46ed0a579fb1", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa99789c1215127f79c171f5ec5f1157d102c777ff9dd8b6dd72c6b8410629814", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x005522e48bcc165cd44dccec83eea165c6fb9d1b587318feab70fd5f25824d72", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7afed158605489f5e34a424fc27a3b5ae35f4f38cbfbbbcaa4e6c609de276ae3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6906b3d81e5c8d06008d9e560867ef781b2bc2cd35450b9851b027800e38461c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7738a77893ffb89a3d9c20fb2a52aa28ee3537e7d1ea6f0008e85e15bad81095", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x615921682c2c6f9bd20a1008f488ac85c961c3c55b188060877767d60474d005", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2f12d7e91543c0ac9c54e6009a9503504beb86de466798f40a8d1a806d43a90e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2b8b4d15dc1acd1ea2bd0d40f111c8ee52507ef1841ea793f57b64348010b646", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9c53b87f03d75806ae5b6701bb888fefba9d09cb06bd371a2f7c881bf88dcdfb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7879305a6b4e4d5238b266213b7f9b26f09966e589ff7fdaabbcb9223b7efb36", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf8a10195208dae6d584f7650dd9b852c4ebabd3929b1085a90505784eaeb1f5f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdcb8abac7d096dcc60a66dbb5975559b29fc475c55f0dd1979800a811996a073", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x058c8d2c90dd56042e6022257b7da3377bc9e5a944be68f428e1df434526aa0e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5c60960449cd37fee83bd8a64c82d73f56f1a7547de3bbf9cb4cb715529543f3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x236c0fde52875d562fa389fce57c01cdd5e56630d37453ddf256ed128e620c12", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x19ba79cf8a071601e6df7fbf88819dad014061d4bdb13267656a989bc666f1d3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc9df9f3515219a8cbc347ccf1bb536668222379bb161d5fadecd5b70ce7b1ca3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xae4955794b8be7d62991c0ddf3e2c4ba3bf4f6d00decdf2bbec81d35247b71e4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x56c22729b32ab1705620eed2aad1bb41eae9795d61bd2ec8412457b76fa2ede4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x666175d4735f856016e27d6963221948599f99f92f5ac0f9fc68a80580fdf06d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x043f541526056fcef7e6333718e9d50169b96a37ec5c4b8eec8bb7284778619b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x85aa46c0da40754c1e9acc2df3e2834a43d394e5be07eed9f103efc3da9416b6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x270d424e2777b2045e1bba67a768879bd2865b6e47e81d46cca41f2e5abf4a63", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe3f5961d038e9bc6f012278992d6bad2b3e8cff48f6a0d046b2569dd2106fb97", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x31ee3ded4cb19d999853da65151c8054dc9c2425d28f62da57217dba7691dbc3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe64ac0d0d99198fb5788f242a8cc07921960b81ed4f786547e58b466d2f5cfe8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa7a153323cd971db64db8a75cb3fd8f24bf0b7e941e7b853abfc1c6b8e85a992", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5665e21d6ce6f5a930a9c00fd80d3b00a1a0a2799bce2f03019958affc02cab8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf7b544ebae3b42c5e5f676fd51a5c07257c8ce34654ab34f0e442c4b43a95eae", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x489a91b45847df2a80567ba93d4ea915c3af346698194e1938b229483989e7d6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xda8fcb46c40578975343c4594bbfff5a0bfe23fa7f8d56a5cf964a89a0da528e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1a1728ea8d6eb5e71f94a98c026afbf7752654085caca021553b6e43d117ee14", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd709a59abef3a60de7fadf1de9e6ed02b595440929c8d4af2bf590d77b3d3d92", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf9b24ccbd38d4ebf3482eedf696542df79f250b79a98ee7375ab484c43432ced", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2a7239f0b14cba4281cb10c3ab79851be9672bd6b5a9ec6e6318a6d7cf73c708", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf37e1211a2f530ace647a1522da30ce0dea57c2240ff6f2bbad1e50638ab637b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7d84b278d749368042b14c1a3a7876262f332a67392bc7d4b9d678737d5795e2", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x245a53c87ce149a24dd4e9ca692189280dc90d175d8da80086936887e3f2a70e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x54efbd0600a5bfa708e5078326e9e29ff07ac063b801441132643e8f79a27f6f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7c4dee4fc6b55a834e617a85b1204424c5dd55b13689ed94eecba1b8246c0f19", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb7e6b3ce644a56e76a07e2a9afc3fa30771322954aa853213cb08a99948c685c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x711965341c6103bdc4d062d394dbd4262225500aa02fe2057289232040056e22", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8ac628db83931421133839ed757dde99c0022ad2a52811dfe3f73cf9b6e4aae4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x74c2bf06b2d1ad7d70bb8cca342eef0beea4d969326311121b2f5618abfd6027", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x722b95fef027cb339b52dfc39460141cc04e54e18347889e7489d5d0cf1531d8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2ef95250c7f9d9b43d157f5fae15dd6e998f7378723f84289447c63a605fdb73", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd866620f46559a0f90db581ff55380b4fd5603188d9d31caa2aa6161bc8d7f9d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe558c134ee3c0ecc913043f63ae56f1c4804417f6fa142df9224a9a698ea5649", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x65f465c73ce115ebd67fbc30625c531af65cf1a7a818a52310f06e6c1d6ffc18", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x24f171d52caf9a648688bc3553fc53174d451a94eaa99aa69f8f9b6ae7fdb1df", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5046f83b56e5268d434ffccded096345097df4678f923166f864243a76bf454f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3ea5bbc4c4cf3f706285a14ce48014fac56af26715ce3c86c62931ed359ca416", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0dc31e82422787cc1224772a08ac8d25af9f3b2e30d374b6c4f583f363c8e4a0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6b1b04a2f4349ed045c1886bf5eab6d3f7de99e247a6ecdd72e23cf8bda90172", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x50dfc0ebd83417d284147f88df5621d9fd51cbe4e49d48f62262932d364e065a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x50cad2e6c2d6289dcdede1d6344da673796339a8e69b4d59c1b7098d225c3b68", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8a2af4524c97becbea8b185f403e6d71a4f4178a167aaf98301b35519608a7c9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x825f4b3904d8efc4b12cd7e6d2b3a3268ce3be8746f204ed0f3f097ba9f30df4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbc1d5ba81f5d623f310fd9dc2f31dbad29104178314467b9fcd3e988a23d1c21", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9b73b5a35f62fb1b372ad61a1fad6f0cc32b00be87b06383cd5330e5264ec7f7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5f9fbd0e6f56e526fd67ed36061797a7309285fb1116bcf71670e8b1bb4e053d", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9d791d02b6dffb1d65b8e53be0f9dc7869b8083792149e00b809df7a6eb0f896", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x97f4a764c5e4f08f9667089a77d2c7da0b730dffd97024e253bcfc2f0517d631", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2279d9a0bccde787bd9a608fe564ca8806bd8d80f93221b82066b8f7792a11ef", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa5478bf23b9b4cc2bea31371ac29dc2681d95fd56931ad75fccf509b4f8c3e02", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x05e874d6ad5e5d17d8e70eb7baf952dcd578d7e0d36840259bfb9b2996b5d6a5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1dd5883b149760dab6978331193ebfe5166a66db248b4b8e96cee29074dc38c4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7a67e4799401ab66476e5d2532799e3649a63167f94c9c52d52b500bd671633b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8220ad378eaad006285bb194cc12a3eedcf940285edf2be3af7fb9590d00d49e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x63fe68d90b419929f394064e93bc43154fb89b515a496a925bbc95ae879585b6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x16d7cc8ab2ccfd638df0fd79fc1e824b97542691ac8501f432ebce29942d22f5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcf18ffa283b97360dd099afb8ef1db04ac0a70de41143ad1b48caf2ca9a4e850", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5df8caf5ff8313b16bbf8051b63c90c195f2bdccf1ce262db853a6f237eba9f4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1811df8724f070fc726c399cece5462d7e9654a0fdc79478a31cd9e6fd0833e8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfdbb238981ae8ed0ef9d0fabf1451a29b0317df700a70bdcdde4c0375a905059", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x65d39fa664b60cf07ec624eb0a57b0ff9ad6d58e1a093799a4b1e97663bd7bdb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1d31838498ea6806aa029c04445e8b8b09bee4f293c1e4af31c24cdcd99a329c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x44fb4fd8216daf5d990e0d8640517f319a69c915eb7035a42f645247d2c3ab87", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9057fff239600da51cd7bd0d9cbc2300d99a4dda49cdfaae9eafff5b855637e6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x690a2f91aadec0c27c163f10d1443d6b1c2acca037edbbef3779982d06c2f20c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7ec4528c44cd3194cd36229c9ee78fe479e822b11173ce9cc450e8ef804b26c0", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4df9b24ab8cf5697e8a8c3e644876d707bc4f27145e96051ed26a31ea045b700", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xb868c440205f7793612adcea3605e833974b601f928f0fec840e5dc58a900826", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe0be37a735291b0975fcca06ac526a21e46036af7b8654b76e72915c432b549b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa54f61d301a1f8ec850607a73f61c41a1288d4d1b20824e4c5fcef62aa9d39c3", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xda9eb3ac08bbf405c09e312ad21b5a97f372911a433c4dd72da481a9f89a8b56", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xf3fe1396ef2d15fb11d941eff67bb7d5c0be7b2c3b3a88b60c77d9be276bf90a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x70cd2a5bb696352e5e8456c15b6db747eaaaafa1e92e6278d1e6674e2b772aa8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xdb844cb9b41fa1895415bad66e2cfc3690d09fb4f84dc5b5f576fc535587afe7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xbd4251c17866f4f8580d22fe6dcd424621fb889507f917acac68c06b1f45b01c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4aedc4f4367468124ee5d14174a25701ae529e9813a8bdd099c5dd9289a1d7b5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x5832e22e1710ba770165c1a680dbb69a4f1c735d90e85d3d8f05ff6e0039ba67", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4127ba5fa8b16a9952ccee1252b409db951b8b533cb78a7a8d9a301fc0853f12", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x164ac3c451da1b08dd083902490c771b062c3a0cf6017463682e5c716aa47f2e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x79304e45f6e0b0be087f054c710aaad086864aa5c24daecdd4a238d443b8e043", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xfed76c4161b212fcedea269f7569ffcd10ef2f3ead46671b6ef3697086c1bf3a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9597a8b074465c4bfbbe59cf6edb49a2fcfe7a6b5e93b471c4bb9ba55cc11e57", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8222f4e1e94afe29898f9b9f16f4cb607ad4aa1598c44c768efe6e3b0fbc2384", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x83db01cbd355b4a29595502ebc74fdd6e6458806eb1fdc553252f34e7a944cf8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd56a70fada4c8616903b46c06d72973826bcb0bfec7a22ced98475f80d1eae76", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x907ed619f1d7b240a3d9aec714741a59cf37353bd78e17142df87d06b671aebe", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x9e40cd5d03e19812078b1a6c2113c00a2c9c076b32465ff42e55d45d371a43bd", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4bc5d25e448e7d44a76908e6bd6c8419f95ecc5fb0b0e2ad878f92ca6e943e2a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xa75b00d439642d2aef62d528592f0170d206d6350fe438a7589458ee423be7a5", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x40d070928a7998c561499134ace3d5ec383130ab4136a09a67b8ca0fd546c8bb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x1272bdcebefc6846497e91700764e6adabfb02ba96da4bfbd31cbacb62215c98", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x22745fdb654ef19c15d785786414a811e196301d63895fc2f8787bf42845dc57", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xee4dbcca15f39371e30257ad31a84d8b8a3864ab5138016f1414cf7f72511562", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe79787271cc8523b595107351ffa9c50dbe53826e0a4f6c18f288f8869472c23", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3d1bcba0693f0bbba6ac6700e5c36260d4fcf10f64b40b6734d2d467fa81509a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x66b2eb526411b04cdc6d90cb3fbf0f6704082e60cc226d28e2d067b1d2c9ee6b", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x380d602eb5c18ef8303002c6832f781ab6bf0e32ba9ec74c9323397238aa5262", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc25e713aaf20cd9a5a5d2ca9b0fd05d64cdf371cac46125a8dd5cbe1754ac06a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd528f75b49db5d0208c1983837641873c2545dc40411cd15c9c929d23823a05c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xba935593465eaf7c3d80eab3f75c1898f7fb86a43dd046c75d13904c6a456002", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x287b04005d6d63780fb3b7d763ea7a45ca8fe9e85d1eca350e997ecb617281b4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd0e358ddf8c3653b85b8808022629959b49e430956d972e6c3ac896e4d0da8b6", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6f825a2820141ff50fb434ab79785875ee0eb2f0972fe3e173c1dd1d1d649d83", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4030004685a9d45e1492b885c0750678a21e600cf302e5362c4b00bc2de9b479", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x879b4e7c3536f3fdf7d021981e49b8c462566d8c92c026611ebc1e4b724f7b05", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7e1b4509041aa830ad44c800c65b04b765e48a5967c6d89a3e5b3f204c8e46db", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x3b06c0eba3a1e041fcaeb2db842430ffdb53981d26275bcd6c3be89c6a31ad38", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x04728e2a323d7c89efd3163f5dc64ef72eb90c8671539c7cddc7c607d0997f11", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x0f6c1c307a6e63c2dc51784db4398df3660577ebe5e8a03b4d1f04ac7db63e3a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x6eb9c25b407569f8f8e8fad7ceb3a25341ece25f76551f4289494685344183d8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd972777d29f83608544350dab1c4c5dc84ca44b9152a595e77be706e31b1f24a", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x17ea6502f62085842f3f9091a8360f51faae164fdc60574960f89e3d3e2d1647", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2ea1f1664aebe274cddb43725754322e314c732061fea2382487fb0ce60d9826", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd69f8bd093ac1c1fe252ea241a336e173137ae6165df7ee1f85df7235866fd59", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x4e36b3e2df7b54a1e8266482750ed0314424238d01738865a4ced58ff1159d16", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe6adf81cfd184e124af51f59a89423c6bd278f71c1cd50c056e60ae15983b289", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe0ff6a205815af9611e15931fdd8790643e2b19444b5fe7ddb3cbd0d7cb97f57", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x80c93215736f2faa342c6dc02e7df64f894051371611301151a1401cbf57306c", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8bb3e5df94db9896c524ef1217cd9c3dc511d38e2ff3c514604612b9a0ef0414", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x003dc41d63d7c80a73073f8fca593996b75d8c32e47fc18d46533051de0b1e02", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x961c8b3dd175141821518ea4f1dcb2108426c10a4bb98b5a5d93d8f003b72294", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x02ffb2f4992065218bc8c2c3843336b90e23b0bd9ed3a313b05c57d6139c66eb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcc16da37f53ca7ba362d8092e9461435030f952bc417c9456135f0de60c47667", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xe2f92badfd0ea5948a106cb6c17b8f2c88dc4d19f4e3ed8e8e86c993151238f9", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7dfea1783c0f39e8deb6dad2a18b5575dd585bbd8bed883771a77675e36c3ee7", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x809c91b7b496e8682b6c7c97a680cc02e6ad88d5a0833df79d74825103baf46f", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd638e395ce0f9ba70e1e9912ad90021596df3339e5b6c8f569f698b9905ece01", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x31ebdc17eda95592b50f302d46f7a0572d719a74692d726adf90334d19c2beee", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xcf7171e11f50e4dd3dfc5d73afa991db2f677b19d2a803ff5e3417508a6549a8", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xc9ca30782bc694b26eda1826769ce71a027671d2032c8e276b65b662bfa26c26", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x50777f5a3ce16445e63411bf1e865a2a11d5ca3c4cbc1de00808a52180bd8d3c", - "balance": "100000000000000000000000000000000" - } -] diff --git a/deployment/config/account-config/test-11-accounts.json b/deployment/config/account-config/test-11-accounts.json deleted file mode 100644 index 479fda8..0000000 --- a/deployment/config/account-config/test-11-accounts.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "privateKey": "0xc5e8f61d1ab959b397eecc0a37a6517b8e67a0e7cf1f4bce5591f3ed80199122", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x87630b2d1de0fbd5044eb6891b3d9d98c34c8d310c852f98550ba774480e47cc", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x275cc4a2bfd4f612625204a20a2280ab53a6da2d14860c47a9f5affe58ad86d4", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x7f307c41137d1ed409f0a7b028f6c7596f12734b1d289b58099b99d60a96efff", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x2a8aede924268f84156a00761de73998dac7bf703408754b776ff3f873bcec60", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x8b24fd94f1ce869d81a34b95351e7f97b2cd88a891d5c00abc33d0ec9501902e", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29085", - "balance": "100000000000000000000000000000000" - }, - { - "privateKey": "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29086", - "balance": "100000000000000000000000000000000" - } -] diff --git a/deployment/config/deployed-contracts/deployed-contracts.json b/deployment/config/deployed-contracts/deployed-contracts.json deleted file mode 100644 index 73443bb..0000000 --- a/deployment/config/deployed-contracts/deployed-contracts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "voterRegistry": "0x09053b652DD2315485636143437D0146a108250e", - "flareSystemManager": "0x09053b652DD2315485636143437D0146a108250e", - "fastUpdateIncentiveManager": "0x29f4Cc77294A079C8a10F6d186b221AC6077a36A", - "fastUpdater": "0x1457E7c9AfF702c5036A2e559B1c5D0ef1127Efd" -} \ No newline at end of file diff --git a/deployment/config/ftso.ts b/deployment/config/ftso.ts deleted file mode 100644 index 41101a3..0000000 --- a/deployment/config/ftso.ts +++ /dev/null @@ -1,30 +0,0 @@ -import BN from 'bn.js' - -import { RangeOrSampleFPA } from '../utils' - -export const EPOCH_LEN = 25 -export const WEIGHT = 1000 - -// Fast Updater params -export const FEEDS = [0, 1, 2, 3, 4, 5] as const -export const ANCHOR_PRICES = [ - new BN(69321.98), - new BN(3537.78), - new BN(182.8), - new BN(19.363), - new BN(1.6636), - new BN(0.0000302), -] -export const SUBMISSION_WINDOW = 2 - -// Incentive Manager params -export const BASE_RANGE = RangeOrSampleFPA(2 ** -8) -export const BASE_SAMPLE_SIZE = RangeOrSampleFPA(2) - -// Precision = (BASE_RANGE / BASE_SAMPLE_SIZE) * 2^15 -// Scale = (1 + BASE_RANGE / BASE_SAMPLE SIZE) * 2^15 - -export const SAMPLE_INCREASE_LIMIT = RangeOrSampleFPA(5) -export const RANGE_INCREASE_PRICE = 5 -export const DURATION = 8 -export const BACKLOG_LEN = 20 diff --git a/deployment/config/index.ts b/deployment/config/index.ts deleted file mode 100644 index 6d8cb9a..0000000 --- a/deployment/config/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './paths' -export * from './ftso' diff --git a/deployment/config/network-config/config-coston2.json b/deployment/config/network-config/config-coston2.json deleted file mode 100644 index c47c8fa..0000000 --- a/deployment/config/network-config/config-coston2.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rpcUrl": "https://coston2-api.flare.network/ext/C/rpc", - "gasLimit": "2500000", - "gasPriceMultiplier": 1.2 -} diff --git a/deployment/config/network-config/config-docker.json b/deployment/config/network-config/config-docker.json deleted file mode 100644 index 9a98809..0000000 --- a/deployment/config/network-config/config-docker.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rpcUrl": "ws://chain:8545/", - "gasLimit": "2500000", - "gasPriceMultiplier": 1.2 -} diff --git a/deployment/config/network-config/config-local.json b/deployment/config/network-config/config-local.json deleted file mode 100644 index 5796b55..0000000 --- a/deployment/config/network-config/config-local.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rpcUrl": "ws://127.0.0.1:8545/", - "gasLimit": "2500000", - "gasPriceMultiplier": 1.2 -} diff --git a/deployment/config/network-config/config-scdev.json b/deployment/config/network-config/config-scdev.json deleted file mode 100644 index 51626f0..0000000 --- a/deployment/config/network-config/config-scdev.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rpcUrl": "http://127.0.0.1:9650/ext/bc/C/rpc", - "gasLimit": "2500000", - "gasPriceMultiplier": 1.2 -} diff --git a/deployment/config/paths.ts b/deployment/config/paths.ts deleted file mode 100644 index b8fcfb4..0000000 --- a/deployment/config/paths.ts +++ /dev/null @@ -1,81 +0,0 @@ -import path from 'path' - -export type PathConfig = { - readonly configPath: string - readonly accountsPath: string - readonly contractsPath: string -} - -const BASE_PATH = path.join(path.resolve(), 'deployment', 'config') - -const TEST_PATHS = { - configPath: path.join(BASE_PATH, 'network-config', 'config-local.json'), - accountsPath: path.join( - BASE_PATH, - 'account-config', - 'test-11-accounts.json' - ), - contractsPath: path.join( - BASE_PATH, - 'deployed-contracts', - 'deployed-contracts.json' - ), -} - -const pathConfig = (): PathConfig => { - const network = process.env['NETWORK'] as - | 'local-test' - | 'docker' - | 'from-env' - | 'coston2' - - switch (network) { - case 'local-test': - case 'docker': - return { - configPath: path.join( - BASE_PATH, - 'network-config', - 'config-docker.json' - ), - accountsPath: path.join( - BASE_PATH, - 'account-config', - 'test-11-accounts.json' - ), - contractsPath: path.join( - BASE_PATH, - 'deployed-contracts', - 'deployed-contracts.json' - ), - } - case 'coston2': - return { - configPath: path.join( - BASE_PATH, - 'network-config', - 'config-coston2.json' - ), - accountsPath: path.join( - BASE_PATH, - 'account-config', - 'test-11-accounts.json' - ), - contractsPath: path.join( - BASE_PATH, - 'deployed-contracts', - 'deployed-contracts.json' - ), - } - case 'from-env': - return { - configPath: process.env['CONFIG_PATH'] ?? '', - accountsPath: process.env['ACCOUNTS_PATH'] ?? '', - contractsPath: process.env['CONTRACTS_PATH'] ?? '', - } - default: - return TEST_PATHS - } -} - -export const PATHS = pathConfig() diff --git a/deployment/docker-compose.yaml b/deployment/docker-compose.yaml deleted file mode 100644 index 2b7cf21..0000000 --- a/deployment/docker-compose.yaml +++ /dev/null @@ -1,106 +0,0 @@ -version: '3.8' - -services: - chain: - container_name: 'chain' - image: fast-updates - command: bash -c "yarn hardhat node > /dev/null" - restart: always - setup: - container_name: 'setup' - image: fast-updates - command: bash -c "sleep 5 && yarn hardhat configure-chain && yarn hardhat deploy-contracts --network docker" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - daemon: - container_name: 'daemon' - image: fast-updates - command: bash -c "sleep 35 && yarn hardhat run-admin-daemon --network docker" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider1: - container_name: 'provider1' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 1" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider2: - container_name: 'provider2' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 2" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider3: - container_name: 'provider3' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 3" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider4: - container_name: 'provider4' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 4" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider5: - container_name: 'provider5' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 5" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider6: - container_name: 'provider6' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 6" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider7: - container_name: 'provider7' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 7" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider8: - container_name: 'provider8' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 8" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always - provider9: - container_name: 'provider9' - image: fast-updates - command: bash -c "sleep 35 && yarn ts-node deployment/scripts/run-fast-updates-provider.ts 9" - volumes: - - './:/fast-updates/deployment/simulation' - depends_on: - - chain - restart: always diff --git a/deployment/scripts/deploy-contracts.ts b/deployment/scripts/deploy-contracts.ts deleted file mode 100644 index 5459602..0000000 --- a/deployment/scripts/deploy-contracts.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { writeFileSync } from 'fs' - -import type { HardhatRuntimeEnvironment } from 'hardhat/types' - -import type { FastUpdateIncentiveManagerContract } from '../../typechain-truffle/contracts/fastUpdates/implementation/FastUpdateIncentiveManager' -import type { FastUpdaterContract } from '../../typechain-truffle/contracts/fastUpdates/implementation/FastUpdater' -import type { FlareSystemMockContract } from '../../typechain-truffle/contracts/fastUpdates/test/FlareSystemMock' -import { - ANCHOR_PRICES, - BACKLOG_LEN, - BASE_RANGE, - BASE_SAMPLE_SIZE, - DURATION, - EPOCH_LEN, - PATHS, - RANGE_INCREASE_PRICE, - SAMPLE_INCREASE_LIMIT, - SUBMISSION_WINDOW, -} from '../config' -import type { FastUpdatesContractAddresses } from '../utils' -import { - getOrCreateLogger, - loadProviderAccount, - randomInt, - syncTimeToNow, -} from '../utils' - -const logger = getOrCreateLogger('deploy-contracts') - -/** - * Deploys the contracts required for fast updates. - * @param hre - The Hardhat runtime environment. - * @returns A promise that resolves to the addresses of the deployed contracts. - */ -export async function deployContracts( - hre: HardhatRuntimeEnvironment -): Promise { - await syncTimeToNow(hre) - const artifacts = hre.artifacts - - const flareSystemMock = await ( - artifacts.require('FlareSystemMock') as FlareSystemMockContract - ).new(randomInt(2n ** 256n - 1n).toString(), EPOCH_LEN) - logger.info( - `Deployed contract VoterRegistry/FlareSystemManager at ${flareSystemMock.address}` - ) - - const governance = loadProviderAccount(web3, 0, PATHS.accountsPath) - const fastUpdateIncentiveManager = await ( - artifacts.require( - 'FastUpdateIncentiveManager' - ) as FastUpdateIncentiveManagerContract - ).new( - governance.address, - governance.address, - BASE_SAMPLE_SIZE, - BASE_RANGE, - SAMPLE_INCREASE_LIMIT, - RANGE_INCREASE_PRICE, - DURATION - ) - logger.info( - `Deployed contract FastUpdateIncentiveManager at ${fastUpdateIncentiveManager.address}` - ) - - const fastUpdater = await ( - artifacts.require('FastUpdater') as FastUpdaterContract - ).new( - governance.address, - flareSystemMock.address, - flareSystemMock.address, - fastUpdateIncentiveManager.address, - ANCHOR_PRICES, - SUBMISSION_WINDOW, - BACKLOG_LEN - ) - logger.info(`Deployed contract FastUpdater at ${fastUpdater.address}`) - - const deployedContracts: FastUpdatesContractAddresses = { - voterRegistry: flareSystemMock.address, - flareSystemManager: flareSystemMock.address, - fastUpdateIncentiveManager: fastUpdateIncentiveManager.address, - fastUpdater: fastUpdater.address, - } - - writeDeployedContracts(deployedContracts) - logger.info(`Finished deploying all contracts`) - return deployedContracts -} - -function writeDeployedContracts(deployed: FastUpdatesContractAddresses): void { - writeFileSync(PATHS.contractsPath, JSON.stringify(deployed, null, 2)) - logger.info(`Contract addresses written to: ${PATHS.contractsPath}`) -} diff --git a/deployment/scripts/run-admin-daemon.ts b/deployment/scripts/run-admin-daemon.ts deleted file mode 100644 index 1fe738c..0000000 --- a/deployment/scripts/run-admin-daemon.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { readFileSync } from 'fs' - -import type { Web3Account } from 'web3-eth-accounts' -import type { TransactionReceipt } from 'web3-types' - -import { ExamplePriceFeedProvider } from '../../client/providers/ExamplePriceFeedProvider' -import { Web3Provider } from '../../client/providers/Web3Provider' -import { FEEDS, PATHS } from '../config' -import type { FastUpdatesContractAddresses, NetworkParameters } from '../utils' -import { - createWeb3Instance, - getOrCreateLogger, - loadProviderAccount, -} from '../utils' - -/** - * Runs the admin daemon. - * - * @param parameters - The network parameters. - * @returns A Promise that resolves to void. - */ -export async function runAdminDaemon( - parameters: NetworkParameters -): Promise { - const logger = getOrCreateLogger('admin-daemon', 'admin-daemon') - - const web3 = createWeb3Instance(parameters.rpcUrl, logger) - const contractAddresses = JSON.parse( - readFileSync(PATHS.contractsPath).toString() - ) as FastUpdatesContractAddresses - let account: Web3Account - if (process.env['DATA_PROVIDER_VOTING_KEY'] != undefined) { - const privateKey = process.env['DATA_PROVIDER_VOTING_KEY'] - account = web3.eth.accounts.privateKeyToAccount(privateKey) - } else { - account = loadProviderAccount(web3, 0, PATHS.accountsPath) - } - const web3Provider = await Web3Provider.create( - web3, - contractAddresses, - parameters, - account - ) - - const genesisBlockSec = await web3Provider.getGenesisTimeSec() - const priceFeedProvider = new ExamplePriceFeedProvider( - FEEDS.length, - 0, - genesisBlockSec - ) - - for (;;) { - try { - const onChainPrices: string[] = - await web3Provider.fetchCurrentPrices(Array.from(FEEDS)) - const offChainPrices = priceFeedProvider.getCurrentPrices( - Array.from(FEEDS) - ) - const blockNum = Number(await web3.eth.getBlockNumber()) - - logger.info( - `Feeds ${FEEDS.length}, Block: ${blockNum}, onChainPrices: ${onChainPrices.join(', ')}, offChainPrices: ${offChainPrices.join(', ')}` - ) - - const promises = [] - promises.push( - web3Provider - .advanceIncentive() - .then((receipt: TransactionReceipt) => { - logger.info( - `AdvanceIncentive successful at block ${receipt.blockNumber}` - ) - }) - .catch((error: unknown) => { - logger.error(`(advanceIncentive), ${error as string}`) - }) - ) - promises.push( - web3Provider - .freeSubmitted(1) - .then((receipt: TransactionReceipt) => { - logger.info( - `FreeSubmitted successful at block ${receipt.blockNumber}` - ) - }) - .catch((error: unknown) => { - logger.error(`(freeSubmitted), ${error as string}`) - }) - ) - promises.push( - web3Provider - .applySubmitted(2) - .then((receipt: TransactionReceipt) => { - logger.info( - `ApplySubmitted successful at block ${receipt.blockNumber}` - ) - }) - .catch((error: unknown) => { - logger.error(`(applySubmitted), ${error as string}`) - }) - ) - promises.push(web3Provider.waitForBlock(blockNum + 1)) - await Promise.all(promises) - } catch (e) { - logger.error(e) - } - } -} diff --git a/deployment/utils/fixed-point-arithmetic.ts b/deployment/utils/fixed-point-arithmetic.ts deleted file mode 100644 index 87c224d..0000000 --- a/deployment/utils/fixed-point-arithmetic.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Converts a range or sample size value to a fixed-point arithmetic representation. - * @param x - The range value to be converted. - * @returns The fixed-point arithmetic representation of the range value. - * @throws Error if the range value is out of bounds. - */ -export function RangeOrSampleFPA(x: number): string { - const xInteger = Math.floor(x) - const xFractional = x - xInteger - const fractionalDigits = xFractional - .toString(16) - .substring(2) - .padEnd(30, '0') - const integerDigits = xInteger.toString(16) - if (integerDigits.length > 2) - throw new Error('range or sample size too large') - return '0x' + (integerDigits + fractionalDigits).replace(/^0+/, '') -} diff --git a/deployment/utils/index.ts b/deployment/utils/index.ts deleted file mode 100644 index fa673f1..0000000 --- a/deployment/utils/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './time' -export * from './fixed-point-arithmetic' -export * from '../../client/utils/loader' -export * from '../../client/utils/logger' -export * from '../../client/utils/web3' -export * from '../../client/utils/sortition' diff --git a/deployment/utils/time.ts b/deployment/utils/time.ts deleted file mode 100644 index cdab61e..0000000 --- a/deployment/utils/time.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { time } from '@nomicfoundation/hardhat-network-helpers' -import type { HardhatRuntimeEnvironment } from 'hardhat/types' - -/** - * Increase time to the given timestamp for hardhat networks. - * Note: will fail if using on a non-hardhat network. - */ -async function increaseTimeTo(timestampSec: number): Promise { - const currentBlockTime = await time.latest() - if (timestampSec <= currentBlockTime) { - console.log( - `Already ahead of time, not increasing time: current ${currentBlockTime}, requested ${timestampSec}` - ) - return - } - - await time.increaseTo(timestampSec) -} - -/** - * Update time to now for hardhat networks. - * If the time is too far in the past we get issues when calculating price epoch ids. - */ -export async function syncTimeToNow( - hre: HardhatRuntimeEnvironment -): Promise { - if (isHardhatNetwork(hre)) { - const now = Math.floor(Date.now() / 1000) - await increaseTimeTo(now) - } -} - -function isHardhatNetwork(hre: HardhatRuntimeEnvironment): boolean { - const network = hre.network.name - return ( - network === 'local' || network === 'localhost' || network === 'hardhat' - ) -} diff --git a/flare-smart-contracts-v2 b/flare-smart-contracts-v2 new file mode 160000 index 0000000..cd79c44 --- /dev/null +++ b/flare-smart-contracts-v2 @@ -0,0 +1 @@ +Subproject commit cd79c446fbfba1f8454c5176dda2a6b171697bb8 diff --git a/go-client/Dockerfile b/go-client/Dockerfile new file mode 100644 index 0000000..2129543 --- /dev/null +++ b/go-client/Dockerfile @@ -0,0 +1,29 @@ +# build executable +FROM golang:1.21 AS builder + +WORKDIR /build + +# Copy and download dependencies using go mod +COPY go.mod go.sum ./ +RUN go mod download + +# Copy the code into the container +COPY . ./ + +# Build the applications +RUN go build -o /app/client ./main.go +RUN go build -o /app/keygen ./keygen/keygen.go + +FROM debian:latest AS execution + +WORKDIR /app + +ENV PATH="/app/bin:${PATH}" +RUN mkdir bin + +COPY --from=builder /app/client bin/client +COPY --from=builder /app/keygen bin/keygen + +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ + +CMD ["./bin/client", "--config", "config.toml"] diff --git a/go-client/Makefile b/go-client/Makefile new file mode 100644 index 0000000..af1d33c --- /dev/null +++ b/go-client/Makefile @@ -0,0 +1,61 @@ +FLARE_SMART_CONTRACTS_V2 = ../flare-smart-contracts-v2 +GO_CLIENT_RELATIVE = ../go-client +SOLC_OPTIONS = @openzeppelin/=node_modules/@openzeppelin/ flare-smart-contracts/=node_modules/flare-smart-contracts/ --evm-version london --optimize --optimize-runs 200 +CONTRACTS_FOLDER = contracts-interface + +compile: compile-solc compile-abigen + +compile-solc: compile-solc-base compile-solc-mock +compile-solc-base: compile-solc-fast_updater-abi compile-solc-fast_updater-bin compile-solc-fast_updates-configuration-abi compile-solc-fast_updates-configuration-bin compile-solc-fast_update-incentive-abi compile-solc-fast_update-incentive-bin compile-solc-submission-abi +compile-solc-mock: compile-solc-mock-abi compile-solc-mock-bin + +compile-solc-fast_updater-abi: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --abi contracts/fastUpdates/implementation/FastUpdater.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + +compile-solc-fast_updater-bin: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --bin contracts/fastUpdates/implementation/FastUpdater.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + +compile-solc-fast_updates-configuration-abi: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --abi contracts/fastUpdates/implementation/FastUpdatesConfiguration.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + +compile-solc-fast_updates-configuration-bin: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --bin contracts/fastUpdates/implementation/FastUpdatesConfiguration.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + +compile-solc-fast_update-incentive-abi: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --abi contracts/fastUpdates/implementation/FastUpdateIncentiveManager.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + +compile-solc-fast_update-incentive-bin: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --bin contracts/fastUpdates/implementation/FastUpdateIncentiveManager.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + +compile-solc-submission-abi: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --abi contracts/protocol/implementation/Submission.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + +compile-solc-mock-abi: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --abi contracts/fastUpdates/mock/FlareSystemMock.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + +compile-solc-mock-bin: + cd $(FLARE_SMART_CONTRACTS_V2); solc $(SOLC_OPTIONS) --bin contracts/fastUpdates/mock/FlareSystemMock.sol -o $(GO_CLIENT_RELATIVE)/$(CONTRACTS_FOLDER) --overwrite + + +compile-abigen: compile-abigen-flare_system_manager compile-abigen-flare_mock compile-abigen-voter_registry compile-abigen-fast_updater compile-abigen-fast_update-configuration compile-abigen-fast_update-incentive compile-abigen-submission + +compile-abigen-flare_system_manager: + cd $(CONTRACTS_FOLDER); abigen --abi=IFlareSystemsManager.abi --pkg=system_manager --out=system_manager/FlareSystemManager.go + +compile-abigen-flare_mock: + cd $(CONTRACTS_FOLDER); abigen --bin=FlareSystemMock.bin --abi=FlareSystemMock.abi --pkg=mock --out=mock/FlareSystemMock.go + +compile-abigen-voter_registry: + cd $(CONTRACTS_FOLDER); abigen --abi=IVoterRegistry.abi --pkg=voter_registry --out=voter_registry/VoterRegistry.go + +compile-abigen-fast_updater: + cd $(CONTRACTS_FOLDER); abigen --bin=FastUpdater.bin --abi=FastUpdater.abi --pkg=fast_updater --out=fast_updater/FastUpdater.go + +compile-abigen-fast_update-configuration: + cd $(CONTRACTS_FOLDER); abigen --bin=FastUpdatesConfiguration.bin --abi=FastUpdatesConfiguration.abi --pkg=fast_updates_configuration --out=fast_updates_configuration/FastUpdatesConfiguration.go + +compile-abigen-fast_update-incentive: + cd $(CONTRACTS_FOLDER); abigen --bin=FastUpdateIncentiveManager.bin --abi=FastUpdateIncentiveManager.abi --pkg=incentive --out=incentive/FastUpdateIncentiveManager.go + +compile-abigen-submission: + cd $(CONTRACTS_FOLDER); abigen --abi=Submission.abi --pkg=submission --out=submission/Submission.go diff --git a/go-client/README.md b/go-client/README.md new file mode 100644 index 0000000..02e10e4 --- /dev/null +++ b/go-client/README.md @@ -0,0 +1,219 @@ +# FTSO Fast Updates Client + +This repository contains an implementation of a FTSO Fast Updates client that can be used to submit +fast updates. The FTSO Fast Updates Client is implemented to connect to a RPC blockchain node +and continuously generates verifiable random numbers based on its private key and current +block number to determine if it can submit a price update. In this case it makes a transaction +from one of the provided accounts calling the SubmitUpdates function on the FastUpdater +contract. Multiple accounts can be provided for the submissions in the case of multiple simultaneous +fast updates, to not miss the submission window. + +## Prerequisites + +The client is implemented in Go (tested with version 1.21). + +## Configuration + +The configuration is read from a `toml` file. Config file can be specified using the command line parameter `--config`, e.g., +`./fast-updates-client --config config.toml`. The default config file name is `config.toml`. +Here is a list of example configuration parameters. Note that to participate as a fast updater, one must be registered at the +FTSO Top Level VoterRegistry contract, where it registers its **voter private key** and **sortition private kay** (see +below on how to generate the sortition key). + +```toml +[client] +# voters private key registered in the VoterRegistry, +# can also be set up with environment variable PRIVATE_KEY +private_key = "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb" +# voters sortition key registered in the VoterRegistry contract that enables to generate verifiable +# randomness to determine the order of clients submitting the fast updates +# can also be set up with environment variable SORTITION_PRIVATE_KEY +sortition_private_key = "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb" +# address of the FastUpdater contract +fast_updater_address = "0xbe65A1F9a31D5E81d5e2B863AEf15bF9b3d92891" +# address of the Submission contract to which the updates are sent +submission_address = "0x18b9306737eaf6E8FC8e737F488a1AE077b18053" +# address of the top level FlareSystemManager contract +flare_system_manager = "0x919b4b4B561C72c990DC868F751328eF127c45F4" +# address of the FastUpdatesIncentiveManager contract +incentive_manager_address = "0x919b4b4B561C72c990DC868F751328eF127c45F4" +# parameter defining when a fast update can be submitted +submission_window = 10 + +[transactions] +# private keys of accounts from which the fast updates will be +# submitted - the client needs multiple addresses to not miss the +# submission window in case multiple fast updates can be submitted +# for blocks in a short interval +# can also be set up with environment variable ACCOUNTS +accounts = [ + "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb", + "0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569", + "0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131", +] +gas_limit = 8000000 +value = 0 +gas_price_multiplier = 1.2 + + +[logger] +level = "INFO" +file = "./logger/logs/fast_updates_client.log" +console = true + +[chain] +node_url = "http://127.0.0.1:8545/" +chain_id = 1337 +``` + +It is advised that the private key, sortition private key, and accounts private keys +are set using environment variables to avoid accidentally exposing them. + +## Price Updates Provider + +To provide meaningful updates of prices/feeds on the FastUpdates contract a user needs +to implement its own updates logic. For this it needs to implement a struct with +functionality that fits the following interface. + +```go +type UpdatesProvider interface { + GetUpdates() (*fast_updater.Deltas, string, error) +} +``` + +See `updates/updates_provide.go` for the interface and `updates/updates_random.go` for a simple +implementation of a price provider generating random updates. When an implementation is provided, +one can define in the `main.go` which price provider will be used. todo: should we change this to an +api call? + +## Running the FTSO Fast Updates Client + +Assuming that the configuration file was set and the provider is +registered, simply run + +```bash +go run main.go --config config.toml +``` + +or build and run the binaries with + +```bash +go build . +./fast-updates-client --config config.toml +``` + +## Handling failed transactions + +The FTSO Fast Updates Client is implemented to submit fast updates to the +specified FastUpdater contract. In file `client/transaction_queue.go` there +is an implementation of a queue that accepts tasks (transaction requests +for fast updates) and executes them on parallel threads. In the case of +a failed transaction, which can happen for multiple reasons such as failed +connection to the RPC node, missed submission block, etc., an error handler +is implemented, see + +```go +func (txQueue *TransactionQueue) ErrorHandler() +``` + +function in the file `client/transaction_queue.go`. Currently, in the +case of an error, the client only logs the error and dismisses the +transaction. Alternative actions such as resubmitting the transaction +can be implemented, but this can be risky since the submission window +might already be closed. + +## Generating sortition key and signing + +To participate in the Fast Updates protocol, a client needs to have a private/public sortition +key, that needs to be registered at the top level FTSO voter registry. + +To generate the key one can run + +```bash +go run keygen/keygen.go +``` + +and the key should be printed in the console. Additionally, to register the public key at the +top level FTSO voter registry, one needs to provide a proof of the correctness of the public +key. For this a user needs to sign its address. Use + +```bash +go run keygen/keygen.go --key 0x1512de600a10a0aac01580dbfc080965b89ed2329a7b2bf538f4c7e09e34aa1 --address 0xd4e934C2749CA8C1618659D02E7B28B074bf4df7 +``` + +where the key value needs to be replaced by the generated private key and the address value needs +to be replaced by the actual address that will be used to sign the updates. +Alternatively, one can save and read the key from a file and save the signature with: + +```bash +go run keygen/keygen.go --key_out keys.out +go run keygen/keygen.go --key_file keys.out --address 0xd4e934C2749CA8C1618659D02E7B28B074bf4df7 --sig_out sig.out +``` + +where the address value needs to be replaced by the actual address that will be used to sign +the updates. The signature should +be saved in the specified file. + +## Tests + +### End to end test + +See `client/client_test.go` for a test run of the client using +a Ganache network. It is assumed that `docker` is installed for +running a local Ganache blockchain node. The test deploys +contracts needed for Fast Updates protocol together with a mock +contract representing the functionality of the Flare system. +Furthermore, the test register a fast updates provider to the +system and runs the client submitting fast updates for a few blocks. + +```bash +go test -v client/client_test.go +``` + +### Unit tests + +Run + +```bash +go test -v deltas/deltas_random_test.go +go test -v sortition/sortition_test.go +``` + +for the unit tests. + +### Simulation of the Fast Updates protocol using multiple clients on a local Hardhat node + +Using the submodule repository `flare-smart-contracts-v2` found [here](../flare-smart-contracts-v2/) one can deploy all the Fast Updates contracts +together with the whole Flare system and voter repository. Navigate to the +repository and run + +```bash +yarn install +yarn compile +yarn sim-node & yarn sim-run +``` + +This will start a Flare system on a local Hardhat node, register a couple of +data providers and start a simulation of FTSO v2 feed providers. +To additionally run a simulation of Fast Updates providers navigate to +`go-client/tests/` folder and run feed value provider with 3 clients using Docker: + +```bash +docker compose up value-provider client1 client2 client3 +``` + +The configuration files `tests/config1.toml`, `tests/config2.toml`, +and `tests/config3.toml` should be set so that the clients can participate +in the protocol. + +## Compiled ABI of Flare-Smart-Contracts-V2 + +The Fast Updates Go client uses and interface to the contracts that was compiled using `solc` compiler and `abigen` tool. In the case +that the contracts are changed, the interface needs to be changed as well. Use the provided +`Makefile` to compile the new interfaces with + +```bash +make compile +``` + +assuming the submodule repository `flare-smart-contracts-v2` is up to date. diff --git a/go-client/client/client.go b/go-client/client/client.go new file mode 100644 index 0000000..b64da90 --- /dev/null +++ b/go-client/client/client.go @@ -0,0 +1,272 @@ +package client + +import ( + "crypto/ecdsa" + "fmt" + "math/big" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/ethclient" + + "fast-updates-client/config" + "fast-updates-client/contracts-interface/fast_updater" + "fast-updates-client/contracts-interface/fast_updates_configuration" + "fast-updates-client/contracts-interface/incentive" + "fast-updates-client/contracts-interface/mock" + "fast-updates-client/contracts-interface/submission" + "fast-updates-client/contracts-interface/system_manager" + "fast-updates-client/logger" + "fast-updates-client/provider" + "fast-updates-client/sortition" +) + +type FastUpdatesClient struct { + params config.FastUpdateClientConfig + chainClient *ethclient.Client + valuesProvider provider.ValuesProvider + signingAccount *Account + transactionAccounts []*Account + fastUpdater *fast_updater.FastUpdater + fastUpdatesConfig *fast_updates_configuration.FastUpdatesConfiguration + submission *submission.Submission + flareSystemMock *mock.Mock + flareSystemManager *system_manager.SystemManager + IncentiveManager *incentive.Incentive + key *sortition.Key + registeredEpochs map[int64]bool + transactionQueue *TransactionQueue + allFeeds []provider.FeedId +} + +type Account struct { + Address common.Address + PrivateKey *ecdsa.PrivateKey +} + +const ( + refreshFeedsBlockInterval = 100 +) + +func CreateFastUpdatesClient(cfg *config.Config, valuesProvider provider.ValuesProvider) (*FastUpdatesClient, error) { + fastUpdatesClient := FastUpdatesClient{} + fastUpdatesClient.params = cfg.Client + fastUpdatesClient.valuesProvider = valuesProvider + + var err error + fastUpdatesClient.chainClient, err = ethclient.Dial(cfg.Chain.NodeURL) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: Dial: %w", err) + } + + fastUpdatesClient.signingAccount = &Account{} + privateKey := cfg.Client.PrivateKey + if privateKey[:2] == "0x" { + privateKey = privateKey[2:] + } + fastUpdatesClient.signingAccount.PrivateKey, err = crypto.HexToECDSA(privateKey) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: HexToECDSA: %w", err) + } + publicKey := fastUpdatesClient.signingAccount.PrivateKey.Public() + publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey) + if !ok { + return nil, fmt.Errorf("CreateFastUpdatesClient: Error casting public key to ECDSA: %w", err) + } + fastUpdatesClient.signingAccount.Address = crypto.PubkeyToAddress(*publicKeyECDSA) + + fastUpdatesClient.transactionAccounts = make([]*Account, len(cfg.Transactions.Accounts)) + for i, accountPrivateKey := range cfg.Transactions.Accounts { + fastUpdatesClient.transactionAccounts[i] = &Account{} + + privateKey := accountPrivateKey + if privateKey[:2] == "0x" { + privateKey = privateKey[2:] + } + fastUpdatesClient.transactionAccounts[i].PrivateKey, err = crypto.HexToECDSA(privateKey) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: HexToECDSA: %w", err) + } + publicKey := fastUpdatesClient.transactionAccounts[i].PrivateKey.Public() + publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey) + if !ok { + return nil, fmt.Errorf("CreateFastUpdatesClient: Error casting public key to ECDSA: %w", err) + } + fastUpdatesClient.transactionAccounts[i].Address = crypto.PubkeyToAddress(*publicKeyECDSA) + } + + fastUpdatesClient.fastUpdater, err = fast_updater.NewFastUpdater( + common.HexToAddress(cfg.Client.FastUpdaterAddress), fastUpdatesClient.chainClient, + ) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: NewFastUpdater: %w", err) + } + fastUpdatesClient.IncentiveManager, err = incentive.NewIncentive( + common.HexToAddress(cfg.Client.IncentiveManagerAddress), fastUpdatesClient.chainClient, + ) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: NewIncentive: %w", err) + } + + fastUpdatesClient.fastUpdatesConfig, err = fast_updates_configuration.NewFastUpdatesConfiguration( + common.HexToAddress(cfg.Client.FastUpdatesConfigurationAddress), fastUpdatesClient.chainClient, + ) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: NewFastUpdatesConfiguration: %w", err) + } + + if cfg.Client.SubmissionAddress != "" { + fastUpdatesClient.submission, err = submission.NewSubmission( + common.HexToAddress(cfg.Client.SubmissionAddress), fastUpdatesClient.chainClient, + ) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: NewSubmission: %w", err) + } + } + + fastUpdatesClient.flareSystemMock, err = mock.NewMock( + common.HexToAddress(cfg.Client.MockAddress), fastUpdatesClient.chainClient, + ) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: NewMock: %w", err) + } + fastUpdatesClient.flareSystemManager, err = system_manager.NewSystemManager( + common.HexToAddress(cfg.Client.FlareSystemManagerAddress), fastUpdatesClient.chainClient, + ) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: NewSystemManager: %w", err) + } + + if cfg.Client.SortitionPrivateKey == "" { + fastUpdatesClient.key, err = sortition.KeyGen() + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: KeyGen: %w", err) + } + logger.Info("generated new private sortition key: %s", "0x"+fastUpdatesClient.key.Sk.Text(16)) + } else { + fastUpdatesClient.key, err = sortition.KeyFromString(cfg.Client.SortitionPrivateKey) + if err != nil { + return nil, fmt.Errorf("CreateFastUpdatesClient: KeyGen: %w", err) + } + } + + fastUpdatesClient.registeredEpochs = make(map[int64]bool) + + cfg.Transactions.ChainId = big.NewInt(int64(cfg.Chain.ChainId)) + fastUpdatesClient.transactionQueue = NewTransactionQueue(fastUpdatesClient.chainClient, fastUpdatesClient.transactionAccounts, cfg.Transactions) + go fastUpdatesClient.transactionQueue.Run() + + if fastUpdatesClient.params.MaxWeight == 0 { + fastUpdatesClient.params.MaxWeight = 4096 + } + + return &fastUpdatesClient, nil +} + +func (client *FastUpdatesClient) Run(startBlock, endBlock uint64) error { + var blockNum uint64 + var err error + if startBlock != 0 { + blockNum = startBlock + } else { + blockNum, err = client.CurrentBlockNumber() + if err != nil { + return fmt.Errorf("Run: CurrentBlockNumber: %w", err) + } + } + + epoch, err := client.GetCurrentRewardEpochId() + if err != nil { + return fmt.Errorf("Run: GetCurrentRewardEpochId: %w", err) + } + + seed, err := client.GetSeed(epoch) + if err != nil { + return fmt.Errorf("Run: GetCurrentSeed: %w", err) + } + + weight, err := client.GetMyWeight() + if err != nil { + logger.Error("error getting weight %s", fmt.Errorf("Run: GetMyWeight: %w", err)) + } + weight = min(weight, uint64(client.params.MaxWeight)) + logger.Info("staring block %d, epoch %d, my weight %d", blockNum, epoch, weight) + + client.allFeeds, err = client.GetCurrentFeedIds() + if err != nil { + return fmt.Errorf("Run: GetCurrentFeedIds: %w", err) + } + logger.Info("Fetched feed ids: %v", client.allFeeds) + + for { + if blockNum%refreshFeedsBlockInterval == 0 { + client.allFeeds, err = client.GetCurrentFeedIds() + if err != nil { + return fmt.Errorf("Run: GetCurrentFeedIds: %w", err) + } + } + + epochCheck, err := client.GetCurrentRewardEpochId() + if err != nil { + return fmt.Errorf("Run: GetCurrentRewardEpochId: %w", err) + } + + // todo: this check should be changed to something that happens a few seconds before the epoch changes + // to avoid failed transactions + if epochCheck > epoch { + client.transactionQueue.EmptyQueue() + + blockNum, err = client.CurrentBlockNumber() + if err != nil { + return fmt.Errorf("Run: CurrentBlockNumber: %w", err) + } + epoch = epochCheck + weight, err = client.GetMyWeight() + if err != nil { + logger.Error("error getting weight %s", fmt.Errorf("Run: GetMyWeight: %w", err)) + } + weight = min(weight, uint64(client.params.MaxWeight)) + if weight == 0 { + return fmt.Errorf("Run: Not registered in epoch: %d", epoch) + } + + seed, err = client.GetSeed(epoch) + if err != nil { + return fmt.Errorf("Run: GetCurrentSeed: %w", err) + } + logger.Info("new epoch, my weight weight %d, current block %d", weight, blockNum) + } + cutoff, err := client.GetCurrentScoreCutoff() + if err != nil { + return fmt.Errorf("Run: GetCurrentScoreCutoff: %w", err) + } + + updateProofs, err := sortition.FindUpdateProofs(client.key, seed, cutoff, big.NewInt(int64(blockNum)), weight) + if err != nil { + return fmt.Errorf("Run: FindUpdateProofs: %w", err) + } + for _, updateProof := range updateProofs { + logger.Info("scheduling update for block %d replicate %d", updateProof.BlockNumber, updateProof.Replicate) + client.SubmitUpdates(updateProof) + } + + // do not calculate in advance more than specified + err = WaitForBlock(client.transactionQueue, blockNum-uint64(client.params.AdvanceBlocks)) + if err != nil { + return fmt.Errorf("Run: WaitForBlock: %w", err) + } + blockNum++ + if endBlock != 0 && blockNum > endBlock { + client.transactionQueue.WaitToEmptyQueue() + return nil + } + } +} + +func (client *FastUpdatesClient) WaitToEmptyRequests() { + client.transactionQueue.WaitToEmptyQueue() +} + +func (client *FastUpdatesClient) Stop() { + client.transactionQueue.StopQueue() +} diff --git a/go-client/client/client_requests.go b/go-client/client/client_requests.go new file mode 100644 index 0000000..81534cb --- /dev/null +++ b/go-client/client/client_requests.go @@ -0,0 +1,242 @@ +package client + +import ( + "context" + "fmt" + "math/big" + "strings" + "time" + + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/core/types" + "github.com/pkg/errors" + + "fast-updates-client/config" + "fast-updates-client/contracts-interface/mock" + "fast-updates-client/logger" + "fast-updates-client/provider" + "fast-updates-client/sortition" + "fast-updates-client/updates" +) + +func (client *FastUpdatesClient) CurrentBlockNumber() (uint64, error) { + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + currentBlockNum, err := client.chainClient.BlockNumber(ctx) + cancelFunc() + + return currentBlockNum, err +} + +func (client *FastUpdatesClient) GetCurrentScoreCutoff() (*big.Int, error) { + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + ops := &bind.CallOpts{Context: ctx} + score, err := client.fastUpdater.CurrentScoreCutoff(ops) + cancelFunc() + + return score, err +} + +func (client *FastUpdatesClient) GetSeed(rewardEpochId int64) (*big.Int, error) { + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + ops := &bind.CallOpts{Context: ctx} + seed, err := client.flareSystemManager.GetSeed(ops, new(big.Int).SetInt64(rewardEpochId)) + cancelFunc() + + return seed, err +} + +func (client *FastUpdatesClient) GetScale() (*big.Int, error) { + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + ops := &bind.CallOpts{Context: ctx} + scale, err := client.IncentiveManager.GetScale(ops) + cancelFunc() + + return scale, err +} + +func (client *FastUpdatesClient) GetCurrentRewardEpochId() (int64, error) { + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + ops := &bind.CallOpts{Context: ctx} + epoch, err := client.flareSystemManager.GetCurrentRewardEpochId(ops) + cancelFunc() + if err != nil { + return 0, err + } + + return epoch.Int64(), nil +} + +func (client *FastUpdatesClient) GetMyWeight() (uint64, error) { + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + ops := &bind.CallOpts{Context: ctx} + weight, err := client.fastUpdater.CurrentSortitionWeight(ops, client.signingAccount.Address) + cancelFunc() + if err != nil || weight == nil { + return 0, err + } + + return weight.Uint64(), nil +} + +func (client *FastUpdatesClient) GetPrices(feedIndexes []int) ([]float64, error) { + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + ops := &bind.CallOpts{Context: ctx} + + feedIndexesBigInt := make([]*big.Int, len(feedIndexes)) + for i, index := range feedIndexes { + feedIndexesBigInt[i] = big.NewInt(int64(index)) + } + + feedValues, err := client.fastUpdater.FetchCurrentFeeds(ops, feedIndexesBigInt) + cancelFunc() + + floatValues := RawChainValuesToFloats(feedValues) + return floatValues, err +} + +func (client *FastUpdatesClient) GetCurrentFeedIds() ([]provider.FeedId, error) { + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + ops := &bind.CallOpts{Context: ctx} + rawFeedIs, err := client.fastUpdatesConfig.GetFeedIds(ops) + cancelFunc() + if err != nil { + return nil, errors.Wrap(err, "error getting feed ids") + } + + feedIds := make([]provider.FeedId, len(rawFeedIs)) + for i, price := range rawFeedIs { + feedIds[i] = provider.FeedId{ + Category: price[0], + Name: strings.TrimRight(string(price[1:]), "\x00"), + } + } + + return feedIds, nil +} + +func (client *FastUpdatesClient) Register(epoch int64) { + compReq := ComputationRequest{Function: func(txOpts *bind.TransactOpts) error { return client.register(epoch, txOpts) }} + client.transactionQueue.InputChan <- compReq +} + +// only on mocked +func (client *FastUpdatesClient) register(epoch int64, txOpts *bind.TransactOpts) error { + policy := mock.FlareSystemMockPolicy{Pk1: client.key.Pk.X.Bytes(), Pk2: client.key.Pk.Y.Bytes(), Weight: uint16(1000)} + + logger.Info("registering %s for epoch %d", client.signingAccount.Address, epoch) + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + txOpts.Context = ctx + tx, err := client.flareSystemMock.RegisterAsVoter(txOpts, big.NewInt(int64(epoch)), client.signingAccount.Address, policy) + cancelFunc() + if err != nil { + return err + } + + ctx, cancelFunc = context.WithTimeout(context.Background(), time.Duration(config.TxTimeoutMillisDefault)*time.Millisecond) + receipt, err := bind.WaitMined(ctx, client.chainClient, tx) + cancelFunc() + if err != nil { + return err + } + if receipt.Status == 0 { + return fmt.Errorf("transaction failed") + } + client.registeredEpochs[epoch] = true + + return nil +} + +func (client *FastUpdatesClient) SubmitUpdates(updateProof *sortition.UpdateProof) { + beforeBlock := updateProof.BlockNumber.Uint64() + uint64(client.params.SubmissionWindow) - 1 + compReq := ComputationRequest{ + Function: func(txOpts *bind.TransactOpts) error { + return client.submitUpdates(updateProof, txOpts) + }, + BeforeBlock: beforeBlock, + AfterBlock: updateProof.BlockNumber.Uint64(), + } + + client.transactionQueue.InputChan <- compReq +} + +func (client *FastUpdatesClient) submitUpdates(updateProof *sortition.UpdateProof, txOpts *bind.TransactOpts) error { + // get feed values from providers and calculate deltas relative to on-chain values + + // 0 value indicates unsupported feed. TODO: need to differentiate between 0 and absent value better. + providerRawValues, err := client.valuesProvider.GetValues(client.allFeeds) + if err != nil { + return errors.Wrap(err, "error getting feed values") + } + + supportedFeedIndexes := []int{} + providerValues := []float64{} + for i, value := range providerRawValues { + if value != 0 { + supportedFeedIndexes = append(supportedFeedIndexes, i) + providerValues = append(providerValues, float64(value)) + } + } + + // get current prices from on-chain + chainValues, err := client.GetPrices(supportedFeedIndexes) + if err != nil { + return err + } + + // get current scale + scale, err := client.GetScale() + if err != nil { + return err + } + + // calculate deltas for provider and on-chain prices + deltas, deltasString, err := provider.GetDeltas(chainValues, providerValues, supportedFeedIndexes, scale) + if err != nil { + return err + } + + // prepare update + update, err := updates.PrepareUpdates(updateProof, deltas, client.signingAccount.PrivateKey) + if err != nil { + return err + } + + // submit update + logger.Info("submitting update for block %d replicate %d: %s", updateProof.BlockNumber, updateProof.Replicate, deltasString) + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + txOpts.Context = ctx + + var tx *types.Transaction + // submit directly to Fast Updates contract if the submission contract is not available + if client.submission == nil { + tx, err = client.fastUpdater.SubmitUpdates(txOpts, *update) + cancelFunc() + if err != nil { + return err + } + } else { + strippedPackedCall, err := updates.PrepareUpdatesSubmission(update) + if err != nil { + return err + } + tx, err = client.submission.SubmitAndPass(txOpts, strippedPackedCall) + cancelFunc() + if err != nil { + return err + } + } + + // wait for the transaction to be confirmed + ctx, cancelFunc = context.WithTimeout(context.Background(), time.Duration(config.TxTimeoutMillisDefault)*time.Millisecond) + receipt, err := bind.WaitMined(ctx, client.chainClient, tx) + cancelFunc() + if err != nil { + return err + } + if receipt.Status == 0 { + return fmt.Errorf("transaction failed") + } + logger.Info("successful update for block %d replicate %d in block %d", updateProof.BlockNumber, updateProof.Replicate, receipt.BlockNumber.Int64()) + + return nil +} diff --git a/go-client/client/client_test.go b/go-client/client/client_test.go new file mode 100644 index 0000000..d4cc5a6 --- /dev/null +++ b/go-client/client/client_test.go @@ -0,0 +1,135 @@ +package client_test + +import ( + "context" + "fast-updates-client/client" + "fast-updates-client/config" + "fast-updates-client/logger" + "fast-updates-client/provider" + "fast-updates-client/tests/test_utils" + "os" + "os/exec" + "testing" + "time" + + "github.com/ethereum/go-ethereum/ethclient" +) + +func TestClient(t *testing.T) { + chainNode := os.Getenv("CHAIN_NODE") + chainAddress := "" + valueProviderBaseUrl := "" + if chainNode == "docker_ganache" { + chainAddress = "http://ganache:8545/" + valueProviderBaseUrl = "http://value-provider:3101/" + } else { + // running a ganache node + logger.Info("starting a ganache chain node") + // cmd := exec.Command("bash", "-c", "docker run --publish 8544:8545 trufflesuite/ganache:latest --chain.hardfork=\"london\" --miner.blockTime=5 --wallet.accounts \"0xc5e8f61d1ab959b397eecc0a37a6517b8e67a0e7cf1f4bce5591f3ed80199122, 10000000000000000000000\" \"0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb, 10000000000000000000000\" \"0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569, 10000000000000000000000\" \"0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131, 10000000000000000000000\"") + cmd := exec.Command("bash", "-c", "docker compose up ganache") + cmd.Dir = "../tests" + // cmd.Stdout = os.Stdout + // cmd.Stderr = os.Stderr + go cmd.Run() //nolint:errcheck + chainAddress = "http://127.0.0.1:8545/" + + // runs an external provider that returns fixed values for testing + runValueProvider() + valueProviderBaseUrl = "http://localhost:3101/" + } + + // set chain parameters + cfgChain := config.ChainConfig{NodeURL: chainAddress, ChainId: 1337} + // wait for the chain node to be ready + for { + time.Sleep(10 * time.Second) + client, err := ethclient.Dial(cfgChain.NodeURL) + if err != nil { + continue + } + _, err = client.BlockByNumber(context.Background(), nil) + if err == nil { + break + } + } + + // set configuration parameters + cfgClient := config.FastUpdateClientConfig{ + PrivateKey: "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb", + SortitionPrivateKey: "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb", + SubmissionWindow: 5, + MaxWeight: 1024, + } + cfgTransactions := config.TransactionsConfig{ + Accounts: []string{"0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb", + "0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569", + "0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131"}, + GasLimit: 8000000, + GasPriceMultiplier: 1.2, + } + cfgLog := config.LoggerConfig{Level: "DEBUG", Console: true, File: "../logger/logs/flare-ftso-indexer_test.log"} + + cfg := config.Config{Client: cfgClient, Chain: cfgChain, Logger: cfgLog, Transactions: cfgTransactions} + config.GlobalConfigCallback.Call(cfg) + + logger.Info("deploying contracts") + contracts := test_utils.Deploy(&cfg) + + cfg.Client.FastUpdaterAddress = contracts.FastUpdater.Hex() + cfg.Client.FastUpdatesConfigurationAddress = contracts.FastUpdatesConfiguration.Hex() + cfg.Client.FlareSystemManagerAddress = contracts.Mock.Hex() + cfg.Client.MockAddress = contracts.Mock.Hex() + cfg.Client.IncentiveManagerAddress = contracts.IncentiveManager.Hex() + + updatesProvider := provider.NewHttpValueProvider(valueProviderBaseUrl) + + client, err := client.CreateFastUpdatesClient(&cfg, updatesProvider) + if err != nil { + t.Fatal(err) + } + + logger.Info("registering for this and next epoch") + + err = test_utils.Register(&cfg, 2) + if err != nil { + t.Fatal("Registering error: %w", err) + } + + blockNum, err := client.CurrentBlockNumber() + if err != nil { + t.Fatal(err) + } + + err = client.Run(blockNum, blockNum+10) + if err != nil { + t.Fatal(err) + } + client.Stop() + + if chainNode != "docker_ganache" { + time.Sleep(time.Second) + // stopping a ganache node + cmd := exec.Command("bash", "-c", "docker compose stop ganache") + cmd.Dir = "../tests" + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err = cmd.Run() //nolint:errcheck + if err != nil { + t.Fatal(err) + } + stopValueProvider() + } +} + +// Can set VALUE_PROVIDER_IMPL to "fixed" or "random" to return 0.01 or random values for all feeds. +func runValueProvider() { + cmd := exec.Command("bash", "-c", "VALUE_PROVIDER_IMPL=random docker compose up value-provider") + cmd.Dir = "../tests" + go cmd.Run() //nolint:errcheck +} + +func stopValueProvider() { + cmd := exec.Command("bash", "-c", "docker compose stop value-provider") + cmd.Dir = "../tests" + go cmd.Run() //nolint:errcheck +} diff --git a/go-client/client/transaction_queue.go b/go-client/client/transaction_queue.go new file mode 100644 index 0000000..6514491 --- /dev/null +++ b/go-client/client/transaction_queue.go @@ -0,0 +1,214 @@ +package client + +import ( + "context" + "fast-updates-client/config" + "fast-updates-client/logger" + "fmt" + "math/big" + "sync" + "time" + + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/ethclient" +) + +const queueLen = 50 + +type TransactionQueue struct { + InputChan chan ComputationRequest + ErrChan chan *ErrorRequest + chainClient *ethclient.Client + numInQueue int + transactionConfig config.TransactionsConfig + accounts []*Account + toTrash bool + CurrentBlockNum uint64 + Stop bool + sync.Mutex +} + +type ComputationRequest struct { + Function func(*bind.TransactOpts) error + BeforeBlock uint64 + AfterBlock uint64 +} + +type ErrorRequest struct { + Err error + Request ComputationRequest +} + +func NewTransactionQueue(client *ethclient.Client, accounts []*Account, txConfig config.TransactionsConfig) *TransactionQueue { + txQueue := TransactionQueue{ + InputChan: make(chan ComputationRequest, queueLen), + ErrChan: make(chan *ErrorRequest, queueLen), + chainClient: client, + accounts: accounts, + transactionConfig: txConfig, + } + + return &txQueue +} + +func (txQueue *TransactionQueue) Run() { + for i := 0; i < len(txQueue.accounts); i++ { + go txQueue.QueueExecution(i) + } + go txQueue.ErrorHandler() + go txQueue.CurrentBlockNumUpdater() +} + +func (txQueue *TransactionQueue) QueueExecution(i int) { + for { + if txQueue.Stop { + return + } + compReq := <-txQueue.InputChan + txQueue.Lock() + txQueue.numInQueue++ + txQueue.Unlock() + + if txQueue.toTrash { + logger.Info("ignoring submission") + txQueue.ErrChan <- nil + continue + } + + if compReq.AfterBlock != 0 { + txQueue.WaitForBlockWithCheck(compReq.AfterBlock) + } + + // again check if the transaction should be ignored + if txQueue.toTrash { + logger.Info("ignoring submission") + txQueue.ErrChan <- nil + continue + } + + if compReq.BeforeBlock != 0 { + if txQueue.CurrentBlockNum > compReq.BeforeBlock { + err := fmt.Errorf("skipping submission, too late") + txQueue.ErrChan <- &ErrorRequest{err, compReq} + continue + } + } + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + nonce, err := txQueue.chainClient.PendingNonceAt(ctx, txQueue.accounts[i].Address) + cancelFunc() + if err != nil { + txQueue.ErrChan <- &ErrorRequest{err, compReq} + continue + } + ctx, cancelFunc = context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + gasPrice, err := txQueue.chainClient.SuggestGasPrice(ctx) + cancelFunc() + if err != nil { + txQueue.ErrChan <- &ErrorRequest{err, compReq} + continue + } + opts, err := bind.NewKeyedTransactorWithChainID(txQueue.accounts[i].PrivateKey, txQueue.transactionConfig.ChainId) + if err != nil { + txQueue.ErrChan <- &ErrorRequest{fmt.Errorf("CreateFastUpdatesClient: NewKeyedTransactorWithChainID: %w", err), compReq} + } + opts.Value = big.NewInt(int64(txQueue.transactionConfig.Value)) // in wei + opts.GasLimit = uint64(txQueue.transactionConfig.GasLimit) // in units + + opts.Nonce = big.NewInt(int64(nonce)) + gasPriceFloat := new(big.Float).Mul(new(big.Float).SetInt(gasPrice), big.NewFloat(txQueue.transactionConfig.GasPriceMultiplier)) + opts.GasPrice, _ = gasPriceFloat.Int(nil) + + err = compReq.Function(opts) + if err != nil { + txQueue.ErrChan <- &ErrorRequest{err, compReq} + } else { + txQueue.ErrChan <- nil + } + + } +} + +func (txQueue *TransactionQueue) ErrorHandler() { + // todo: define actions when error happens + for { + if txQueue.Stop { + return + } + errReq := <-txQueue.ErrChan + if errReq != nil { + logger.Error("Error executing transaction: %s", errReq.Err) + } + txQueue.Lock() + txQueue.numInQueue-- + txQueue.Unlock() + } +} + +func (txQueue *TransactionQueue) EmptyQueue() { + txQueue.Lock() + txQueue.toTrash = true + txQueue.Unlock() + for { + if txQueue.numInQueue == 0 { + txQueue.Lock() + txQueue.toTrash = false + txQueue.Unlock() + return + } + } +} + +func (txQueue *TransactionQueue) WaitToEmptyQueue() { + // wait for all tx to come in the queue first + time.Sleep(100 * time.Millisecond) + + for { + if txQueue.numInQueue == 0 { + return + } + time.Sleep(200 * time.Millisecond) + } +} + +func (txQueue *TransactionQueue) WaitForBlockWithCheck(blockNum uint64) { + for { + if txQueue.toTrash { + return + } + if txQueue.CurrentBlockNum < blockNum { + time.Sleep(200 * time.Millisecond) + } else { + return + } + } +} + +func (txQueue *TransactionQueue) CurrentBlockNumUpdater() { + for { + if txQueue.Stop { + return + } + + ctx, cancelFunc := context.WithTimeout(context.Background(), time.Duration(config.CallTimeoutMillisDefault)*time.Millisecond) + currentBlockNum, err := txQueue.chainClient.BlockNumber(ctx) + cancelFunc() + if err != nil { + logger.Error("failed obtaining current block number: %s", err) + time.Sleep(200 * time.Millisecond) + + continue + } + if currentBlockNum > txQueue.CurrentBlockNum { + txQueue.Lock() + txQueue.CurrentBlockNum = currentBlockNum + txQueue.Unlock() + } + time.Sleep(200 * time.Millisecond) + } +} + +func (txQueue *TransactionQueue) StopQueue() { + txQueue.Lock() + txQueue.Stop = true + txQueue.Unlock() +} diff --git a/go-client/client/utils.go b/go-client/client/utils.go new file mode 100644 index 0000000..a646523 --- /dev/null +++ b/go-client/client/utils.go @@ -0,0 +1,28 @@ +package client + +import ( + "fast-updates-client/provider" + "math/big" + "time" +) + +func WaitForBlock(txQueue *TransactionQueue, blockNum uint64) error { + for { + if txQueue.CurrentBlockNum < blockNum { + time.Sleep(200 * time.Millisecond) + } else { + return nil + } + } +} + +// rawChainPricesToFloats converts prices with decimals to float64 values. +func RawChainValuesToFloats(rawChainValues provider.ValuesDecimals) []float64 { + floatValues := make([]float64, len(rawChainValues.Feeds)) + for i, feedValue := range rawChainValues.Feeds { + decimals := big.NewInt(int64(rawChainValues.Decimals[i])) + exp := decimals.Exp(big.NewInt(10), decimals, nil) + floatValues[i], _ = big.NewRat(feedValue.Int64(), exp.Int64()).Float64() + } + return floatValues +} diff --git a/go-client/config.toml b/go-client/config.toml new file mode 100644 index 0000000..2c58033 --- /dev/null +++ b/go-client/config.toml @@ -0,0 +1,36 @@ +# This file serves as a template for the configuration file. Copy it and edit the values as needed. +# Use --config parameter to specify the path to the configuration file. + +[client] +private_key = "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb" +sortition_private_key = "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb" +fast_updater_address = "0x8280D40C9E9F04229D2435EAad6e0011309ce81B" +fast_updates_configuration_address = "0xee61C304E6b07a0a4BB36e956cFDBbD7D665173E" +submission_address = "0x18b9306737eaf6E8FC8e737F488a1AE077b18053" +mock_address = "0xd4e934C2749CA8C1618659D02E7B28B074bf4df7" +flare_system_manager = "0xd4e934C2749CA8C1618659D02E7B28B074bf4df7" +incentive_manager_address = "0x78Aeff0658Fa67735fBF99Ce7CDB01Fe5D520259" +submission_window = 10 +advance_blocks = 0 +max_weight = 512 +value_provider_base_url = "http://localhost:3101/feed-values/" + +[transactions] +accounts = [ + "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb", + "0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569", + "0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131", +] +gas_limit = 8000000 +value = 0 +gas_price_multiplier = 1.2 + + +[logger] +level = "INFO" +file = "./logger/logs/fast_updates_client.log" +console = true + +[chain] +node_url = "http://127.0.0.1:8545/" +chain_id = 1337 diff --git a/go-client/config/callback.go b/go-client/config/callback.go new file mode 100644 index 0000000..0685ab4 --- /dev/null +++ b/go-client/config/callback.go @@ -0,0 +1,15 @@ +package config + +type ConfigCallback[T any] struct { + callbacks []func(T) +} + +func (cc *ConfigCallback[T]) AddCallback(f func(T)) { + cc.callbacks = append(cc.callbacks, f) +} + +func (cc *ConfigCallback[T]) Call(config T) { + for _, gc := range cc.callbacks { + gc(config) + } +} diff --git a/go-client/config/config.go b/go-client/config/config.go new file mode 100644 index 0000000..806f139 --- /dev/null +++ b/go-client/config/config.go @@ -0,0 +1,113 @@ +package config + +import ( + "flag" + "fmt" + "math/big" + "net/url" + "os" + + "github.com/BurntSushi/toml" + "github.com/kelseyhightower/envconfig" + "github.com/pkg/errors" +) + +var ( + CallTimeoutMillisDefault int = 2000 // todo + TxTimeoutMillisDefault int = 120000 // todo + GlobalConfigCallback ConfigCallback[GlobalConfig] = ConfigCallback[GlobalConfig]{} + CfgFlag = flag.String("config", "config.toml", "Configuration file (toml format)") +) + +type GlobalConfig interface { + LoggerConfig() LoggerConfig +} + +type Config struct { + Logger LoggerConfig `toml:"logger"` + Chain ChainConfig `toml:"chain"` + Client FastUpdateClientConfig `toml:"client"` + Transactions TransactionsConfig `toml:"transactions"` +} + +type LoggerConfig struct { + Level string `toml:"level"` // valid values are: DEBUG, INFO, WARN, ERROR, DPANIC, PANIC, FATAL (zap) + File string `toml:"file"` + MaxFileSize int `toml:"max_file_size"` // In megabytes + Console bool `toml:"console"` +} + +type ChainConfig struct { + NodeURL string `toml:"node_url"` + ChainId int `toml:"chain_id"` +} + +type FastUpdateClientConfig struct { + FastUpdaterAddress string `toml:"fast_updater_address"` + FastUpdatesConfigurationAddress string `toml:"fast_updates_configuration_address"` + SubmissionAddress string `toml:"submission_address"` + IncentiveManagerAddress string `toml:"incentive_manager_address"` + FlareSystemManagerAddress string `toml:"flare_system_manager"` + MockAddress string `toml:"mock_address"` + PrivateKey string `toml:"private_key" envconfig:"PRIVATE_KEY"` + SortitionPrivateKey string `toml:"sortition_private_key" envconfig:"SORTITION_PRIVATE_KEY"` + AdvanceBlocks int `toml:"advance_blocks"` + SubmissionWindow int `toml:"submission_window"` + MaxWeight int `toml:"max_weight"` + ValueProviderUrl string `toml:"value_provider_base_url"` +} + +type TransactionsConfig struct { + Accounts []string `toml:"accounts" envconfig:"ACCOUNTS"` + GasLimit int `toml:"gas_limit"` + Value int `toml:"value"` + GasPriceMultiplier float64 `toml:"gas_price_multiplier"` + ChainId *big.Int +} + +func newConfig() *Config { + return &Config{} +} + +func BuildConfig() (*Config, error) { + cfgFileName := *CfgFlag + + cfg := newConfig() + err := ParseConfigFile(cfg, cfgFileName) + if err != nil { + return nil, err + } + + _, err = url.ParseRequestURI(cfg.Client.ValueProviderUrl) + if err != nil { + return nil, errors.Wrap(err, "invalid URL specified for ValueProviderUrl: %w") + } + + return cfg, nil +} + +func ParseConfigFile(cfg *Config, fileName string) error { + content, err := os.ReadFile(fileName) + if err != nil { + return fmt.Errorf("error opening config file: %w", err) + } + + _, err = toml.Decode(string(content), cfg) + if err != nil { + return fmt.Errorf("error parsing config file: %w", err) + } + return nil +} + +func ReadEnv(cfg *Config) error { + err := envconfig.Process("", cfg) + if err != nil { + return fmt.Errorf("error reading env config: %w", err) + } + + return nil +} + +func (c Config) LoggerConfig() LoggerConfig { + return c.Logger +} diff --git a/go-client/contracts-interface/AddressUpdatable.abi b/go-client/contracts-interface/AddressUpdatable.abi new file mode 100644 index 0000000..5159caa --- /dev/null +++ b/go-client/contracts-interface/AddressUpdatable.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"getAddressUpdater","outputs":[{"internalType":"address","name":"_addressUpdater","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_contractNameHashes","type":"bytes32[]"},{"internalType":"address[]","name":"_contractAddresses","type":"address[]"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/deployment/config/deployed-contracts/.gitignore b/go-client/contracts-interface/AddressUpdatable.bin similarity index 100% rename from deployment/config/deployed-contracts/.gitignore rename to go-client/contracts-interface/AddressUpdatable.bin diff --git a/go-client/contracts-interface/Bn256.abi b/go-client/contracts-interface/Bn256.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/go-client/contracts-interface/Bn256.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/go-client/contracts-interface/Bn256.bin b/go-client/contracts-interface/Bn256.bin new file mode 100644 index 0000000..ee76a81 --- /dev/null +++ b/go-client/contracts-interface/Bn256.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122064acd4786955e5ffd4d557ae38637c9ff2fc90e54fa1c0ebc19bd47f62581c2764736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/CircularListManager.abi b/go-client/contracts-interface/CircularListManager.abi new file mode 100644 index 0000000..ae25a3e --- /dev/null +++ b/go-client/contracts-interface/CircularListManager.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"circularLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/CircularListManager.bin b/go-client/contracts-interface/CircularListManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/ECDSA.abi b/go-client/contracts-interface/ECDSA.abi new file mode 100644 index 0000000..471df9b --- /dev/null +++ b/go-client/contracts-interface/ECDSA.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"}] \ No newline at end of file diff --git a/go-client/contracts-interface/ECDSA.bin b/go-client/contracts-interface/ECDSA.bin new file mode 100644 index 0000000..c495dc2 --- /dev/null +++ b/go-client/contracts-interface/ECDSA.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204cef8e6be6a0d63a114dd0e4491486e2af1a6d2c5caa881ce8e8c8fd940135ab64736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/FastUpdateIncentiveManager.abi b/go-client/contracts-interface/FastUpdateIncentiveManager.abi new file mode 100644 index 0000000..4187a25 --- /dev/null +++ b/go-client/contracts-interface/FastUpdateIncentiveManager.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"},{"internalType":"address","name":"_addressUpdater","type":"address"},{"internalType":"SampleSize","name":"_ss","type":"uint256"},{"internalType":"Range","name":"_r","type":"uint256"},{"internalType":"SampleSize","name":"_sil","type":"uint256"},{"internalType":"Fee","name":"_rip","type":"uint256"},{"internalType":"uint256","name":"_dur","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"authorizedAmountWei","type":"uint256"}],"name":"DailyAuthorizedInflationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"encodedCall","type":"bytes"}],"name":"GovernanceCallTimelocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"initialGovernance","type":"address"}],"name":"GovernanceInitialised","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"governanceSettings","type":"address"}],"name":"GovernedProductionModeEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Range","name":"rangeIncrease","type":"uint256"},{"indexed":false,"internalType":"SampleSize","name":"sampleSizeIncrease","type":"uint256"},{"indexed":false,"internalType":"Fee","name":"offerAmount","type":"uint256"}],"name":"IncentiveOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReceivedWei","type":"uint256"}],"name":"InflationReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"bytes","name":"feedIds","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"rewardBandValues","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"inflationShares","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InflationRewardsOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallExecuted","type":"event"},{"inputs":[],"name":"advance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"cancelGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"circularLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dailyAuthorizedInflation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"executeGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fastUpdater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fastUpdatesConfiguration","outputs":[{"internalType":"contract IFastUpdatesConfiguration","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flareSystemsManager","outputs":[{"internalType":"contract IIFlareSystemsManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressUpdater","outputs":[{"internalType":"address","name":"_addressUpdater","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getExpectedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExpectedSampleSize","outputs":[{"internalType":"SampleSize","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIncentiveDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInflationAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrecision","outputs":[{"internalType":"Precision","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRange","outputs":[{"internalType":"Range","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getScale","outputs":[{"internalType":"Scale","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenPoolSupplyData","outputs":[{"internalType":"uint256","name":"_lockedFundsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationAuthorizedWei","type":"uint256"},{"internalType":"uint256","name":"_totalClaimedWei","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceSettings","outputs":[{"internalType":"contract IGovernanceSettings","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"}],"name":"initialise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastInflationAuthorizationReceivedTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastInflationReceivedTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Range","name":"rangeIncrease","type":"uint256"},{"internalType":"Range","name":"rangeLimit","type":"uint256"}],"internalType":"struct IFastUpdateIncentiveManager.IncentiveOffer","name":"_offer","type":"tuple"}],"name":"offerIncentive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"productionMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rangeIncreasePrice","outputs":[{"internalType":"Fee","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveInflation","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"rewardManager","outputs":[{"internalType":"contract IIRewardManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sampleIncreaseLimit","outputs":[{"internalType":"SampleSize","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_toAuthorizeWei","type":"uint256"}],"name":"setDailyAuthorizedInflation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"SampleSize","name":"_ss","type":"uint256"},{"internalType":"Range","name":"_r","type":"uint256"},{"internalType":"uint256","name":"_dur","type":"uint256"}],"name":"setIncentiveParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Fee","name":"_price","type":"uint256"}],"name":"setRangeIncreasePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"SampleSize","name":"_lim","type":"uint256"}],"name":"setSampleIncreaseLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchToProductionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"timelockedCalls","outputs":[{"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"internalType":"bytes","name":"encodedCall","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInflationAuthorizedWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInflationReceivedWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInflationRewardsOfferedWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_currentRewardEpochId","type":"uint24"},{"internalType":"uint64","name":"_currentRewardEpochExpectedEndTs","type":"uint64"},{"internalType":"uint64","name":"_rewardEpochDurationSeconds","type":"uint64"}],"name":"triggerRewardEpochSwitchover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_contractNameHashes","type":"bytes32[]"},{"internalType":"address[]","name":"_contractAddresses","type":"address[]"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/FastUpdateIncentiveManager.bin b/go-client/contracts-interface/FastUpdateIncentiveManager.bin new file mode 100644 index 0000000..3171a57 --- /dev/null +++ b/go-client/contracts-interface/FastUpdateIncentiveManager.bin @@ -0,0 +1 @@ +60806040523480156200001157600080fd5b506040516200344f3803806200344f8339810160408190526200003491620006c0565b878787808084848b8b60018a806200004c81620000cc565b506200005b848484846200014d565b50505050620000718282620001e560201b60201c565b506200009d9050817f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b5050505050620000b3836200035a60201b60201c565b620000be82620003b8565b50505050505050506200075a565b60008111620001485760405162461bcd60e51b815260206004820152603b60248201527f43697263756c61724c6973744d616e616765723a2063697263756c6172206c6560448201527f6e677468206d7573742062652067726561746572207468616e2030000000000060648201526084015b60405180910390fd5b600055565b620001588462000416565b620001638362000474565b828411620001c05760405162461bcd60e51b815260206004820152602360248201527f52616e6765206d757374206265206c657373207468616e2073616d706c652073604482015262697a6560e81b60648201526084016200013f565b620001ca82600655565b620001d581620000cc565b620001df620004c4565b50505050565b600754600160a01b900460ff1615620002415760405162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c736500000000000000000000000060448201526064016200013f565b6001600160a01b038216620002995760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f000000000000000060448201526064016200013f565b6001600160a01b038116620002e45760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b60448201526064016200013f565b600780546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600880549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b62000365816200060d565b620003b35760405162461bcd60e51b815260206004820152601f60248201527f53616d706c6520696e637265617365206c696d697420746f6f206c617267650060448201526064016200013f565b601555565b620003c3816200060d565b620004115760405162461bcd60e51b815260206004820152601e60248201527f52616e676520696e63726561736520707269636520746f6f206c61726765000060448201526064016200013f565b601655565b62000421816200060d565b6200046f5760405162461bcd60e51b815260206004820152601560248201527f53616d706c652073697a6520746f6f206c61726765000000000000000000000060448201526064016200013f565b600455565b6200047f816200060d565b620004bf5760405162461bcd60e51b815260206004820152600f60248201526e52616e676520746f6f206c6172676560881b60448201526064016200013f565b600555565b620004d26001600062000623565b620004e06002600062000623565b620004ee6003600062000623565b6000546001600160401b038111156200050b576200050b62000744565b60405190808252806020026020018201604052801562000535578160200160208202803683370190505b5080516200054c9160019160209091019062000643565b506000546001600160401b038111156200056a576200056a62000744565b60405190808252806020026020018201604052801562000594578160200160208202803683370190505b508051620005ab9160029160209091019062000643565b506000546001600160401b03811115620005c957620005c962000744565b604051908082528060200260200182016040528015620005f3578160200160208202803683370190505b5080516200060a9160039160209091019062000643565b50565b60006200061d82600160801b1190565b92915050565b50805460008255906000526020600020908101906200060a919062000693565b82805482825590600052602060002090810192821562000681579160200282015b828111156200068157825182559160200191906001019062000664565b506200068f92915062000693565b5090565b5b808211156200068f576000815560010162000694565b6001600160a01b03811681146200060a57600080fd5b600080600080600080600080610100898b031215620006de57600080fd5b8851620006eb81620006aa565b60208a0151909850620006fe81620006aa565b60408a01519097506200071181620006aa565b60608a015160808b015160a08c015160c08d015160e0909d01519b9e9a9d50929b919a9099929850909650945092505050565b634e487b7160e01b600052604160045260246000fd5b612ce5806200076a6000396000f3fe6080604052600436106102465760003560e01c8063a5555aea11610139578063dd8dca9f116100b6578063ed39d3f81161007a578063ed39d3f81461064a578063ef88bf1314610668578063f5a9838314610688578063f5f5ba721461069d578063f7690bfe146106e9578063faae7fc91461070957600080fd5b8063dd8dca9f146105af578063debfda30146105c4578063e17f212e146105f4578063e273956314610615578063ea105ac71461063557600080fd5b8063bd76b69c116100fd578063bd76b69c1461052d578063c10f489a14610543578063d0c1c39314610563578063d29a4fa914610579578063d4ab8f941461059957600080fd5b8063a5555aea146104ad578063af04cd3b146104c3578063b00c0b76146104d8578063b5cddab8146104f8578063b97e1f5d1461050d57600080fd5b80635aa6e675116101c7578063708e34ce1161018b578063708e34ce1461041f57806374e6310e1461043557806391f25679146104635780639670c0bc146104835780639b85961f1461049857600080fd5b80635aa6e675146103955780635ff27079146103aa57806362354e03146103ca57806367fc4029146103ea5780636d62b4131461040a57600080fd5b8063362471801161020e578063362471801461030c578063473252c41461031f578063488f98061461033557806352545a7c1461034b5780635267a15d1461036157600080fd5b806306201f1d1461024b5780630d6e9537146102555780630f4ef8a61461027557806312afcf0b146102b25780632dafdbbf146102d6575b600080fd5b610253610729565b005b34801561026157600080fd5b506102536102703660046124a9565b61078b565b34801561028157600080fd5b50601254610295906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102be57600080fd5b506102c8600d5481565b6040519081526020016102a9565b3480156102e257600080fd5b506102f1600a54601454600092565b604080519384526020840192909252908201526060016102a9565b61025361031a3660046124c2565b6107d1565b34801561032b57600080fd5b506102c8600c5481565b34801561034157600080fd5b506102c860005481565b34801561035757600080fd5b506102c860165481565b34801561036d57600080fd5b507f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771954610295565b3480156103a157600080fd5b50610295610955565b3480156103b657600080fd5b506102536103c53660046124da565b6109f5565b3480156103d657600080fd5b50600754610295906001600160a01b031681565b3480156103f657600080fd5b506102536104053660046124da565b610c83565b34801561041657600080fd5b506004546102c8565b34801561042b57600080fd5b506102c8600e5481565b34801561044157600080fd5b506104556104503660046124da565b610d64565b6040516102a9929190612554565b34801561046f57600080fd5b5061025361047e3660046125a2565b610e09565b34801561048f57600080fd5b506102c8610e6e565b3480156104a457600080fd5b506005546102c8565b3480156104b957600080fd5b506102c8600b5481565b3480156104cf57600080fd5b506102c8610e78565b3480156104e457600080fd5b506102536104f33660046126d9565b610e82565b34801561050457600080fd5b506102c8610f61565b34801561051957600080fd5b50610253610528366004612791565b610f77565b34801561053957600080fd5b506102c860145481565b34801561054f57600080fd5b50601354610295906001600160a01b031681565b34801561056f57600080fd5b506102c8600a5481565b34801561058557600080fd5b50601154610295906001600160a01b031681565b3480156105a557600080fd5b506102c860155481565b3480156105bb57600080fd5b506000546102c8565b3480156105d057600080fd5b506105e46105df3660046127bd565b610fbe565b60405190151581526020016102a9565b34801561060057600080fd5b506007546105e490600160a81b900460ff1681565b34801561062157600080fd5b506102536106303660046124a9565b611049565b34801561064157600080fd5b506102536110a1565b34801561065657600080fd5b50600f546001600160a01b0316610295565b34801561067457600080fd5b506102536106833660046127da565b6110f7565b34801561069457600080fd5b5061025361125d565b3480156106a957600080fd5b50604080518082018252601a81527f46617374557064617465496e63656e746976654d616e61676572000000000000602082015290516102a99190612813565b3480156106f557600080fd5b506102536107043660046124a9565b611323565b34801561071557600080fd5b50601054610295906001600160a01b031681565b61073161135b565b6107396113c3565b34600b54610747919061283c565b600b5542600d556040513481527f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379060200160405180910390a161078961140e565b565b600754600160b01b900460ff16806107ad5750600754600160a81b900460ff16155b156107c6576107ba611455565b6107c38161148d565b50565b6107c36000366114e7565b6107d961135b565b6000806107e583611637565b9150915060006107f58383611774565b60125460408051637056269760e01b815290519293506001600160a01b039091169163a02e86e5918691849163705626979160048083019260209291908290030181865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f919061284f565b6040516001600160e01b031960e085901b16815262ffffff9091166004820152600060248201526044016000604051808303818588803b1580156108b257600080fd5b505af11580156108c6573d6000803e3d6000fd5b505060408051868152602081018690529081018790527fe2bf2dae8fb2fd1f86fd6d50871b97c48b27cd148bb07311c99b4b7b24453f5b9350606001915061090b9050565b60405180910390a1336108fc610921853461286c565b6040518115909202916000818181858888f19350505050158015610949573d6000803e3d6000fd5b505050506107c361140e565b600754600090600160a81b900460ff1661097957506008546001600160a01b031690565b600760009054906101000a90046001600160a01b03166001600160a01b031663732524946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f0919061287f565b905090565b6109fe33610fbe565b610a3f5760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b60448201526064015b60405180910390fd5b6001600160e01b0319811660009081526009602052604081208054909103610aa95760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610a36565b8054421015610afa5760405162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f77656420796574000000000000006044820152606401610a36565b6000816001018054610b0b9061289c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b379061289c565b8015610b845780601f10610b5957610100808354040283529160200191610b84565b820191906000526020600020905b815481529060010190602001808311610b6757829003601f168201915b505050506001600160e01b0319851660009081526009602052604081208181559293509050610bb660018301826123f1565b50506007805460ff60b01b1916600160b01b1790556040516000903090610bde9084906128d0565b6000604051808303816000865af19150503d8060008114610c1b576040519150601f19603f3d011682016040523d82523d6000602084013e610c20565b606091505b50506007805460ff60b01b19169055604080516001600160e01b0319871681524260208201529192507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438910160405180910390a1610c7d81611834565b50505050565b610c8b611851565b6001600160e01b031981166000908152600960205260408120549003610cf35760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610a36565b604080516001600160e01b0319831681524260208201527f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8910160405180910390a16001600160e01b03198116600090815260096020526040812081815590610d5f60018301826123f1565b505050565b60096020526000908152604090208054600182018054919291610d869061289c565b80601f0160208091040260200160405190810160405280929190818152602001828054610db29061289c565b8015610dff5780601f10610dd457610100808354040283529160200191610dff565b820191906000526020600020905b815481529060010190602001808311610de257829003601f168201915b5050505050905082565b6010546001600160a01b03163314610e635760405162461bcd60e51b815260206004820152601960248201527f6f6e6c7920666c6172652073797374656d206d616e61676572000000000000006044820152606401610a36565b610d5f8383836118ab565b60006109f0611a95565b60006109f0611aa5565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e7719546001600160a01b0316336001600160a01b031614610efb5760405162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b6044820152606401610a36565b610f53610f2f83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611ab7565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b610f5d8282611b94565b5050565b60006109f0610f6e611a95565b6001607f1b0190565b600754600160b01b900460ff1680610f995750600754600160a81b900460ff16155b15610fb357610fa6611455565b610d5f8383600184611cac565b610d5f6000366114e7565b600754600090600160a01b900460ff1680156110435750600754604051630debfda360e41b81526001600160a01b0384811660048301529091169063debfda3090602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128ec565b92915050565b6110516113c3565b600e819055600a5461106490829061283c565b600a5542600c556040518181527f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959060200160405180910390a150565b6011546001600160a01b031633146110ef5760405162461bcd60e51b815260206004820152601160248201527037b7363c903330b9ba103ab83230ba32b960791b6044820152606401610a36565b610789611d33565b600754600160a01b900460ff16156111485760405162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b6044820152606401610a36565b6001600160a01b03821661119e5760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401610a36565b6001600160a01b0381166111e75760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401610a36565b600780546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600880549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b611265611851565b600754600160a81b900460ff16156112bf5760405162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f64650000000000006044820152606401610a36565b600880546001600160a01b031916905560078054600160a81b60ff60a81b198216179091556040516001600160a01b0390911681527f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9060200160405180910390a1565b600754600160b01b900460ff16806113455750600754600160a81b900460ff16155b156107c657611352611455565b6107c381611e0c565b600034611366611aa5565b611370919061283c565b905047818111156113b35761dead6108fc61138b848461286c565b6040518115909202916000818181858888f19350505050158015610d5f573d6000803e3d6000fd5b81811015610f5d57610f5d61290e565b600f546001600160a01b031633146107895760405162461bcd60e51b815260206004820152600e60248201526d696e666c6174696f6e206f6e6c7960901b6044820152606401610a36565b611416611aa5565b47146107895760405162461bcd60e51b815260206004820152600e60248201526d6f7574206f662062616c616e636560901b6044820152606401610a36565b600754600160b01b900460ff1615611485573330146114765761147661290e565b6007805460ff60b01b19169055565b610789611851565b61149681611e66565b6114e25760405162461bcd60e51b815260206004820152601e60248201527f52616e676520696e63726561736520707269636520746f6f206c6172676500006044820152606401610a36565b601655565b6114ef611851565b60075460408051636221a54b60e01b815290518435926000926001600160a01b0390911691636221a54b916004808201926020929091908290030181865afa15801561153f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115639190612924565b90506000611571824261283c565b9050604051806040016040528082815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160e01b031986168152600960209081526040909120835181559083015190915060018201906115ef908261298b565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6838287876040516116289493929190612a4a565b60405180910390a15050505050565b6000803460781c1561169c5760405162461bcd60e51b815260206004820152602860248201527f496e63656e74697665206f666665722076616c75652063617070656420617420604482015267313230206269747360c01b6064820152608401610a36565b5050600554346001600160f01b031690823590810160208401358111156116fe578360200135905060006116d1826005541190565b6116df5760055482036116e2565b60005b90506116f96116f18285611e75565b850260801c90565b935091505b611709816004541190565b61176e5760405162461bcd60e51b815260206004820152603060248201527f4f6666657220776f756c64206d616b652074686520707265636973696f6e206760448201526f726561746572207468616e203130302560801b6064820152608401610a36565b50915091565b600080611785601654840260781c90565b9050838111156117f35760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420636f6e747269627574696f6e20746f2070617960448201527220666f722072616e676520696e63726561736560681b6064820152608401610a36565b8084036117ff81611e98565b61181861180e82600654611e75565b6015540260801c90565b925061182383611ef6565b61182c84611f34565b505092915050565b3d604051818101604052816000823e821561184d578181f35b8181fd5b611859610955565b6001600160a01b0316336001600160a01b0316146107895760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b6044820152606401610a36565b60006118b8826002612a90565b6118c29084612ab3565b6001600160401b0316905060006118fb62015180600d546118e3919061283c565b6118ed8587612ab3565b6001600160401b0316611f72565b9050600061192d6001600160401b038516611916858561286c565b601454600b54611926919061286c565b9190611f88565b9050600061193c876001612ada565b90506000806000601360009054906101000a90046001600160a01b03166001600160a01b03166348a924826040518163ffffffff1660e01b8152600401600060405180830381865afa158015611996573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119be9190810190612b59565b9250925092508362ffffff167ffdd0b465b401aa1b01bf9945ca3b5ad04d97007d090db1f5b126a502e890d610848484896040516119ff9493929190612be0565b60405180910390a28460146000828254611a19919061283c565b909155505060125460405163a02e86e560e01b815262ffffff86166004820152600160248201526001600160a01b039091169063a02e86e59087906044016000604051808303818588803b158015611a7057600080fd5b505af1158015611a84573d6000803e3d6000fd5b505050505050505050505050505050565b60006109f06005546004546120ae565b6000601454600b546109f0919061286c565b60008082604051602001611acb9190612813565b6040516020818303038152906040528051906020012090506000805b8651811015611b4357868181518110611b0257611b02612c2b565b60200260200101518303611b3157858181518110611b2257611b22612c2b565b60200260200101519150611b43565b80611b3b81612c41565b915050611ae7565b506001600160a01b038116611b895760405162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b6044820152606401610a36565b9150505b9392505050565b611b9e82826120c6565b611bcc82826040518060400160405280600b81526020016a2330b9ba2ab83230ba32b960a91b815250611ab7565b601160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611c2282826040518060400160405280600d81526020016c2932bbb0b93226b0b730b3b2b960991b815250611ab7565b601260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611c8882826040518060400160405280601881526020017f4661737455706461746573436f6e66696775726174696f6e0000000000000000815250611ab7565b601380546001600160a01b0319166001600160a01b03929092169190911790555050565b611cb58461212a565b611cbe8361217c565b828411611d195760405162461bcd60e51b815260206004820152602360248201527f52616e6765206d757374206265206c657373207468616e2073616d706c652073604482015262697a6560e81b6064820152608401610a36565b611d2282600655565b611d2b816121c8565b610c7d612243565b611d636006546003611d43612371565b81548110611d5357611d53612c2b565b9060005260206000200154900390565b600655600554611d77906002611d43612371565b600555600454611d8b906001611d43612371565b60045560006001611d9a612371565b81548110611daa57611daa612c2b565b906000526020600020018190555060006002611dc4612371565b81548110611dd457611dd4612c2b565b906000526020600020018190555060006003611dee612371565b81548110611dfe57611dfe612c2b565b600091825260209091200155565b611e1581611e66565b611e615760405162461bcd60e51b815260206004820152601f60248201527f53616d706c6520696e637265617365206c696d697420746f6f206c61726765006044820152606401610a36565b601555565b600061104382600160801b1190565b6000608083901b8282818381611e8d57611e8d612c5a565b049695505050505050565b611ec56003611ea561237d565b81548110611eb557611eb5612c2b565b9060005260206000200154820190565b6003611ecf61237d565b81548110611edf57611edf612c2b565b600091825260209091200155600654810160065550565b611f036001611ea561237d565b6001611f0d61237d565b81548110611f1d57611f1d612c2b565b600091825260209091200155600454810160045550565b611f416002611ea561237d565b6002611f4b61237d565b81548110611f5b57611f5b612c2b565b600091825260209091200155600554810160055550565b6000818311611f815781611b8d565b5090919050565b6000808211611fcc5760405162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b6044820152606401610a36565b83600003611fdc57506000611b8d565b83830283858281611fef57611fef612c5a565b040361200d5782818161200457612004612c5a565b04915050611b8d565b50600061201a8386612c70565b905060006120288487612c84565b905060006120368587612c70565b905060006120448688612c84565b9050856120518285612c98565b61205b9190612c70565b6120658385612c98565b61206f8387612c98565b8861207a8689612c98565b6120849190612c98565b61208e919061283c565b612098919061283c565b6120a2919061283c565b98975050505050505050565b6000607f83901b8282818381611e8d57611e8d612c5a565b6120d08282612389565b612106828260405180604001604052806013815260200172233630b932a9bcb9ba32b6b9a6b0b730b3b2b960691b815250611ab7565b601080546001600160a01b0319166001600160a01b03929092169190911790555050565b61213381611e66565b6121775760405162461bcd60e51b815260206004820152601560248201527453616d706c652073697a6520746f6f206c6172676560581b6044820152606401610a36565b600455565b61218581611e66565b6121c35760405162461bcd60e51b815260206004820152600f60248201526e52616e676520746f6f206c6172676560881b6044820152606401610a36565b600555565b6000811161223e5760405162461bcd60e51b815260206004820152603b60248201527f43697263756c61724c6973744d616e616765723a2063697263756c6172206c6560448201527f6e677468206d7573742062652067726561746572207468616e203000000000006064820152608401610a36565b600055565b61224f6001600061242b565b61225b6002600061242b565b6122676003600061242b565b6000546001600160401b03811115612281576122816125e7565b6040519080825280602002602001820160405280156122aa578160200160208202803683370190505b5080516122bf91600191602090910190612449565b506000546001600160401b038111156122da576122da6125e7565b604051908082528060200260200182016040528015612303578160200160208202803683370190505b50805161231891600291602090910190612449565b506000546001600160401b03811115612333576123336125e7565b60405190808252806020026020018201604052801561235c578160200160208202803683370190505b5080516107c391600391602090910190612449565b60006109f060016123d9565b60006109f060006123d9565b6123b582826040518060400160405280600981526020016824b7333630ba34b7b760b91b815250611ab7565b600f80546001600160a01b0319166001600160a01b03929092169190911790555050565b600080546123e7438461283c565b6110439190612c84565b5080546123fd9061289c565b6000825580601f1061240d575050565b601f0160209004906000526020600020908101906107c39190612494565b50805460008255906000526020600020908101906107c39190612494565b828054828255906000526020600020908101928215612484579160200282015b82811115612484578251825591602001919060010190612469565b50612490929150612494565b5090565b5b808211156124905760008155600101612495565b6000602082840312156124bb57600080fd5b5035919050565b6000604082840312156124d457600080fd5b50919050565b6000602082840312156124ec57600080fd5b81356001600160e01b031981168114611b8d57600080fd5b60005b8381101561251f578181015183820152602001612507565b50506000910152565b60008151808452612540816020860160208601612504565b601f01601f19169290920160200192915050565b82815260406020820152600061256d6040830184612528565b949350505050565b62ffffff811681146107c357600080fd5b80356001600160401b038116811461259d57600080fd5b919050565b6000806000606084860312156125b757600080fd5b83356125c281612575565b92506125d060208501612586565b91506125de60408501612586565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612625576126256125e7565b604052919050565b60006001600160401b03821115612646576126466125e7565b5060051b60200190565b6001600160a01b03811681146107c357600080fd5b600082601f83011261267657600080fd5b8135602061268b6126868361262d565b6125fd565b82815260059290921b840181019181810190868411156126aa57600080fd5b8286015b848110156126ce5780356126c181612650565b83529183019183016126ae565b509695505050505050565b600080604083850312156126ec57600080fd5b82356001600160401b038082111561270357600080fd5b818501915085601f83011261271757600080fd5b813560206127276126868361262d565b82815260059290921b8401810191818101908984111561274657600080fd5b948201945b838610156127645785358252948201949082019061274b565b9650508601359250508082111561277a57600080fd5b5061278785828601612665565b9150509250929050565b6000806000606084860312156127a657600080fd5b505081359360208301359350604090920135919050565b6000602082840312156127cf57600080fd5b8135611b8d81612650565b600080604083850312156127ed57600080fd5b82356127f881612650565b9150602083013561280881612650565b809150509250929050565b602081526000611b8d6020830184612528565b634e487b7160e01b600052601160045260246000fd5b8082018082111561104357611043612826565b60006020828403121561286157600080fd5b8151611b8d81612575565b8181038181111561104357611043612826565b60006020828403121561289157600080fd5b8151611b8d81612650565b600181811c908216806128b057607f821691505b6020821081036124d457634e487b7160e01b600052602260045260246000fd5b600082516128e2818460208701612504565b9190910192915050565b6000602082840312156128fe57600080fd5b81518015158114611b8d57600080fd5b634e487b7160e01b600052600160045260246000fd5b60006020828403121561293657600080fd5b5051919050565b601f821115610d5f57600081815260208120601f850160051c810160208610156129645750805b601f850160051c820191505b8181101561298357828155600101612970565b505050505050565b81516001600160401b038111156129a4576129a46125e7565b6129b8816129b2845461289c565b8461293d565b602080601f8311600181146129ed57600084156129d55750858301515b600019600386901b1c1916600185901b178555612983565b600085815260208120601f198616915b82811015612a1c578886015182559484019460019091019084016129fd565b5085821015612a3a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff60e01b8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b6001600160401b0381811683821602808216919082811461182c5761182c612826565b6001600160401b03828116828216039080821115612ad357612ad3612826565b5092915050565b62ffffff818116838216019080821115612ad357612ad3612826565b600082601f830112612b0757600080fd5b81516001600160401b03811115612b2057612b206125e7565b612b33601f8201601f19166020016125fd565b818152846020838601011115612b4857600080fd5b61256d826020830160208701612504565b600080600060608486031215612b6e57600080fd5b83516001600160401b0380821115612b8557600080fd5b612b9187838801612af6565b94506020860151915080821115612ba757600080fd5b612bb387838801612af6565b93506040860151915080821115612bc957600080fd5b50612bd686828701612af6565b9150509250925092565b608081526000612bf36080830187612528565b8281036020840152612c058187612528565b90508281036040840152612c198186612528565b91505082606083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201612c5357612c53612826565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082612c7f57612c7f612c5a565b500490565b600082612c9357612c93612c5a565b500690565b80820281158282048414176110435761104361282656fea2646970667358221220eeeb751c26a44ed2689e0131369651666e567d74523f9596a27193311cd2057c64736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/FastUpdater.abi b/go-client/contracts-interface/FastUpdater.abi new file mode 100644 index 0000000..f59625c --- /dev/null +++ b/go-client/contracts-interface/FastUpdater.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"},{"internalType":"address","name":"_addressUpdater","type":"address"},{"internalType":"address","name":"_flareDaemon","type":"address"},{"internalType":"uint32","name":"_firstVotingRoundStartTs","type":"uint32"},{"internalType":"uint8","name":"_votingEpochDurationSeconds","type":"uint8"},{"internalType":"uint256","name":"_submissionWindow","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FastUpdateFeedRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"votingRoundId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"bytes21","name":"id","type":"bytes21"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"int8","name":"decimals","type":"int8"}],"name":"FastUpdateFeedReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"votingEpochId","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"feeds","type":"uint256[]"},{"indexed":false,"internalType":"int8[]","name":"decimals","type":"int8[]"}],"name":"FastUpdateFeeds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"}],"name":"FastUpdateFeedsSubmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"encodedCall","type":"bytes"}],"name":"GovernanceCallTimelocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"initialGovernance","type":"address"}],"name":"GovernanceInitialised","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"governanceSettings","type":"address"}],"name":"GovernedProductionModeEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallExecuted","type":"event"},{"inputs":[],"name":"MAX_FEED_AGE_IN_VOTING_EPOCHS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"cancelGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"circularLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentScoreCutoff","outputs":[{"internalType":"uint256","name":"_cutoff","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_signingPolicyAddress","type":"address"}],"name":"currentSortitionWeight","outputs":[{"internalType":"uint256","name":"_weight","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daemonize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"executeGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fastUpdateIncentiveManager","outputs":[{"internalType":"contract IIFastUpdateIncentiveManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fastUpdatesConfiguration","outputs":[{"internalType":"contract IFastUpdatesConfiguration","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fetchAllCurrentFeeds","outputs":[{"internalType":"bytes21[]","name":"_feedIds","type":"bytes21[]"},{"internalType":"uint256[]","name":"_feeds","type":"uint256[]"},{"internalType":"int8[]","name":"_decimals","type":"int8[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"fetchCurrentFeeds","outputs":[{"internalType":"uint256[]","name":"_feeds","type":"uint256[]"},{"internalType":"int8[]","name":"_decimals","type":"int8[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firstVotingRoundStartTs","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flareDaemon","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flareSystemsManager","outputs":[{"internalType":"contract IFlareSystemsManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ftsoFeedPublisher","outputs":[{"internalType":"contract IFtsoFeedPublisher","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressUpdater","outputs":[{"internalType":"address","name":"_addressUpdater","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceSettings","outputs":[{"internalType":"contract IGovernanceSettings","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"}],"name":"initialise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"productionMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"removeFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"resetFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_submissionWindow","type":"uint256"}],"name":"setSubmissionWindow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submissionWindow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"sortitionBlock","type":"uint256"},{"components":[{"internalType":"uint256","name":"replicate","type":"uint256"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct Bn256.G1Point","name":"gamma","type":"tuple"},{"internalType":"uint256","name":"c","type":"uint256"},{"internalType":"uint256","name":"s","type":"uint256"}],"internalType":"struct SortitionCredential","name":"sortitionCredential","type":"tuple"},{"internalType":"bytes","name":"deltas","type":"bytes"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFastUpdater.Signature","name":"signature","type":"tuple"}],"internalType":"struct IFastUpdater.FastUpdates","name":"_updates","type":"tuple"}],"name":"submitUpdates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchToFallbackMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"switchToProductionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"timelockedCalls","outputs":[{"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"internalType":"bytes","name":"encodedCall","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_contractNameHashes","type":"bytes32[]"},{"internalType":"address[]","name":"_contractAddresses","type":"address[]"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"bytes32","name":"_part1","type":"bytes32"},{"internalType":"bytes32","name":"_part2","type":"bytes32"},{"internalType":"bytes","name":"_verificationData","type":"bytes"}],"name":"verifyPublicKey","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voterRegistry","outputs":[{"internalType":"contract IIVoterRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingEpochDurationSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/FastUpdater.bin b/go-client/contracts-interface/FastUpdater.bin new file mode 100644 index 0000000..3f77169 --- /dev/null +++ b/go-client/contracts-interface/FastUpdater.bin @@ -0,0 +1 @@ +60e06040523480156200001157600080fd5b50604051620056ea380380620056ea833981016040819052620000349162000519565b8462000042826001620005db565b8888620000508282620001db565b506200005e90508162000350565b5062000088817f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b506001600160a01b038416620000d95760405162461bcd60e51b8152602060048201526011602482015270666c617265206461656d6f6e207a65726f60781b60448201526064015b60405180910390fd5b60008260ff16116200012e5760405162461bcd60e51b815260206004820152601a60248201527f766f74696e672065706f6368206475726174696f6e207a65726f0000000000006044820152606401620000d0565b6001600160a01b03841660c05263ffffffff831660805260ff821660a05262000156620003cd565b600780546001600160401b0319166001600160401b03929092169190911790556200018081600655565b6200018a62000405565b604080516103e8808252617d20820190925290816020015b6060815260200190600190039081620001a25750508051620001cd91600d9160209091019062000435565b5050505050505050620007bd565b600054600160a01b900460ff1615620002375760405162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c73650000000000000000000000006044820152606401620000d0565b6001600160a01b0382166200028f5760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401620000d0565b6001600160a01b038116620002da5760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401620000d0565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b60008111620003c85760405162461bcd60e51b815260206004820152603b60248201527f43697263756c61724c6973744d616e616765723a2063697263756c6172206c6560448201527f6e677468206d7573742062652067726561746572207468616e203000000000006064820152608401620000d0565b600355565b600060a0516001600160401b03166080516001600160401b031642620003f491906200060d565b62000400919062000623565b905090565b60005b6003548110156200043257600c805460010181556000526200042a8162000646565b905062000408565b50565b82805482825590600052602060002090810192821562000480579160200282015b828111156200048057825182906200046f9082620006f1565b509160200191906001019062000456565b506200048e92915062000492565b5090565b808211156200048e576000620004a98282620004b3565b5060010162000492565b508054620004c19062000662565b6000825580601f10620004d2575050565b601f0160209004906000526020600020908101906200043291905b808211156200048e5760008155600101620004ed565b6001600160a01b03811681146200043257600080fd5b600080600080600080600060e0888a0312156200053557600080fd5b8751620005428162000503565b6020890151909750620005558162000503565b6040890151909650620005688162000503565b60608901519095506200057b8162000503565b608089015190945063ffffffff811681146200059657600080fd5b60a089015190935060ff81168114620005ae57600080fd5b8092505060c0880151905092959891949750929550565b634e487b7160e01b600052601160045260246000fd5b80820180821115620005f157620005f1620005c5565b92915050565b634e487b7160e01b600052604160045260246000fd5b81810381811115620005f157620005f1620005c5565b6000826200064157634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016200065b576200065b620005c5565b5060010190565b600181811c908216806200067757607f821691505b6020821081036200069857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006ec57600081815260208120601f850160051c81016020861015620006c75750805b601f850160051c820191505b81811015620006e857828155600101620006d3565b5050505b505050565b81516001600160401b038111156200070d576200070d620005f7565b62000725816200071e845462000662565b846200069e565b602080601f8311600181146200075d5760008415620007445750858301515b600019600386901b1c1916600185901b178555620006e8565b600085815260208120601f198616915b828110156200078e578886015182559484019460019091019084016200076d565b5085821015620007ad5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c051614ee162000809600039600081816103e001528181611b3901526121f90152600081816102e60152612e4301526000818161049e0152612e6d0152614ee16000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80637925eaca1161011a578063debfda30116100ad578063e8d0e70a1161007c578063e8d0e70a14610499578063ef88bf13146104c0578063f5a98383146104d3578063f5f5ba72146104db578063faae7fc91461050857600080fd5b8063debfda3014610461578063e17f212e14610474578063e22fdece14610488578063e621dbc71461049057600080fd5b8063abfaf170116100e9578063abfaf17014610415578063b00c0b7614610428578063be60040e1461043b578063c10f489a1461044e57600080fd5b80637925eaca146103c05780637fe3341a146103d3578063a1077532146103db578063a14634a71461040257600080fd5b80635a8320881161019d57806363f921db1161016c57806363f921db1461034e57806367fc4029146103615780636d0e8c341461037457806370473f2f1461038c57806374e6310e1461039f57600080fd5b80635a832088146102e15780635aa6e675146103205780635ff270791461032857806362354e031461033b57600080fd5b80634691377f116101d95780634691377f14610287578063470e91df1461029e578063488f9806146102b15780635267a15d146102ba57600080fd5b80630799fe751461020b578063274965db1461022657806329bfe39d1461023b57806345a15d3c14610266575b600080fd5b610213610522565b6040519081526020015b60405180910390f35b610239610234366004613ec1565b610531565b005b600a5461024e906001600160a01b031681565b6040516001600160a01b03909116815260200161021d565b610279610274366004613eda565b61059e565b60405161021d929190613fc8565b61028f610a06565b60405161021d93929190613fed565b6102396102ac366004614059565b610b9d565b61021360035481565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195461024e565b6103087f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161021d565b61024e611156565b610239610336366004614094565b6111ed565b60005461024e906001600160a01b031681565b61023961035c366004613eda565b611473565b61023961036f366004614094565b611a4b565b61037c611b2c565b604051901515815260200161021d565b61023961039a366004614141565b611cd5565b6103b26103ad366004614094565b611dd6565b60405161021d92919061424b565b60085461024e906001600160a01b031681565b610213601481565b61024e7f000000000000000000000000000000000000000000000000000000000000000081565b610213610410366004614264565b611e7b565b6102396104233660046142a4565b611e8d565b6102396104363660046143a8565b612088565b60095461024e906001600160a01b031681565b600b5461024e906001600160a01b031681565b61037c61046f366004614264565b612163565b60005461037c90600160a81b900460ff1681565b61037c6121ec565b61021360065481565b6103087f000000000000000000000000000000000000000000000000000000000000000081565b6102396104ce366004614460565b612260565b6102396123c6565b604080518082018252600b81526a2330b9ba2ab83230ba32b960a91b6020820152905161021d9190614499565b60075461024e90600160401b90046001600160a01b031681565b600061052c61248c565b905090565b600054600160b01b900460ff16806105535750600054600160a81b900460ff16155b156105935761056061268a565b61056981600655565b61057c6105778260016144c2565b6126c4565b610588600c6000613e15565b61059061273f565b50565b610590600036612768565b606080826001600160401b038111156105b9576105b96140d3565b6040519080825280602002602001820160405280156105e2578160200160208202803683370190505b50905060005b83811015610687576004858583818110610604576106046144d5565b905060200201358154610616906144eb565b8110610624576106246144d5565b8154600116156106435790600052602060002090602091828204019190065b9054901a600160f81b0260f81c828281518110610662576106626144d5565b602002602001019060000b908160000b815250508061068090614525565b90506105e8565b50826001600160401b038111156106a0576106a06140d3565b6040519080825280602002602001820160405280156106c9578160200160208202803683370190505b5091506000600860009054906101000a90046001600160a01b03166001600160a01b031663b5cddab86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610745919061453e565b6040516005547f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db060a083019081527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb56060840152600e5460c0840152929350909160808301916008026000808060208c8837865160088104602089018190526007909116604089015285510154915060005b8b8110156108445760208082028e018937848851106107f557600080fd5b60088851049150600888510660408901526020880151821461081f57816020890152818651015492505b82602060408a0151021b91508160e01c6020820260208d0101526001810190506107d7565b50600f5494505b60c087015185146109f7576060870151850180875254935060001960018516016109485760208620865260028404935060208c88376080875104602088015260048402875110156108a25760208701518651015492505b60005b8b8110156109425760208082028e01893760808851049150600485028851101561093a5760808851066040890152602088015182146108ec57816020890152818751015493505b604088015160020284901b60fe1c9150600019820161091c5760208181028c010180518a02607f81901c90915292505b6003820361093a5760208181028c01018051607f1b8a810490915292505b6001016108a5565b50600193505b600184166109e8576002603f85160493925060208c88376080875104602088015260005b8b8110156109e65760208082028e01893760048502885110156109de578751607f166040890181905260020284901b60fe1c915060001982016109c05760208181028c010180518a02607f81901c90915292505b600382036109de5760208181028c01018051607f1b8a810490915292505b60010161096c565b505b6103e86001860106945061084b565b50505050505050509250929050565b6060806060600b60009054906101000a90046001600160a01b03166001600160a01b0316630c518dce6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a869190810190614574565b925060048054610a95906144eb565b9050835114610aa657610aa6614600565b600083516001600160401b03811115610ac157610ac16140d3565b604051908082528060200260200182016040528015610aea578160200160208202803683370190505b50905060005b8151811015610b295780828281518110610b0c57610b0c6144d5565b602090810291909101015280610b2181614525565b915050610af0565b50604051631168574f60e21b815230906345a15d3c90610b4d908490600401614616565b600060405180830381865afa158015610b6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b92919081019061469d565b949590949350915050565b600654610bab9082356144c2565b4310610c155760405162461bcd60e51b815260206004820152602e60248201527f55706461746573206e6f206c6f6e67657220616363657074656420666f72207460448201526d686520676976656e20626c6f636b60901b60648201526084015b60405180910390fd5b8035431015610c7c5760405162461bcd60e51b815260206004820152602d60248201527f55706461746573206e6f742079657420617661696c61626c6520666f7220746860448201526c6520676976656e20626c6f636b60981b6064820152608401610c0c565b600554610c8a90600861474e565b610c9760c0830183614765565b610ca39150600461474e565b1115610cfb5760405162461bcd60e51b815260206004820152602160248201527f4d6f72652075706461746573207468616e20617661696c61626c6520666565646044820152607360f81b6064820152608401610c0c565b60006002823560208401610d1260c0860186614765565b604051602001610d2594939291906147d4565b60408051601f1981840301815290829052610d3f9161481d565b602060405180830381855afa158015610d5c573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d7f919061453e565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c829052603c812091925060e0840190610dd783610dc8610100880185614839565b846020013585604001356128b4565b90506001600160a01b038116610e2f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610c0c565b600080610e3b836128e2565b6040805160a08101808352600754637056269760e01b90915291519395509193506000928291600160401b90046001600160a01b03169063e0d4ea3790829063705626979060a4808701916020918189030181865afa158015610ea2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec6919061485c565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a919061453e565b815289356020820152604001610f3e61248c565b81526020810184905260400184905290506000610f5b8935612a39565b60408051865160208281019190915280880151928201929092528b356060820152908b0135608082015290915060009060029060a00160408051601f1981840301815290829052610fab9161481d565b602060405180830381855afa158015610fc8573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610feb919061453e565b905060005b8254811015611079578183600001828154811061100f5761100f6144d5565b9060005260206000200154036110675760405162461bcd60e51b815260206004820152601b60248201527f7375626d697373696f6e20616c72656164792070726f766964656400000000006044820152606401610c0c565b8061107181614525565b915050610ff0565b50815460018101835560008381526020808220909201839055906110b09085906110ab90368f90038f01908f01614881565b612a8b565b509050806111005760405162461bcd60e51b815260206004820152601760248201527f736f72746974696f6e2070726f6f6620696e76616c69640000000000000000006044820152606401610c0c565b61111561111060c08d018d614765565b612b3e565b6040516001600160a01b038816907f46726b7af6062bbfbcc71cdfd206e449f91eb91d8a78d596181219c8251d83ee90600090a25050505050505050505050565b60008054600160a81b900460ff1661117857506001546001600160a01b031690565b60008054906101000a90046001600160a01b03166001600160a01b031663732524946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052c919061490f565b6111f633612163565b6112325760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b6044820152606401610c0c565b6001600160e01b031981166000908152600260205260408120805490910361129c5760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610c0c565b80544210156112ed5760405162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f77656420796574000000000000006044820152606401610c0c565b60008160010180546112fe906144eb565b80601f016020809104026020016040519081016040528092919081815260200182805461132a906144eb565b80156113775780601f1061134c57610100808354040283529160200191611377565b820191906000526020600020905b81548152906001019060200180831161135a57829003601f168201915b505050506001600160e01b03198516600090815260026020526040812081815592935090506113a96001830182613e33565b50506000805460ff60b01b1916600160b01b17815560405130906113ce90849061481d565b6000604051808303816000865af19150503d806000811461140b576040519150601f19603f3d011682016040523d82523d6000602084013e611410565b606091505b50506000805460ff60b01b19169055604080516001600160e01b0319871681524260208201529192507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438910160405180910390a161146d81612b90565b50505050565b600b546001600160a01b03163314806114a4575061148f611156565b6001600160a01b0316336001600160a01b0316145b6115065760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792066617374207570646174657320636f6e66696775726174696f6e2060448201526c6f7220676f7665726e616e636560981b6064820152608401610c0c565b61150e612bad565b6000805b82811015611568578184848381811061152d5761152d6144d5565b9050602002013511156115565783838281811061154c5761154c6144d5565b9050602002013591505b8061156081614525565b915050611512565b50600060048054611578906144eb565b9150505b8181116115f7576004600181805480611594906144eb565b80601f81036115b35783600052602060002060ff1984168155603f9350505b506002820183556001810192505050038154600116156115e25790600052602060002090602091828204019190065b508190506115ef81614525565b91505061157c565b506005545b611607600883614942565b811161162b576005805460010181556000528061162381614525565b9150506115fc565b5060048054611639906144eb565b60055490915061164a90600861474e565b101561165857611658614600565b6000611662612e3f565b6001600160401b0316905060005b83811015611a4457600b546000906001600160a01b0316639310283687878581811061169e5761169e6144d5565b905060200201356040518263ffffffff1660e01b81526004016116c391815260200190565b602060405180830381865afa1580156116e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117049190614956565b90506001600160581b031981166117535760405162461bcd60e51b81526020600482015260136024820152721a5b99195e081b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606401610c0c565b600a546040516326e5ec9360e21b81526001600160581b0319831660048201526000916001600160a01b031690639b97b24c9060240160a060405180830381865afa1580156117a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ca9190614983565b9050836014826000015163ffffffff166117e491906144c2565b116118205760405162461bcd60e51b815260206004820152600c60248201526b19995959081d1bdbc81bdb1960a21b6044820152606401610c0c565b6000816040015160030b136118775760405162461bcd60e51b815260206004820152601b60248201527f666565642076616c7565207a65726f206f72206e6567617469766500000000006044820152606401610c0c565b6000600888888681811061188d5761188d6144d5565b9050602002013561189e9190614942565b9050600060088989878181106118b6576118b66144d5565b905060200201356118c79190614a23565b6118d2906007614a37565b6118dd90602061474e565b60408401516005805492935063ffffffff80851b19939216841b918391908690811061190b5761190b6144d5565b906000526020600020015416176005848154811061192b5761192b6144d5565b600091825260209091200155608084015160f81b60048b8b89818110611953576119536144d5565b905060200201358154611965906144eb565b8110611973576119736144d5565b8154600116156119925790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b84040217905550846affffffffffffffffffffff19168a8a888181106119cf576119cf6144d5565b90506020020135887ffa800fadb5e7b72652da40bcd7ca9a96cd4e53c9ea4c68b8afbba027e77a7cf587604001518860800151604051611a2492919063ffffffff92909216825260000b602082015260400190565b60405180910390a450505050508080611a3c90614525565b915050611670565b5050505050565b611a53612eaa565b6001600160e01b031981166000908152600260205260408120549003611abb5760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610c0c565b604080516001600160e01b0319831681524260208201527f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8910160405180910390a16001600160e01b03198116600090815260026020526040812081815590611b276001830182613e33565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b9a5760405162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b6044820152606401610c0c565b611ba2612bad565b6000611bac612e3f565b6007549091506001600160401b039081169082161115611c3457600080611bd1612f04565b6007805467ffffffffffffffff19166001600160401b038716908117909155604051929450909250907f7195d3bbca575b55b0f4b62da395f7224b75225d9c08741d216e6cf10a83eabe90611c299085908590613fc8565b60405180910390a250505b600c611c3e61320c565b81548110611c4e57611c4e6144d5565b6000918252602082200190611c638282613e6d565b5050600860009054906101000a90046001600160a01b03166001600160a01b031663ea105ac76040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611cb557600080fd5b505af1158015611cc9573d6000803e3d6000fd5b50505050600191505090565b600080600083806020019051810190611cee9190614a4a565b60408051808201909152898152602081018990529295509093509150611d1381613218565b611d1c57600080fd5b6040805180820190915283815260208101839052611d3981613218565b611d4257600080fd5b6040516bffffffffffffffffffffffff1960608b901b166020820152611dcb90839060029060340160408051601f1981840301815290829052611d849161481d565b602060405180830381855afa158015611da1573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611dc4919061453e565b8784613263565b505050505050505050565b60026020526000908152604090208054600182018054919291611df8906144eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611e24906144eb565b8015611e715780601f10611e4657610100808354040283529160200191611e71565b820191906000526020600020905b815481529060010190602001808311611e5457829003601f168201915b5050505050905082565b6000611e86826128e2565b9392505050565b600b546001600160a01b03163314611ee75760405162461bcd60e51b815260206004820152601f60248201527f6f6e6c792066617374207570646174657320636f6e66696775726174696f6e006044820152606401610c0c565b611eef612bad565b60005b81518110156120845760006008838381518110611f1157611f116144d5565b6020026020010151611f239190614942565b905060006008848481518110611f3b57611f3b6144d5565b6020026020010151611f4d9190614a23565b611f58906007614a37565b611f6390602061474e565b6005805491925063ffffffff831b199182919085908110611f8657611f866144d5565b90600052602060002001541660058481548110611fa557611fa56144d5565b9060005260206000200181905550600060f81b6004868681518110611fcc57611fcc6144d5565b60200260200101518154611fdf906144eb565b8110611fed57611fed6144d5565b81546001161561200c5790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b8404021790555084848151811061203a5761203a6144d5565b60200260200101517f5a17f564b9fd53c971695a2e033e0cd39ee8ad08d8117242cdecad8b017335c860405160405180910390a2505050808061207c90614525565b915050611ef2565b5050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e7719546001600160a01b0316336001600160a01b0316146121015760405162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b6044820152606401610c0c565b61215961213583836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506133a6565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b6120848282613481565b60008054600160a01b900460ff1680156121e65750600054604051630debfda360e41b81526001600160a01b0384811660048301529091169063debfda3090602401602060405180830381865afa1580156121c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e69190614a78565b92915050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461225a5760405162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b6044820152606401610c0c565b50600090565b600054600160a01b900460ff16156122b15760405162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b6044820152606401610c0c565b6001600160a01b0382166123075760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401610c0c565b6001600160a01b0381166123505760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401610c0c565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b6123ce612eaa565b600054600160a81b900460ff16156124285760405162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f64650000000000006044820152606401610c0c565b600180546001600160a01b031916905560008054600160a81b60ff60a81b198216179091556040516001600160a01b0390911681527f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9060200160405180910390a1565b600080600860009054906101000a90046001600160a01b03166001600160a01b0316636d62b4136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612506919061453e565b90506078600c61251681836144c2565b61252290610100614a37565b61252d90600261474e565b6125379190614a37565b6125419190614a37565b8161254e600c60786144c2565b61255a90610100614a37565b61256590600261474e565b600080516020614e47833981519152901c612580919061474e565b901b9150612590600c60786144c2565b61259c90610100614a37565b6125a8600c60786144c2565b6125b29190614a37565b8160016125c1600c60786144c2565b6125cd90610100614a37565b6125d8906002614b7e565b6125e29190614a37565b6125ee600c60786144c2565b6125fa90610100614a37565b600080516020614e47833981519152901c16612616919061474e565b612621911c836144c2565b915061262f600c60786144c2565b81600161263e600c60786144c2565b61264a90610100614a37565b612655906002614b7e565b61265f9190614a37565b600080516020614e4783398151915216612679919061474e565b612684911c836144c2565b91505090565b600054600160b01b900460ff16156126ba573330146126ab576126ab614600565b6000805460ff60b01b19169055565b6126c2612eaa565b565b6000811161273a5760405162461bcd60e51b815260206004820152603b60248201527f43697263756c61724c6973744d616e616765723a2063697263756c6172206c6560448201527f6e677468206d7573742062652067726561746572207468616e203000000000006064820152608401610c0c565b600355565b60005b60035481101561059057600c8054600101815560005261276181614525565b9050612742565b612770612eaa565b6000805460408051636221a54b60e01b81529051853593926001600160a01b031691636221a54b9160048083019260209291908290030181865afa1580156127bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e0919061453e565b905060006127ee82426144c2565b9050604051806040016040528082815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160e01b0319861681526002602090815260409091208351815590830151909150600182019061286c9082614bd8565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6838287876040516128a59493929190614c97565b60405180910390a15050505050565b6000806000806128c688888888613657565b9250925092506128d68282613726565b50909695505050505050565b6040805180820190915260008082526020820152600080600760089054906101000a90046001600160a01b03166001600160a01b031663705626976040518163ffffffff1660e01b8152600401602060405180830381865afa15801561294c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612970919061485c565b6009546040516344b571d960e01b815262ffffff92909216600483018190526001600160a01b0387811660248501529093506000928392839283929116906344b571d990604401608060405180830381865afa1580156129d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f89190614cc0565b60408051808201909152848152602081018490529a5092965090945092509050612a2d61ffff808416906110009084166137df565b95505050505050915091565b600080604051806080016040528060458152602001614e676045913990506000612a63848361381f565b9050600c8181548110612a7857612a786144d5565b9060005260206000200192505050919050565b6000808360600151836000015110612b0b5760405162461bcd60e51b815260206004820152603f60248201527f43726564656e7469616c2773207265706c69636174652076616c75652069732060448201527f6e6f74206c657373207468616e2070726f7669646572277320776569676874006064820152608401610c0c565b6000612b17858561387b565b602085015151909150818015612b31575085604001518111155b93509150505b9250929050565b8181600d600e5481548110612b5557612b556144d5565b906000526020600020019182612b6c929190614d06565b506103e8600e546001612b7f91906144c2565b612b899190614a23565b600e555050565b3d604051818101604052816000823e8215612ba9578181f35b8181fd5b600854604080516316b9bb5760e31b815290516000926001600160a01b03169163b5cddab89160048083019260209291908290030181865afa158015612bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1b919061453e565b9050604051602081016040820160608301600e54608085015260008060008060008060058752602087208752600d8952600f545b60808b01518114612e295760208a208101808a525491506000196001831601612d605760208920895260028204915060005b60016020600185030401811015612d5a57808a510154935060005b610100811015612d5157836008820460208402011015612d51576010810460108302018a51015497506000955060005b6008811015612d3b5760208181028a901b60e01c985083026008830401851115612d1c5785821b60fe1c99506000198a01612d0957968e02607f1c965b60038a03612d1c57607f9790971b8e9004965b6020810260e0039790971b969587179560029190910190600101612ccc565b508560108083030460108402018b510155612c9c565b50600101612c81565b50600191505b60018216612e1a579091506002603f8316049060005b610100811015612e185782600882041015612e1857601081048951015496506000945060005b6008811015612e07576020810288901b60e01c965060088204841115612de85784821b60fe1c98506000198901612dd557958d02607f1c955b60038903612de857607f9690961b8d9004955b6020810260e0039690961b959486179460029190910190600101612d9c565b50846010808303048a510155612d76565b505b6103e860018201069050612c4f565b505050505050505050506080810151600f555050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b03167f00000000000000000000000000000000000000000000000000000000000000006001600160401b031642612ea09190614a37565b61052c9190614942565b612eb2611156565b6001600160a01b0316336001600160a01b0316146126c25760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b6044820152606401610c0c565b60608060048054612f14906144eb565b90506001600160401b03811115612f2d57612f2d6140d3565b604051908082528060200260200182016040528015612f56578160200160208202803683370190505b50915060048054612f66906144eb565b90506001600160401b03811115612f7f57612f7f6140d3565b604051908082528060200260200182016040528015612fa8578160200160208202803683370190505b509050600080600860048054612fbd906144eb565b612fc8929150614942565b905060005b818110156130e157600060058281548110612fea57612fea6144d5565b600091825260208220015491505b60088110156130cc5760008161300f85600861474e565b61301991906144c2565b90506004818154613029906144eb565b8110613037576130376144d5565b8154600116156130565790600052602060002090602091828204019190065b9054901a600160f81b0260f81c878281518110613075576130756144d5565b60009290920b60209283029190910182015261309290839061474e565b955060e08684901b901c8882815181106130ae576130ae6144d5565b602090810291909101015250806130c481614525565b915050612ff8565b505080806130d990614525565b915050612fcd565b506008600480546130f1906144eb565b6130fc929150614a23565b1561320657600060058281548110613116576131166144d5565b6000918252602082200154915061312e83600861474e565b90505b6004805461313e906144eb565b9050811015613203576004818154613155906144eb565b8110613163576131636144d5565b8154600116156131825790600052602060002090602091828204019190065b9054901a600160f81b0260f81c8582815181106131a1576131a16144d5565b60009290920b602092830291909101909101526131bf600882614a23565b6131ca90602061474e565b935060e08483901b901c8682815181106131e6576131e66144d5565b6020908102919091010152806131fb81614525565b915050613131565b50505b50509091565b600061052c6001613a5d565b6000600080516020614e4783398151915261323883600001516003613a77565b6132439060036144c2565b61324d9190614a23565b61325c83602001516002613a77565b1492915050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001855160208088015185518683015160408051948501959095529383019190915260608201889052608082015260a081019190915260c0016040516020818303038152906040528051906020012060001c6132e09190614a23565b90506000613319613313604080518082018252600080825260209182015281518083019092526001825260029082015290565b85613acf565b905060006133278784613acf565b905060006133358383613b16565b80518651919250148015613350575080602001518560200151145b61339c5760405162461bcd60e51b815260206004820152601d60248201527f7075626c6963206b657920766572696669636174696f6e206572726f720000006044820152606401610c0c565b5050505050505050565b600080826040516020016133ba9190614499565b6040516020818303038152906040528051906020012090506000805b8651811015613432578681815181106133f1576133f16144d5565b6020026020010151830361342057858181518110613411576134116144d5565b60200260200101519150613432565b8061342a81614525565b9150506133d6565b506001600160a01b0381166134785760405162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b6044820152606401610c0c565b95945050505050565b6134b7828260405180604001604052806013815260200172233630b932a9bcb9ba32b6b9a6b0b730b3b2b960691b8152506133a6565b600760086101000a8154816001600160a01b0302191690836001600160a01b0316021790555061351d82826040518060400160405280601a81526020017f46617374557064617465496e63656e746976654d616e616765720000000000008152506133a6565b600860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061357382826040518060400160405280600d81526020016c566f746572526567697374727960981b8152506133a6565b600960006101000a8154816001600160a01b0302191690836001600160a01b031602179055506135cd828260405180604001604052806011815260200170233a39b7a332b2b2283ab13634b9b432b960791b8152506133a6565b600a60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061363382826040518060400160405280601881526020017f4661737455706461746573436f6e66696775726174696f6e00000000000000008152506133a6565b600b80546001600160a01b0319166001600160a01b03929092169190911790555050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613692575060009150600390508261371c565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156136e6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166137125750600092506001915082905061371c565b9250600091508190505b9450945094915050565b600082600381111561373a5761373a614dc5565b03613743575050565b600182600381111561375757613757614dc5565b036137755760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561378957613789614dc5565b036137aa5760405163fce698f760e01b815260048101829052602401610c0c565b60038260038111156137be576137be614dc5565b03612084576040516335e2f38360e21b815260048101829052602401610c0c565b6000806137ed858585613b61565b9050600083806137ff576137ff61492c565b858709905080156138135781600101613815565b815b9695505050505050565b600043831115801561383c575060035461383990846144c2565b43105b829061385b5760405162461bcd60e51b8152600401610c0c9190614499565b5060006138688443614a37565b905061387381613c87565b949350505050565b600061388a8360800151613218565b61389357600080fd5b6138a08260200151613218565b6138a957600080fd5b60006138fe6138c085608001518560400151613acf565b6138f96138ef604080518082018252600080825260209182015281518083019092526001825260029082015290565b8660600151613acf565b613b16565b8451602080870151865160405194955060009461392d9493019283526020830191909152604082015260600190565b6040516020818303038152906040529050600061394982613cb0565b9050600061397061396287602001518860400151613acf565b6138f9848960600151613acf565b9050600060026139a2604080518082018252600080825260209182015281518083019092526001825260029082015290565b848a608001518a6020015189876040516020016139c496959493929190614ddb565b60408051601f19818403018152908290526139de9161481d565b602060405180830381855afa1580156139fb573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190613a1e919061453e565b9050613a4a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182614a23565b6040880151149550505050505092915050565b600354600090613a6d43846144c2565b6121e69190614a23565b6000604051602081016020815260208082015260206040820152846060820152836080820152600080516020614e4783398151915260a082015260208260c0836005600019fa613ac657600080fd5b50519392505050565b604080518082019091526000808252602082015260405183518152602084015160208201528260408201526040826060836007600019fa613b0f57600080fd5b5092915050565b6040805180820190915260008082526020820152604051835181526020840151602082015282516040820152602083015160608201526040826080836006600019fa613b0f57600080fd5b6000808211613ba55760405162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b6044820152606401610c0c565b83600003613bb557506000611e86565b83830283858281613bc857613bc861492c565b0403613be657828181613bdd57613bdd61492c565b04915050611e86565b506000613bf38386614942565b90506000613c018487614a23565b90506000613c0f8587614942565b90506000613c1d8688614a23565b905085613c2a828561474e565b613c349190614942565b613c3e838561474e565b613c48838761474e565b88613c53868961474e565b613c5d919061474e565b613c6791906144c2565b613c7191906144c2565b613c7b91906144c2565b98975050505050505050565b60006003548210613c9a57613c9a614600565b6121e682600354613cab9190614a37565b613a5d565b60408051808201909152600080825260208201526000600283604051613cd6919061481d565b602060405180830381855afa158015613cf3573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190613d16919061453e565b90506000613d32600080516020614e4783398151915283614a23565b905060005b613d4082613d73565b90508015613d61576040805180820190915291825260208201529392505050565b613d6c6001836144c2565b9150613d37565b600080600080516020614e47833981519152613d90846003613a77565b613d9b9060036144c2565b613da59190614a23565b90506000613dd7826002613dc86001600080516020614e47833981519152614a37565b613dd29190614942565b613a77565b9050806001141580613de7575081155b15613df6575060009392505050565b613873826004613dc8600080516020614e4783398151915260016144c2565b50805460008255906000526020600020908101906105909190613e8b565b508054613e3f906144eb565b6000825580601f10613e4f575050565b601f0160209004906000526020600020908101906105909190613eac565b50805460008255906000526020600020908101906105909190613eac565b80821115613ea8576000613e9f8282613e6d565b50600101613e8b565b5090565b5b80821115613ea85760008155600101613ead565b600060208284031215613ed357600080fd5b5035919050565b60008060208385031215613eed57600080fd5b82356001600160401b0380821115613f0457600080fd5b818501915085601f830112613f1857600080fd5b813581811115613f2757600080fd5b8660208260051b8501011115613f3c57600080fd5b60209290920196919550909350505050565b600081518084526020808501945080840160005b83811015613f7e57815187529582019590820190600101613f62565b509495945050505050565b60008151808452602080850194508084016000805b84811015613fbc578251820b88529683019691830191600101613f9e565b50959695505050505050565b604081526000613fdb6040830185613f4e565b82810360208401526134788185613f89565b606080825284519082018190526000906020906080840190828801845b828110156140305781516001600160581b0319168452928401929084019060010161400a565b505050838103828501526140448187613f4e565b91505082810360408401526138158185613f89565b60006020828403121561406b57600080fd5b81356001600160401b0381111561408157600080fd5b82016101408185031215611e8657600080fd5b6000602082840312156140a657600080fd5b81356001600160e01b031981168114611e8657600080fd5b6001600160a01b038116811461059057600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561410b5761410b6140d3565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614139576141396140d3565b604052919050565b6000806000806080858703121561415757600080fd5b8435614162816140be565b935060208581013593506040860135925060608601356001600160401b038082111561418d57600080fd5b818801915088601f8301126141a157600080fd5b8135818111156141b3576141b36140d3565b6141c5601f8201601f19168501614111565b915080825289848285010111156141db57600080fd5b808484018584013760008482840101525080935050505092959194509250565b60005b838110156142165781810151838201526020016141fe565b50506000910152565b600081518084526142378160208601602086016141fb565b601f01601f19169290920160200192915050565b828152604060208201526000613873604083018461421f565b60006020828403121561427657600080fd5b8135611e86816140be565b60006001600160401b0382111561429a5761429a6140d3565b5060051b60200190565b600060208083850312156142b757600080fd5b82356001600160401b038111156142cd57600080fd5b8301601f810185136142de57600080fd5b80356142f16142ec82614281565b614111565b81815260059190911b8201830190838101908783111561431057600080fd5b928401925b8284101561432e57833582529284019290840190614315565b979650505050505050565b600082601f83011261434a57600080fd5b8135602061435a6142ec83614281565b82815260059290921b8401810191818101908684111561437957600080fd5b8286015b8481101561439d578035614390816140be565b835291830191830161437d565b509695505050505050565b600080604083850312156143bb57600080fd5b82356001600160401b03808211156143d257600080fd5b818501915085601f8301126143e657600080fd5b813560206143f66142ec83614281565b82815260059290921b8401810191818101908984111561441557600080fd5b948201945b838610156144335785358252948201949082019061441a565b9650508601359250508082111561444957600080fd5b5061445685828601614339565b9150509250929050565b6000806040838503121561447357600080fd5b823561447e816140be565b9150602083013561448e816140be565b809150509250929050565b602081526000611e86602083018461421f565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66144ac565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806144ff57607f821691505b60208210810361451f57634e487b7160e01b600052602260045260246000fd5b50919050565b600060018201614537576145376144ac565b5060010190565b60006020828403121561455057600080fd5b5051919050565b80516001600160581b03198116811461456f57600080fd5b919050565b6000602080838503121561458757600080fd5b82516001600160401b0381111561459d57600080fd5b8301601f810185136145ae57600080fd5b80516145bc6142ec82614281565b81815260059190911b820183019083810190878311156145db57600080fd5b928401925b8284101561432e576145f184614557565b825292840192908401906145e0565b634e487b7160e01b600052600160045260246000fd5b602081526000611e866020830184613f4e565b8051600081900b811461456f57600080fd5b600082601f83011261464c57600080fd5b8151602061465c6142ec83614281565b82815260059290921b8401810191818101908684111561467b57600080fd5b8286015b8481101561439d5761469081614629565b835291830191830161467f565b600080604083850312156146b057600080fd5b82516001600160401b03808211156146c757600080fd5b818501915085601f8301126146db57600080fd5b815160206146eb6142ec83614281565b82815260059290921b8401810191818101908984111561470a57600080fd5b948201945b838610156147285785518252948201949082019061470f565b9188015191965090935050508082111561474157600080fd5b506144568582860161463b565b80820281158282048414176121e6576121e66144ac565b6000808335601e1984360301811261477c57600080fd5b8301803591506001600160401b0382111561479657600080fd5b602001915036819003821315612b3757600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b84815283356020820152602084013560408201526040840135606082015260608401356080820152608084013560a082015260e060c0820152600061381560e0830184866147ab565b6000825161482f8184602087016141fb565b9190910192915050565b60006020828403121561484b57600080fd5b813560ff81168114611e8657600080fd5b60006020828403121561486e57600080fd5b815162ffffff81168114611e8657600080fd5b600081830360a081121561489457600080fd5b604051608081018181106001600160401b03821117156148b6576148b66140d3565b604090815284358252601f19830112156148cf57600080fd5b6148d76140e9565b915060208401358252604084013560208301528160208201526060840135604082015260808401356060820152809250505092915050565b60006020828403121561492157600080fd5b8151611e86816140be565b634e487b7160e01b600052601260045260246000fd5b6000826149515761495161492c565b500490565b60006020828403121561496857600080fd5b611e8682614557565b805161ffff8116811461456f57600080fd5b600060a0828403121561499557600080fd5b60405160a081018181106001600160401b03821117156149b7576149b76140d3565b604052825163ffffffff811681146149ce57600080fd5b81526149dc60208401614557565b602082015260408301518060030b81146149f557600080fd5b6040820152614a0660608401614971565b6060820152614a1760808401614629565b60808201529392505050565b600082614a3257614a3261492c565b500690565b818103818111156121e6576121e66144ac565b600080600060608486031215614a5f57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215614a8a57600080fd5b81518015158114611e8657600080fd5b600181815b80851115614ad5578160001904821115614abb57614abb6144ac565b80851615614ac857918102915b93841c9390800290614a9f565b509250929050565b600082614aec575060016121e6565b81614af9575060006121e6565b8160018114614b0f5760028114614b1957614b35565b60019150506121e6565b60ff841115614b2a57614b2a6144ac565b50506001821b6121e6565b5060208310610133831016604e8410600b8410161715614b58575081810a6121e6565b614b628383614a9a565b8060001904821115614b7657614b766144ac565b029392505050565b6000611e868383614add565b601f821115611b2757600081815260208120601f850160051c81016020861015614bb15750805b601f850160051c820191505b81811015614bd057828155600101614bbd565b505050505050565b81516001600160401b03811115614bf157614bf16140d3565b614c0581614bff84546144eb565b84614b8a565b602080601f831160018114614c3a5760008415614c225750858301515b600019600386901b1c1916600185901b178555614bd0565b600085815260208120601f198616915b82811015614c6957888601518255948401946001909101908401614c4a565b5085821015614c875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff60e01b851681528360208201526060604082015260006138156060830184866147ab565b60008060008060808587031215614cd657600080fd5b8451935060208501519250614ced60408601614971565b9150614cfb60608601614971565b905092959194509250565b6001600160401b03831115614d1d57614d1d6140d3565b614d3183614d2b83546144eb565b83614b8a565b6000601f841160018114614d655760008515614d4d5750838201355b600019600387901b1c1916600186901b178355611a44565b600083815260209020601f19861690835b82811015614d965786850135825560209485019460019092019101614d76565b5086821015614db35760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b600052602160045260246000fd5b865181526020808801518183015286516040830152868101516060830152855160808301528581015160a0830152845160c08301528481015160e08301528351610100830152838101516101208301528251610140830152820151610160820152610180810161432e56fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47536f72746974696f6e20726f756e6420666f722074686520676976656e20626c6f636b206973206e6f206c6f6e676572206f72206e6f742079657420617661696c61626c65a26469706673582212208cd9ad6b50b56c48247cee258fc6bbf794d2e17cf633342501588d7e33f46ab764736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/FastUpdatesConfiguration.abi b/go-client/contracts-interface/FastUpdatesConfiguration.abi new file mode 100644 index 0000000..3a05dd6 --- /dev/null +++ b/go-client/contracts-interface/FastUpdatesConfiguration.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"},{"internalType":"address","name":"_addressUpdater","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes21","name":"feedId","type":"bytes21"},{"indexed":false,"internalType":"uint32","name":"rewardBandValue","type":"uint32"},{"indexed":false,"internalType":"uint24","name":"inflationShare","type":"uint24"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FeedAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes21","name":"feedId","type":"bytes21"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FeedRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes21","name":"feedId","type":"bytes21"},{"indexed":false,"internalType":"uint32","name":"rewardBandValue","type":"uint32"},{"indexed":false,"internalType":"uint24","name":"inflationShare","type":"uint24"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FeedUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"encodedCall","type":"bytes"}],"name":"GovernanceCallTimelocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"initialGovernance","type":"address"}],"name":"GovernanceInitialised","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"governanceSettings","type":"address"}],"name":"GovernedProductionModeEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallExecuted","type":"event"},{"inputs":[{"components":[{"internalType":"bytes21","name":"feedId","type":"bytes21"},{"internalType":"uint32","name":"rewardBandValue","type":"uint32"},{"internalType":"uint24","name":"inflationShare","type":"uint24"}],"internalType":"struct IFastUpdatesConfiguration.FeedConfiguration[]","name":"_feedConfigs","type":"tuple[]"}],"name":"addFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"cancelGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"executeGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fastUpdater","outputs":[{"internalType":"contract IIFastUpdater","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressUpdater","outputs":[{"internalType":"address","name":"_addressUpdater","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeedConfigurations","outputs":[{"components":[{"internalType":"bytes21","name":"feedId","type":"bytes21"},{"internalType":"uint32","name":"rewardBandValue","type":"uint32"},{"internalType":"uint24","name":"inflationShare","type":"uint24"}],"internalType":"struct IFastUpdatesConfiguration.FeedConfiguration[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeedConfigurationsBytes","outputs":[{"internalType":"bytes","name":"_feedIds","type":"bytes"},{"internalType":"bytes","name":"_rewardBandValues","type":"bytes"},{"internalType":"bytes","name":"_inflationShares","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getFeedId","outputs":[{"internalType":"bytes21","name":"_feedId","type":"bytes21"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeedIds","outputs":[{"internalType":"bytes21[]","name":"_feedIds","type":"bytes21[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes21","name":"_feedId","type":"bytes21"}],"name":"getFeedIndex","outputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumberOfFeeds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnusedIndices","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceSettings","outputs":[{"internalType":"contract IGovernanceSettings","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"}],"name":"initialise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"productionMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes21[]","name":"_feedIds","type":"bytes21[]"}],"name":"removeFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchToProductionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"timelockedCalls","outputs":[{"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"internalType":"bytes","name":"encodedCall","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_contractNameHashes","type":"bytes32[]"},{"internalType":"address[]","name":"_contractAddresses","type":"address[]"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes21","name":"feedId","type":"bytes21"},{"internalType":"uint32","name":"rewardBandValue","type":"uint32"},{"internalType":"uint24","name":"inflationShare","type":"uint24"}],"internalType":"struct IFastUpdatesConfiguration.FeedConfiguration[]","name":"_feedConfigs","type":"tuple[]"}],"name":"updateFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/FastUpdatesConfiguration.bin b/go-client/contracts-interface/FastUpdatesConfiguration.bin new file mode 100644 index 0000000..d5bced4 --- /dev/null +++ b/go-client/contracts-interface/FastUpdatesConfiguration.bin @@ -0,0 +1 @@ +60806040523480156200001157600080fd5b50604051620027f4380380620027f483398101604081905262000034916200020b565b80838362000043828262000079565b506200006f9050817f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b505050506200025f565b600054600160a01b900460ff1615620000d95760405162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c736500000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620001315760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401620000d0565b6001600160a01b0381166200017c5760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401620000d0565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b6001600160a01b03811681146200020857600080fd5b50565b6000806000606084860312156200022157600080fd5b83516200022e81620001f2565b60208501519093506200024181620001f2565b60408501519092506200025481620001f2565b809150509250925092565b612585806200026f6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806374e6310e116100b8578063c906b1b41161007c578063c906b1b4146102da578063d29a4fa9146102e2578063debfda30146102f5578063e17f212e14610318578063ef88bf131461032c578063f5a983831461033f57600080fd5b806374e6310e146102545780639310283614610275578063a087d184146102a1578063a59b2c46146102b4578063b00c0b76146102c757600080fd5b806348a924821161010a57806348a92482146101c15780635267a15d146101d85780635aa6e675146102135780635ff270791461021b57806362354e031461022e57806367fc40291461024157600080fd5b80630a9cabe7146101475780630c518dce1461016d578063247c9cf71461018257806331038aad1461019757806331864f1f146101ac575b600080fd5b61015a610155366004611c81565b610347565b6040519081526020015b60405180910390f35b61017561039b565b6040516101649190611c9e565b610195610190366004611cec565b61045b565b005b61019f6107da565b6040516101649190611d61565b6101b4610868565b6040516101649190611dcf565b6101c96108c0565b60405161016493929190611e57565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e7719545b6040516001600160a01b039091168152602001610164565b6101fb610bcf565b610195610229366004611e9a565b610c6b565b6000546101fb906001600160a01b031681565b61019561024f366004611e9a565b610ef1565b610267610262366004611e9a565b610fd2565b604051610164929190611ec4565b610288610283366004611ee5565b611077565b6040516001600160581b03199091168152602001610164565b6101956102af366004611cec565b6110e3565b6101956102c2366004611efe565b6112db565b6101956102d5366004612055565b61155b565b60045461015a565b6003546101fb906001600160a01b031681565b61030861030336600461210e565b611636565b6040519015158152602001610164565b60005461030890600160a81b900460ff1681565b61019561033a36600461212b565b6116bf565b610195611825565b6001600160581b031981166000908152600560205260408120549081900361038a5760405162461bcd60e51b815260040161038190612164565b60405180910390fd5b80610394816121a7565b9392505050565b6004546060908067ffffffffffffffff8111156103ba576103ba611f61565b6040519080825280602002602001820160405280156103e3578160200160208202803683370190505b50915060005b818110156104565760048181548110610404576104046121be565b600091825260209091200154835160589190911b9084908390811061042b5761042b6121be565b6001600160581b0319909216602092830291909101909101528061044e816121d4565b9150506103e9565b505090565b600054600160b01b900460ff168061047d5750600054600160a81b900460ff16155b156107cb5761048a6118eb565b60008167ffffffffffffffff8111156104a5576104a5611f61565b6040519080825280602002602001820160405280156104ce578160200160208202803683370190505b50905060005b828110156107635760008484838181106104f0576104f06121be565b6105069260206060909202019081019150611c81565b90506001600160581b031981166105515760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a590819995959081a59608a1b6044820152606401610381565b6001600160581b03198116600090815260056020526040902054156105ae5760405162461bcd60e51b81526020600482015260136024820152726665656420616c72656164792065786973747360681b6044820152606401610381565b6006546000901561061257600680546105c9906001906121ed565b815481106105d9576105d96121be565b9060005260206000200154905060068054806105f7576105f7612200565b60019003818190600052602060002001600090559055610624565b50600480546001810182556000919091525b80848481518110610637576106376121be565b602002602001018181525050858584818110610655576106556121be565b9050606002016004828154811061066e5761066e6121be565b9060005260206000200181816106849190612239565b5061069290508160016122c0565b6001600160581b031983166000818152600560205260409020919091557f3ca318c85958cdc1745f9edcd68164b4579efa8050b27b9d634f5e0427e7e33a8787868181106106e2576106e26121be565b90506060020160200160208101906106fa91906122d3565b88888781811061070c5761070c6121be565b905060600201604001602081019061072491906122f0565b6040805163ffffffff909316835262ffffff9091166020830152810184905260600160405180910390a25050808061075b906121d4565b9150506104d4565b506003546040516363f921db60e01b81526001600160a01b03909116906363f921db90610794908490600401611dcf565b600060405180830381600087803b1580156107ae57600080fd5b505af11580156107c2573d6000803e3d6000fd5b50505050505050565b6107d6600036611925565b5050565b60606004805480602002602001604051908101604052809291908181526020016000905b8282101561085f5760008481526020908190206040805160608101825291850154605881901b6001600160581b0319168352600160a81b810463ffffffff1683850152600160c81b900462ffffff16908201528252600190920191016107fe565b50505050905090565b606060068054806020026020016040519081016040528092919081815260200182805480156108b657602002820191906000526020600020905b8154815260200190600101908083116108a2575b5050505050905090565b600454606090819081906108d581601561230d565b67ffffffffffffffff8111156108ed576108ed611f61565b6040519080825280601f01601f191660200182016040528015610917576020820181803683370190505b50935061092581600461230d565b67ffffffffffffffff81111561093d5761093d611f61565b6040519080825280601f01601f191660200182016040528015610967576020820181803683370190505b50925061097581600361230d565b67ffffffffffffffff81111561098d5761098d611f61565b6040519080825280601f01601f1916602001820160405280156109b7576020820181803683370190505b50915060005b81811015610bc8576000600482815481106109da576109da6121be565b60009182526020822001546004805460589290921b93509084908110610a0257610a026121be565b9060005260206000200160000160159054906101000a900463ffffffff1660e01b9050600060048481548110610a3a57610a3a6121be565b6000918252602082200154600160c81b900460e81b6001600160e81b03191691505b6015811015610acb57838160158110610a7757610a776121be565b1a60f81b8982610a8888601561230d565b610a9291906122c0565b81518110610aa257610aa26121be565b60200101906001600160f81b031916908160001a90535080610ac3816121d4565b915050610a5c565b5060005b6004811015610b3e57828160048110610aea57610aea6121be565b1a60f81b8882610afb88600461230d565b610b0591906122c0565b81518110610b1557610b156121be565b60200101906001600160f81b031916908160001a90535080610b36816121d4565b915050610acf565b5060005b6003811015610bb157818160038110610b5d57610b5d6121be565b1a60f81b8782610b6e88600361230d565b610b7891906122c0565b81518110610b8857610b886121be565b60200101906001600160f81b031916908160001a90535080610ba9816121d4565b915050610b42565b505050508080610bc0906121d4565b9150506109bd565b5050909192565b60008054600160a81b900460ff16610bf157506001546001600160a01b031690565b60008054906101000a90046001600160a01b03166001600160a01b031663732524946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c669190612324565b905090565b610c7433611636565b610cb05760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b6044820152606401610381565b6001600160e01b0319811660009081526002602052604081208054909103610d1a5760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610381565b8054421015610d6b5760405162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f77656420796574000000000000006044820152606401610381565b6000816001018054610d7c90612341565b80601f0160208091040260200160405190810160405280929190818152602001828054610da890612341565b8015610df55780601f10610dca57610100808354040283529160200191610df5565b820191906000526020600020905b815481529060010190602001808311610dd857829003601f168201915b505050506001600160e01b0319851660009081526002602052604081208181559293509050610e276001830182611c15565b50506000805460ff60b01b1916600160b01b1781556040513090610e4c90849061237b565b6000604051808303816000865af19150503d8060008114610e89576040519150601f19603f3d011682016040523d82523d6000602084013e610e8e565b606091505b50506000805460ff60b01b19169055604080516001600160e01b0319871681524260208201529192507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438910160405180910390a1610eeb81611a71565b50505050565b610ef9611a8e565b6001600160e01b031981166000908152600260205260408120549003610f615760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610381565b604080516001600160e01b0319831681524260208201527f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8910160405180910390a16001600160e01b03198116600090815260026020526040812081815590610fcd6001830182611c15565b505050565b60026020526000908152604090208054600182018054919291610ff490612341565b80601f016020809104026020016040519081016040528092919081815260200182805461102090612341565b801561106d5780601f106110425761010080835404028352916020019161106d565b820191906000526020600020905b81548152906001019060200180831161105057829003601f168201915b5050505050905082565b60045460009082106110bb5760405162461bcd60e51b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610381565b600482815481106110ce576110ce6121be565b60009182526020909120015460581b92915050565b600054600160b01b900460ff16806111055750600054600160a81b900460ff16155b156107cb576111126118eb565b60005b81811015610fcd576000838383818110611131576111316121be565b6111479260206060909202019081019150611c81565b90506001600160581b031981166111925760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a590819995959081a59608a1b6044820152606401610381565b6001600160581b03198116600090815260056020526040812054908190036111cc5760405162461bcd60e51b815260040161038190612164565b806111d6816121a7565b9150508484848181106111eb576111eb6121be565b90506060020160048281548110611204576112046121be565b90600052602060002001818161121a9190612239565b50506001600160581b031982167f317c7e03c79b6fcd22d6f17813b4e8e8a4a14104fdfb79431c6c73b550c7ca9d86868681811061125a5761125a6121be565b905060600201602001602081019061127291906122d3565b878787818110611284576112846121be565b905060600201604001602081019061129c91906122f0565b6040805163ffffffff909316835262ffffff9091166020830152810184905260600160405180910390a2505080806112d3906121d4565b915050611115565b600054600160b01b900460ff16806112fd5750600054600160a81b900460ff16155b156107cb5761130a6118eb565b60008167ffffffffffffffff81111561132557611325611f61565b60405190808252806020026020018201604052801561134e578160200160208202803683370190505b50905060005b8281101561152a57600060056000868685818110611374576113746121be565b90506020020160208101906113899190611c81565b6affffffffffffffffffffff19166affffffffffffffffffffff19168152602001908152602001600020549050806000036113d65760405162461bcd60e51b815260040161038190612164565b806113e0816121a7565b915050808383815181106113f6576113f66121be565b6020908102919091010152600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01819055600480548290811061144a5761144a6121be565b6000918252602082200180546001600160e01b0319169055600590868685818110611477576114776121be565b905060200201602081019061148c9190611c81565b6001600160581b031916815260208101919091526040016000908120558484838181106114bb576114bb6121be565b90506020020160208101906114d09190611c81565b6affffffffffffffffffffff19167fbb4bc8e9bdadd13a82544df890de25d2c6403cd23a7655410eb2ad4f542425ab8260405161150f91815260200190565b60405180910390a25080611522816121d4565b915050611354565b50600354604051630abfaf1760e41b81526001600160a01b039091169063abfaf17090610794908490600401611dcf565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e7719546001600160a01b0316336001600160a01b0316146115d45760405162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b6044820152606401610381565b61162c61160883836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611ae8565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b6107d68282611bc3565b60008054600160a01b900460ff1680156116b95750600054604051630debfda360e41b81526001600160a01b0384811660048301529091169063debfda3090602401602060405180830381865afa158015611695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b99190612397565b92915050565b600054600160a01b900460ff16156117105760405162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b6044820152606401610381565b6001600160a01b0382166117665760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401610381565b6001600160a01b0381166117af5760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401610381565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b61182d611a8e565b600054600160a81b900460ff16156118875760405162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f64650000000000006044820152606401610381565b600180546001600160a01b031916905560008054600160a81b60ff60a81b198216179091556040516001600160a01b0390911681527f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9060200160405180910390a1565b600054600160b01b900460ff161561191b5733301461190c5761190c6123b9565b6000805460ff60b01b19169055565b611923611a8e565b565b61192d611a8e565b6000805460408051636221a54b60e01b81529051853593926001600160a01b031691636221a54b9160048083019260209291908290030181865afa158015611979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199d91906123cf565b905060006119ab82426122c0565b9050604051806040016040528082815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160e01b03198616815260026020908152604090912083518155908301519091506001820190611a299082612436565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b683828787604051611a6294939291906124f6565b60405180910390a15050505050565b3d604051818101604052816000823e8215611a8a578181f35b8181fd5b611a96610bcf565b6001600160a01b0316336001600160a01b0316146119235760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b6044820152606401610381565b60008082604051602001611afc919061253c565b6040516020818303038152906040528051906020012090506000805b8651811015611b7457868181518110611b3357611b336121be565b60200260200101518303611b6257858181518110611b5357611b536121be565b60200260200101519150611b74565b80611b6c816121d4565b915050611b18565b506001600160a01b038116611bba5760405162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b6044820152606401610381565b95945050505050565b611bf182826040518060400160405280600b81526020016a2330b9ba2ab83230ba32b960a91b815250611ae8565b600380546001600160a01b0319166001600160a01b03929092169190911790555050565b508054611c2190612341565b6000825580601f10611c31575050565b601f016020900490600052602060002090810190611c4f9190611c52565b50565b5b80821115611c675760008155600101611c53565b5090565b6001600160581b031981168114611c4f57600080fd5b600060208284031215611c9357600080fd5b813561039481611c6b565b6020808252825182820181905260009190848201906040850190845b81811015611ce05783516001600160581b03191683529284019291840191600101611cba565b50909695505050505050565b60008060208385031215611cff57600080fd5b823567ffffffffffffffff80821115611d1757600080fd5b818501915085601f830112611d2b57600080fd5b813581811115611d3a57600080fd5b866020606083028501011115611d4f57600080fd5b60209290920196919550909350505050565b602080825282518282018190526000919060409081850190868401855b82811015611dc257815180516001600160581b03191685528681015163ffffffff168786015285015162ffffff168585015260609093019290850190600101611d7e565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611ce057835183529284019291840191600101611deb565b60005b83811015611e22578181015183820152602001611e0a565b50506000910152565b60008151808452611e43816020860160208601611e07565b601f01601f19169290920160200192915050565b606081526000611e6a6060830186611e2b565b8281036020840152611e7c8186611e2b565b90508281036040840152611e908185611e2b565b9695505050505050565b600060208284031215611eac57600080fd5b81356001600160e01b03198116811461039457600080fd5b828152604060208201526000611edd6040830184611e2b565b949350505050565b600060208284031215611ef757600080fd5b5035919050565b60008060208385031215611f1157600080fd5b823567ffffffffffffffff80821115611f2957600080fd5b818501915085601f830112611f3d57600080fd5b813581811115611f4c57600080fd5b8660208260051b8501011115611d4f57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611fa057611fa0611f61565b604052919050565b600067ffffffffffffffff821115611fc257611fc2611f61565b5060051b60200190565b6001600160a01b0381168114611c4f57600080fd5b600082601f830112611ff257600080fd5b8135602061200761200283611fa8565b611f77565b82815260059290921b8401810191818101908684111561202657600080fd5b8286015b8481101561204a57803561203d81611fcc565b835291830191830161202a565b509695505050505050565b6000806040838503121561206857600080fd5b823567ffffffffffffffff8082111561208057600080fd5b818501915085601f83011261209457600080fd5b813560206120a461200283611fa8565b82815260059290921b840181019181810190898411156120c357600080fd5b948201945b838610156120e1578535825294820194908201906120c8565b965050860135925050808211156120f757600080fd5b5061210485828601611fe1565b9150509250929050565b60006020828403121561212057600080fd5b813561039481611fcc565b6000806040838503121561213e57600080fd5b823561214981611fcc565b9150602083013561215981611fcc565b809150509250929050565b6020808252601390820152721999595908191bd95cc81b9bdd08195e1a5cdd606a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816121b6576121b6612191565b506000190190565b634e487b7160e01b600052603260045260246000fd5b6000600182016121e6576121e6612191565b5060010190565b818103818111156116b9576116b9612191565b634e487b7160e01b600052603160045260246000fd5b63ffffffff81168114611c4f57600080fd5b62ffffff81168114611c4f57600080fd5b813561224481611c6b565b81546001600160a81b0319811660589290921c9182178355602084013561226a81612216565b63ffffffff60a81b60a89190911b166001600160c81b03198216831781178455604085013561229881612228565b6001600160e01b0319929092169092179190911760c89190911b62ffffff60c81b1617905550565b808201808211156116b9576116b9612191565b6000602082840312156122e557600080fd5b813561039481612216565b60006020828403121561230257600080fd5b813561039481612228565b80820281158282048414176116b9576116b9612191565b60006020828403121561233657600080fd5b815161039481611fcc565b600181811c9082168061235557607f821691505b60208210810361237557634e487b7160e01b600052602260045260246000fd5b50919050565b6000825161238d818460208701611e07565b9190910192915050565b6000602082840312156123a957600080fd5b8151801515811461039457600080fd5b634e487b7160e01b600052600160045260246000fd5b6000602082840312156123e157600080fd5b5051919050565b601f821115610fcd57600081815260208120601f850160051c8101602086101561240f5750805b601f850160051c820191505b8181101561242e5782815560010161241b565b505050505050565b815167ffffffffffffffff81111561245057612450611f61565b6124648161245e8454612341565b846123e8565b602080601f83116001811461249957600084156124815750858301515b600019600386901b1c1916600185901b17855561242e565b600085815260208120601f198616915b828110156124c8578886015182559484019460019091019084016124a9565b50858210156124e65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff60e01b8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b6020815260006103946020830184611e2b56fea2646970667358221220b08b7ff7fb5a3d9e52089197b82b82f21e80c777cd96ba19a88731aecbdbe75f64736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/FlareSystemMock.abi b/go-client/contracts-interface/FlareSystemMock.abi new file mode 100644 index 0000000..1cfa2e1 --- /dev/null +++ b/go-client/contracts-interface/FlareSystemMock.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"_randomSeed","type":"uint256"},{"internalType":"uint256","name":"_epochLen","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"epochLen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes21","name":"","type":"bytes21"}],"name":"getCurrentFeed","outputs":[{"components":[{"internalType":"uint32","name":"votingRoundId","type":"uint32"},{"internalType":"bytes21","name":"id","type":"bytes21"},{"internalType":"int32","name":"value","type":"int32"},{"internalType":"uint16","name":"turnoutBIPS","type":"uint16"},{"internalType":"int8","name":"decimals","type":"int8"}],"internalType":"struct IFtsoFeedPublisher.Feed","name":"_feed","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCurrentRewardEpochId","outputs":[{"internalType":"uint24","name":"_currentRewardEpochId","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"},{"internalType":"address","name":"_signingPolicyAddress","type":"address"}],"name":"getPublicKeyAndNormalisedWeight","outputs":[{"internalType":"bytes32","name":"_publicKeyPart1","type":"bytes32"},{"internalType":"bytes32","name":"_publicKeyPart2","type":"bytes32"},{"internalType":"uint16","name":"_normalisedWeight","type":"uint16"},{"internalType":"uint16","name":"_normalisedWeightsSumOfVotersWithPublicKeys","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getSeed","outputs":[{"internalType":"uint256","name":"_currentRandom","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"policies","outputs":[{"internalType":"bytes32","name":"pk1","type":"bytes32"},{"internalType":"bytes32","name":"pk2","type":"bytes32"},{"internalType":"uint16","name":"weight","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"randomSeed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"components":[{"internalType":"bytes32","name":"pk1","type":"bytes32"},{"internalType":"bytes32","name":"pk2","type":"bytes32"},{"internalType":"uint16","name":"weight","type":"uint16"}],"internalType":"struct FlareSystemMock.Policy","name":"_policy","type":"tuple"}],"name":"registerAsVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalWeights","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/FlareSystemMock.bin b/go-client/contracts-interface/FlareSystemMock.bin new file mode 100644 index 0000000..7e52184 --- /dev/null +++ b/go-client/contracts-interface/FlareSystemMock.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516106de3803806106de83398101604081905261002f9161003d565b600091909155600155610061565b6000806040838503121561005057600080fd5b505080516020909101519092909150565b61066e806100706000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806381bd4bf41161006657806381bd4bf4146101ae5780639b97b24c146101c3578063b62e1efc1461028a578063d2b3996f146102c1578063e0d4ea37146102ca57600080fd5b80630b747d911461009857806344b571d9146100b457806358fb1039146101395780637056269714610192575b600080fd5b6100a160005481565b6040519081526020015b60405180910390f35b61010f6100c2366004610477565b60008281526002602081815260408084206001600160a01b039095168452938152838320805460018201549190930154958452600390915292909120549093919261ffff90811692911690565b60408051948552602085019390935261ffff918216928401929092521660608201526080016100ab565b610173610147366004610477565b6002602081815260009384526040808520909152918352912080546001820154919092015461ffff1683565b60408051938452602084019290925261ffff16908201526060016100ab565b61019a6102dd565b60405162ffffff90911681526020016100ab565b6101c16101bc3660046104a3565b6102f2565b005b61022f6101d13660046104eb565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250506040805160a08101825260008082526020820152620186a09181019190915261271060608201526002608082015290565b6040516100ab9190815163ffffffff1681526020808301516affffffffffffffffffffff19169082015260408083015160030b9082015260608083015161ffff169082015260809182015160000b9181019190915260a00190565b6102ae610298366004610520565b60036020526000908152604090205461ffff1681565b60405161ffff90911681526020016100ab565b6100a160015481565b6100a16102d8366004610520565b6103d4565b6000600154436102ed9190610539565b905090565b610302606082016040830161056e565b61ffff166000036103525760405162461bcd60e51b8152602060048201526016602482015275576569676874206d757374206265206e6f6e7a65726f60501b604482015260640160405180910390fd5b60008381526002602090815260408083206001600160a01b038616845290915290208190610380828261058b565b506103939050606082016040830161056e565b600084815260036020526040812080549091906103b590849061ffff166105c0565b92506101000a81548161ffff021916908361ffff160217905550505050565b60006002600154436103e69190610539565b60005460408051602081019390935282015260600160408051601f1981840301815290829052610415916105f0565b602060405180830381855afa158015610432573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610455919061061f565b92915050565b80356001600160a01b038116811461047257600080fd5b919050565b6000806040838503121561048a57600080fd5b8235915061049a6020840161045b565b90509250929050565b600080600083850360a08112156104b957600080fd5b843593506104c96020860161045b565b92506060603f19820112156104dd57600080fd5b506040840190509250925092565b6000602082840312156104fd57600080fd5b81356affffffffffffffffffffff198116811461051957600080fd5b9392505050565b60006020828403121561053257600080fd5b5035919050565b60008261055657634e487b7160e01b600052601260045260246000fd5b500490565b61ffff8116811461056b57600080fd5b50565b60006020828403121561058057600080fd5b81356105198161055b565b81358155602082013560018201556002810160408301356105ab8161055b565b815461ffff191661ffff919091161790555050565b61ffff8181168382160190808211156105e957634e487b7160e01b600052601160045260246000fd5b5092915050565b6000825160005b8181101561061157602081860181015185830152016105f7565b506000920191825250919050565b60006020828403121561063157600080fd5b505191905056fea2646970667358221220988d211aac67deeaf4b0a8b724eb30649d4bd70118ebe1b94df98912381aefab64736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/Governed.abi b/go-client/contracts-interface/Governed.abi new file mode 100644 index 0000000..6cb72cb --- /dev/null +++ b/go-client/contracts-interface/Governed.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"encodedCall","type":"bytes"}],"name":"GovernanceCallTimelocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"initialGovernance","type":"address"}],"name":"GovernanceInitialised","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"governanceSettings","type":"address"}],"name":"GovernedProductionModeEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallExecuted","type":"event"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"cancelGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"executeGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceSettings","outputs":[{"internalType":"contract IGovernanceSettings","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"}],"name":"initialise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"productionMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"switchToProductionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"timelockedCalls","outputs":[{"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"internalType":"bytes","name":"encodedCall","type":"bytes"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/Governed.bin b/go-client/contracts-interface/Governed.bin new file mode 100644 index 0000000..d4807d6 --- /dev/null +++ b/go-client/contracts-interface/Governed.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50604051610d76380380610d7683398101604081905261002f916101cc565b6100398282610040565b5050610206565b600054600160a01b900460ff161561009f5760405162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c736500000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b0382166100f55760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401610096565b6001600160a01b03811661013e5760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401610096565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b6001600160a01b03811681146101c957600080fd5b50565b600080604083850312156101df57600080fd5b82516101ea816101b4565b60208401519092506101fb816101b4565b809150509250929050565b610b61806102156000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806374e6310e1161006657806374e6310e146100f8578063debfda3014610119578063e17f212e1461013c578063ef88bf1314610150578063f5a983831461016357600080fd5b80635aa6e675146100985780635ff27079146100bd57806362354e03146100d257806367fc4029146100e5575b600080fd5b6100a061016b565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d06100cb36600461099c565b610207565b005b6000546100a0906001600160a01b031681565b6100d06100f336600461099c565b610492565b61010b61010636600461099c565b610573565b6040516100b49291906109f1565b61012c610127366004610a40565b610618565b60405190151581526020016100b4565b60005461012c90600160a81b900460ff1681565b6100d061015e366004610a5d565b6106a1565b6100d0610807565b60008054600160a81b900460ff1661018d57506001546001600160a01b031690565b60008054906101000a90046001600160a01b03166001600160a01b031663732524946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102029190610a96565b905090565b61021033610618565b6102515760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b60448201526064015b60405180910390fd5b6001600160e01b03198116600090815260026020526040812080549091036102bb5760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610248565b805442101561030c5760405162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f77656420796574000000000000006044820152606401610248565b600081600101805461031d90610ab3565b80601f016020809104026020016040519081016040528092919081815260200182805461034990610ab3565b80156103965780601f1061036b57610100808354040283529160200191610396565b820191906000526020600020905b81548152906001019060200180831161037957829003601f168201915b505050506001600160e01b03198516600090815260026020526040812081815592935090506103c86001830182610946565b50506000805460ff60b01b1916600160b01b17815560405130906103ed908490610aed565b6000604051808303816000865af19150503d806000811461042a576040519150601f19603f3d011682016040523d82523d6000602084013e61042f565b606091505b50506000805460ff60b01b19169055604080516001600160e01b0319871681524260208201529192507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438910160405180910390a161048c816108cd565b50505050565b61049a6108ea565b6001600160e01b0319811660009081526002602052604081205490036105025760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610248565b604080516001600160e01b0319831681524260208201527f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8910160405180910390a16001600160e01b0319811660009081526002602052604081208181559061056e6001830182610946565b505050565b6002602052600090815260409020805460018201805491929161059590610ab3565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190610ab3565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905082565b60008054600160a01b900460ff16801561069b5750600054604051630debfda360e41b81526001600160a01b0384811660048301529091169063debfda3090602401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190610b09565b92915050565b600054600160a01b900460ff16156106f25760405162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b6044820152606401610248565b6001600160a01b0382166107485760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401610248565b6001600160a01b0381166107915760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401610248565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b61080f6108ea565b600054600160a81b900460ff16156108695760405162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f64650000000000006044820152606401610248565b600180546001600160a01b031916905560008054600160a81b60ff60a81b198216179091556040516001600160a01b0390911681527f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9060200160405180910390a1565b3d604051818101604052816000823e82156108e6578181f35b8181fd5b6108f261016b565b6001600160a01b0316336001600160a01b0316146109445760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b6044820152606401610248565b565b50805461095290610ab3565b6000825580601f10610962575050565b601f0160209004906000526020600020908101906109809190610983565b50565b5b808211156109985760008155600101610984565b5090565b6000602082840312156109ae57600080fd5b81356001600160e01b0319811681146109c657600080fd5b9392505050565b60005b838110156109e85781810151838201526020016109d0565b50506000910152565b8281526040602082015260008251806040840152610a168160608501602087016109cd565b601f01601f1916919091016060019392505050565b6001600160a01b038116811461098057600080fd5b600060208284031215610a5257600080fd5b81356109c681610a2b565b60008060408385031215610a7057600080fd5b8235610a7b81610a2b565b91506020830135610a8b81610a2b565b809150509250929050565b600060208284031215610aa857600080fd5b81516109c681610a2b565b600181811c90821680610ac757607f821691505b602082108103610ae757634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610aff8184602087016109cd565b9190910192915050565b600060208284031215610b1b57600080fd5b815180151581146109c657600080fdfea264697066735822122010311743f4af32d2c11852a5898f4122cdac7bce1b6c36f0b8bc44ce72c5b8b164736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/GovernedBase.abi b/go-client/contracts-interface/GovernedBase.abi new file mode 100644 index 0000000..977218c --- /dev/null +++ b/go-client/contracts-interface/GovernedBase.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"encodedCall","type":"bytes"}],"name":"GovernanceCallTimelocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"initialGovernance","type":"address"}],"name":"GovernanceInitialised","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"governanceSettings","type":"address"}],"name":"GovernedProductionModeEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallExecuted","type":"event"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"cancelGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"executeGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceSettings","outputs":[{"internalType":"contract IGovernanceSettings","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"}],"name":"initialise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"productionMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"switchToProductionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"timelockedCalls","outputs":[{"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"internalType":"bytes","name":"encodedCall","type":"bytes"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/GovernedBase.bin b/go-client/contracts-interface/GovernedBase.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IFastUpdateIncentiveManager.abi b/go-client/contracts-interface/IFastUpdateIncentiveManager.abi new file mode 100644 index 0000000..302b085 --- /dev/null +++ b/go-client/contracts-interface/IFastUpdateIncentiveManager.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Range","name":"rangeIncrease","type":"uint256"},{"indexed":false,"internalType":"SampleSize","name":"sampleSizeIncrease","type":"uint256"},{"indexed":false,"internalType":"Fee","name":"offerAmount","type":"uint256"}],"name":"IncentiveOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"bytes","name":"feedIds","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"rewardBandValues","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"inflationShares","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InflationRewardsOffered","type":"event"},{"inputs":[],"name":"getExpectedSampleSize","outputs":[{"internalType":"SampleSize","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIncentiveDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrecision","outputs":[{"internalType":"Precision","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRange","outputs":[{"internalType":"Range","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getScale","outputs":[{"internalType":"Scale","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Range","name":"rangeIncrease","type":"uint256"},{"internalType":"Range","name":"rangeLimit","type":"uint256"}],"internalType":"struct IFastUpdateIncentiveManager.IncentiveOffer","name":"_offer","type":"tuple"}],"name":"offerIncentive","outputs":[],"stateMutability":"payable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IFastUpdateIncentiveManager.bin b/go-client/contracts-interface/IFastUpdateIncentiveManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IFastUpdater.abi b/go-client/contracts-interface/IFastUpdater.abi new file mode 100644 index 0000000..772abc6 --- /dev/null +++ b/go-client/contracts-interface/IFastUpdater.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FastUpdateFeedRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"votingRoundId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"bytes21","name":"id","type":"bytes21"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"int8","name":"decimals","type":"int8"}],"name":"FastUpdateFeedReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"votingEpochId","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"feeds","type":"uint256[]"},{"indexed":false,"internalType":"int8[]","name":"decimals","type":"int8[]"}],"name":"FastUpdateFeeds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"}],"name":"FastUpdateFeedsSubmitted","type":"event"},{"inputs":[],"name":"currentScoreCutoff","outputs":[{"internalType":"uint256","name":"_cutoff","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_signingPolicyAddress","type":"address"}],"name":"currentSortitionWeight","outputs":[{"internalType":"uint256","name":"_weight","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fetchAllCurrentFeeds","outputs":[{"internalType":"bytes21[]","name":"_feedIds","type":"bytes21[]"},{"internalType":"uint256[]","name":"_feeds","type":"uint256[]"},{"internalType":"int8[]","name":"_decimals","type":"int8[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"fetchCurrentFeeds","outputs":[{"internalType":"uint256[]","name":"_feeds","type":"uint256[]"},{"internalType":"int8[]","name":"_decimals","type":"int8[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"sortitionBlock","type":"uint256"},{"components":[{"internalType":"uint256","name":"replicate","type":"uint256"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct Bn256.G1Point","name":"gamma","type":"tuple"},{"internalType":"uint256","name":"c","type":"uint256"},{"internalType":"uint256","name":"s","type":"uint256"}],"internalType":"struct SortitionCredential","name":"sortitionCredential","type":"tuple"},{"internalType":"bytes","name":"deltas","type":"bytes"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFastUpdater.Signature","name":"signature","type":"tuple"}],"internalType":"struct IFastUpdater.FastUpdates","name":"_updates","type":"tuple"}],"name":"submitUpdates","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IFastUpdater.bin b/go-client/contracts-interface/IFastUpdater.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IFastUpdatesConfiguration.abi b/go-client/contracts-interface/IFastUpdatesConfiguration.abi new file mode 100644 index 0000000..aaa0948 --- /dev/null +++ b/go-client/contracts-interface/IFastUpdatesConfiguration.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes21","name":"feedId","type":"bytes21"},{"indexed":false,"internalType":"uint32","name":"rewardBandValue","type":"uint32"},{"indexed":false,"internalType":"uint24","name":"inflationShare","type":"uint24"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FeedAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes21","name":"feedId","type":"bytes21"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FeedRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes21","name":"feedId","type":"bytes21"},{"indexed":false,"internalType":"uint32","name":"rewardBandValue","type":"uint32"},{"indexed":false,"internalType":"uint24","name":"inflationShare","type":"uint24"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FeedUpdated","type":"event"},{"inputs":[],"name":"getFeedConfigurations","outputs":[{"components":[{"internalType":"bytes21","name":"feedId","type":"bytes21"},{"internalType":"uint32","name":"rewardBandValue","type":"uint32"},{"internalType":"uint24","name":"inflationShare","type":"uint24"}],"internalType":"struct IFastUpdatesConfiguration.FeedConfiguration[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeedConfigurationsBytes","outputs":[{"internalType":"bytes","name":"_feedIds","type":"bytes"},{"internalType":"bytes","name":"_rewardBandValues","type":"bytes"},{"internalType":"bytes","name":"_inflationShares","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getFeedId","outputs":[{"internalType":"bytes21","name":"_feedId","type":"bytes21"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeedIds","outputs":[{"internalType":"bytes21[]","name":"","type":"bytes21[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes21","name":"_feedId","type":"bytes21"}],"name":"getFeedIndex","outputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumberOfFeeds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnusedIndices","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IFastUpdatesConfiguration.bin b/go-client/contracts-interface/IFastUpdatesConfiguration.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IFlareDaemonize.abi b/go-client/contracts-interface/IFlareDaemonize.abi new file mode 100644 index 0000000..0d11edd --- /dev/null +++ b/go-client/contracts-interface/IFlareDaemonize.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"daemonize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"switchToFallbackMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IFlareDaemonize.bin b/go-client/contracts-interface/IFlareDaemonize.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IFlareSystemsManager.abi b/go-client/contracts-interface/IFlareSystemsManager.abi new file mode 100644 index 0000000..8c11ae8 --- /dev/null +++ b/go-client/contracts-interface/IFlareSystemsManager.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"RandomAcquisitionStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint32","name":"startVotingRoundId","type":"uint32"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"RewardEpochStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"bytes32","name":"rewardsHash","type":"bytes32"},{"components":[{"internalType":"uint256","name":"rewardManagerId","type":"uint256"},{"internalType":"uint256","name":"noOfWeightBasedClaims","type":"uint256"}],"indexed":false,"internalType":"struct IFlareSystemsManager.NumberOfWeightBasedClaims[]","name":"noOfWeightBasedClaims","type":"tuple[]"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"},{"indexed":false,"internalType":"bool","name":"thresholdReached","type":"bool"}],"name":"RewardsSigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"SignUptimeVoteEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"},{"indexed":false,"internalType":"bool","name":"thresholdReached","type":"bool"}],"name":"SigningPolicySigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"bytes32","name":"uptimeVoteHash","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"},{"indexed":false,"internalType":"bool","name":"thresholdReached","type":"bool"}],"name":"UptimeVoteSigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"bytes20[]","name":"nodeIds","type":"bytes20[]"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"UptimeVoteSubmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint64","name":"votePowerBlock","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"VotePowerBlockSelected","type":"event"},{"inputs":[],"name":"firstRewardEpochStartTs","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firstVotingRoundStartTs","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRewardEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRewardEpochId","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentVotingEpochId","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getSeed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getStartVotingRoundId","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getThreshold","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getVotePowerBlock","outputs":[{"internalType":"uint64","name":"_votePowerBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getVoterRegistrationData","outputs":[{"internalType":"uint256","name":"_votePowerBlock","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isVoterRegistrationEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardEpochDurationSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bytes32","name":"_newSigningPolicyHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFlareSystemsManager.Signature","name":"_signature","type":"tuple"}],"name":"signNewSigningPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"components":[{"internalType":"uint256","name":"rewardManagerId","type":"uint256"},{"internalType":"uint256","name":"noOfWeightBasedClaims","type":"uint256"}],"internalType":"struct IFlareSystemsManager.NumberOfWeightBasedClaims[]","name":"_noOfWeightBasedClaims","type":"tuple[]"},{"internalType":"bytes32","name":"_rewardsHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFlareSystemsManager.Signature","name":"_signature","type":"tuple"}],"name":"signRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bytes32","name":"_uptimeVoteHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFlareSystemsManager.Signature","name":"_signature","type":"tuple"}],"name":"signUptimeVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bytes20[]","name":"_nodeIds","type":"bytes20[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFlareSystemsManager.Signature","name":"_signature","type":"tuple"}],"name":"submitUptimeVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"votingEpochDurationSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IFlareSystemsManager.bin b/go-client/contracts-interface/IFlareSystemsManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IFtsoFeedPublisher.abi b/go-client/contracts-interface/IFtsoFeedPublisher.abi new file mode 100644 index 0000000..497fa62 --- /dev/null +++ b/go-client/contracts-interface/IFtsoFeedPublisher.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"votingRoundId","type":"uint32"},{"indexed":true,"internalType":"bytes21","name":"id","type":"bytes21"},{"indexed":false,"internalType":"int32","name":"value","type":"int32"},{"indexed":false,"internalType":"uint16","name":"turnoutBIPS","type":"uint16"},{"indexed":false,"internalType":"int8","name":"decimals","type":"int8"}],"name":"FtsoFeedPublished","type":"event"},{"inputs":[],"name":"feedsHistorySize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ftsoProtocolId","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes21","name":"_feedId","type":"bytes21"}],"name":"getCurrentFeed","outputs":[{"components":[{"internalType":"uint32","name":"votingRoundId","type":"uint32"},{"internalType":"bytes21","name":"id","type":"bytes21"},{"internalType":"int32","name":"value","type":"int32"},{"internalType":"uint16","name":"turnoutBIPS","type":"uint16"},{"internalType":"int8","name":"decimals","type":"int8"}],"internalType":"struct IFtsoFeedPublisher.Feed","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes21","name":"_feedId","type":"bytes21"},{"internalType":"uint256","name":"_votingRoundId","type":"uint256"}],"name":"getFeed","outputs":[{"components":[{"internalType":"uint32","name":"votingRoundId","type":"uint32"},{"internalType":"bytes21","name":"id","type":"bytes21"},{"internalType":"int32","name":"value","type":"int32"},{"internalType":"uint16","name":"turnoutBIPS","type":"uint16"},{"internalType":"int8","name":"decimals","type":"int8"}],"internalType":"struct IFtsoFeedPublisher.Feed","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"components":[{"internalType":"uint32","name":"votingRoundId","type":"uint32"},{"internalType":"bytes21","name":"id","type":"bytes21"},{"internalType":"int32","name":"value","type":"int32"},{"internalType":"uint16","name":"turnoutBIPS","type":"uint16"},{"internalType":"int8","name":"decimals","type":"int8"}],"internalType":"struct IFtsoFeedPublisher.Feed","name":"body","type":"tuple"}],"internalType":"struct IFtsoFeedPublisher.FeedWithProof[]","name":"_proofs","type":"tuple[]"}],"name":"publish","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IFtsoFeedPublisher.bin b/go-client/contracts-interface/IFtsoFeedPublisher.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IGovernanceSettings.abi b/go-client/contracts-interface/IGovernanceSettings.abi new file mode 100644 index 0000000..6009202 --- /dev/null +++ b/go-client/contracts-interface/IGovernanceSettings.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"getExecutors","outputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGovernanceAddress","outputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimelock","outputs":[{"internalType":"uint256","name":"_timelock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IGovernanceSettings.bin b/go-client/contracts-interface/IGovernanceSettings.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIAddressUpdatable.abi b/go-client/contracts-interface/IIAddressUpdatable.abi new file mode 100644 index 0000000..db3631c --- /dev/null +++ b/go-client/contracts-interface/IIAddressUpdatable.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"bytes32[]","name":"_contractNameHashes","type":"bytes32[]"},{"internalType":"address[]","name":"_contractAddresses","type":"address[]"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIAddressUpdatable.bin b/go-client/contracts-interface/IIAddressUpdatable.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIFastUpdateIncentiveManager.abi b/go-client/contracts-interface/IIFastUpdateIncentiveManager.abi new file mode 100644 index 0000000..2239804 --- /dev/null +++ b/go-client/contracts-interface/IIFastUpdateIncentiveManager.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"Range","name":"rangeIncrease","type":"uint256"},{"indexed":false,"internalType":"SampleSize","name":"sampleSizeIncrease","type":"uint256"},{"indexed":false,"internalType":"Fee","name":"offerAmount","type":"uint256"}],"name":"IncentiveOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"bytes","name":"feedIds","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"rewardBandValues","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"inflationShares","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InflationRewardsOffered","type":"event"},{"inputs":[],"name":"advance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getExpectedSampleSize","outputs":[{"internalType":"SampleSize","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIncentiveDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrecision","outputs":[{"internalType":"Precision","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRange","outputs":[{"internalType":"Range","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getScale","outputs":[{"internalType":"Scale","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Range","name":"rangeIncrease","type":"uint256"},{"internalType":"Range","name":"rangeLimit","type":"uint256"}],"internalType":"struct IFastUpdateIncentiveManager.IncentiveOffer","name":"_offer","type":"tuple"}],"name":"offerIncentive","outputs":[],"stateMutability":"payable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIFastUpdateIncentiveManager.bin b/go-client/contracts-interface/IIFastUpdateIncentiveManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIFastUpdater.abi b/go-client/contracts-interface/IIFastUpdater.abi new file mode 100644 index 0000000..a733c06 --- /dev/null +++ b/go-client/contracts-interface/IIFastUpdater.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"FastUpdateFeedRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"votingRoundId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"bytes21","name":"id","type":"bytes21"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"int8","name":"decimals","type":"int8"}],"name":"FastUpdateFeedReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"votingEpochId","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"feeds","type":"uint256[]"},{"indexed":false,"internalType":"int8[]","name":"decimals","type":"int8[]"}],"name":"FastUpdateFeeds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"}],"name":"FastUpdateFeedsSubmitted","type":"event"},{"inputs":[],"name":"currentScoreCutoff","outputs":[{"internalType":"uint256","name":"_cutoff","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_signingPolicyAddress","type":"address"}],"name":"currentSortitionWeight","outputs":[{"internalType":"uint256","name":"_weight","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daemonize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fetchAllCurrentFeeds","outputs":[{"internalType":"bytes21[]","name":"_feedIds","type":"bytes21[]"},{"internalType":"uint256[]","name":"_feeds","type":"uint256[]"},{"internalType":"int8[]","name":"_decimals","type":"int8[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"fetchCurrentFeeds","outputs":[{"internalType":"uint256[]","name":"_feeds","type":"uint256[]"},{"internalType":"int8[]","name":"_decimals","type":"int8[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"removeFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"resetFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"sortitionBlock","type":"uint256"},{"components":[{"internalType":"uint256","name":"replicate","type":"uint256"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct Bn256.G1Point","name":"gamma","type":"tuple"},{"internalType":"uint256","name":"c","type":"uint256"},{"internalType":"uint256","name":"s","type":"uint256"}],"internalType":"struct SortitionCredential","name":"sortitionCredential","type":"tuple"},{"internalType":"bytes","name":"deltas","type":"bytes"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFastUpdater.Signature","name":"signature","type":"tuple"}],"internalType":"struct IFastUpdater.FastUpdates","name":"_updates","type":"tuple"}],"name":"submitUpdates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchToFallbackMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"bytes32","name":"_part1","type":"bytes32"},{"internalType":"bytes32","name":"_part2","type":"bytes32"},{"internalType":"bytes","name":"verificationData","type":"bytes"}],"name":"verifyPublicKey","outputs":[],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIFastUpdater.bin b/go-client/contracts-interface/IIFastUpdater.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIFlareSystemsManager.abi b/go-client/contracts-interface/IIFlareSystemsManager.abi new file mode 100644 index 0000000..cd7bcb3 --- /dev/null +++ b/go-client/contracts-interface/IIFlareSystemsManager.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint24","name":"rewardEpochId","type":"uint24"}],"name":"ClosingExpiredRewardEpochFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"RandomAcquisitionStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint32","name":"startVotingRoundId","type":"uint32"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"RewardEpochStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"bytes32","name":"rewardsHash","type":"bytes32"},{"components":[{"internalType":"uint256","name":"rewardManagerId","type":"uint256"},{"internalType":"uint256","name":"noOfWeightBasedClaims","type":"uint256"}],"indexed":false,"internalType":"struct IFlareSystemsManager.NumberOfWeightBasedClaims[]","name":"noOfWeightBasedClaims","type":"tuple[]"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"},{"indexed":false,"internalType":"bool","name":"thresholdReached","type":"bool"}],"name":"RewardsSigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"blockNumber","type":"uint64"}],"name":"SettingCleanUpBlockNumberFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"SignUptimeVoteEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"},{"indexed":false,"internalType":"bool","name":"thresholdReached","type":"bool"}],"name":"SigningPolicySigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint24","name":"rewardEpochId","type":"uint24"}],"name":"TriggeringVoterRegistrationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"bytes32","name":"uptimeVoteHash","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"},{"indexed":false,"internalType":"bool","name":"thresholdReached","type":"bool"}],"name":"UptimeVoteSigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"bytes20[]","name":"nodeIds","type":"bytes20[]"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"UptimeVoteSubmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint64","name":"votePowerBlock","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"VotePowerBlockSelected","type":"event"},{"inputs":[],"name":"currentRewardEpochExpectedEndTs","outputs":[{"internalType":"uint64","name":"_currentRewardEpochExpectedEndTs","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firstRewardEpochStartTs","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firstVotingRoundStartTs","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRewardEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRewardEpochId","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentVotingEpochId","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getRandomAcquisitionInfo","outputs":[{"internalType":"uint64","name":"_randomAcquisitionStartTs","type":"uint64"},{"internalType":"uint64","name":"_randomAcquisitionStartBlock","type":"uint64"},{"internalType":"uint64","name":"_randomAcquisitionEndTs","type":"uint64"},{"internalType":"uint64","name":"_randomAcquisitionEndBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getRewardEpochStartInfo","outputs":[{"internalType":"uint64","name":"_rewardEpochStartTs","type":"uint64"},{"internalType":"uint64","name":"_rewardEpochStartBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getRewardsSignInfo","outputs":[{"internalType":"uint64","name":"_rewardsSignStartTs","type":"uint64"},{"internalType":"uint64","name":"_rewardsSignStartBlock","type":"uint64"},{"internalType":"uint64","name":"_rewardsSignEndTs","type":"uint64"},{"internalType":"uint64","name":"_rewardsSignEndBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getSeed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getSigningPolicySignInfo","outputs":[{"internalType":"uint64","name":"_signingPolicySignStartTs","type":"uint64"},{"internalType":"uint64","name":"_signingPolicySignStartBlock","type":"uint64"},{"internalType":"uint64","name":"_signingPolicySignEndTs","type":"uint64"},{"internalType":"uint64","name":"_signingPolicySignEndBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getStartVotingRoundId","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getThreshold","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getUptimeVoteSignStartInfo","outputs":[{"internalType":"uint64","name":"_uptimeVoteSignStartTs","type":"uint64"},{"internalType":"uint64","name":"_uptimeVoteSignStartBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getVotePowerBlock","outputs":[{"internalType":"uint64","name":"_votePowerBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getVoterRegistrationData","outputs":[{"internalType":"uint256","name":"_votePowerBlock","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"address","name":"_voter","type":"address"}],"name":"getVoterRewardsSignInfo","outputs":[{"internalType":"uint64","name":"_rewardsSignTs","type":"uint64"},{"internalType":"uint64","name":"_rewardsSignBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"address","name":"_voter","type":"address"}],"name":"getVoterSigningPolicySignInfo","outputs":[{"internalType":"uint64","name":"_signingPolicySignTs","type":"uint64"},{"internalType":"uint64","name":"_signingPolicySignBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"address","name":"_voter","type":"address"}],"name":"getVoterUptimeVoteSignInfo","outputs":[{"internalType":"uint64","name":"_uptimeVoteSignTs","type":"uint64"},{"internalType":"uint64","name":"_uptimeVoteSignBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"address","name":"_voter","type":"address"}],"name":"getVoterUptimeVoteSubmitInfo","outputs":[{"internalType":"uint64","name":"_uptimeVoteSubmitTs","type":"uint64"},{"internalType":"uint64","name":"_uptimeVoteSubmitBlock","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isVoterRegistrationEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastInitializedVotingRoundId","outputs":[{"internalType":"uint32","name":"_lastInitializedVotingRoundId","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newSigningPolicyInitializationStartSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newSigningPolicyMinNumberOfVotingRoundsDelay","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"},{"internalType":"uint256","name":"_rewardManagerId","type":"uint256"}],"name":"noOfWeightBasedClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"noOfWeightBasedClaimsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"randomAcquisitionMaxDurationBlocks","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"randomAcquisitionMaxDurationSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardEpochDurationSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardEpochIdToExpireNext","outputs":[{"internalType":"uint24","name":"_rewardEpochIdToExpireNext","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardExpiryOffsetSeconds","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"rewardsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bytes32","name":"_newSigningPolicyHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFlareSystemsManager.Signature","name":"_signature","type":"tuple"}],"name":"signNewSigningPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"components":[{"internalType":"uint256","name":"rewardManagerId","type":"uint256"},{"internalType":"uint256","name":"noOfWeightBasedClaims","type":"uint256"}],"internalType":"struct IFlareSystemsManager.NumberOfWeightBasedClaims[]","name":"_noOfWeightBasedClaims","type":"tuple[]"},{"internalType":"bytes32","name":"_rewardsHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFlareSystemsManager.Signature","name":"_signature","type":"tuple"}],"name":"signRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bytes32","name":"_uptimeVoteHash","type":"bytes32"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFlareSystemsManager.Signature","name":"_signature","type":"tuple"}],"name":"signUptimeVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signingPolicyMinNumberOfVoters","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"signingPolicyThresholdPPM","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bytes20[]","name":"_nodeIds","type":"bytes20[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IFlareSystemsManager.Signature","name":"_signature","type":"tuple"}],"name":"submitUptimeVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submitUptimeVoteMinDurationBlocks","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"submitUptimeVoteMinDurationSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"uptimeVoteHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voterRegistrationMinDurationBlocks","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voterRegistrationMinDurationSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingEpochDurationSeconds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIFlareSystemsManager.bin b/go-client/contracts-interface/IIFlareSystemsManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIInflationReceiver.abi b/go-client/contracts-interface/IIInflationReceiver.abi new file mode 100644 index 0000000..c42b510 --- /dev/null +++ b/go-client/contracts-interface/IIInflationReceiver.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"getContractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExpectedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInflationAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"receiveInflation","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_toAuthorizeWei","type":"uint256"}],"name":"setDailyAuthorizedInflation","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIInflationReceiver.bin b/go-client/contracts-interface/IIInflationReceiver.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIPublicKeyVerifier.abi b/go-client/contracts-interface/IIPublicKeyVerifier.abi new file mode 100644 index 0000000..8a708fb --- /dev/null +++ b/go-client/contracts-interface/IIPublicKeyVerifier.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"bytes32","name":"_part1","type":"bytes32"},{"internalType":"bytes32","name":"_part2","type":"bytes32"},{"internalType":"bytes","name":"verificationData","type":"bytes"}],"name":"verifyPublicKey","outputs":[],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIPublicKeyVerifier.bin b/go-client/contracts-interface/IIPublicKeyVerifier.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIRewardEpochSwitchoverTrigger.abi b/go-client/contracts-interface/IIRewardEpochSwitchoverTrigger.abi new file mode 100644 index 0000000..ecc0db0 --- /dev/null +++ b/go-client/contracts-interface/IIRewardEpochSwitchoverTrigger.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint24","name":"_currentRewardEpochId","type":"uint24"},{"internalType":"uint64","name":"_currentRewardEpochExpectedEndTs","type":"uint64"},{"internalType":"uint64","name":"_rewardEpochDurationSeconds","type":"uint64"}],"name":"triggerRewardEpochSwitchover","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIRewardEpochSwitchoverTrigger.bin b/go-client/contracts-interface/IIRewardEpochSwitchoverTrigger.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIRewardManager.abi b/go-client/contracts-interface/IIRewardManager.abi new file mode 100644 index 0000000..37a619e --- /dev/null +++ b/go-client/contracts-interface/IIRewardManager.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":true,"internalType":"address","name":"rewardOwner","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"},{"indexed":false,"internalType":"uint120","name":"amount","type":"uint120"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"rewardEpochId","type":"uint256"}],"name":"RewardClaimsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"rewardEpochId","type":"uint256"}],"name":"RewardClaimsExpired","type":"event"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_rewardOwners","type":"address[]"},{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"components":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"}],"internalType":"struct IRewardManager.RewardClaim","name":"body","type":"tuple"}],"internalType":"struct IRewardManager.RewardClaimWithProof[]","name":"_proofs","type":"tuple[]"}],"name":"autoClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardOwner","type":"address"},{"internalType":"address payable","name":"_recipient","type":"address"},{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bool","name":"_wrap","type":"bool"},{"components":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"}],"internalType":"struct IRewardManager.RewardClaim","name":"body","type":"tuple"}],"internalType":"struct IRewardManager.RewardClaimWithProof[]","name":"_proofs","type":"tuple[]"}],"name":"claim","outputs":[{"internalType":"uint256","name":"_rewardAmountWei","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cleanupBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"closeExpiredRewardEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"firstClaimableRewardEpochId","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRewardEpochId","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInitialRewardEpochId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardOwner","type":"address"}],"name":"getNextClaimableRewardEpochId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardEpochIdToExpireNext","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardEpochIdsWithClaimableRewards","outputs":[{"internalType":"uint24","name":"_startEpochId","type":"uint24"},{"internalType":"uint24","name":"_endEpochId","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getRewardEpochTotals","outputs":[{"internalType":"uint256","name":"_totalRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_initialisedRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_claimedRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_burnedRewardsWei","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardOwner","type":"address"}],"name":"getStateOfRewards","outputs":[{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"},{"internalType":"bool","name":"initialised","type":"bool"}],"internalType":"struct IRewardManager.RewardState[][]","name":"_rewardStates","type":"tuple[][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardOwner","type":"address"},{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getStateOfRewardsAt","outputs":[{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"},{"internalType":"bool","name":"initialised","type":"bool"}],"internalType":"struct IRewardManager.RewardState[]","name":"_rewardStates","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotals","outputs":[{"internalType":"uint256","name":"_totalRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_totalClaimedWei","type":"uint256"},{"internalType":"uint256","name":"_totalBurnedWei","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"enum IRewardManager.ClaimType","name":"_claimType","type":"uint8"}],"name":"getUnclaimedRewardState","outputs":[{"components":[{"internalType":"bool","name":"initialised","type":"bool"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"uint128","name":"weight","type":"uint128"}],"internalType":"struct IRewardManager.UnclaimedRewardState","name":"_state","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"}],"internalType":"struct IRewardManager.RewardClaim","name":"body","type":"tuple"}],"internalType":"struct IRewardManager.RewardClaimWithProof[]","name":"_proofs","type":"tuple[]"}],"name":"initialiseWeightBasedClaims","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"noOfInitialisedWeightBasedClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bool","name":"_inflation","type":"bool"}],"name":"receiveRewards","outputs":[],"stateMutability":"payable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIRewardManager.bin b/go-client/contracts-interface/IIRewardManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IISubmission.abi b/go-client/contracts-interface/IISubmission.abi new file mode 100644 index 0000000..87a2cf6 --- /dev/null +++ b/go-client/contracts-interface/IISubmission.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[],"name":"NewVotingRoundInitiated","type":"event"},{"inputs":[],"name":"getCurrentRandom","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandomWithQuality","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandomWithQualityAndTimestamp","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"},{"internalType":"uint256","name":"_randomTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_submit1Addresses","type":"address[]"},{"internalType":"address[]","name":"_submit2Addresses","type":"address[]"},{"internalType":"address[]","name":"_submit3Addresses","type":"address[]"},{"internalType":"address[]","name":"_submitSignaturesAddresses","type":"address[]"}],"name":"initNewVotingRound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit1","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit3","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"submitAndPass","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submitSignatures","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IISubmission.bin b/go-client/contracts-interface/IISubmission.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IITokenPool.abi b/go-client/contracts-interface/IITokenPool.abi new file mode 100644 index 0000000..190c910 --- /dev/null +++ b/go-client/contracts-interface/IITokenPool.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"getTokenPoolSupplyData","outputs":[{"internalType":"uint256","name":"_lockedFundsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationAuthorizedWei","type":"uint256"},{"internalType":"uint256","name":"_totalClaimedWei","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IITokenPool.bin b/go-client/contracts-interface/IITokenPool.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIVoterRegistry.abi b/go-client/contracts-interface/IIVoterRegistry.abi new file mode 100644 index 0000000..fa9ee40 --- /dev/null +++ b/go-client/contracts-interface/IIVoterRegistry.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"indexed":false,"internalType":"uint256","name":"untilRewardEpochId","type":"uint256"}],"name":"BeneficiaryChilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":false,"internalType":"address","name":"submitAddress","type":"address"},{"indexed":false,"internalType":"address","name":"submitSignaturesAddress","type":"address"},{"indexed":false,"internalType":"bytes32","name":"publicKeyPart1","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"publicKeyPart2","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"registrationWeight","type":"uint256"}],"name":"VoterRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":true,"internalType":"uint256","name":"rewardEpochId","type":"uint256"}],"name":"VoterRemoved","type":"event"},{"inputs":[{"internalType":"bytes20","name":"_beneficiary","type":"bytes20"}],"name":"chilledUntilRewardEpochId","outputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"createSigningPolicySnapshot","outputs":[{"internalType":"address[]","name":"_signingPolicyAddresses","type":"address[]"},{"internalType":"uint16[]","name":"_normalisedWeights","type":"uint16[]"},{"internalType":"uint16","name":"_normalisedWeightsSum","type":"uint16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getNumberOfRegisteredVoters","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"},{"internalType":"address","name":"_signingPolicyAddress","type":"address"}],"name":"getPublicKeyAndNormalisedWeight","outputs":[{"internalType":"bytes32","name":"_publicKeyPart1","type":"bytes32"},{"internalType":"bytes32","name":"_publicKeyPart2","type":"bytes32"},{"internalType":"uint16","name":"_normalisedWeight","type":"uint16"},{"internalType":"uint16","name":"_normalisedWeightsSumOfVotersWithPublicKeys","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredDelegationAddresses","outputs":[{"internalType":"address[]","name":"_delegationAddresses","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredNodeIds","outputs":[{"internalType":"bytes20[][]","name":"_nodeIds","type":"bytes20[][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredPublicKeys","outputs":[{"internalType":"bytes32[]","name":"_parts1","type":"bytes32[]"},{"internalType":"bytes32[]","name":"_parts2","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredSigningPolicyAddresses","outputs":[{"internalType":"address[]","name":"_signingPolicyAddresses","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredSubmitAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredSubmitSignaturesAddresses","outputs":[{"internalType":"address[]","name":"_signingPolicyAddresses","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredVoters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredVotersAndNormalisedWeights","outputs":[{"internalType":"address[]","name":"_voters","type":"address[]"},{"internalType":"uint16[]","name":"_normalisedWeights","type":"uint16[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredVotersAndRegistrationWeights","outputs":[{"internalType":"address[]","name":"_voters","type":"address[]"},{"internalType":"uint256[]","name":"_registrationWeights","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getVoterNormalisedWeight","outputs":[{"internalType":"uint16","name":"_normalisedWeight","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getVoterRegistrationWeight","outputs":[{"internalType":"uint256","name":"_registrationWeight","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"},{"internalType":"address","name":"_signingPolicyAddress","type":"address"}],"name":"getVoterWithNormalisedWeight","outputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"uint16","name":"_normalisedWeight","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getWeightsSums","outputs":[{"internalType":"uint128","name":"_weightsSum","type":"uint128"},{"internalType":"uint16","name":"_normalisedWeightsSum","type":"uint16"},{"internalType":"uint16","name":"_normalisedWeightsSumOfVotersWithPublicKeys","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"isVoterRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxVoters","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"newSigningPolicyInitializationStartBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicKeyRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IVoterRegistry.Signature","name":"_signature","type":"tuple"}],"name":"registerVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"setNewSigningPolicyInitializationStartBlockNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"name":"systemRegistration","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIVoterRegistry.bin b/go-client/contracts-interface/IIVoterRegistry.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IIncreaseManager.abi b/go-client/contracts-interface/IIncreaseManager.abi new file mode 100644 index 0000000..29b089a --- /dev/null +++ b/go-client/contracts-interface/IIncreaseManager.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"getIncentiveDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IIncreaseManager.bin b/go-client/contracts-interface/IIncreaseManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IRandomProvider.abi b/go-client/contracts-interface/IRandomProvider.abi new file mode 100644 index 0000000..b3bdb58 --- /dev/null +++ b/go-client/contracts-interface/IRandomProvider.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"getCurrentRandom","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandomWithQuality","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandomWithQualityAndTimestamp","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"},{"internalType":"uint256","name":"_randomTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IRandomProvider.bin b/go-client/contracts-interface/IRandomProvider.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IRelay.abi b/go-client/contracts-interface/IRelay.abi new file mode 100644 index 0000000..4e4b797 --- /dev/null +++ b/go-client/contracts-interface/IRelay.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"protocolId","type":"uint8"},{"indexed":true,"internalType":"uint32","name":"votingRoundId","type":"uint32"},{"indexed":false,"internalType":"bool","name":"isSecureRandom","type":"bool"},{"indexed":false,"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"ProtocolMessageRelayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"uint32","name":"startVotingRoundId","type":"uint32"},{"indexed":false,"internalType":"uint16","name":"threshold","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"seed","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"voters","type":"address[]"},{"indexed":false,"internalType":"uint16[]","name":"weights","type":"uint16[]"},{"indexed":false,"internalType":"bytes","name":"signingPolicyBytes","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"timestamp","type":"uint64"}],"name":"SigningPolicyInitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"rewardEpochId","type":"uint256"}],"name":"SigningPolicyRelayed","type":"event"},{"inputs":[{"internalType":"uint256","name":"_protocolId","type":"uint256"},{"internalType":"uint256","name":"_votingRoundId","type":"uint256"}],"name":"getConfirmedMerkleRoot","outputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRandomNumber","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"},{"internalType":"uint256","name":"_randomTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"getVotingRoundId","outputs":[{"internalType":"uint256","name":"_votingRoundId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastInitializedRewardEpochData","outputs":[{"internalType":"uint32","name":"_lastInitializedRewardEpoch","type":"uint32"},{"internalType":"uint32","name":"_startingVotingRoundIdForLastInitializedRewardEpoch","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_protocolId","type":"uint256"},{"internalType":"uint256","name":"_votingRoundId","type":"uint256"}],"name":"merkleRoots","outputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"relay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"startingVotingRoundIds","outputs":[{"internalType":"uint256","name":"_startingVotingRoundId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"toSigningPolicyHash","outputs":[{"internalType":"bytes32","name":"_signingPolicyHash","type":"bytes32"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IRelay.bin b/go-client/contracts-interface/IRelay.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IRewardManager.abi b/go-client/contracts-interface/IRewardManager.abi new file mode 100644 index 0000000..9dcc08c --- /dev/null +++ b/go-client/contracts-interface/IRewardManager.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":true,"internalType":"address","name":"rewardOwner","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":false,"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"},{"indexed":false,"internalType":"uint120","name":"amount","type":"uint120"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"rewardEpochId","type":"uint256"}],"name":"RewardClaimsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"rewardEpochId","type":"uint256"}],"name":"RewardClaimsExpired","type":"event"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_rewardOwners","type":"address[]"},{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"components":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"}],"internalType":"struct IRewardManager.RewardClaim","name":"body","type":"tuple"}],"internalType":"struct IRewardManager.RewardClaimWithProof[]","name":"_proofs","type":"tuple[]"}],"name":"autoClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardOwner","type":"address"},{"internalType":"address payable","name":"_recipient","type":"address"},{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"bool","name":"_wrap","type":"bool"},{"components":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"}],"internalType":"struct IRewardManager.RewardClaim","name":"body","type":"tuple"}],"internalType":"struct IRewardManager.RewardClaimWithProof[]","name":"_proofs","type":"tuple[]"}],"name":"claim","outputs":[{"internalType":"uint256","name":"_rewardAmountWei","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cleanupBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firstClaimableRewardEpochId","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRewardEpochId","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInitialRewardEpochId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardOwner","type":"address"}],"name":"getNextClaimableRewardEpochId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardEpochIdToExpireNext","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardEpochIdsWithClaimableRewards","outputs":[{"internalType":"uint24","name":"_startEpochId","type":"uint24"},{"internalType":"uint24","name":"_endEpochId","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getRewardEpochTotals","outputs":[{"internalType":"uint256","name":"_totalRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_initialisedRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_claimedRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_burnedRewardsWei","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardOwner","type":"address"}],"name":"getStateOfRewards","outputs":[{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"},{"internalType":"bool","name":"initialised","type":"bool"}],"internalType":"struct IRewardManager.RewardState[][]","name":"_rewardStates","type":"tuple[][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardOwner","type":"address"},{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"}],"name":"getStateOfRewardsAt","outputs":[{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"},{"internalType":"bool","name":"initialised","type":"bool"}],"internalType":"struct IRewardManager.RewardState[]","name":"_rewardStates","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotals","outputs":[{"internalType":"uint256","name":"_totalRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationRewardsWei","type":"uint256"},{"internalType":"uint256","name":"_totalClaimedWei","type":"uint256"},{"internalType":"uint256","name":"_totalBurnedWei","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint24","name":"_rewardEpochId","type":"uint24"},{"internalType":"enum IRewardManager.ClaimType","name":"_claimType","type":"uint8"}],"name":"getUnclaimedRewardState","outputs":[{"components":[{"internalType":"bool","name":"initialised","type":"bool"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"uint128","name":"weight","type":"uint128"}],"internalType":"struct IRewardManager.UnclaimedRewardState","name":"_state","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"components":[{"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"internalType":"uint120","name":"amount","type":"uint120"},{"internalType":"enum IRewardManager.ClaimType","name":"claimType","type":"uint8"}],"internalType":"struct IRewardManager.RewardClaim","name":"body","type":"tuple"}],"internalType":"struct IRewardManager.RewardClaimWithProof[]","name":"_proofs","type":"tuple[]"}],"name":"initialiseWeightBasedClaims","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"noOfInitialisedWeightBasedClaims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IRewardManager.bin b/go-client/contracts-interface/IRewardManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/ISubmission.abi b/go-client/contracts-interface/ISubmission.abi new file mode 100644 index 0000000..de07c97 --- /dev/null +++ b/go-client/contracts-interface/ISubmission.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[],"name":"NewVotingRoundInitiated","type":"event"},{"inputs":[],"name":"getCurrentRandom","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandomWithQuality","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandomWithQualityAndTimestamp","outputs":[{"internalType":"uint256","name":"_randomNumber","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"},{"internalType":"uint256","name":"_randomTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"submit1","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit3","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"submitAndPass","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submitSignatures","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/ISubmission.bin b/go-client/contracts-interface/ISubmission.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IVoterRegistry.abi b/go-client/contracts-interface/IVoterRegistry.abi new file mode 100644 index 0000000..bbf62a4 --- /dev/null +++ b/go-client/contracts-interface/IVoterRegistry.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes20","name":"beneficiary","type":"bytes20"},{"indexed":false,"internalType":"uint256","name":"untilRewardEpochId","type":"uint256"}],"name":"BeneficiaryChilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":true,"internalType":"uint24","name":"rewardEpochId","type":"uint24"},{"indexed":true,"internalType":"address","name":"signingPolicyAddress","type":"address"},{"indexed":false,"internalType":"address","name":"submitAddress","type":"address"},{"indexed":false,"internalType":"address","name":"submitSignaturesAddress","type":"address"},{"indexed":false,"internalType":"bytes32","name":"publicKeyPart1","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"publicKeyPart2","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"registrationWeight","type":"uint256"}],"name":"VoterRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":true,"internalType":"uint256","name":"rewardEpochId","type":"uint256"}],"name":"VoterRemoved","type":"event"},{"inputs":[{"internalType":"bytes20","name":"_beneficiary","type":"bytes20"}],"name":"chilledUntilRewardEpochId","outputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getNumberOfRegisteredVoters","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"getRegisteredVoters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"isVoterRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxVoters","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardEpochId","type":"uint256"}],"name":"newSigningPolicyInitializationStartBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicKeyRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct IVoterRegistry.Signature","name":"_signature","type":"tuple"}],"name":"registerVoter","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IVoterRegistry.bin b/go-client/contracts-interface/IVoterRegistry.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/IncreaseManager.abi b/go-client/contracts-interface/IncreaseManager.abi new file mode 100644 index 0000000..d1cbb25 --- /dev/null +++ b/go-client/contracts-interface/IncreaseManager.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"circularLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIncentiveDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/IncreaseManager.bin b/go-client/contracts-interface/IncreaseManager.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/InflationReceiver.abi b/go-client/contracts-interface/InflationReceiver.abi new file mode 100644 index 0000000..accc519 --- /dev/null +++ b/go-client/contracts-interface/InflationReceiver.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"authorizedAmountWei","type":"uint256"}],"name":"DailyAuthorizedInflationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReceivedWei","type":"uint256"}],"name":"InflationReceived","type":"event"},{"inputs":[],"name":"dailyAuthorizedInflation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressUpdater","outputs":[{"internalType":"address","name":"_addressUpdater","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExpectedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInflationAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenPoolSupplyData","outputs":[{"internalType":"uint256","name":"_lockedFundsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationAuthorizedWei","type":"uint256"},{"internalType":"uint256","name":"_totalClaimedWei","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastInflationAuthorizationReceivedTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastInflationReceivedTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveInflation","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_toAuthorizeWei","type":"uint256"}],"name":"setDailyAuthorizedInflation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalInflationAuthorizedWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInflationReceivedWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_contractNameHashes","type":"bytes32[]"},{"internalType":"address[]","name":"_contractAddresses","type":"address[]"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/InflationReceiver.bin b/go-client/contracts-interface/InflationReceiver.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/Math.abi b/go-client/contracts-interface/Math.abi new file mode 100644 index 0000000..caed190 --- /dev/null +++ b/go-client/contracts-interface/Math.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"}] \ No newline at end of file diff --git a/go-client/contracts-interface/Math.bin b/go-client/contracts-interface/Math.bin new file mode 100644 index 0000000..090d326 --- /dev/null +++ b/go-client/contracts-interface/Math.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220669f705c8b179079e6ee945cf0e968c4e70c846e87c5a0ee4f69f84c040377ee64736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/MessageHashUtils.abi b/go-client/contracts-interface/MessageHashUtils.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/go-client/contracts-interface/MessageHashUtils.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/go-client/contracts-interface/MessageHashUtils.bin b/go-client/contracts-interface/MessageHashUtils.bin new file mode 100644 index 0000000..452e3e2 --- /dev/null +++ b/go-client/contracts-interface/MessageHashUtils.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206ae76040a1a1e5029af553620f04fe628283b6c4d6171ea3326dbc07db88406664736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/RewardOffersManagerBase.abi b/go-client/contracts-interface/RewardOffersManagerBase.abi new file mode 100644 index 0000000..d11bc02 --- /dev/null +++ b/go-client/contracts-interface/RewardOffersManagerBase.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"authorizedAmountWei","type":"uint256"}],"name":"DailyAuthorizedInflationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"encodedCall","type":"bytes"}],"name":"GovernanceCallTimelocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"initialGovernance","type":"address"}],"name":"GovernanceInitialised","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"governanceSettings","type":"address"}],"name":"GovernedProductionModeEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReceivedWei","type":"uint256"}],"name":"InflationReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallExecuted","type":"event"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"cancelGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dailyAuthorizedInflation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"executeGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flareSystemsManager","outputs":[{"internalType":"contract IIFlareSystemsManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressUpdater","outputs":[{"internalType":"address","name":"_addressUpdater","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExpectedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInflationAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenPoolSupplyData","outputs":[{"internalType":"uint256","name":"_lockedFundsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationAuthorizedWei","type":"uint256"},{"internalType":"uint256","name":"_totalClaimedWei","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceSettings","outputs":[{"internalType":"contract IGovernanceSettings","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"}],"name":"initialise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastInflationAuthorizationReceivedTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastInflationReceivedTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"productionMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveInflation","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_toAuthorizeWei","type":"uint256"}],"name":"setDailyAuthorizedInflation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchToProductionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"timelockedCalls","outputs":[{"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"internalType":"bytes","name":"encodedCall","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInflationAuthorizedWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInflationReceivedWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"_currentRewardEpochId","type":"uint24"},{"internalType":"uint64","name":"_currentRewardEpochExpectedEndTs","type":"uint64"},{"internalType":"uint64","name":"_rewardEpochDurationSeconds","type":"uint64"}],"name":"triggerRewardEpochSwitchover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_contractNameHashes","type":"bytes32[]"},{"internalType":"address[]","name":"_contractAddresses","type":"address[]"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/RewardOffersManagerBase.bin b/go-client/contracts-interface/RewardOffersManagerBase.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/SafePct.abi b/go-client/contracts-interface/SafePct.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/go-client/contracts-interface/SafePct.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/go-client/contracts-interface/SafePct.bin b/go-client/contracts-interface/SafePct.bin new file mode 100644 index 0000000..0024d95 --- /dev/null +++ b/go-client/contracts-interface/SafePct.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f20b832edd9fa7b3c4deab009abd0cb5bf793cc1fc697b0eabb09a7d0c556b8764736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/SignedMath.abi b/go-client/contracts-interface/SignedMath.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/go-client/contracts-interface/SignedMath.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/go-client/contracts-interface/SignedMath.bin b/go-client/contracts-interface/SignedMath.bin new file mode 100644 index 0000000..10a2790 --- /dev/null +++ b/go-client/contracts-interface/SignedMath.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220efed3df69943b61534f79a2d493a50c49d067f6723f9c5a258a92bb68113119764736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/Strings.abi b/go-client/contracts-interface/Strings.abi new file mode 100644 index 0000000..62828c7 --- /dev/null +++ b/go-client/contracts-interface/Strings.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"}] \ No newline at end of file diff --git a/go-client/contracts-interface/Strings.bin b/go-client/contracts-interface/Strings.bin new file mode 100644 index 0000000..051fcf2 --- /dev/null +++ b/go-client/contracts-interface/Strings.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a00727c7781e6d76c620d7e6928eb6b24d5c6eda8c542d5d7ebd1206bfac21864736f6c63430008140033 \ No newline at end of file diff --git a/go-client/contracts-interface/Submission.abi b/go-client/contracts-interface/Submission.abi new file mode 100644 index 0000000..c799303 --- /dev/null +++ b/go-client/contracts-interface/Submission.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"},{"internalType":"address","name":"_addressUpdater","type":"address"},{"internalType":"bool","name":"_submit3MethodEnabled","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"encodedCall","type":"bytes"}],"name":"GovernanceCallTimelocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"initialGovernance","type":"address"}],"name":"GovernanceInitialised","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"governanceSettings","type":"address"}],"name":"GovernedProductionModeEntered","type":"event"},{"anonymous":false,"inputs":[],"name":"NewVotingRoundInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TimelockedGovernanceCallExecuted","type":"event"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"cancelGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"executeGovernanceCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flareSystemsManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressUpdater","outputs":[{"internalType":"address","name":"_addressUpdater","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandom","outputs":[{"internalType":"uint256","name":"_currentRandom","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandomWithQuality","outputs":[{"internalType":"uint256","name":"_currentRandom","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentRandomWithQualityAndTimestamp","outputs":[{"internalType":"uint256","name":"_currentRandom","type":"uint256"},{"internalType":"bool","name":"_isSecureRandom","type":"bool"},{"internalType":"uint256","name":"_randomTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceSettings","outputs":[{"internalType":"contract IGovernanceSettings","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_submit1Addresses","type":"address[]"},{"internalType":"address[]","name":"_submit2Addresses","type":"address[]"},{"internalType":"address[]","name":"_submit3Addresses","type":"address[]"},{"internalType":"address[]","name":"_submitSignaturesAddresses","type":"address[]"}],"name":"initNewVotingRound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IGovernanceSettings","name":"_governanceSettings","type":"address"},{"internalType":"address","name":"_initialGovernance","type":"address"}],"name":"initialise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"productionMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"relay","outputs":[{"internalType":"contract IRelay","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSubmit3MethodEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_submitAndPassContract","type":"address"},{"internalType":"bytes4","name":"_submitAndPassSelector","type":"bytes4"}],"name":"setSubmitAndPassData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit1","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit3","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submit3MethodEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"submitAndPass","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"submitAndPassContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"submitAndPassSelector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"submitSignatures","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchToProductionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"timelockedCalls","outputs":[{"internalType":"uint256","name":"allowedAfterTimestamp","type":"uint256"},{"internalType":"bytes","name":"encodedCall","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_contractNameHashes","type":"bytes32[]"},{"internalType":"address[]","name":"_contractAddresses","type":"address[]"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/TokenPoolBase.abi b/go-client/contracts-interface/TokenPoolBase.abi new file mode 100644 index 0000000..190c910 --- /dev/null +++ b/go-client/contracts-interface/TokenPoolBase.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"getTokenPoolSupplyData","outputs":[{"internalType":"uint256","name":"_lockedFundsWei","type":"uint256"},{"internalType":"uint256","name":"_totalInflationAuthorizedWei","type":"uint256"},{"internalType":"uint256","name":"_totalClaimedWei","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/go-client/contracts-interface/TokenPoolBase.bin b/go-client/contracts-interface/TokenPoolBase.bin new file mode 100644 index 0000000..e69de29 diff --git a/go-client/contracts-interface/fast_updater/FastUpdater.go b/go-client/contracts-interface/fast_updater/FastUpdater.go new file mode 100644 index 0000000..25afa10 --- /dev/null +++ b/go-client/contracts-interface/fast_updater/FastUpdater.go @@ -0,0 +1,2503 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package fast_updater + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// Bn256G1Point is an auto generated low-level Go binding around an user-defined struct. +type Bn256G1Point struct { + X *big.Int + Y *big.Int +} + +// IFastUpdaterFastUpdates is an auto generated low-level Go binding around an user-defined struct. +type IFastUpdaterFastUpdates struct { + SortitionBlock *big.Int + SortitionCredential SortitionCredential + Deltas []byte + Signature IFastUpdaterSignature +} + +// IFastUpdaterSignature is an auto generated low-level Go binding around an user-defined struct. +type IFastUpdaterSignature struct { + V uint8 + R [32]byte + S [32]byte +} + +// SortitionCredential is an auto generated low-level Go binding around an user-defined struct. +type SortitionCredential struct { + Replicate *big.Int + Gamma Bn256G1Point + C *big.Int + S *big.Int +} + +// FastUpdaterMetaData contains all meta data concerning the FastUpdater contract. +var FastUpdaterMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"_governanceSettings\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialGovernance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_addressUpdater\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_flareDaemon\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_firstVotingRoundStartTs\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"_votingEpochDurationSeconds\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_submissionWindow\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FastUpdateFeedRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"votingRoundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes21\",\"name\":\"id\",\"type\":\"bytes21\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int8\",\"name\":\"decimals\",\"type\":\"int8\"}],\"name\":\"FastUpdateFeedReset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"votingEpochId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"feeds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"int8[]\",\"name\":\"decimals\",\"type\":\"int8[]\"}],\"name\":\"FastUpdateFeeds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signingPolicyAddress\",\"type\":\"address\"}],\"name\":\"FastUpdateFeedsSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowedAfterTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedCall\",\"type\":\"bytes\"}],\"name\":\"GovernanceCallTimelocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initialGovernance\",\"type\":\"address\"}],\"name\":\"GovernanceInitialised\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"governanceSettings\",\"type\":\"address\"}],\"name\":\"GovernedProductionModeEntered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TimelockedGovernanceCallCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TimelockedGovernanceCallExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_FEED_AGE_IN_VOTING_EPOCHS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"cancelGovernanceCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"circularLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentScoreCutoff\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_cutoff\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_signingPolicyAddress\",\"type\":\"address\"}],\"name\":\"currentSortitionWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_weight\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daemonize\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"executeGovernanceCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fastUpdateIncentiveManager\",\"outputs\":[{\"internalType\":\"contractIIFastUpdateIncentiveManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fastUpdatesConfiguration\",\"outputs\":[{\"internalType\":\"contractIFastUpdatesConfiguration\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fetchAllCurrentFeeds\",\"outputs\":[{\"internalType\":\"bytes21[]\",\"name\":\"_feedIds\",\"type\":\"bytes21[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_feeds\",\"type\":\"uint256[]\"},{\"internalType\":\"int8[]\",\"name\":\"_decimals\",\"type\":\"int8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_indices\",\"type\":\"uint256[]\"}],\"name\":\"fetchCurrentFeeds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_feeds\",\"type\":\"uint256[]\"},{\"internalType\":\"int8[]\",\"name\":\"_decimals\",\"type\":\"int8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstVotingRoundStartTs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flareDaemon\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flareSystemsManager\",\"outputs\":[{\"internalType\":\"contractIFlareSystemsManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ftsoFeedPublisher\",\"outputs\":[{\"internalType\":\"contractIFtsoFeedPublisher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAddressUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addressUpdater\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getContractName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governanceSettings\",\"outputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"_governanceSettings\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialGovernance\",\"type\":\"address\"}],\"name\":\"initialise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isExecutor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_indices\",\"type\":\"uint256[]\"}],\"name\":\"removeFeeds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_indices\",\"type\":\"uint256[]\"}],\"name\":\"resetFeeds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_submissionWindow\",\"type\":\"uint256\"}],\"name\":\"setSubmissionWindow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"sortitionBlock\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"replicate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"structBn256.G1Point\",\"name\":\"gamma\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"c\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"s\",\"type\":\"uint256\"}],\"internalType\":\"structSortitionCredential\",\"name\":\"sortitionCredential\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"deltas\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIFastUpdater.Signature\",\"name\":\"signature\",\"type\":\"tuple\"}],\"internalType\":\"structIFastUpdater.FastUpdates\",\"name\":\"_updates\",\"type\":\"tuple\"}],\"name\":\"submitUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"switchToFallbackMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"switchToProductionMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"timelockedCalls\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"allowedAfterTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedCall\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_contractNameHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"address[]\",\"name\":\"_contractAddresses\",\"type\":\"address[]\"}],\"name\":\"updateContractAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_part1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_part2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_verificationData\",\"type\":\"bytes\"}],\"name\":\"verifyPublicKey\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"voterRegistry\",\"outputs\":[{\"internalType\":\"contractIIVoterRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingEpochDurationSeconds\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60e06040523480156200001157600080fd5b50604051620056ea380380620056ea833981016040819052620000349162000519565b8462000042826001620005db565b8888620000508282620001db565b506200005e90508162000350565b5062000088817f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b506001600160a01b038416620000d95760405162461bcd60e51b8152602060048201526011602482015270666c617265206461656d6f6e207a65726f60781b60448201526064015b60405180910390fd5b60008260ff16116200012e5760405162461bcd60e51b815260206004820152601a60248201527f766f74696e672065706f6368206475726174696f6e207a65726f0000000000006044820152606401620000d0565b6001600160a01b03841660c05263ffffffff831660805260ff821660a05262000156620003cd565b600780546001600160401b0319166001600160401b03929092169190911790556200018081600655565b6200018a62000405565b604080516103e8808252617d20820190925290816020015b6060815260200190600190039081620001a25750508051620001cd91600d9160209091019062000435565b5050505050505050620007bd565b600054600160a01b900460ff1615620002375760405162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c73650000000000000000000000006044820152606401620000d0565b6001600160a01b0382166200028f5760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401620000d0565b6001600160a01b038116620002da5760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401620000d0565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b60008111620003c85760405162461bcd60e51b815260206004820152603b60248201527f43697263756c61724c6973744d616e616765723a2063697263756c6172206c6560448201527f6e677468206d7573742062652067726561746572207468616e203000000000006064820152608401620000d0565b600355565b600060a0516001600160401b03166080516001600160401b031642620003f491906200060d565b62000400919062000623565b905090565b60005b6003548110156200043257600c805460010181556000526200042a8162000646565b905062000408565b50565b82805482825590600052602060002090810192821562000480579160200282015b828111156200048057825182906200046f9082620006f1565b509160200191906001019062000456565b506200048e92915062000492565b5090565b808211156200048e576000620004a98282620004b3565b5060010162000492565b508054620004c19062000662565b6000825580601f10620004d2575050565b601f0160209004906000526020600020908101906200043291905b808211156200048e5760008155600101620004ed565b6001600160a01b03811681146200043257600080fd5b600080600080600080600060e0888a0312156200053557600080fd5b8751620005428162000503565b6020890151909750620005558162000503565b6040890151909650620005688162000503565b60608901519095506200057b8162000503565b608089015190945063ffffffff811681146200059657600080fd5b60a089015190935060ff81168114620005ae57600080fd5b8092505060c0880151905092959891949750929550565b634e487b7160e01b600052601160045260246000fd5b80820180821115620005f157620005f1620005c5565b92915050565b634e487b7160e01b600052604160045260246000fd5b81810381811115620005f157620005f1620005c5565b6000826200064157634e487b7160e01b600052601260045260246000fd5b500490565b6000600182016200065b576200065b620005c5565b5060010190565b600181811c908216806200067757607f821691505b6020821081036200069857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006ec57600081815260208120601f850160051c81016020861015620006c75750805b601f850160051c820191505b81811015620006e857828155600101620006d3565b5050505b505050565b81516001600160401b038111156200070d576200070d620005f7565b62000725816200071e845462000662565b846200069e565b602080601f8311600181146200075d5760008415620007445750858301515b600019600386901b1c1916600185901b178555620006e8565b600085815260208120601f198616915b828110156200078e578886015182559484019460019091019084016200076d565b5085821015620007ad5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c051614ee162000809600039600081816103e001528181611b3901526121f90152600081816102e60152612e4301526000818161049e0152612e6d0152614ee16000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80637925eaca1161011a578063debfda30116100ad578063e8d0e70a1161007c578063e8d0e70a14610499578063ef88bf13146104c0578063f5a98383146104d3578063f5f5ba72146104db578063faae7fc91461050857600080fd5b8063debfda3014610461578063e17f212e14610474578063e22fdece14610488578063e621dbc71461049057600080fd5b8063abfaf170116100e9578063abfaf17014610415578063b00c0b7614610428578063be60040e1461043b578063c10f489a1461044e57600080fd5b80637925eaca146103c05780637fe3341a146103d3578063a1077532146103db578063a14634a71461040257600080fd5b80635a8320881161019d57806363f921db1161016c57806363f921db1461034e57806367fc4029146103615780636d0e8c341461037457806370473f2f1461038c57806374e6310e1461039f57600080fd5b80635a832088146102e15780635aa6e675146103205780635ff270791461032857806362354e031461033b57600080fd5b80634691377f116101d95780634691377f14610287578063470e91df1461029e578063488f9806146102b15780635267a15d146102ba57600080fd5b80630799fe751461020b578063274965db1461022657806329bfe39d1461023b57806345a15d3c14610266575b600080fd5b610213610522565b6040519081526020015b60405180910390f35b610239610234366004613ec1565b610531565b005b600a5461024e906001600160a01b031681565b6040516001600160a01b03909116815260200161021d565b610279610274366004613eda565b61059e565b60405161021d929190613fc8565b61028f610a06565b60405161021d93929190613fed565b6102396102ac366004614059565b610b9d565b61021360035481565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195461024e565b6103087f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161021d565b61024e611156565b610239610336366004614094565b6111ed565b60005461024e906001600160a01b031681565b61023961035c366004613eda565b611473565b61023961036f366004614094565b611a4b565b61037c611b2c565b604051901515815260200161021d565b61023961039a366004614141565b611cd5565b6103b26103ad366004614094565b611dd6565b60405161021d92919061424b565b60085461024e906001600160a01b031681565b610213601481565b61024e7f000000000000000000000000000000000000000000000000000000000000000081565b610213610410366004614264565b611e7b565b6102396104233660046142a4565b611e8d565b6102396104363660046143a8565b612088565b60095461024e906001600160a01b031681565b600b5461024e906001600160a01b031681565b61037c61046f366004614264565b612163565b60005461037c90600160a81b900460ff1681565b61037c6121ec565b61021360065481565b6103087f000000000000000000000000000000000000000000000000000000000000000081565b6102396104ce366004614460565b612260565b6102396123c6565b604080518082018252600b81526a2330b9ba2ab83230ba32b960a91b6020820152905161021d9190614499565b60075461024e90600160401b90046001600160a01b031681565b600061052c61248c565b905090565b600054600160b01b900460ff16806105535750600054600160a81b900460ff16155b156105935761056061268a565b61056981600655565b61057c6105778260016144c2565b6126c4565b610588600c6000613e15565b61059061273f565b50565b610590600036612768565b606080826001600160401b038111156105b9576105b96140d3565b6040519080825280602002602001820160405280156105e2578160200160208202803683370190505b50905060005b83811015610687576004858583818110610604576106046144d5565b905060200201358154610616906144eb565b8110610624576106246144d5565b8154600116156106435790600052602060002090602091828204019190065b9054901a600160f81b0260f81c828281518110610662576106626144d5565b602002602001019060000b908160000b815250508061068090614525565b90506105e8565b50826001600160401b038111156106a0576106a06140d3565b6040519080825280602002602001820160405280156106c9578160200160208202803683370190505b5091506000600860009054906101000a90046001600160a01b03166001600160a01b031663b5cddab86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610745919061453e565b6040516005547f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db060a083019081527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb56060840152600e5460c0840152929350909160808301916008026000808060208c8837865160088104602089018190526007909116604089015285510154915060005b8b8110156108445760208082028e018937848851106107f557600080fd5b60088851049150600888510660408901526020880151821461081f57816020890152818651015492505b82602060408a0151021b91508160e01c6020820260208d0101526001810190506107d7565b50600f5494505b60c087015185146109f7576060870151850180875254935060001960018516016109485760208620865260028404935060208c88376080875104602088015260048402875110156108a25760208701518651015492505b60005b8b8110156109425760208082028e01893760808851049150600485028851101561093a5760808851066040890152602088015182146108ec57816020890152818751015493505b604088015160020284901b60fe1c9150600019820161091c5760208181028c010180518a02607f81901c90915292505b6003820361093a5760208181028c01018051607f1b8a810490915292505b6001016108a5565b50600193505b600184166109e8576002603f85160493925060208c88376080875104602088015260005b8b8110156109e65760208082028e01893760048502885110156109de578751607f166040890181905260020284901b60fe1c915060001982016109c05760208181028c010180518a02607f81901c90915292505b600382036109de5760208181028c01018051607f1b8a810490915292505b60010161096c565b505b6103e86001860106945061084b565b50505050505050509250929050565b6060806060600b60009054906101000a90046001600160a01b03166001600160a01b0316630c518dce6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a869190810190614574565b925060048054610a95906144eb565b9050835114610aa657610aa6614600565b600083516001600160401b03811115610ac157610ac16140d3565b604051908082528060200260200182016040528015610aea578160200160208202803683370190505b50905060005b8151811015610b295780828281518110610b0c57610b0c6144d5565b602090810291909101015280610b2181614525565b915050610af0565b50604051631168574f60e21b815230906345a15d3c90610b4d908490600401614616565b600060405180830381865afa158015610b6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b92919081019061469d565b949590949350915050565b600654610bab9082356144c2565b4310610c155760405162461bcd60e51b815260206004820152602e60248201527f55706461746573206e6f206c6f6e67657220616363657074656420666f72207460448201526d686520676976656e20626c6f636b60901b60648201526084015b60405180910390fd5b8035431015610c7c5760405162461bcd60e51b815260206004820152602d60248201527f55706461746573206e6f742079657420617661696c61626c6520666f7220746860448201526c6520676976656e20626c6f636b60981b6064820152608401610c0c565b600554610c8a90600861474e565b610c9760c0830183614765565b610ca39150600461474e565b1115610cfb5760405162461bcd60e51b815260206004820152602160248201527f4d6f72652075706461746573207468616e20617661696c61626c6520666565646044820152607360f81b6064820152608401610c0c565b60006002823560208401610d1260c0860186614765565b604051602001610d2594939291906147d4565b60408051601f1981840301815290829052610d3f9161481d565b602060405180830381855afa158015610d5c573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d7f919061453e565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c829052603c812091925060e0840190610dd783610dc8610100880185614839565b846020013585604001356128b4565b90506001600160a01b038116610e2f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610c0c565b600080610e3b836128e2565b6040805160a08101808352600754637056269760e01b90915291519395509193506000928291600160401b90046001600160a01b03169063e0d4ea3790829063705626979060a4808701916020918189030181865afa158015610ea2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec6919061485c565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a919061453e565b815289356020820152604001610f3e61248c565b81526020810184905260400184905290506000610f5b8935612a39565b60408051865160208281019190915280880151928201929092528b356060820152908b0135608082015290915060009060029060a00160408051601f1981840301815290829052610fab9161481d565b602060405180830381855afa158015610fc8573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610feb919061453e565b905060005b8254811015611079578183600001828154811061100f5761100f6144d5565b9060005260206000200154036110675760405162461bcd60e51b815260206004820152601b60248201527f7375626d697373696f6e20616c72656164792070726f766964656400000000006044820152606401610c0c565b8061107181614525565b915050610ff0565b50815460018101835560008381526020808220909201839055906110b09085906110ab90368f90038f01908f01614881565b612a8b565b509050806111005760405162461bcd60e51b815260206004820152601760248201527f736f72746974696f6e2070726f6f6620696e76616c69640000000000000000006044820152606401610c0c565b61111561111060c08d018d614765565b612b3e565b6040516001600160a01b038816907f46726b7af6062bbfbcc71cdfd206e449f91eb91d8a78d596181219c8251d83ee90600090a25050505050505050505050565b60008054600160a81b900460ff1661117857506001546001600160a01b031690565b60008054906101000a90046001600160a01b03166001600160a01b031663732524946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052c919061490f565b6111f633612163565b6112325760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b6044820152606401610c0c565b6001600160e01b031981166000908152600260205260408120805490910361129c5760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610c0c565b80544210156112ed5760405162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f77656420796574000000000000006044820152606401610c0c565b60008160010180546112fe906144eb565b80601f016020809104026020016040519081016040528092919081815260200182805461132a906144eb565b80156113775780601f1061134c57610100808354040283529160200191611377565b820191906000526020600020905b81548152906001019060200180831161135a57829003601f168201915b505050506001600160e01b03198516600090815260026020526040812081815592935090506113a96001830182613e33565b50506000805460ff60b01b1916600160b01b17815560405130906113ce90849061481d565b6000604051808303816000865af19150503d806000811461140b576040519150601f19603f3d011682016040523d82523d6000602084013e611410565b606091505b50506000805460ff60b01b19169055604080516001600160e01b0319871681524260208201529192507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438910160405180910390a161146d81612b90565b50505050565b600b546001600160a01b03163314806114a4575061148f611156565b6001600160a01b0316336001600160a01b0316145b6115065760405162461bcd60e51b815260206004820152602d60248201527f6f6e6c792066617374207570646174657320636f6e66696775726174696f6e2060448201526c6f7220676f7665726e616e636560981b6064820152608401610c0c565b61150e612bad565b6000805b82811015611568578184848381811061152d5761152d6144d5565b9050602002013511156115565783838281811061154c5761154c6144d5565b9050602002013591505b8061156081614525565b915050611512565b50600060048054611578906144eb565b9150505b8181116115f7576004600181805480611594906144eb565b80601f81036115b35783600052602060002060ff1984168155603f9350505b506002820183556001810192505050038154600116156115e25790600052602060002090602091828204019190065b508190506115ef81614525565b91505061157c565b506005545b611607600883614942565b811161162b576005805460010181556000528061162381614525565b9150506115fc565b5060048054611639906144eb565b60055490915061164a90600861474e565b101561165857611658614600565b6000611662612e3f565b6001600160401b0316905060005b83811015611a4457600b546000906001600160a01b0316639310283687878581811061169e5761169e6144d5565b905060200201356040518263ffffffff1660e01b81526004016116c391815260200190565b602060405180830381865afa1580156116e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117049190614956565b90506001600160581b031981166117535760405162461bcd60e51b81526020600482015260136024820152721a5b99195e081b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606401610c0c565b600a546040516326e5ec9360e21b81526001600160581b0319831660048201526000916001600160a01b031690639b97b24c9060240160a060405180830381865afa1580156117a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ca9190614983565b9050836014826000015163ffffffff166117e491906144c2565b116118205760405162461bcd60e51b815260206004820152600c60248201526b19995959081d1bdbc81bdb1960a21b6044820152606401610c0c565b6000816040015160030b136118775760405162461bcd60e51b815260206004820152601b60248201527f666565642076616c7565207a65726f206f72206e6567617469766500000000006044820152606401610c0c565b6000600888888681811061188d5761188d6144d5565b9050602002013561189e9190614942565b9050600060088989878181106118b6576118b66144d5565b905060200201356118c79190614a23565b6118d2906007614a37565b6118dd90602061474e565b60408401516005805492935063ffffffff80851b19939216841b918391908690811061190b5761190b6144d5565b906000526020600020015416176005848154811061192b5761192b6144d5565b600091825260209091200155608084015160f81b60048b8b89818110611953576119536144d5565b905060200201358154611965906144eb565b8110611973576119736144d5565b8154600116156119925790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b84040217905550846affffffffffffffffffffff19168a8a888181106119cf576119cf6144d5565b90506020020135887ffa800fadb5e7b72652da40bcd7ca9a96cd4e53c9ea4c68b8afbba027e77a7cf587604001518860800151604051611a2492919063ffffffff92909216825260000b602082015260400190565b60405180910390a450505050508080611a3c90614525565b915050611670565b5050505050565b611a53612eaa565b6001600160e01b031981166000908152600260205260408120549003611abb5760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610c0c565b604080516001600160e01b0319831681524260208201527f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8910160405180910390a16001600160e01b03198116600090815260026020526040812081815590611b276001830182613e33565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b9a5760405162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b6044820152606401610c0c565b611ba2612bad565b6000611bac612e3f565b6007549091506001600160401b039081169082161115611c3457600080611bd1612f04565b6007805467ffffffffffffffff19166001600160401b038716908117909155604051929450909250907f7195d3bbca575b55b0f4b62da395f7224b75225d9c08741d216e6cf10a83eabe90611c299085908590613fc8565b60405180910390a250505b600c611c3e61320c565b81548110611c4e57611c4e6144d5565b6000918252602082200190611c638282613e6d565b5050600860009054906101000a90046001600160a01b03166001600160a01b031663ea105ac76040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611cb557600080fd5b505af1158015611cc9573d6000803e3d6000fd5b50505050600191505090565b600080600083806020019051810190611cee9190614a4a565b60408051808201909152898152602081018990529295509093509150611d1381613218565b611d1c57600080fd5b6040805180820190915283815260208101839052611d3981613218565b611d4257600080fd5b6040516bffffffffffffffffffffffff1960608b901b166020820152611dcb90839060029060340160408051601f1981840301815290829052611d849161481d565b602060405180830381855afa158015611da1573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611dc4919061453e565b8784613263565b505050505050505050565b60026020526000908152604090208054600182018054919291611df8906144eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611e24906144eb565b8015611e715780601f10611e4657610100808354040283529160200191611e71565b820191906000526020600020905b815481529060010190602001808311611e5457829003601f168201915b5050505050905082565b6000611e86826128e2565b9392505050565b600b546001600160a01b03163314611ee75760405162461bcd60e51b815260206004820152601f60248201527f6f6e6c792066617374207570646174657320636f6e66696775726174696f6e006044820152606401610c0c565b611eef612bad565b60005b81518110156120845760006008838381518110611f1157611f116144d5565b6020026020010151611f239190614942565b905060006008848481518110611f3b57611f3b6144d5565b6020026020010151611f4d9190614a23565b611f58906007614a37565b611f6390602061474e565b6005805491925063ffffffff831b199182919085908110611f8657611f866144d5565b90600052602060002001541660058481548110611fa557611fa56144d5565b9060005260206000200181905550600060f81b6004868681518110611fcc57611fcc6144d5565b60200260200101518154611fdf906144eb565b8110611fed57611fed6144d5565b81546001161561200c5790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b8404021790555084848151811061203a5761203a6144d5565b60200260200101517f5a17f564b9fd53c971695a2e033e0cd39ee8ad08d8117242cdecad8b017335c860405160405180910390a2505050808061207c90614525565b915050611ef2565b5050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e7719546001600160a01b0316336001600160a01b0316146121015760405162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b6044820152606401610c0c565b61215961213583836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506133a6565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b6120848282613481565b60008054600160a01b900460ff1680156121e65750600054604051630debfda360e41b81526001600160a01b0384811660048301529091169063debfda3090602401602060405180830381865afa1580156121c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e69190614a78565b92915050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461225a5760405162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b6044820152606401610c0c565b50600090565b600054600160a01b900460ff16156122b15760405162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b6044820152606401610c0c565b6001600160a01b0382166123075760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401610c0c565b6001600160a01b0381166123505760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401610c0c565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b6123ce612eaa565b600054600160a81b900460ff16156124285760405162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f64650000000000006044820152606401610c0c565b600180546001600160a01b031916905560008054600160a81b60ff60a81b198216179091556040516001600160a01b0390911681527f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9060200160405180910390a1565b600080600860009054906101000a90046001600160a01b03166001600160a01b0316636d62b4136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612506919061453e565b90506078600c61251681836144c2565b61252290610100614a37565b61252d90600261474e565b6125379190614a37565b6125419190614a37565b8161254e600c60786144c2565b61255a90610100614a37565b61256590600261474e565b600080516020614e47833981519152901c612580919061474e565b901b9150612590600c60786144c2565b61259c90610100614a37565b6125a8600c60786144c2565b6125b29190614a37565b8160016125c1600c60786144c2565b6125cd90610100614a37565b6125d8906002614b7e565b6125e29190614a37565b6125ee600c60786144c2565b6125fa90610100614a37565b600080516020614e47833981519152901c16612616919061474e565b612621911c836144c2565b915061262f600c60786144c2565b81600161263e600c60786144c2565b61264a90610100614a37565b612655906002614b7e565b61265f9190614a37565b600080516020614e4783398151915216612679919061474e565b612684911c836144c2565b91505090565b600054600160b01b900460ff16156126ba573330146126ab576126ab614600565b6000805460ff60b01b19169055565b6126c2612eaa565b565b6000811161273a5760405162461bcd60e51b815260206004820152603b60248201527f43697263756c61724c6973744d616e616765723a2063697263756c6172206c6560448201527f6e677468206d7573742062652067726561746572207468616e203000000000006064820152608401610c0c565b600355565b60005b60035481101561059057600c8054600101815560005261276181614525565b9050612742565b612770612eaa565b6000805460408051636221a54b60e01b81529051853593926001600160a01b031691636221a54b9160048083019260209291908290030181865afa1580156127bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e0919061453e565b905060006127ee82426144c2565b9050604051806040016040528082815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160e01b0319861681526002602090815260409091208351815590830151909150600182019061286c9082614bd8565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6838287876040516128a59493929190614c97565b60405180910390a15050505050565b6000806000806128c688888888613657565b9250925092506128d68282613726565b50909695505050505050565b6040805180820190915260008082526020820152600080600760089054906101000a90046001600160a01b03166001600160a01b031663705626976040518163ffffffff1660e01b8152600401602060405180830381865afa15801561294c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612970919061485c565b6009546040516344b571d960e01b815262ffffff92909216600483018190526001600160a01b0387811660248501529093506000928392839283929116906344b571d990604401608060405180830381865afa1580156129d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f89190614cc0565b60408051808201909152848152602081018490529a5092965090945092509050612a2d61ffff808416906110009084166137df565b95505050505050915091565b600080604051806080016040528060458152602001614e676045913990506000612a63848361381f565b9050600c8181548110612a7857612a786144d5565b9060005260206000200192505050919050565b6000808360600151836000015110612b0b5760405162461bcd60e51b815260206004820152603f60248201527f43726564656e7469616c2773207265706c69636174652076616c75652069732060448201527f6e6f74206c657373207468616e2070726f7669646572277320776569676874006064820152608401610c0c565b6000612b17858561387b565b602085015151909150818015612b31575085604001518111155b93509150505b9250929050565b8181600d600e5481548110612b5557612b556144d5565b906000526020600020019182612b6c929190614d06565b506103e8600e546001612b7f91906144c2565b612b899190614a23565b600e555050565b3d604051818101604052816000823e8215612ba9578181f35b8181fd5b600854604080516316b9bb5760e31b815290516000926001600160a01b03169163b5cddab89160048083019260209291908290030181865afa158015612bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1b919061453e565b9050604051602081016040820160608301600e54608085015260008060008060008060058752602087208752600d8952600f545b60808b01518114612e295760208a208101808a525491506000196001831601612d605760208920895260028204915060005b60016020600185030401811015612d5a57808a510154935060005b610100811015612d5157836008820460208402011015612d51576010810460108302018a51015497506000955060005b6008811015612d3b5760208181028a901b60e01c985083026008830401851115612d1c5785821b60fe1c99506000198a01612d0957968e02607f1c965b60038a03612d1c57607f9790971b8e9004965b6020810260e0039790971b969587179560029190910190600101612ccc565b508560108083030460108402018b510155612c9c565b50600101612c81565b50600191505b60018216612e1a579091506002603f8316049060005b610100811015612e185782600882041015612e1857601081048951015496506000945060005b6008811015612e07576020810288901b60e01c965060088204841115612de85784821b60fe1c98506000198901612dd557958d02607f1c955b60038903612de857607f9690961b8d9004955b6020810260e0039690961b959486179460029190910190600101612d9c565b50846010808303048a510155612d76565b505b6103e860018201069050612c4f565b505050505050505050506080810151600f555050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b03167f00000000000000000000000000000000000000000000000000000000000000006001600160401b031642612ea09190614a37565b61052c9190614942565b612eb2611156565b6001600160a01b0316336001600160a01b0316146126c25760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b6044820152606401610c0c565b60608060048054612f14906144eb565b90506001600160401b03811115612f2d57612f2d6140d3565b604051908082528060200260200182016040528015612f56578160200160208202803683370190505b50915060048054612f66906144eb565b90506001600160401b03811115612f7f57612f7f6140d3565b604051908082528060200260200182016040528015612fa8578160200160208202803683370190505b509050600080600860048054612fbd906144eb565b612fc8929150614942565b905060005b818110156130e157600060058281548110612fea57612fea6144d5565b600091825260208220015491505b60088110156130cc5760008161300f85600861474e565b61301991906144c2565b90506004818154613029906144eb565b8110613037576130376144d5565b8154600116156130565790600052602060002090602091828204019190065b9054901a600160f81b0260f81c878281518110613075576130756144d5565b60009290920b60209283029190910182015261309290839061474e565b955060e08684901b901c8882815181106130ae576130ae6144d5565b602090810291909101015250806130c481614525565b915050612ff8565b505080806130d990614525565b915050612fcd565b506008600480546130f1906144eb565b6130fc929150614a23565b1561320657600060058281548110613116576131166144d5565b6000918252602082200154915061312e83600861474e565b90505b6004805461313e906144eb565b9050811015613203576004818154613155906144eb565b8110613163576131636144d5565b8154600116156131825790600052602060002090602091828204019190065b9054901a600160f81b0260f81c8582815181106131a1576131a16144d5565b60009290920b602092830291909101909101526131bf600882614a23565b6131ca90602061474e565b935060e08483901b901c8682815181106131e6576131e66144d5565b6020908102919091010152806131fb81614525565b915050613131565b50505b50509091565b600061052c6001613a5d565b6000600080516020614e4783398151915261323883600001516003613a77565b6132439060036144c2565b61324d9190614a23565b61325c83602001516002613a77565b1492915050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001855160208088015185518683015160408051948501959095529383019190915260608201889052608082015260a081019190915260c0016040516020818303038152906040528051906020012060001c6132e09190614a23565b90506000613319613313604080518082018252600080825260209182015281518083019092526001825260029082015290565b85613acf565b905060006133278784613acf565b905060006133358383613b16565b80518651919250148015613350575080602001518560200151145b61339c5760405162461bcd60e51b815260206004820152601d60248201527f7075626c6963206b657920766572696669636174696f6e206572726f720000006044820152606401610c0c565b5050505050505050565b600080826040516020016133ba9190614499565b6040516020818303038152906040528051906020012090506000805b8651811015613432578681815181106133f1576133f16144d5565b6020026020010151830361342057858181518110613411576134116144d5565b60200260200101519150613432565b8061342a81614525565b9150506133d6565b506001600160a01b0381166134785760405162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b6044820152606401610c0c565b95945050505050565b6134b7828260405180604001604052806013815260200172233630b932a9bcb9ba32b6b9a6b0b730b3b2b960691b8152506133a6565b600760086101000a8154816001600160a01b0302191690836001600160a01b0316021790555061351d82826040518060400160405280601a81526020017f46617374557064617465496e63656e746976654d616e616765720000000000008152506133a6565b600860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061357382826040518060400160405280600d81526020016c566f746572526567697374727960981b8152506133a6565b600960006101000a8154816001600160a01b0302191690836001600160a01b031602179055506135cd828260405180604001604052806011815260200170233a39b7a332b2b2283ab13634b9b432b960791b8152506133a6565b600a60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061363382826040518060400160405280601881526020017f4661737455706461746573436f6e66696775726174696f6e00000000000000008152506133a6565b600b80546001600160a01b0319166001600160a01b03929092169190911790555050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613692575060009150600390508261371c565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156136e6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166137125750600092506001915082905061371c565b9250600091508190505b9450945094915050565b600082600381111561373a5761373a614dc5565b03613743575050565b600182600381111561375757613757614dc5565b036137755760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561378957613789614dc5565b036137aa5760405163fce698f760e01b815260048101829052602401610c0c565b60038260038111156137be576137be614dc5565b03612084576040516335e2f38360e21b815260048101829052602401610c0c565b6000806137ed858585613b61565b9050600083806137ff576137ff61492c565b858709905080156138135781600101613815565b815b9695505050505050565b600043831115801561383c575060035461383990846144c2565b43105b829061385b5760405162461bcd60e51b8152600401610c0c9190614499565b5060006138688443614a37565b905061387381613c87565b949350505050565b600061388a8360800151613218565b61389357600080fd5b6138a08260200151613218565b6138a957600080fd5b60006138fe6138c085608001518560400151613acf565b6138f96138ef604080518082018252600080825260209182015281518083019092526001825260029082015290565b8660600151613acf565b613b16565b8451602080870151865160405194955060009461392d9493019283526020830191909152604082015260600190565b6040516020818303038152906040529050600061394982613cb0565b9050600061397061396287602001518860400151613acf565b6138f9848960600151613acf565b9050600060026139a2604080518082018252600080825260209182015281518083019092526001825260029082015290565b848a608001518a6020015189876040516020016139c496959493929190614ddb565b60408051601f19818403018152908290526139de9161481d565b602060405180830381855afa1580156139fb573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190613a1e919061453e565b9050613a4a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182614a23565b6040880151149550505050505092915050565b600354600090613a6d43846144c2565b6121e69190614a23565b6000604051602081016020815260208082015260206040820152846060820152836080820152600080516020614e4783398151915260a082015260208260c0836005600019fa613ac657600080fd5b50519392505050565b604080518082019091526000808252602082015260405183518152602084015160208201528260408201526040826060836007600019fa613b0f57600080fd5b5092915050565b6040805180820190915260008082526020820152604051835181526020840151602082015282516040820152602083015160608201526040826080836006600019fa613b0f57600080fd5b6000808211613ba55760405162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b6044820152606401610c0c565b83600003613bb557506000611e86565b83830283858281613bc857613bc861492c565b0403613be657828181613bdd57613bdd61492c565b04915050611e86565b506000613bf38386614942565b90506000613c018487614a23565b90506000613c0f8587614942565b90506000613c1d8688614a23565b905085613c2a828561474e565b613c349190614942565b613c3e838561474e565b613c48838761474e565b88613c53868961474e565b613c5d919061474e565b613c6791906144c2565b613c7191906144c2565b613c7b91906144c2565b98975050505050505050565b60006003548210613c9a57613c9a614600565b6121e682600354613cab9190614a37565b613a5d565b60408051808201909152600080825260208201526000600283604051613cd6919061481d565b602060405180830381855afa158015613cf3573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190613d16919061453e565b90506000613d32600080516020614e4783398151915283614a23565b905060005b613d4082613d73565b90508015613d61576040805180820190915291825260208201529392505050565b613d6c6001836144c2565b9150613d37565b600080600080516020614e47833981519152613d90846003613a77565b613d9b9060036144c2565b613da59190614a23565b90506000613dd7826002613dc86001600080516020614e47833981519152614a37565b613dd29190614942565b613a77565b9050806001141580613de7575081155b15613df6575060009392505050565b613873826004613dc8600080516020614e4783398151915260016144c2565b50805460008255906000526020600020908101906105909190613e8b565b508054613e3f906144eb565b6000825580601f10613e4f575050565b601f0160209004906000526020600020908101906105909190613eac565b50805460008255906000526020600020908101906105909190613eac565b80821115613ea8576000613e9f8282613e6d565b50600101613e8b565b5090565b5b80821115613ea85760008155600101613ead565b600060208284031215613ed357600080fd5b5035919050565b60008060208385031215613eed57600080fd5b82356001600160401b0380821115613f0457600080fd5b818501915085601f830112613f1857600080fd5b813581811115613f2757600080fd5b8660208260051b8501011115613f3c57600080fd5b60209290920196919550909350505050565b600081518084526020808501945080840160005b83811015613f7e57815187529582019590820190600101613f62565b509495945050505050565b60008151808452602080850194508084016000805b84811015613fbc578251820b88529683019691830191600101613f9e565b50959695505050505050565b604081526000613fdb6040830185613f4e565b82810360208401526134788185613f89565b606080825284519082018190526000906020906080840190828801845b828110156140305781516001600160581b0319168452928401929084019060010161400a565b505050838103828501526140448187613f4e565b91505082810360408401526138158185613f89565b60006020828403121561406b57600080fd5b81356001600160401b0381111561408157600080fd5b82016101408185031215611e8657600080fd5b6000602082840312156140a657600080fd5b81356001600160e01b031981168114611e8657600080fd5b6001600160a01b038116811461059057600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561410b5761410b6140d3565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614139576141396140d3565b604052919050565b6000806000806080858703121561415757600080fd5b8435614162816140be565b935060208581013593506040860135925060608601356001600160401b038082111561418d57600080fd5b818801915088601f8301126141a157600080fd5b8135818111156141b3576141b36140d3565b6141c5601f8201601f19168501614111565b915080825289848285010111156141db57600080fd5b808484018584013760008482840101525080935050505092959194509250565b60005b838110156142165781810151838201526020016141fe565b50506000910152565b600081518084526142378160208601602086016141fb565b601f01601f19169290920160200192915050565b828152604060208201526000613873604083018461421f565b60006020828403121561427657600080fd5b8135611e86816140be565b60006001600160401b0382111561429a5761429a6140d3565b5060051b60200190565b600060208083850312156142b757600080fd5b82356001600160401b038111156142cd57600080fd5b8301601f810185136142de57600080fd5b80356142f16142ec82614281565b614111565b81815260059190911b8201830190838101908783111561431057600080fd5b928401925b8284101561432e57833582529284019290840190614315565b979650505050505050565b600082601f83011261434a57600080fd5b8135602061435a6142ec83614281565b82815260059290921b8401810191818101908684111561437957600080fd5b8286015b8481101561439d578035614390816140be565b835291830191830161437d565b509695505050505050565b600080604083850312156143bb57600080fd5b82356001600160401b03808211156143d257600080fd5b818501915085601f8301126143e657600080fd5b813560206143f66142ec83614281565b82815260059290921b8401810191818101908984111561441557600080fd5b948201945b838610156144335785358252948201949082019061441a565b9650508601359250508082111561444957600080fd5b5061445685828601614339565b9150509250929050565b6000806040838503121561447357600080fd5b823561447e816140be565b9150602083013561448e816140be565b809150509250929050565b602081526000611e86602083018461421f565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66144ac565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806144ff57607f821691505b60208210810361451f57634e487b7160e01b600052602260045260246000fd5b50919050565b600060018201614537576145376144ac565b5060010190565b60006020828403121561455057600080fd5b5051919050565b80516001600160581b03198116811461456f57600080fd5b919050565b6000602080838503121561458757600080fd5b82516001600160401b0381111561459d57600080fd5b8301601f810185136145ae57600080fd5b80516145bc6142ec82614281565b81815260059190911b820183019083810190878311156145db57600080fd5b928401925b8284101561432e576145f184614557565b825292840192908401906145e0565b634e487b7160e01b600052600160045260246000fd5b602081526000611e866020830184613f4e565b8051600081900b811461456f57600080fd5b600082601f83011261464c57600080fd5b8151602061465c6142ec83614281565b82815260059290921b8401810191818101908684111561467b57600080fd5b8286015b8481101561439d5761469081614629565b835291830191830161467f565b600080604083850312156146b057600080fd5b82516001600160401b03808211156146c757600080fd5b818501915085601f8301126146db57600080fd5b815160206146eb6142ec83614281565b82815260059290921b8401810191818101908984111561470a57600080fd5b948201945b838610156147285785518252948201949082019061470f565b9188015191965090935050508082111561474157600080fd5b506144568582860161463b565b80820281158282048414176121e6576121e66144ac565b6000808335601e1984360301811261477c57600080fd5b8301803591506001600160401b0382111561479657600080fd5b602001915036819003821315612b3757600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b84815283356020820152602084013560408201526040840135606082015260608401356080820152608084013560a082015260e060c0820152600061381560e0830184866147ab565b6000825161482f8184602087016141fb565b9190910192915050565b60006020828403121561484b57600080fd5b813560ff81168114611e8657600080fd5b60006020828403121561486e57600080fd5b815162ffffff81168114611e8657600080fd5b600081830360a081121561489457600080fd5b604051608081018181106001600160401b03821117156148b6576148b66140d3565b604090815284358252601f19830112156148cf57600080fd5b6148d76140e9565b915060208401358252604084013560208301528160208201526060840135604082015260808401356060820152809250505092915050565b60006020828403121561492157600080fd5b8151611e86816140be565b634e487b7160e01b600052601260045260246000fd5b6000826149515761495161492c565b500490565b60006020828403121561496857600080fd5b611e8682614557565b805161ffff8116811461456f57600080fd5b600060a0828403121561499557600080fd5b60405160a081018181106001600160401b03821117156149b7576149b76140d3565b604052825163ffffffff811681146149ce57600080fd5b81526149dc60208401614557565b602082015260408301518060030b81146149f557600080fd5b6040820152614a0660608401614971565b6060820152614a1760808401614629565b60808201529392505050565b600082614a3257614a3261492c565b500690565b818103818111156121e6576121e66144ac565b600080600060608486031215614a5f57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215614a8a57600080fd5b81518015158114611e8657600080fd5b600181815b80851115614ad5578160001904821115614abb57614abb6144ac565b80851615614ac857918102915b93841c9390800290614a9f565b509250929050565b600082614aec575060016121e6565b81614af9575060006121e6565b8160018114614b0f5760028114614b1957614b35565b60019150506121e6565b60ff841115614b2a57614b2a6144ac565b50506001821b6121e6565b5060208310610133831016604e8410600b8410161715614b58575081810a6121e6565b614b628383614a9a565b8060001904821115614b7657614b766144ac565b029392505050565b6000611e868383614add565b601f821115611b2757600081815260208120601f850160051c81016020861015614bb15750805b601f850160051c820191505b81811015614bd057828155600101614bbd565b505050505050565b81516001600160401b03811115614bf157614bf16140d3565b614c0581614bff84546144eb565b84614b8a565b602080601f831160018114614c3a5760008415614c225750858301515b600019600386901b1c1916600185901b178555614bd0565b600085815260208120601f198616915b82811015614c6957888601518255948401946001909101908401614c4a565b5085821015614c875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff60e01b851681528360208201526060604082015260006138156060830184866147ab565b60008060008060808587031215614cd657600080fd5b8451935060208501519250614ced60408601614971565b9150614cfb60608601614971565b905092959194509250565b6001600160401b03831115614d1d57614d1d6140d3565b614d3183614d2b83546144eb565b83614b8a565b6000601f841160018114614d655760008515614d4d5750838201355b600019600387901b1c1916600186901b178355611a44565b600083815260209020601f19861690835b82811015614d965786850135825560209485019460019092019101614d76565b5086821015614db35760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b600052602160045260246000fd5b865181526020808801518183015286516040830152868101516060830152855160808301528581015160a0830152845160c08301528481015160e08301528351610100830152838101516101208301528251610140830152820151610160820152610180810161432e56fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47536f72746974696f6e20726f756e6420666f722074686520676976656e20626c6f636b206973206e6f206c6f6e676572206f72206e6f742079657420617661696c61626c65a26469706673582212208cd9ad6b50b56c48247cee258fc6bbf794d2e17cf633342501588d7e33f46ab764736f6c63430008140033", +} + +// FastUpdaterABI is the input ABI used to generate the binding from. +// Deprecated: Use FastUpdaterMetaData.ABI instead. +var FastUpdaterABI = FastUpdaterMetaData.ABI + +// FastUpdaterBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use FastUpdaterMetaData.Bin instead. +var FastUpdaterBin = FastUpdaterMetaData.Bin + +// DeployFastUpdater deploys a new Ethereum contract, binding an instance of FastUpdater to it. +func DeployFastUpdater(auth *bind.TransactOpts, backend bind.ContractBackend, _governanceSettings common.Address, _initialGovernance common.Address, _addressUpdater common.Address, _flareDaemon common.Address, _firstVotingRoundStartTs uint32, _votingEpochDurationSeconds uint8, _submissionWindow *big.Int) (common.Address, *types.Transaction, *FastUpdater, error) { + parsed, err := FastUpdaterMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(FastUpdaterBin), backend, _governanceSettings, _initialGovernance, _addressUpdater, _flareDaemon, _firstVotingRoundStartTs, _votingEpochDurationSeconds, _submissionWindow) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &FastUpdater{FastUpdaterCaller: FastUpdaterCaller{contract: contract}, FastUpdaterTransactor: FastUpdaterTransactor{contract: contract}, FastUpdaterFilterer: FastUpdaterFilterer{contract: contract}}, nil +} + +// FastUpdater is an auto generated Go binding around an Ethereum contract. +type FastUpdater struct { + FastUpdaterCaller // Read-only binding to the contract + FastUpdaterTransactor // Write-only binding to the contract + FastUpdaterFilterer // Log filterer for contract events +} + +// FastUpdaterCaller is an auto generated read-only Go binding around an Ethereum contract. +type FastUpdaterCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FastUpdaterTransactor is an auto generated write-only Go binding around an Ethereum contract. +type FastUpdaterTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FastUpdaterFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type FastUpdaterFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FastUpdaterSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type FastUpdaterSession struct { + Contract *FastUpdater // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// FastUpdaterCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type FastUpdaterCallerSession struct { + Contract *FastUpdaterCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// FastUpdaterTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type FastUpdaterTransactorSession struct { + Contract *FastUpdaterTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// FastUpdaterRaw is an auto generated low-level Go binding around an Ethereum contract. +type FastUpdaterRaw struct { + Contract *FastUpdater // Generic contract binding to access the raw methods on +} + +// FastUpdaterCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type FastUpdaterCallerRaw struct { + Contract *FastUpdaterCaller // Generic read-only contract binding to access the raw methods on +} + +// FastUpdaterTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type FastUpdaterTransactorRaw struct { + Contract *FastUpdaterTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewFastUpdater creates a new instance of FastUpdater, bound to a specific deployed contract. +func NewFastUpdater(address common.Address, backend bind.ContractBackend) (*FastUpdater, error) { + contract, err := bindFastUpdater(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &FastUpdater{FastUpdaterCaller: FastUpdaterCaller{contract: contract}, FastUpdaterTransactor: FastUpdaterTransactor{contract: contract}, FastUpdaterFilterer: FastUpdaterFilterer{contract: contract}}, nil +} + +// NewFastUpdaterCaller creates a new read-only instance of FastUpdater, bound to a specific deployed contract. +func NewFastUpdaterCaller(address common.Address, caller bind.ContractCaller) (*FastUpdaterCaller, error) { + contract, err := bindFastUpdater(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &FastUpdaterCaller{contract: contract}, nil +} + +// NewFastUpdaterTransactor creates a new write-only instance of FastUpdater, bound to a specific deployed contract. +func NewFastUpdaterTransactor(address common.Address, transactor bind.ContractTransactor) (*FastUpdaterTransactor, error) { + contract, err := bindFastUpdater(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &FastUpdaterTransactor{contract: contract}, nil +} + +// NewFastUpdaterFilterer creates a new log filterer instance of FastUpdater, bound to a specific deployed contract. +func NewFastUpdaterFilterer(address common.Address, filterer bind.ContractFilterer) (*FastUpdaterFilterer, error) { + contract, err := bindFastUpdater(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &FastUpdaterFilterer{contract: contract}, nil +} + +// bindFastUpdater binds a generic wrapper to an already deployed contract. +func bindFastUpdater(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := FastUpdaterMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_FastUpdater *FastUpdaterRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _FastUpdater.Contract.FastUpdaterCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_FastUpdater *FastUpdaterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FastUpdater.Contract.FastUpdaterTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_FastUpdater *FastUpdaterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _FastUpdater.Contract.FastUpdaterTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_FastUpdater *FastUpdaterCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _FastUpdater.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_FastUpdater *FastUpdaterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FastUpdater.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_FastUpdater *FastUpdaterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _FastUpdater.Contract.contract.Transact(opts, method, params...) +} + +// MAXFEEDAGEINVOTINGEPOCHS is a free data retrieval call binding the contract method 0x7fe3341a. +// +// Solidity: function MAX_FEED_AGE_IN_VOTING_EPOCHS() view returns(uint256) +func (_FastUpdater *FastUpdaterCaller) MAXFEEDAGEINVOTINGEPOCHS(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "MAX_FEED_AGE_IN_VOTING_EPOCHS") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MAXFEEDAGEINVOTINGEPOCHS is a free data retrieval call binding the contract method 0x7fe3341a. +// +// Solidity: function MAX_FEED_AGE_IN_VOTING_EPOCHS() view returns(uint256) +func (_FastUpdater *FastUpdaterSession) MAXFEEDAGEINVOTINGEPOCHS() (*big.Int, error) { + return _FastUpdater.Contract.MAXFEEDAGEINVOTINGEPOCHS(&_FastUpdater.CallOpts) +} + +// MAXFEEDAGEINVOTINGEPOCHS is a free data retrieval call binding the contract method 0x7fe3341a. +// +// Solidity: function MAX_FEED_AGE_IN_VOTING_EPOCHS() view returns(uint256) +func (_FastUpdater *FastUpdaterCallerSession) MAXFEEDAGEINVOTINGEPOCHS() (*big.Int, error) { + return _FastUpdater.Contract.MAXFEEDAGEINVOTINGEPOCHS(&_FastUpdater.CallOpts) +} + +// CircularLength is a free data retrieval call binding the contract method 0x488f9806. +// +// Solidity: function circularLength() view returns(uint256) +func (_FastUpdater *FastUpdaterCaller) CircularLength(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "circularLength") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CircularLength is a free data retrieval call binding the contract method 0x488f9806. +// +// Solidity: function circularLength() view returns(uint256) +func (_FastUpdater *FastUpdaterSession) CircularLength() (*big.Int, error) { + return _FastUpdater.Contract.CircularLength(&_FastUpdater.CallOpts) +} + +// CircularLength is a free data retrieval call binding the contract method 0x488f9806. +// +// Solidity: function circularLength() view returns(uint256) +func (_FastUpdater *FastUpdaterCallerSession) CircularLength() (*big.Int, error) { + return _FastUpdater.Contract.CircularLength(&_FastUpdater.CallOpts) +} + +// CurrentScoreCutoff is a free data retrieval call binding the contract method 0x0799fe75. +// +// Solidity: function currentScoreCutoff() view returns(uint256 _cutoff) +func (_FastUpdater *FastUpdaterCaller) CurrentScoreCutoff(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "currentScoreCutoff") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CurrentScoreCutoff is a free data retrieval call binding the contract method 0x0799fe75. +// +// Solidity: function currentScoreCutoff() view returns(uint256 _cutoff) +func (_FastUpdater *FastUpdaterSession) CurrentScoreCutoff() (*big.Int, error) { + return _FastUpdater.Contract.CurrentScoreCutoff(&_FastUpdater.CallOpts) +} + +// CurrentScoreCutoff is a free data retrieval call binding the contract method 0x0799fe75. +// +// Solidity: function currentScoreCutoff() view returns(uint256 _cutoff) +func (_FastUpdater *FastUpdaterCallerSession) CurrentScoreCutoff() (*big.Int, error) { + return _FastUpdater.Contract.CurrentScoreCutoff(&_FastUpdater.CallOpts) +} + +// CurrentSortitionWeight is a free data retrieval call binding the contract method 0xa14634a7. +// +// Solidity: function currentSortitionWeight(address _signingPolicyAddress) view returns(uint256 _weight) +func (_FastUpdater *FastUpdaterCaller) CurrentSortitionWeight(opts *bind.CallOpts, _signingPolicyAddress common.Address) (*big.Int, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "currentSortitionWeight", _signingPolicyAddress) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CurrentSortitionWeight is a free data retrieval call binding the contract method 0xa14634a7. +// +// Solidity: function currentSortitionWeight(address _signingPolicyAddress) view returns(uint256 _weight) +func (_FastUpdater *FastUpdaterSession) CurrentSortitionWeight(_signingPolicyAddress common.Address) (*big.Int, error) { + return _FastUpdater.Contract.CurrentSortitionWeight(&_FastUpdater.CallOpts, _signingPolicyAddress) +} + +// CurrentSortitionWeight is a free data retrieval call binding the contract method 0xa14634a7. +// +// Solidity: function currentSortitionWeight(address _signingPolicyAddress) view returns(uint256 _weight) +func (_FastUpdater *FastUpdaterCallerSession) CurrentSortitionWeight(_signingPolicyAddress common.Address) (*big.Int, error) { + return _FastUpdater.Contract.CurrentSortitionWeight(&_FastUpdater.CallOpts, _signingPolicyAddress) +} + +// FastUpdateIncentiveManager is a free data retrieval call binding the contract method 0x7925eaca. +// +// Solidity: function fastUpdateIncentiveManager() view returns(address) +func (_FastUpdater *FastUpdaterCaller) FastUpdateIncentiveManager(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "fastUpdateIncentiveManager") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FastUpdateIncentiveManager is a free data retrieval call binding the contract method 0x7925eaca. +// +// Solidity: function fastUpdateIncentiveManager() view returns(address) +func (_FastUpdater *FastUpdaterSession) FastUpdateIncentiveManager() (common.Address, error) { + return _FastUpdater.Contract.FastUpdateIncentiveManager(&_FastUpdater.CallOpts) +} + +// FastUpdateIncentiveManager is a free data retrieval call binding the contract method 0x7925eaca. +// +// Solidity: function fastUpdateIncentiveManager() view returns(address) +func (_FastUpdater *FastUpdaterCallerSession) FastUpdateIncentiveManager() (common.Address, error) { + return _FastUpdater.Contract.FastUpdateIncentiveManager(&_FastUpdater.CallOpts) +} + +// FastUpdatesConfiguration is a free data retrieval call binding the contract method 0xc10f489a. +// +// Solidity: function fastUpdatesConfiguration() view returns(address) +func (_FastUpdater *FastUpdaterCaller) FastUpdatesConfiguration(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "fastUpdatesConfiguration") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FastUpdatesConfiguration is a free data retrieval call binding the contract method 0xc10f489a. +// +// Solidity: function fastUpdatesConfiguration() view returns(address) +func (_FastUpdater *FastUpdaterSession) FastUpdatesConfiguration() (common.Address, error) { + return _FastUpdater.Contract.FastUpdatesConfiguration(&_FastUpdater.CallOpts) +} + +// FastUpdatesConfiguration is a free data retrieval call binding the contract method 0xc10f489a. +// +// Solidity: function fastUpdatesConfiguration() view returns(address) +func (_FastUpdater *FastUpdaterCallerSession) FastUpdatesConfiguration() (common.Address, error) { + return _FastUpdater.Contract.FastUpdatesConfiguration(&_FastUpdater.CallOpts) +} + +// FetchAllCurrentFeeds is a free data retrieval call binding the contract method 0x4691377f. +// +// Solidity: function fetchAllCurrentFeeds() view returns(bytes21[] _feedIds, uint256[] _feeds, int8[] _decimals) +func (_FastUpdater *FastUpdaterCaller) FetchAllCurrentFeeds(opts *bind.CallOpts) (struct { + FeedIds [][21]byte + Feeds []*big.Int + Decimals []int8 +}, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "fetchAllCurrentFeeds") + + outstruct := new(struct { + FeedIds [][21]byte + Feeds []*big.Int + Decimals []int8 + }) + if err != nil { + return *outstruct, err + } + + outstruct.FeedIds = *abi.ConvertType(out[0], new([][21]byte)).(*[][21]byte) + outstruct.Feeds = *abi.ConvertType(out[1], new([]*big.Int)).(*[]*big.Int) + outstruct.Decimals = *abi.ConvertType(out[2], new([]int8)).(*[]int8) + + return *outstruct, err + +} + +// FetchAllCurrentFeeds is a free data retrieval call binding the contract method 0x4691377f. +// +// Solidity: function fetchAllCurrentFeeds() view returns(bytes21[] _feedIds, uint256[] _feeds, int8[] _decimals) +func (_FastUpdater *FastUpdaterSession) FetchAllCurrentFeeds() (struct { + FeedIds [][21]byte + Feeds []*big.Int + Decimals []int8 +}, error) { + return _FastUpdater.Contract.FetchAllCurrentFeeds(&_FastUpdater.CallOpts) +} + +// FetchAllCurrentFeeds is a free data retrieval call binding the contract method 0x4691377f. +// +// Solidity: function fetchAllCurrentFeeds() view returns(bytes21[] _feedIds, uint256[] _feeds, int8[] _decimals) +func (_FastUpdater *FastUpdaterCallerSession) FetchAllCurrentFeeds() (struct { + FeedIds [][21]byte + Feeds []*big.Int + Decimals []int8 +}, error) { + return _FastUpdater.Contract.FetchAllCurrentFeeds(&_FastUpdater.CallOpts) +} + +// FetchCurrentFeeds is a free data retrieval call binding the contract method 0x45a15d3c. +// +// Solidity: function fetchCurrentFeeds(uint256[] _indices) view returns(uint256[] _feeds, int8[] _decimals) +func (_FastUpdater *FastUpdaterCaller) FetchCurrentFeeds(opts *bind.CallOpts, _indices []*big.Int) (struct { + Feeds []*big.Int + Decimals []int8 +}, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "fetchCurrentFeeds", _indices) + + outstruct := new(struct { + Feeds []*big.Int + Decimals []int8 + }) + if err != nil { + return *outstruct, err + } + + outstruct.Feeds = *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + outstruct.Decimals = *abi.ConvertType(out[1], new([]int8)).(*[]int8) + + return *outstruct, err + +} + +// FetchCurrentFeeds is a free data retrieval call binding the contract method 0x45a15d3c. +// +// Solidity: function fetchCurrentFeeds(uint256[] _indices) view returns(uint256[] _feeds, int8[] _decimals) +func (_FastUpdater *FastUpdaterSession) FetchCurrentFeeds(_indices []*big.Int) (struct { + Feeds []*big.Int + Decimals []int8 +}, error) { + return _FastUpdater.Contract.FetchCurrentFeeds(&_FastUpdater.CallOpts, _indices) +} + +// FetchCurrentFeeds is a free data retrieval call binding the contract method 0x45a15d3c. +// +// Solidity: function fetchCurrentFeeds(uint256[] _indices) view returns(uint256[] _feeds, int8[] _decimals) +func (_FastUpdater *FastUpdaterCallerSession) FetchCurrentFeeds(_indices []*big.Int) (struct { + Feeds []*big.Int + Decimals []int8 +}, error) { + return _FastUpdater.Contract.FetchCurrentFeeds(&_FastUpdater.CallOpts, _indices) +} + +// FirstVotingRoundStartTs is a free data retrieval call binding the contract method 0xe8d0e70a. +// +// Solidity: function firstVotingRoundStartTs() view returns(uint64) +func (_FastUpdater *FastUpdaterCaller) FirstVotingRoundStartTs(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "firstVotingRoundStartTs") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// FirstVotingRoundStartTs is a free data retrieval call binding the contract method 0xe8d0e70a. +// +// Solidity: function firstVotingRoundStartTs() view returns(uint64) +func (_FastUpdater *FastUpdaterSession) FirstVotingRoundStartTs() (uint64, error) { + return _FastUpdater.Contract.FirstVotingRoundStartTs(&_FastUpdater.CallOpts) +} + +// FirstVotingRoundStartTs is a free data retrieval call binding the contract method 0xe8d0e70a. +// +// Solidity: function firstVotingRoundStartTs() view returns(uint64) +func (_FastUpdater *FastUpdaterCallerSession) FirstVotingRoundStartTs() (uint64, error) { + return _FastUpdater.Contract.FirstVotingRoundStartTs(&_FastUpdater.CallOpts) +} + +// FlareDaemon is a free data retrieval call binding the contract method 0xa1077532. +// +// Solidity: function flareDaemon() view returns(address) +func (_FastUpdater *FastUpdaterCaller) FlareDaemon(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "flareDaemon") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FlareDaemon is a free data retrieval call binding the contract method 0xa1077532. +// +// Solidity: function flareDaemon() view returns(address) +func (_FastUpdater *FastUpdaterSession) FlareDaemon() (common.Address, error) { + return _FastUpdater.Contract.FlareDaemon(&_FastUpdater.CallOpts) +} + +// FlareDaemon is a free data retrieval call binding the contract method 0xa1077532. +// +// Solidity: function flareDaemon() view returns(address) +func (_FastUpdater *FastUpdaterCallerSession) FlareDaemon() (common.Address, error) { + return _FastUpdater.Contract.FlareDaemon(&_FastUpdater.CallOpts) +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_FastUpdater *FastUpdaterCaller) FlareSystemsManager(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "flareSystemsManager") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_FastUpdater *FastUpdaterSession) FlareSystemsManager() (common.Address, error) { + return _FastUpdater.Contract.FlareSystemsManager(&_FastUpdater.CallOpts) +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_FastUpdater *FastUpdaterCallerSession) FlareSystemsManager() (common.Address, error) { + return _FastUpdater.Contract.FlareSystemsManager(&_FastUpdater.CallOpts) +} + +// FtsoFeedPublisher is a free data retrieval call binding the contract method 0x29bfe39d. +// +// Solidity: function ftsoFeedPublisher() view returns(address) +func (_FastUpdater *FastUpdaterCaller) FtsoFeedPublisher(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "ftsoFeedPublisher") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FtsoFeedPublisher is a free data retrieval call binding the contract method 0x29bfe39d. +// +// Solidity: function ftsoFeedPublisher() view returns(address) +func (_FastUpdater *FastUpdaterSession) FtsoFeedPublisher() (common.Address, error) { + return _FastUpdater.Contract.FtsoFeedPublisher(&_FastUpdater.CallOpts) +} + +// FtsoFeedPublisher is a free data retrieval call binding the contract method 0x29bfe39d. +// +// Solidity: function ftsoFeedPublisher() view returns(address) +func (_FastUpdater *FastUpdaterCallerSession) FtsoFeedPublisher() (common.Address, error) { + return _FastUpdater.Contract.FtsoFeedPublisher(&_FastUpdater.CallOpts) +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_FastUpdater *FastUpdaterCaller) GetAddressUpdater(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "getAddressUpdater") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_FastUpdater *FastUpdaterSession) GetAddressUpdater() (common.Address, error) { + return _FastUpdater.Contract.GetAddressUpdater(&_FastUpdater.CallOpts) +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_FastUpdater *FastUpdaterCallerSession) GetAddressUpdater() (common.Address, error) { + return _FastUpdater.Contract.GetAddressUpdater(&_FastUpdater.CallOpts) +} + +// GetContractName is a free data retrieval call binding the contract method 0xf5f5ba72. +// +// Solidity: function getContractName() pure returns(string) +func (_FastUpdater *FastUpdaterCaller) GetContractName(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "getContractName") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// GetContractName is a free data retrieval call binding the contract method 0xf5f5ba72. +// +// Solidity: function getContractName() pure returns(string) +func (_FastUpdater *FastUpdaterSession) GetContractName() (string, error) { + return _FastUpdater.Contract.GetContractName(&_FastUpdater.CallOpts) +} + +// GetContractName is a free data retrieval call binding the contract method 0xf5f5ba72. +// +// Solidity: function getContractName() pure returns(string) +func (_FastUpdater *FastUpdaterCallerSession) GetContractName() (string, error) { + return _FastUpdater.Contract.GetContractName(&_FastUpdater.CallOpts) +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_FastUpdater *FastUpdaterCaller) Governance(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "governance") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_FastUpdater *FastUpdaterSession) Governance() (common.Address, error) { + return _FastUpdater.Contract.Governance(&_FastUpdater.CallOpts) +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_FastUpdater *FastUpdaterCallerSession) Governance() (common.Address, error) { + return _FastUpdater.Contract.Governance(&_FastUpdater.CallOpts) +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_FastUpdater *FastUpdaterCaller) GovernanceSettings(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "governanceSettings") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_FastUpdater *FastUpdaterSession) GovernanceSettings() (common.Address, error) { + return _FastUpdater.Contract.GovernanceSettings(&_FastUpdater.CallOpts) +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_FastUpdater *FastUpdaterCallerSession) GovernanceSettings() (common.Address, error) { + return _FastUpdater.Contract.GovernanceSettings(&_FastUpdater.CallOpts) +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_FastUpdater *FastUpdaterCaller) IsExecutor(opts *bind.CallOpts, _address common.Address) (bool, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "isExecutor", _address) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_FastUpdater *FastUpdaterSession) IsExecutor(_address common.Address) (bool, error) { + return _FastUpdater.Contract.IsExecutor(&_FastUpdater.CallOpts, _address) +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_FastUpdater *FastUpdaterCallerSession) IsExecutor(_address common.Address) (bool, error) { + return _FastUpdater.Contract.IsExecutor(&_FastUpdater.CallOpts, _address) +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_FastUpdater *FastUpdaterCaller) ProductionMode(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "productionMode") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_FastUpdater *FastUpdaterSession) ProductionMode() (bool, error) { + return _FastUpdater.Contract.ProductionMode(&_FastUpdater.CallOpts) +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_FastUpdater *FastUpdaterCallerSession) ProductionMode() (bool, error) { + return _FastUpdater.Contract.ProductionMode(&_FastUpdater.CallOpts) +} + +// SubmissionWindow is a free data retrieval call binding the contract method 0xe621dbc7. +// +// Solidity: function submissionWindow() view returns(uint256) +func (_FastUpdater *FastUpdaterCaller) SubmissionWindow(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "submissionWindow") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// SubmissionWindow is a free data retrieval call binding the contract method 0xe621dbc7. +// +// Solidity: function submissionWindow() view returns(uint256) +func (_FastUpdater *FastUpdaterSession) SubmissionWindow() (*big.Int, error) { + return _FastUpdater.Contract.SubmissionWindow(&_FastUpdater.CallOpts) +} + +// SubmissionWindow is a free data retrieval call binding the contract method 0xe621dbc7. +// +// Solidity: function submissionWindow() view returns(uint256) +func (_FastUpdater *FastUpdaterCallerSession) SubmissionWindow() (*big.Int, error) { + return _FastUpdater.Contract.SubmissionWindow(&_FastUpdater.CallOpts) +} + +// SwitchToFallbackMode is a free data retrieval call binding the contract method 0xe22fdece. +// +// Solidity: function switchToFallbackMode() view returns(bool) +func (_FastUpdater *FastUpdaterCaller) SwitchToFallbackMode(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "switchToFallbackMode") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// SwitchToFallbackMode is a free data retrieval call binding the contract method 0xe22fdece. +// +// Solidity: function switchToFallbackMode() view returns(bool) +func (_FastUpdater *FastUpdaterSession) SwitchToFallbackMode() (bool, error) { + return _FastUpdater.Contract.SwitchToFallbackMode(&_FastUpdater.CallOpts) +} + +// SwitchToFallbackMode is a free data retrieval call binding the contract method 0xe22fdece. +// +// Solidity: function switchToFallbackMode() view returns(bool) +func (_FastUpdater *FastUpdaterCallerSession) SwitchToFallbackMode() (bool, error) { + return _FastUpdater.Contract.SwitchToFallbackMode(&_FastUpdater.CallOpts) +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdater *FastUpdaterCaller) TimelockedCalls(opts *bind.CallOpts, selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "timelockedCalls", selector) + + outstruct := new(struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.AllowedAfterTimestamp = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.EncodedCall = *abi.ConvertType(out[1], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdater *FastUpdaterSession) TimelockedCalls(selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + return _FastUpdater.Contract.TimelockedCalls(&_FastUpdater.CallOpts, selector) +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdater *FastUpdaterCallerSession) TimelockedCalls(selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + return _FastUpdater.Contract.TimelockedCalls(&_FastUpdater.CallOpts, selector) +} + +// VerifyPublicKey is a free data retrieval call binding the contract method 0x70473f2f. +// +// Solidity: function verifyPublicKey(address _voter, bytes32 _part1, bytes32 _part2, bytes _verificationData) view returns() +func (_FastUpdater *FastUpdaterCaller) VerifyPublicKey(opts *bind.CallOpts, _voter common.Address, _part1 [32]byte, _part2 [32]byte, _verificationData []byte) error { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "verifyPublicKey", _voter, _part1, _part2, _verificationData) + + if err != nil { + return err + } + + return err + +} + +// VerifyPublicKey is a free data retrieval call binding the contract method 0x70473f2f. +// +// Solidity: function verifyPublicKey(address _voter, bytes32 _part1, bytes32 _part2, bytes _verificationData) view returns() +func (_FastUpdater *FastUpdaterSession) VerifyPublicKey(_voter common.Address, _part1 [32]byte, _part2 [32]byte, _verificationData []byte) error { + return _FastUpdater.Contract.VerifyPublicKey(&_FastUpdater.CallOpts, _voter, _part1, _part2, _verificationData) +} + +// VerifyPublicKey is a free data retrieval call binding the contract method 0x70473f2f. +// +// Solidity: function verifyPublicKey(address _voter, bytes32 _part1, bytes32 _part2, bytes _verificationData) view returns() +func (_FastUpdater *FastUpdaterCallerSession) VerifyPublicKey(_voter common.Address, _part1 [32]byte, _part2 [32]byte, _verificationData []byte) error { + return _FastUpdater.Contract.VerifyPublicKey(&_FastUpdater.CallOpts, _voter, _part1, _part2, _verificationData) +} + +// VoterRegistry is a free data retrieval call binding the contract method 0xbe60040e. +// +// Solidity: function voterRegistry() view returns(address) +func (_FastUpdater *FastUpdaterCaller) VoterRegistry(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "voterRegistry") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// VoterRegistry is a free data retrieval call binding the contract method 0xbe60040e. +// +// Solidity: function voterRegistry() view returns(address) +func (_FastUpdater *FastUpdaterSession) VoterRegistry() (common.Address, error) { + return _FastUpdater.Contract.VoterRegistry(&_FastUpdater.CallOpts) +} + +// VoterRegistry is a free data retrieval call binding the contract method 0xbe60040e. +// +// Solidity: function voterRegistry() view returns(address) +func (_FastUpdater *FastUpdaterCallerSession) VoterRegistry() (common.Address, error) { + return _FastUpdater.Contract.VoterRegistry(&_FastUpdater.CallOpts) +} + +// VotingEpochDurationSeconds is a free data retrieval call binding the contract method 0x5a832088. +// +// Solidity: function votingEpochDurationSeconds() view returns(uint64) +func (_FastUpdater *FastUpdaterCaller) VotingEpochDurationSeconds(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _FastUpdater.contract.Call(opts, &out, "votingEpochDurationSeconds") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// VotingEpochDurationSeconds is a free data retrieval call binding the contract method 0x5a832088. +// +// Solidity: function votingEpochDurationSeconds() view returns(uint64) +func (_FastUpdater *FastUpdaterSession) VotingEpochDurationSeconds() (uint64, error) { + return _FastUpdater.Contract.VotingEpochDurationSeconds(&_FastUpdater.CallOpts) +} + +// VotingEpochDurationSeconds is a free data retrieval call binding the contract method 0x5a832088. +// +// Solidity: function votingEpochDurationSeconds() view returns(uint64) +func (_FastUpdater *FastUpdaterCallerSession) VotingEpochDurationSeconds() (uint64, error) { + return _FastUpdater.Contract.VotingEpochDurationSeconds(&_FastUpdater.CallOpts) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_FastUpdater *FastUpdaterTransactor) CancelGovernanceCall(opts *bind.TransactOpts, _selector [4]byte) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "cancelGovernanceCall", _selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_FastUpdater *FastUpdaterSession) CancelGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _FastUpdater.Contract.CancelGovernanceCall(&_FastUpdater.TransactOpts, _selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_FastUpdater *FastUpdaterTransactorSession) CancelGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _FastUpdater.Contract.CancelGovernanceCall(&_FastUpdater.TransactOpts, _selector) +} + +// Daemonize is a paid mutator transaction binding the contract method 0x6d0e8c34. +// +// Solidity: function daemonize() returns(bool) +func (_FastUpdater *FastUpdaterTransactor) Daemonize(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "daemonize") +} + +// Daemonize is a paid mutator transaction binding the contract method 0x6d0e8c34. +// +// Solidity: function daemonize() returns(bool) +func (_FastUpdater *FastUpdaterSession) Daemonize() (*types.Transaction, error) { + return _FastUpdater.Contract.Daemonize(&_FastUpdater.TransactOpts) +} + +// Daemonize is a paid mutator transaction binding the contract method 0x6d0e8c34. +// +// Solidity: function daemonize() returns(bool) +func (_FastUpdater *FastUpdaterTransactorSession) Daemonize() (*types.Transaction, error) { + return _FastUpdater.Contract.Daemonize(&_FastUpdater.TransactOpts) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_FastUpdater *FastUpdaterTransactor) ExecuteGovernanceCall(opts *bind.TransactOpts, _selector [4]byte) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "executeGovernanceCall", _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_FastUpdater *FastUpdaterSession) ExecuteGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _FastUpdater.Contract.ExecuteGovernanceCall(&_FastUpdater.TransactOpts, _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_FastUpdater *FastUpdaterTransactorSession) ExecuteGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _FastUpdater.Contract.ExecuteGovernanceCall(&_FastUpdater.TransactOpts, _selector) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_FastUpdater *FastUpdaterTransactor) Initialise(opts *bind.TransactOpts, _governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "initialise", _governanceSettings, _initialGovernance) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_FastUpdater *FastUpdaterSession) Initialise(_governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _FastUpdater.Contract.Initialise(&_FastUpdater.TransactOpts, _governanceSettings, _initialGovernance) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_FastUpdater *FastUpdaterTransactorSession) Initialise(_governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _FastUpdater.Contract.Initialise(&_FastUpdater.TransactOpts, _governanceSettings, _initialGovernance) +} + +// RemoveFeeds is a paid mutator transaction binding the contract method 0xabfaf170. +// +// Solidity: function removeFeeds(uint256[] _indices) returns() +func (_FastUpdater *FastUpdaterTransactor) RemoveFeeds(opts *bind.TransactOpts, _indices []*big.Int) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "removeFeeds", _indices) +} + +// RemoveFeeds is a paid mutator transaction binding the contract method 0xabfaf170. +// +// Solidity: function removeFeeds(uint256[] _indices) returns() +func (_FastUpdater *FastUpdaterSession) RemoveFeeds(_indices []*big.Int) (*types.Transaction, error) { + return _FastUpdater.Contract.RemoveFeeds(&_FastUpdater.TransactOpts, _indices) +} + +// RemoveFeeds is a paid mutator transaction binding the contract method 0xabfaf170. +// +// Solidity: function removeFeeds(uint256[] _indices) returns() +func (_FastUpdater *FastUpdaterTransactorSession) RemoveFeeds(_indices []*big.Int) (*types.Transaction, error) { + return _FastUpdater.Contract.RemoveFeeds(&_FastUpdater.TransactOpts, _indices) +} + +// ResetFeeds is a paid mutator transaction binding the contract method 0x63f921db. +// +// Solidity: function resetFeeds(uint256[] _indices) returns() +func (_FastUpdater *FastUpdaterTransactor) ResetFeeds(opts *bind.TransactOpts, _indices []*big.Int) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "resetFeeds", _indices) +} + +// ResetFeeds is a paid mutator transaction binding the contract method 0x63f921db. +// +// Solidity: function resetFeeds(uint256[] _indices) returns() +func (_FastUpdater *FastUpdaterSession) ResetFeeds(_indices []*big.Int) (*types.Transaction, error) { + return _FastUpdater.Contract.ResetFeeds(&_FastUpdater.TransactOpts, _indices) +} + +// ResetFeeds is a paid mutator transaction binding the contract method 0x63f921db. +// +// Solidity: function resetFeeds(uint256[] _indices) returns() +func (_FastUpdater *FastUpdaterTransactorSession) ResetFeeds(_indices []*big.Int) (*types.Transaction, error) { + return _FastUpdater.Contract.ResetFeeds(&_FastUpdater.TransactOpts, _indices) +} + +// SetSubmissionWindow is a paid mutator transaction binding the contract method 0x274965db. +// +// Solidity: function setSubmissionWindow(uint256 _submissionWindow) returns() +func (_FastUpdater *FastUpdaterTransactor) SetSubmissionWindow(opts *bind.TransactOpts, _submissionWindow *big.Int) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "setSubmissionWindow", _submissionWindow) +} + +// SetSubmissionWindow is a paid mutator transaction binding the contract method 0x274965db. +// +// Solidity: function setSubmissionWindow(uint256 _submissionWindow) returns() +func (_FastUpdater *FastUpdaterSession) SetSubmissionWindow(_submissionWindow *big.Int) (*types.Transaction, error) { + return _FastUpdater.Contract.SetSubmissionWindow(&_FastUpdater.TransactOpts, _submissionWindow) +} + +// SetSubmissionWindow is a paid mutator transaction binding the contract method 0x274965db. +// +// Solidity: function setSubmissionWindow(uint256 _submissionWindow) returns() +func (_FastUpdater *FastUpdaterTransactorSession) SetSubmissionWindow(_submissionWindow *big.Int) (*types.Transaction, error) { + return _FastUpdater.Contract.SetSubmissionWindow(&_FastUpdater.TransactOpts, _submissionWindow) +} + +// SubmitUpdates is a paid mutator transaction binding the contract method 0x470e91df. +// +// Solidity: function submitUpdates((uint256,(uint256,(uint256,uint256),uint256,uint256),bytes,(uint8,bytes32,bytes32)) _updates) returns() +func (_FastUpdater *FastUpdaterTransactor) SubmitUpdates(opts *bind.TransactOpts, _updates IFastUpdaterFastUpdates) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "submitUpdates", _updates) +} + +// SubmitUpdates is a paid mutator transaction binding the contract method 0x470e91df. +// +// Solidity: function submitUpdates((uint256,(uint256,(uint256,uint256),uint256,uint256),bytes,(uint8,bytes32,bytes32)) _updates) returns() +func (_FastUpdater *FastUpdaterSession) SubmitUpdates(_updates IFastUpdaterFastUpdates) (*types.Transaction, error) { + return _FastUpdater.Contract.SubmitUpdates(&_FastUpdater.TransactOpts, _updates) +} + +// SubmitUpdates is a paid mutator transaction binding the contract method 0x470e91df. +// +// Solidity: function submitUpdates((uint256,(uint256,(uint256,uint256),uint256,uint256),bytes,(uint8,bytes32,bytes32)) _updates) returns() +func (_FastUpdater *FastUpdaterTransactorSession) SubmitUpdates(_updates IFastUpdaterFastUpdates) (*types.Transaction, error) { + return _FastUpdater.Contract.SubmitUpdates(&_FastUpdater.TransactOpts, _updates) +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_FastUpdater *FastUpdaterTransactor) SwitchToProductionMode(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "switchToProductionMode") +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_FastUpdater *FastUpdaterSession) SwitchToProductionMode() (*types.Transaction, error) { + return _FastUpdater.Contract.SwitchToProductionMode(&_FastUpdater.TransactOpts) +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_FastUpdater *FastUpdaterTransactorSession) SwitchToProductionMode() (*types.Transaction, error) { + return _FastUpdater.Contract.SwitchToProductionMode(&_FastUpdater.TransactOpts) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_FastUpdater *FastUpdaterTransactor) UpdateContractAddresses(opts *bind.TransactOpts, _contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _FastUpdater.contract.Transact(opts, "updateContractAddresses", _contractNameHashes, _contractAddresses) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_FastUpdater *FastUpdaterSession) UpdateContractAddresses(_contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _FastUpdater.Contract.UpdateContractAddresses(&_FastUpdater.TransactOpts, _contractNameHashes, _contractAddresses) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_FastUpdater *FastUpdaterTransactorSession) UpdateContractAddresses(_contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _FastUpdater.Contract.UpdateContractAddresses(&_FastUpdater.TransactOpts, _contractNameHashes, _contractAddresses) +} + +// FastUpdaterFastUpdateFeedRemovedIterator is returned from FilterFastUpdateFeedRemoved and is used to iterate over the raw logs and unpacked data for FastUpdateFeedRemoved events raised by the FastUpdater contract. +type FastUpdaterFastUpdateFeedRemovedIterator struct { + Event *FastUpdaterFastUpdateFeedRemoved // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterFastUpdateFeedRemovedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterFastUpdateFeedRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterFastUpdateFeedRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterFastUpdateFeedRemovedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterFastUpdateFeedRemovedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterFastUpdateFeedRemoved represents a FastUpdateFeedRemoved event raised by the FastUpdater contract. +type FastUpdaterFastUpdateFeedRemoved struct { + Index *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterFastUpdateFeedRemoved is a free log retrieval operation binding the contract event 0x5a17f564b9fd53c971695a2e033e0cd39ee8ad08d8117242cdecad8b017335c8. +// +// Solidity: event FastUpdateFeedRemoved(uint256 indexed index) +func (_FastUpdater *FastUpdaterFilterer) FilterFastUpdateFeedRemoved(opts *bind.FilterOpts, index []*big.Int) (*FastUpdaterFastUpdateFeedRemovedIterator, error) { + + var indexRule []interface{} + for _, indexItem := range index { + indexRule = append(indexRule, indexItem) + } + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "FastUpdateFeedRemoved", indexRule) + if err != nil { + return nil, err + } + return &FastUpdaterFastUpdateFeedRemovedIterator{contract: _FastUpdater.contract, event: "FastUpdateFeedRemoved", logs: logs, sub: sub}, nil +} + +// WatchFastUpdateFeedRemoved is a free log subscription operation binding the contract event 0x5a17f564b9fd53c971695a2e033e0cd39ee8ad08d8117242cdecad8b017335c8. +// +// Solidity: event FastUpdateFeedRemoved(uint256 indexed index) +func (_FastUpdater *FastUpdaterFilterer) WatchFastUpdateFeedRemoved(opts *bind.WatchOpts, sink chan<- *FastUpdaterFastUpdateFeedRemoved, index []*big.Int) (event.Subscription, error) { + + var indexRule []interface{} + for _, indexItem := range index { + indexRule = append(indexRule, indexItem) + } + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "FastUpdateFeedRemoved", indexRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterFastUpdateFeedRemoved) + if err := _FastUpdater.contract.UnpackLog(event, "FastUpdateFeedRemoved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseFastUpdateFeedRemoved is a log parse operation binding the contract event 0x5a17f564b9fd53c971695a2e033e0cd39ee8ad08d8117242cdecad8b017335c8. +// +// Solidity: event FastUpdateFeedRemoved(uint256 indexed index) +func (_FastUpdater *FastUpdaterFilterer) ParseFastUpdateFeedRemoved(log types.Log) (*FastUpdaterFastUpdateFeedRemoved, error) { + event := new(FastUpdaterFastUpdateFeedRemoved) + if err := _FastUpdater.contract.UnpackLog(event, "FastUpdateFeedRemoved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdaterFastUpdateFeedResetIterator is returned from FilterFastUpdateFeedReset and is used to iterate over the raw logs and unpacked data for FastUpdateFeedReset events raised by the FastUpdater contract. +type FastUpdaterFastUpdateFeedResetIterator struct { + Event *FastUpdaterFastUpdateFeedReset // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterFastUpdateFeedResetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterFastUpdateFeedReset) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterFastUpdateFeedReset) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterFastUpdateFeedResetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterFastUpdateFeedResetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterFastUpdateFeedReset represents a FastUpdateFeedReset event raised by the FastUpdater contract. +type FastUpdaterFastUpdateFeedReset struct { + VotingRoundId *big.Int + Index *big.Int + Id [21]byte + Value *big.Int + Decimals int8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterFastUpdateFeedReset is a free log retrieval operation binding the contract event 0xfa800fadb5e7b72652da40bcd7ca9a96cd4e53c9ea4c68b8afbba027e77a7cf5. +// +// Solidity: event FastUpdateFeedReset(uint256 indexed votingRoundId, uint256 indexed index, bytes21 indexed id, uint256 value, int8 decimals) +func (_FastUpdater *FastUpdaterFilterer) FilterFastUpdateFeedReset(opts *bind.FilterOpts, votingRoundId []*big.Int, index []*big.Int, id [][21]byte) (*FastUpdaterFastUpdateFeedResetIterator, error) { + + var votingRoundIdRule []interface{} + for _, votingRoundIdItem := range votingRoundId { + votingRoundIdRule = append(votingRoundIdRule, votingRoundIdItem) + } + var indexRule []interface{} + for _, indexItem := range index { + indexRule = append(indexRule, indexItem) + } + var idRule []interface{} + for _, idItem := range id { + idRule = append(idRule, idItem) + } + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "FastUpdateFeedReset", votingRoundIdRule, indexRule, idRule) + if err != nil { + return nil, err + } + return &FastUpdaterFastUpdateFeedResetIterator{contract: _FastUpdater.contract, event: "FastUpdateFeedReset", logs: logs, sub: sub}, nil +} + +// WatchFastUpdateFeedReset is a free log subscription operation binding the contract event 0xfa800fadb5e7b72652da40bcd7ca9a96cd4e53c9ea4c68b8afbba027e77a7cf5. +// +// Solidity: event FastUpdateFeedReset(uint256 indexed votingRoundId, uint256 indexed index, bytes21 indexed id, uint256 value, int8 decimals) +func (_FastUpdater *FastUpdaterFilterer) WatchFastUpdateFeedReset(opts *bind.WatchOpts, sink chan<- *FastUpdaterFastUpdateFeedReset, votingRoundId []*big.Int, index []*big.Int, id [][21]byte) (event.Subscription, error) { + + var votingRoundIdRule []interface{} + for _, votingRoundIdItem := range votingRoundId { + votingRoundIdRule = append(votingRoundIdRule, votingRoundIdItem) + } + var indexRule []interface{} + for _, indexItem := range index { + indexRule = append(indexRule, indexItem) + } + var idRule []interface{} + for _, idItem := range id { + idRule = append(idRule, idItem) + } + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "FastUpdateFeedReset", votingRoundIdRule, indexRule, idRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterFastUpdateFeedReset) + if err := _FastUpdater.contract.UnpackLog(event, "FastUpdateFeedReset", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseFastUpdateFeedReset is a log parse operation binding the contract event 0xfa800fadb5e7b72652da40bcd7ca9a96cd4e53c9ea4c68b8afbba027e77a7cf5. +// +// Solidity: event FastUpdateFeedReset(uint256 indexed votingRoundId, uint256 indexed index, bytes21 indexed id, uint256 value, int8 decimals) +func (_FastUpdater *FastUpdaterFilterer) ParseFastUpdateFeedReset(log types.Log) (*FastUpdaterFastUpdateFeedReset, error) { + event := new(FastUpdaterFastUpdateFeedReset) + if err := _FastUpdater.contract.UnpackLog(event, "FastUpdateFeedReset", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdaterFastUpdateFeedsIterator is returned from FilterFastUpdateFeeds and is used to iterate over the raw logs and unpacked data for FastUpdateFeeds events raised by the FastUpdater contract. +type FastUpdaterFastUpdateFeedsIterator struct { + Event *FastUpdaterFastUpdateFeeds // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterFastUpdateFeedsIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterFastUpdateFeeds) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterFastUpdateFeeds) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterFastUpdateFeedsIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterFastUpdateFeedsIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterFastUpdateFeeds represents a FastUpdateFeeds event raised by the FastUpdater contract. +type FastUpdaterFastUpdateFeeds struct { + VotingEpochId *big.Int + Feeds []*big.Int + Decimals []int8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterFastUpdateFeeds is a free log retrieval operation binding the contract event 0x7195d3bbca575b55b0f4b62da395f7224b75225d9c08741d216e6cf10a83eabe. +// +// Solidity: event FastUpdateFeeds(uint256 indexed votingEpochId, uint256[] feeds, int8[] decimals) +func (_FastUpdater *FastUpdaterFilterer) FilterFastUpdateFeeds(opts *bind.FilterOpts, votingEpochId []*big.Int) (*FastUpdaterFastUpdateFeedsIterator, error) { + + var votingEpochIdRule []interface{} + for _, votingEpochIdItem := range votingEpochId { + votingEpochIdRule = append(votingEpochIdRule, votingEpochIdItem) + } + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "FastUpdateFeeds", votingEpochIdRule) + if err != nil { + return nil, err + } + return &FastUpdaterFastUpdateFeedsIterator{contract: _FastUpdater.contract, event: "FastUpdateFeeds", logs: logs, sub: sub}, nil +} + +// WatchFastUpdateFeeds is a free log subscription operation binding the contract event 0x7195d3bbca575b55b0f4b62da395f7224b75225d9c08741d216e6cf10a83eabe. +// +// Solidity: event FastUpdateFeeds(uint256 indexed votingEpochId, uint256[] feeds, int8[] decimals) +func (_FastUpdater *FastUpdaterFilterer) WatchFastUpdateFeeds(opts *bind.WatchOpts, sink chan<- *FastUpdaterFastUpdateFeeds, votingEpochId []*big.Int) (event.Subscription, error) { + + var votingEpochIdRule []interface{} + for _, votingEpochIdItem := range votingEpochId { + votingEpochIdRule = append(votingEpochIdRule, votingEpochIdItem) + } + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "FastUpdateFeeds", votingEpochIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterFastUpdateFeeds) + if err := _FastUpdater.contract.UnpackLog(event, "FastUpdateFeeds", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseFastUpdateFeeds is a log parse operation binding the contract event 0x7195d3bbca575b55b0f4b62da395f7224b75225d9c08741d216e6cf10a83eabe. +// +// Solidity: event FastUpdateFeeds(uint256 indexed votingEpochId, uint256[] feeds, int8[] decimals) +func (_FastUpdater *FastUpdaterFilterer) ParseFastUpdateFeeds(log types.Log) (*FastUpdaterFastUpdateFeeds, error) { + event := new(FastUpdaterFastUpdateFeeds) + if err := _FastUpdater.contract.UnpackLog(event, "FastUpdateFeeds", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdaterFastUpdateFeedsSubmittedIterator is returned from FilterFastUpdateFeedsSubmitted and is used to iterate over the raw logs and unpacked data for FastUpdateFeedsSubmitted events raised by the FastUpdater contract. +type FastUpdaterFastUpdateFeedsSubmittedIterator struct { + Event *FastUpdaterFastUpdateFeedsSubmitted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterFastUpdateFeedsSubmittedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterFastUpdateFeedsSubmitted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterFastUpdateFeedsSubmitted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterFastUpdateFeedsSubmittedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterFastUpdateFeedsSubmittedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterFastUpdateFeedsSubmitted represents a FastUpdateFeedsSubmitted event raised by the FastUpdater contract. +type FastUpdaterFastUpdateFeedsSubmitted struct { + SigningPolicyAddress common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterFastUpdateFeedsSubmitted is a free log retrieval operation binding the contract event 0x46726b7af6062bbfbcc71cdfd206e449f91eb91d8a78d596181219c8251d83ee. +// +// Solidity: event FastUpdateFeedsSubmitted(address indexed signingPolicyAddress) +func (_FastUpdater *FastUpdaterFilterer) FilterFastUpdateFeedsSubmitted(opts *bind.FilterOpts, signingPolicyAddress []common.Address) (*FastUpdaterFastUpdateFeedsSubmittedIterator, error) { + + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "FastUpdateFeedsSubmitted", signingPolicyAddressRule) + if err != nil { + return nil, err + } + return &FastUpdaterFastUpdateFeedsSubmittedIterator{contract: _FastUpdater.contract, event: "FastUpdateFeedsSubmitted", logs: logs, sub: sub}, nil +} + +// WatchFastUpdateFeedsSubmitted is a free log subscription operation binding the contract event 0x46726b7af6062bbfbcc71cdfd206e449f91eb91d8a78d596181219c8251d83ee. +// +// Solidity: event FastUpdateFeedsSubmitted(address indexed signingPolicyAddress) +func (_FastUpdater *FastUpdaterFilterer) WatchFastUpdateFeedsSubmitted(opts *bind.WatchOpts, sink chan<- *FastUpdaterFastUpdateFeedsSubmitted, signingPolicyAddress []common.Address) (event.Subscription, error) { + + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "FastUpdateFeedsSubmitted", signingPolicyAddressRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterFastUpdateFeedsSubmitted) + if err := _FastUpdater.contract.UnpackLog(event, "FastUpdateFeedsSubmitted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseFastUpdateFeedsSubmitted is a log parse operation binding the contract event 0x46726b7af6062bbfbcc71cdfd206e449f91eb91d8a78d596181219c8251d83ee. +// +// Solidity: event FastUpdateFeedsSubmitted(address indexed signingPolicyAddress) +func (_FastUpdater *FastUpdaterFilterer) ParseFastUpdateFeedsSubmitted(log types.Log) (*FastUpdaterFastUpdateFeedsSubmitted, error) { + event := new(FastUpdaterFastUpdateFeedsSubmitted) + if err := _FastUpdater.contract.UnpackLog(event, "FastUpdateFeedsSubmitted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdaterGovernanceCallTimelockedIterator is returned from FilterGovernanceCallTimelocked and is used to iterate over the raw logs and unpacked data for GovernanceCallTimelocked events raised by the FastUpdater contract. +type FastUpdaterGovernanceCallTimelockedIterator struct { + Event *FastUpdaterGovernanceCallTimelocked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterGovernanceCallTimelockedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterGovernanceCallTimelocked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterGovernanceCallTimelocked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterGovernanceCallTimelockedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterGovernanceCallTimelockedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterGovernanceCallTimelocked represents a GovernanceCallTimelocked event raised by the FastUpdater contract. +type FastUpdaterGovernanceCallTimelocked struct { + Selector [4]byte + AllowedAfterTimestamp *big.Int + EncodedCall []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernanceCallTimelocked is a free log retrieval operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdater *FastUpdaterFilterer) FilterGovernanceCallTimelocked(opts *bind.FilterOpts) (*FastUpdaterGovernanceCallTimelockedIterator, error) { + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "GovernanceCallTimelocked") + if err != nil { + return nil, err + } + return &FastUpdaterGovernanceCallTimelockedIterator{contract: _FastUpdater.contract, event: "GovernanceCallTimelocked", logs: logs, sub: sub}, nil +} + +// WatchGovernanceCallTimelocked is a free log subscription operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdater *FastUpdaterFilterer) WatchGovernanceCallTimelocked(opts *bind.WatchOpts, sink chan<- *FastUpdaterGovernanceCallTimelocked) (event.Subscription, error) { + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "GovernanceCallTimelocked") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterGovernanceCallTimelocked) + if err := _FastUpdater.contract.UnpackLog(event, "GovernanceCallTimelocked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernanceCallTimelocked is a log parse operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdater *FastUpdaterFilterer) ParseGovernanceCallTimelocked(log types.Log) (*FastUpdaterGovernanceCallTimelocked, error) { + event := new(FastUpdaterGovernanceCallTimelocked) + if err := _FastUpdater.contract.UnpackLog(event, "GovernanceCallTimelocked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdaterGovernanceInitialisedIterator is returned from FilterGovernanceInitialised and is used to iterate over the raw logs and unpacked data for GovernanceInitialised events raised by the FastUpdater contract. +type FastUpdaterGovernanceInitialisedIterator struct { + Event *FastUpdaterGovernanceInitialised // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterGovernanceInitialisedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterGovernanceInitialised) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterGovernanceInitialised) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterGovernanceInitialisedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterGovernanceInitialisedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterGovernanceInitialised represents a GovernanceInitialised event raised by the FastUpdater contract. +type FastUpdaterGovernanceInitialised struct { + InitialGovernance common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernanceInitialised is a free log retrieval operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_FastUpdater *FastUpdaterFilterer) FilterGovernanceInitialised(opts *bind.FilterOpts) (*FastUpdaterGovernanceInitialisedIterator, error) { + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "GovernanceInitialised") + if err != nil { + return nil, err + } + return &FastUpdaterGovernanceInitialisedIterator{contract: _FastUpdater.contract, event: "GovernanceInitialised", logs: logs, sub: sub}, nil +} + +// WatchGovernanceInitialised is a free log subscription operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_FastUpdater *FastUpdaterFilterer) WatchGovernanceInitialised(opts *bind.WatchOpts, sink chan<- *FastUpdaterGovernanceInitialised) (event.Subscription, error) { + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "GovernanceInitialised") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterGovernanceInitialised) + if err := _FastUpdater.contract.UnpackLog(event, "GovernanceInitialised", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernanceInitialised is a log parse operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_FastUpdater *FastUpdaterFilterer) ParseGovernanceInitialised(log types.Log) (*FastUpdaterGovernanceInitialised, error) { + event := new(FastUpdaterGovernanceInitialised) + if err := _FastUpdater.contract.UnpackLog(event, "GovernanceInitialised", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdaterGovernedProductionModeEnteredIterator is returned from FilterGovernedProductionModeEntered and is used to iterate over the raw logs and unpacked data for GovernedProductionModeEntered events raised by the FastUpdater contract. +type FastUpdaterGovernedProductionModeEnteredIterator struct { + Event *FastUpdaterGovernedProductionModeEntered // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterGovernedProductionModeEnteredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterGovernedProductionModeEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterGovernedProductionModeEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterGovernedProductionModeEnteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterGovernedProductionModeEnteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterGovernedProductionModeEntered represents a GovernedProductionModeEntered event raised by the FastUpdater contract. +type FastUpdaterGovernedProductionModeEntered struct { + GovernanceSettings common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernedProductionModeEntered is a free log retrieval operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_FastUpdater *FastUpdaterFilterer) FilterGovernedProductionModeEntered(opts *bind.FilterOpts) (*FastUpdaterGovernedProductionModeEnteredIterator, error) { + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "GovernedProductionModeEntered") + if err != nil { + return nil, err + } + return &FastUpdaterGovernedProductionModeEnteredIterator{contract: _FastUpdater.contract, event: "GovernedProductionModeEntered", logs: logs, sub: sub}, nil +} + +// WatchGovernedProductionModeEntered is a free log subscription operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_FastUpdater *FastUpdaterFilterer) WatchGovernedProductionModeEntered(opts *bind.WatchOpts, sink chan<- *FastUpdaterGovernedProductionModeEntered) (event.Subscription, error) { + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "GovernedProductionModeEntered") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterGovernedProductionModeEntered) + if err := _FastUpdater.contract.UnpackLog(event, "GovernedProductionModeEntered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernedProductionModeEntered is a log parse operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_FastUpdater *FastUpdaterFilterer) ParseGovernedProductionModeEntered(log types.Log) (*FastUpdaterGovernedProductionModeEntered, error) { + event := new(FastUpdaterGovernedProductionModeEntered) + if err := _FastUpdater.contract.UnpackLog(event, "GovernedProductionModeEntered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdaterTimelockedGovernanceCallCanceledIterator is returned from FilterTimelockedGovernanceCallCanceled and is used to iterate over the raw logs and unpacked data for TimelockedGovernanceCallCanceled events raised by the FastUpdater contract. +type FastUpdaterTimelockedGovernanceCallCanceledIterator struct { + Event *FastUpdaterTimelockedGovernanceCallCanceled // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterTimelockedGovernanceCallCanceledIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterTimelockedGovernanceCallCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterTimelockedGovernanceCallCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterTimelockedGovernanceCallCanceledIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterTimelockedGovernanceCallCanceledIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterTimelockedGovernanceCallCanceled represents a TimelockedGovernanceCallCanceled event raised by the FastUpdater contract. +type FastUpdaterTimelockedGovernanceCallCanceled struct { + Selector [4]byte + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTimelockedGovernanceCallCanceled is a free log retrieval operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_FastUpdater *FastUpdaterFilterer) FilterTimelockedGovernanceCallCanceled(opts *bind.FilterOpts) (*FastUpdaterTimelockedGovernanceCallCanceledIterator, error) { + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "TimelockedGovernanceCallCanceled") + if err != nil { + return nil, err + } + return &FastUpdaterTimelockedGovernanceCallCanceledIterator{contract: _FastUpdater.contract, event: "TimelockedGovernanceCallCanceled", logs: logs, sub: sub}, nil +} + +// WatchTimelockedGovernanceCallCanceled is a free log subscription operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_FastUpdater *FastUpdaterFilterer) WatchTimelockedGovernanceCallCanceled(opts *bind.WatchOpts, sink chan<- *FastUpdaterTimelockedGovernanceCallCanceled) (event.Subscription, error) { + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "TimelockedGovernanceCallCanceled") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterTimelockedGovernanceCallCanceled) + if err := _FastUpdater.contract.UnpackLog(event, "TimelockedGovernanceCallCanceled", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTimelockedGovernanceCallCanceled is a log parse operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_FastUpdater *FastUpdaterFilterer) ParseTimelockedGovernanceCallCanceled(log types.Log) (*FastUpdaterTimelockedGovernanceCallCanceled, error) { + event := new(FastUpdaterTimelockedGovernanceCallCanceled) + if err := _FastUpdater.contract.UnpackLog(event, "TimelockedGovernanceCallCanceled", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdaterTimelockedGovernanceCallExecutedIterator is returned from FilterTimelockedGovernanceCallExecuted and is used to iterate over the raw logs and unpacked data for TimelockedGovernanceCallExecuted events raised by the FastUpdater contract. +type FastUpdaterTimelockedGovernanceCallExecutedIterator struct { + Event *FastUpdaterTimelockedGovernanceCallExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdaterTimelockedGovernanceCallExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdaterTimelockedGovernanceCallExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdaterTimelockedGovernanceCallExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdaterTimelockedGovernanceCallExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdaterTimelockedGovernanceCallExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdaterTimelockedGovernanceCallExecuted represents a TimelockedGovernanceCallExecuted event raised by the FastUpdater contract. +type FastUpdaterTimelockedGovernanceCallExecuted struct { + Selector [4]byte + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTimelockedGovernanceCallExecuted is a free log retrieval operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_FastUpdater *FastUpdaterFilterer) FilterTimelockedGovernanceCallExecuted(opts *bind.FilterOpts) (*FastUpdaterTimelockedGovernanceCallExecutedIterator, error) { + + logs, sub, err := _FastUpdater.contract.FilterLogs(opts, "TimelockedGovernanceCallExecuted") + if err != nil { + return nil, err + } + return &FastUpdaterTimelockedGovernanceCallExecutedIterator{contract: _FastUpdater.contract, event: "TimelockedGovernanceCallExecuted", logs: logs, sub: sub}, nil +} + +// WatchTimelockedGovernanceCallExecuted is a free log subscription operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_FastUpdater *FastUpdaterFilterer) WatchTimelockedGovernanceCallExecuted(opts *bind.WatchOpts, sink chan<- *FastUpdaterTimelockedGovernanceCallExecuted) (event.Subscription, error) { + + logs, sub, err := _FastUpdater.contract.WatchLogs(opts, "TimelockedGovernanceCallExecuted") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdaterTimelockedGovernanceCallExecuted) + if err := _FastUpdater.contract.UnpackLog(event, "TimelockedGovernanceCallExecuted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTimelockedGovernanceCallExecuted is a log parse operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_FastUpdater *FastUpdaterFilterer) ParseTimelockedGovernanceCallExecuted(log types.Log) (*FastUpdaterTimelockedGovernanceCallExecuted, error) { + event := new(FastUpdaterTimelockedGovernanceCallExecuted) + if err := _FastUpdater.contract.UnpackLog(event, "TimelockedGovernanceCallExecuted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/go-client/contracts-interface/fast_updates_configuration/FastUpdatesConfiguration.go b/go-client/contracts-interface/fast_updates_configuration/FastUpdatesConfiguration.go new file mode 100644 index 0000000..9270869 --- /dev/null +++ b/go-client/contracts-interface/fast_updates_configuration/FastUpdatesConfiguration.go @@ -0,0 +1,1958 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package fast_updates_configuration + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IFastUpdatesConfigurationFeedConfiguration is an auto generated low-level Go binding around an user-defined struct. +type IFastUpdatesConfigurationFeedConfiguration struct { + FeedId [21]byte + RewardBandValue uint32 + InflationShare *big.Int +} + +// FastUpdatesConfigurationMetaData contains all meta data concerning the FastUpdatesConfiguration contract. +var FastUpdatesConfigurationMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"_governanceSettings\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialGovernance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_addressUpdater\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes21\",\"name\":\"feedId\",\"type\":\"bytes21\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"rewardBandValue\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"inflationShare\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FeedAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes21\",\"name\":\"feedId\",\"type\":\"bytes21\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FeedRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes21\",\"name\":\"feedId\",\"type\":\"bytes21\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"rewardBandValue\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"inflationShare\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FeedUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowedAfterTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedCall\",\"type\":\"bytes\"}],\"name\":\"GovernanceCallTimelocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initialGovernance\",\"type\":\"address\"}],\"name\":\"GovernanceInitialised\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"governanceSettings\",\"type\":\"address\"}],\"name\":\"GovernedProductionModeEntered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TimelockedGovernanceCallCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TimelockedGovernanceCallExecuted\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes21\",\"name\":\"feedId\",\"type\":\"bytes21\"},{\"internalType\":\"uint32\",\"name\":\"rewardBandValue\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"inflationShare\",\"type\":\"uint24\"}],\"internalType\":\"structIFastUpdatesConfiguration.FeedConfiguration[]\",\"name\":\"_feedConfigs\",\"type\":\"tuple[]\"}],\"name\":\"addFeeds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"cancelGovernanceCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"executeGovernanceCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fastUpdater\",\"outputs\":[{\"internalType\":\"contractIIFastUpdater\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAddressUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addressUpdater\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeedConfigurations\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes21\",\"name\":\"feedId\",\"type\":\"bytes21\"},{\"internalType\":\"uint32\",\"name\":\"rewardBandValue\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"inflationShare\",\"type\":\"uint24\"}],\"internalType\":\"structIFastUpdatesConfiguration.FeedConfiguration[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeedConfigurationsBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"_feedIds\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_rewardBandValues\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_inflationShares\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getFeedId\",\"outputs\":[{\"internalType\":\"bytes21\",\"name\":\"_feedId\",\"type\":\"bytes21\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeedIds\",\"outputs\":[{\"internalType\":\"bytes21[]\",\"name\":\"_feedIds\",\"type\":\"bytes21[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes21\",\"name\":\"_feedId\",\"type\":\"bytes21\"}],\"name\":\"getFeedIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNumberOfFeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUnusedIndices\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governanceSettings\",\"outputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"_governanceSettings\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialGovernance\",\"type\":\"address\"}],\"name\":\"initialise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isExecutor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes21[]\",\"name\":\"_feedIds\",\"type\":\"bytes21[]\"}],\"name\":\"removeFeeds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"switchToProductionMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"timelockedCalls\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"allowedAfterTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedCall\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_contractNameHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"address[]\",\"name\":\"_contractAddresses\",\"type\":\"address[]\"}],\"name\":\"updateContractAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes21\",\"name\":\"feedId\",\"type\":\"bytes21\"},{\"internalType\":\"uint32\",\"name\":\"rewardBandValue\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"inflationShare\",\"type\":\"uint24\"}],\"internalType\":\"structIFastUpdatesConfiguration.FeedConfiguration[]\",\"name\":\"_feedConfigs\",\"type\":\"tuple[]\"}],\"name\":\"updateFeeds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60806040523480156200001157600080fd5b50604051620027f4380380620027f483398101604081905262000034916200020b565b80838362000043828262000079565b506200006f9050817f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b505050506200025f565b600054600160a01b900460ff1615620000d95760405162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c736500000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620001315760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401620000d0565b6001600160a01b0381166200017c5760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401620000d0565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b6001600160a01b03811681146200020857600080fd5b50565b6000806000606084860312156200022157600080fd5b83516200022e81620001f2565b60208501519093506200024181620001f2565b60408501519092506200025481620001f2565b809150509250925092565b612585806200026f6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806374e6310e116100b8578063c906b1b41161007c578063c906b1b4146102da578063d29a4fa9146102e2578063debfda30146102f5578063e17f212e14610318578063ef88bf131461032c578063f5a983831461033f57600080fd5b806374e6310e146102545780639310283614610275578063a087d184146102a1578063a59b2c46146102b4578063b00c0b76146102c757600080fd5b806348a924821161010a57806348a92482146101c15780635267a15d146101d85780635aa6e675146102135780635ff270791461021b57806362354e031461022e57806367fc40291461024157600080fd5b80630a9cabe7146101475780630c518dce1461016d578063247c9cf71461018257806331038aad1461019757806331864f1f146101ac575b600080fd5b61015a610155366004611c81565b610347565b6040519081526020015b60405180910390f35b61017561039b565b6040516101649190611c9e565b610195610190366004611cec565b61045b565b005b61019f6107da565b6040516101649190611d61565b6101b4610868565b6040516101649190611dcf565b6101c96108c0565b60405161016493929190611e57565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e7719545b6040516001600160a01b039091168152602001610164565b6101fb610bcf565b610195610229366004611e9a565b610c6b565b6000546101fb906001600160a01b031681565b61019561024f366004611e9a565b610ef1565b610267610262366004611e9a565b610fd2565b604051610164929190611ec4565b610288610283366004611ee5565b611077565b6040516001600160581b03199091168152602001610164565b6101956102af366004611cec565b6110e3565b6101956102c2366004611efe565b6112db565b6101956102d5366004612055565b61155b565b60045461015a565b6003546101fb906001600160a01b031681565b61030861030336600461210e565b611636565b6040519015158152602001610164565b60005461030890600160a81b900460ff1681565b61019561033a36600461212b565b6116bf565b610195611825565b6001600160581b031981166000908152600560205260408120549081900361038a5760405162461bcd60e51b815260040161038190612164565b60405180910390fd5b80610394816121a7565b9392505050565b6004546060908067ffffffffffffffff8111156103ba576103ba611f61565b6040519080825280602002602001820160405280156103e3578160200160208202803683370190505b50915060005b818110156104565760048181548110610404576104046121be565b600091825260209091200154835160589190911b9084908390811061042b5761042b6121be565b6001600160581b0319909216602092830291909101909101528061044e816121d4565b9150506103e9565b505090565b600054600160b01b900460ff168061047d5750600054600160a81b900460ff16155b156107cb5761048a6118eb565b60008167ffffffffffffffff8111156104a5576104a5611f61565b6040519080825280602002602001820160405280156104ce578160200160208202803683370190505b50905060005b828110156107635760008484838181106104f0576104f06121be565b6105069260206060909202019081019150611c81565b90506001600160581b031981166105515760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a590819995959081a59608a1b6044820152606401610381565b6001600160581b03198116600090815260056020526040902054156105ae5760405162461bcd60e51b81526020600482015260136024820152726665656420616c72656164792065786973747360681b6044820152606401610381565b6006546000901561061257600680546105c9906001906121ed565b815481106105d9576105d96121be565b9060005260206000200154905060068054806105f7576105f7612200565b60019003818190600052602060002001600090559055610624565b50600480546001810182556000919091525b80848481518110610637576106376121be565b602002602001018181525050858584818110610655576106556121be565b9050606002016004828154811061066e5761066e6121be565b9060005260206000200181816106849190612239565b5061069290508160016122c0565b6001600160581b031983166000818152600560205260409020919091557f3ca318c85958cdc1745f9edcd68164b4579efa8050b27b9d634f5e0427e7e33a8787868181106106e2576106e26121be565b90506060020160200160208101906106fa91906122d3565b88888781811061070c5761070c6121be565b905060600201604001602081019061072491906122f0565b6040805163ffffffff909316835262ffffff9091166020830152810184905260600160405180910390a25050808061075b906121d4565b9150506104d4565b506003546040516363f921db60e01b81526001600160a01b03909116906363f921db90610794908490600401611dcf565b600060405180830381600087803b1580156107ae57600080fd5b505af11580156107c2573d6000803e3d6000fd5b50505050505050565b6107d6600036611925565b5050565b60606004805480602002602001604051908101604052809291908181526020016000905b8282101561085f5760008481526020908190206040805160608101825291850154605881901b6001600160581b0319168352600160a81b810463ffffffff1683850152600160c81b900462ffffff16908201528252600190920191016107fe565b50505050905090565b606060068054806020026020016040519081016040528092919081815260200182805480156108b657602002820191906000526020600020905b8154815260200190600101908083116108a2575b5050505050905090565b600454606090819081906108d581601561230d565b67ffffffffffffffff8111156108ed576108ed611f61565b6040519080825280601f01601f191660200182016040528015610917576020820181803683370190505b50935061092581600461230d565b67ffffffffffffffff81111561093d5761093d611f61565b6040519080825280601f01601f191660200182016040528015610967576020820181803683370190505b50925061097581600361230d565b67ffffffffffffffff81111561098d5761098d611f61565b6040519080825280601f01601f1916602001820160405280156109b7576020820181803683370190505b50915060005b81811015610bc8576000600482815481106109da576109da6121be565b60009182526020822001546004805460589290921b93509084908110610a0257610a026121be565b9060005260206000200160000160159054906101000a900463ffffffff1660e01b9050600060048481548110610a3a57610a3a6121be565b6000918252602082200154600160c81b900460e81b6001600160e81b03191691505b6015811015610acb57838160158110610a7757610a776121be565b1a60f81b8982610a8888601561230d565b610a9291906122c0565b81518110610aa257610aa26121be565b60200101906001600160f81b031916908160001a90535080610ac3816121d4565b915050610a5c565b5060005b6004811015610b3e57828160048110610aea57610aea6121be565b1a60f81b8882610afb88600461230d565b610b0591906122c0565b81518110610b1557610b156121be565b60200101906001600160f81b031916908160001a90535080610b36816121d4565b915050610acf565b5060005b6003811015610bb157818160038110610b5d57610b5d6121be565b1a60f81b8782610b6e88600361230d565b610b7891906122c0565b81518110610b8857610b886121be565b60200101906001600160f81b031916908160001a90535080610ba9816121d4565b915050610b42565b505050508080610bc0906121d4565b9150506109bd565b5050909192565b60008054600160a81b900460ff16610bf157506001546001600160a01b031690565b60008054906101000a90046001600160a01b03166001600160a01b031663732524946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c669190612324565b905090565b610c7433611636565b610cb05760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b6044820152606401610381565b6001600160e01b0319811660009081526002602052604081208054909103610d1a5760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610381565b8054421015610d6b5760405162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f77656420796574000000000000006044820152606401610381565b6000816001018054610d7c90612341565b80601f0160208091040260200160405190810160405280929190818152602001828054610da890612341565b8015610df55780601f10610dca57610100808354040283529160200191610df5565b820191906000526020600020905b815481529060010190602001808311610dd857829003601f168201915b505050506001600160e01b0319851660009081526002602052604081208181559293509050610e276001830182611c15565b50506000805460ff60b01b1916600160b01b1781556040513090610e4c90849061237b565b6000604051808303816000865af19150503d8060008114610e89576040519150601f19603f3d011682016040523d82523d6000602084013e610e8e565b606091505b50506000805460ff60b01b19169055604080516001600160e01b0319871681524260208201529192507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438910160405180910390a1610eeb81611a71565b50505050565b610ef9611a8e565b6001600160e01b031981166000908152600260205260408120549003610f615760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610381565b604080516001600160e01b0319831681524260208201527f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8910160405180910390a16001600160e01b03198116600090815260026020526040812081815590610fcd6001830182611c15565b505050565b60026020526000908152604090208054600182018054919291610ff490612341565b80601f016020809104026020016040519081016040528092919081815260200182805461102090612341565b801561106d5780601f106110425761010080835404028352916020019161106d565b820191906000526020600020905b81548152906001019060200180831161105057829003601f168201915b5050505050905082565b60045460009082106110bb5760405162461bcd60e51b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610381565b600482815481106110ce576110ce6121be565b60009182526020909120015460581b92915050565b600054600160b01b900460ff16806111055750600054600160a81b900460ff16155b156107cb576111126118eb565b60005b81811015610fcd576000838383818110611131576111316121be565b6111479260206060909202019081019150611c81565b90506001600160581b031981166111925760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a590819995959081a59608a1b6044820152606401610381565b6001600160581b03198116600090815260056020526040812054908190036111cc5760405162461bcd60e51b815260040161038190612164565b806111d6816121a7565b9150508484848181106111eb576111eb6121be565b90506060020160048281548110611204576112046121be565b90600052602060002001818161121a9190612239565b50506001600160581b031982167f317c7e03c79b6fcd22d6f17813b4e8e8a4a14104fdfb79431c6c73b550c7ca9d86868681811061125a5761125a6121be565b905060600201602001602081019061127291906122d3565b878787818110611284576112846121be565b905060600201604001602081019061129c91906122f0565b6040805163ffffffff909316835262ffffff9091166020830152810184905260600160405180910390a2505080806112d3906121d4565b915050611115565b600054600160b01b900460ff16806112fd5750600054600160a81b900460ff16155b156107cb5761130a6118eb565b60008167ffffffffffffffff81111561132557611325611f61565b60405190808252806020026020018201604052801561134e578160200160208202803683370190505b50905060005b8281101561152a57600060056000868685818110611374576113746121be565b90506020020160208101906113899190611c81565b6affffffffffffffffffffff19166affffffffffffffffffffff19168152602001908152602001600020549050806000036113d65760405162461bcd60e51b815260040161038190612164565b806113e0816121a7565b915050808383815181106113f6576113f66121be565b6020908102919091010152600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01819055600480548290811061144a5761144a6121be565b6000918252602082200180546001600160e01b0319169055600590868685818110611477576114776121be565b905060200201602081019061148c9190611c81565b6001600160581b031916815260208101919091526040016000908120558484838181106114bb576114bb6121be565b90506020020160208101906114d09190611c81565b6affffffffffffffffffffff19167fbb4bc8e9bdadd13a82544df890de25d2c6403cd23a7655410eb2ad4f542425ab8260405161150f91815260200190565b60405180910390a25080611522816121d4565b915050611354565b50600354604051630abfaf1760e41b81526001600160a01b039091169063abfaf17090610794908490600401611dcf565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e7719546001600160a01b0316336001600160a01b0316146115d45760405162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b6044820152606401610381565b61162c61160883836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611ae8565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b6107d68282611bc3565b60008054600160a01b900460ff1680156116b95750600054604051630debfda360e41b81526001600160a01b0384811660048301529091169063debfda3090602401602060405180830381865afa158015611695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b99190612397565b92915050565b600054600160a01b900460ff16156117105760405162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b6044820152606401610381565b6001600160a01b0382166117665760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401610381565b6001600160a01b0381166117af5760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401610381565b600080546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600180549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b61182d611a8e565b600054600160a81b900460ff16156118875760405162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f64650000000000006044820152606401610381565b600180546001600160a01b031916905560008054600160a81b60ff60a81b198216179091556040516001600160a01b0390911681527f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9060200160405180910390a1565b600054600160b01b900460ff161561191b5733301461190c5761190c6123b9565b6000805460ff60b01b19169055565b611923611a8e565b565b61192d611a8e565b6000805460408051636221a54b60e01b81529051853593926001600160a01b031691636221a54b9160048083019260209291908290030181865afa158015611979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199d91906123cf565b905060006119ab82426122c0565b9050604051806040016040528082815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160e01b03198616815260026020908152604090912083518155908301519091506001820190611a299082612436565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b683828787604051611a6294939291906124f6565b60405180910390a15050505050565b3d604051818101604052816000823e8215611a8a578181f35b8181fd5b611a96610bcf565b6001600160a01b0316336001600160a01b0316146119235760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b6044820152606401610381565b60008082604051602001611afc919061253c565b6040516020818303038152906040528051906020012090506000805b8651811015611b7457868181518110611b3357611b336121be565b60200260200101518303611b6257858181518110611b5357611b536121be565b60200260200101519150611b74565b80611b6c816121d4565b915050611b18565b506001600160a01b038116611bba5760405162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b6044820152606401610381565b95945050505050565b611bf182826040518060400160405280600b81526020016a2330b9ba2ab83230ba32b960a91b815250611ae8565b600380546001600160a01b0319166001600160a01b03929092169190911790555050565b508054611c2190612341565b6000825580601f10611c31575050565b601f016020900490600052602060002090810190611c4f9190611c52565b50565b5b80821115611c675760008155600101611c53565b5090565b6001600160581b031981168114611c4f57600080fd5b600060208284031215611c9357600080fd5b813561039481611c6b565b6020808252825182820181905260009190848201906040850190845b81811015611ce05783516001600160581b03191683529284019291840191600101611cba565b50909695505050505050565b60008060208385031215611cff57600080fd5b823567ffffffffffffffff80821115611d1757600080fd5b818501915085601f830112611d2b57600080fd5b813581811115611d3a57600080fd5b866020606083028501011115611d4f57600080fd5b60209290920196919550909350505050565b602080825282518282018190526000919060409081850190868401855b82811015611dc257815180516001600160581b03191685528681015163ffffffff168786015285015162ffffff168585015260609093019290850190600101611d7e565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611ce057835183529284019291840191600101611deb565b60005b83811015611e22578181015183820152602001611e0a565b50506000910152565b60008151808452611e43816020860160208601611e07565b601f01601f19169290920160200192915050565b606081526000611e6a6060830186611e2b565b8281036020840152611e7c8186611e2b565b90508281036040840152611e908185611e2b565b9695505050505050565b600060208284031215611eac57600080fd5b81356001600160e01b03198116811461039457600080fd5b828152604060208201526000611edd6040830184611e2b565b949350505050565b600060208284031215611ef757600080fd5b5035919050565b60008060208385031215611f1157600080fd5b823567ffffffffffffffff80821115611f2957600080fd5b818501915085601f830112611f3d57600080fd5b813581811115611f4c57600080fd5b8660208260051b8501011115611d4f57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611fa057611fa0611f61565b604052919050565b600067ffffffffffffffff821115611fc257611fc2611f61565b5060051b60200190565b6001600160a01b0381168114611c4f57600080fd5b600082601f830112611ff257600080fd5b8135602061200761200283611fa8565b611f77565b82815260059290921b8401810191818101908684111561202657600080fd5b8286015b8481101561204a57803561203d81611fcc565b835291830191830161202a565b509695505050505050565b6000806040838503121561206857600080fd5b823567ffffffffffffffff8082111561208057600080fd5b818501915085601f83011261209457600080fd5b813560206120a461200283611fa8565b82815260059290921b840181019181810190898411156120c357600080fd5b948201945b838610156120e1578535825294820194908201906120c8565b965050860135925050808211156120f757600080fd5b5061210485828601611fe1565b9150509250929050565b60006020828403121561212057600080fd5b813561039481611fcc565b6000806040838503121561213e57600080fd5b823561214981611fcc565b9150602083013561215981611fcc565b809150509250929050565b6020808252601390820152721999595908191bd95cc81b9bdd08195e1a5cdd606a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816121b6576121b6612191565b506000190190565b634e487b7160e01b600052603260045260246000fd5b6000600182016121e6576121e6612191565b5060010190565b818103818111156116b9576116b9612191565b634e487b7160e01b600052603160045260246000fd5b63ffffffff81168114611c4f57600080fd5b62ffffff81168114611c4f57600080fd5b813561224481611c6b565b81546001600160a81b0319811660589290921c9182178355602084013561226a81612216565b63ffffffff60a81b60a89190911b166001600160c81b03198216831781178455604085013561229881612228565b6001600160e01b0319929092169092179190911760c89190911b62ffffff60c81b1617905550565b808201808211156116b9576116b9612191565b6000602082840312156122e557600080fd5b813561039481612216565b60006020828403121561230257600080fd5b813561039481612228565b80820281158282048414176116b9576116b9612191565b60006020828403121561233657600080fd5b815161039481611fcc565b600181811c9082168061235557607f821691505b60208210810361237557634e487b7160e01b600052602260045260246000fd5b50919050565b6000825161238d818460208701611e07565b9190910192915050565b6000602082840312156123a957600080fd5b8151801515811461039457600080fd5b634e487b7160e01b600052600160045260246000fd5b6000602082840312156123e157600080fd5b5051919050565b601f821115610fcd57600081815260208120601f850160051c8101602086101561240f5750805b601f850160051c820191505b8181101561242e5782815560010161241b565b505050505050565b815167ffffffffffffffff81111561245057612450611f61565b6124648161245e8454612341565b846123e8565b602080601f83116001811461249957600084156124815750858301515b600019600386901b1c1916600185901b17855561242e565b600085815260208120601f198616915b828110156124c8578886015182559484019460019091019084016124a9565b50858210156124e65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff60e01b8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b6020815260006103946020830184611e2b56fea2646970667358221220b08b7ff7fb5a3d9e52089197b82b82f21e80c777cd96ba19a88731aecbdbe75f64736f6c63430008140033", +} + +// FastUpdatesConfigurationABI is the input ABI used to generate the binding from. +// Deprecated: Use FastUpdatesConfigurationMetaData.ABI instead. +var FastUpdatesConfigurationABI = FastUpdatesConfigurationMetaData.ABI + +// FastUpdatesConfigurationBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use FastUpdatesConfigurationMetaData.Bin instead. +var FastUpdatesConfigurationBin = FastUpdatesConfigurationMetaData.Bin + +// DeployFastUpdatesConfiguration deploys a new Ethereum contract, binding an instance of FastUpdatesConfiguration to it. +func DeployFastUpdatesConfiguration(auth *bind.TransactOpts, backend bind.ContractBackend, _governanceSettings common.Address, _initialGovernance common.Address, _addressUpdater common.Address) (common.Address, *types.Transaction, *FastUpdatesConfiguration, error) { + parsed, err := FastUpdatesConfigurationMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(FastUpdatesConfigurationBin), backend, _governanceSettings, _initialGovernance, _addressUpdater) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &FastUpdatesConfiguration{FastUpdatesConfigurationCaller: FastUpdatesConfigurationCaller{contract: contract}, FastUpdatesConfigurationTransactor: FastUpdatesConfigurationTransactor{contract: contract}, FastUpdatesConfigurationFilterer: FastUpdatesConfigurationFilterer{contract: contract}}, nil +} + +// FastUpdatesConfiguration is an auto generated Go binding around an Ethereum contract. +type FastUpdatesConfiguration struct { + FastUpdatesConfigurationCaller // Read-only binding to the contract + FastUpdatesConfigurationTransactor // Write-only binding to the contract + FastUpdatesConfigurationFilterer // Log filterer for contract events +} + +// FastUpdatesConfigurationCaller is an auto generated read-only Go binding around an Ethereum contract. +type FastUpdatesConfigurationCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FastUpdatesConfigurationTransactor is an auto generated write-only Go binding around an Ethereum contract. +type FastUpdatesConfigurationTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FastUpdatesConfigurationFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type FastUpdatesConfigurationFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FastUpdatesConfigurationSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type FastUpdatesConfigurationSession struct { + Contract *FastUpdatesConfiguration // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// FastUpdatesConfigurationCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type FastUpdatesConfigurationCallerSession struct { + Contract *FastUpdatesConfigurationCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// FastUpdatesConfigurationTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type FastUpdatesConfigurationTransactorSession struct { + Contract *FastUpdatesConfigurationTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// FastUpdatesConfigurationRaw is an auto generated low-level Go binding around an Ethereum contract. +type FastUpdatesConfigurationRaw struct { + Contract *FastUpdatesConfiguration // Generic contract binding to access the raw methods on +} + +// FastUpdatesConfigurationCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type FastUpdatesConfigurationCallerRaw struct { + Contract *FastUpdatesConfigurationCaller // Generic read-only contract binding to access the raw methods on +} + +// FastUpdatesConfigurationTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type FastUpdatesConfigurationTransactorRaw struct { + Contract *FastUpdatesConfigurationTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewFastUpdatesConfiguration creates a new instance of FastUpdatesConfiguration, bound to a specific deployed contract. +func NewFastUpdatesConfiguration(address common.Address, backend bind.ContractBackend) (*FastUpdatesConfiguration, error) { + contract, err := bindFastUpdatesConfiguration(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &FastUpdatesConfiguration{FastUpdatesConfigurationCaller: FastUpdatesConfigurationCaller{contract: contract}, FastUpdatesConfigurationTransactor: FastUpdatesConfigurationTransactor{contract: contract}, FastUpdatesConfigurationFilterer: FastUpdatesConfigurationFilterer{contract: contract}}, nil +} + +// NewFastUpdatesConfigurationCaller creates a new read-only instance of FastUpdatesConfiguration, bound to a specific deployed contract. +func NewFastUpdatesConfigurationCaller(address common.Address, caller bind.ContractCaller) (*FastUpdatesConfigurationCaller, error) { + contract, err := bindFastUpdatesConfiguration(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationCaller{contract: contract}, nil +} + +// NewFastUpdatesConfigurationTransactor creates a new write-only instance of FastUpdatesConfiguration, bound to a specific deployed contract. +func NewFastUpdatesConfigurationTransactor(address common.Address, transactor bind.ContractTransactor) (*FastUpdatesConfigurationTransactor, error) { + contract, err := bindFastUpdatesConfiguration(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationTransactor{contract: contract}, nil +} + +// NewFastUpdatesConfigurationFilterer creates a new log filterer instance of FastUpdatesConfiguration, bound to a specific deployed contract. +func NewFastUpdatesConfigurationFilterer(address common.Address, filterer bind.ContractFilterer) (*FastUpdatesConfigurationFilterer, error) { + contract, err := bindFastUpdatesConfiguration(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationFilterer{contract: contract}, nil +} + +// bindFastUpdatesConfiguration binds a generic wrapper to an already deployed contract. +func bindFastUpdatesConfiguration(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := FastUpdatesConfigurationMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_FastUpdatesConfiguration *FastUpdatesConfigurationRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _FastUpdatesConfiguration.Contract.FastUpdatesConfigurationCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_FastUpdatesConfiguration *FastUpdatesConfigurationRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.FastUpdatesConfigurationTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_FastUpdatesConfiguration *FastUpdatesConfigurationRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.FastUpdatesConfigurationTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _FastUpdatesConfiguration.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.contract.Transact(opts, method, params...) +} + +// FastUpdater is a free data retrieval call binding the contract method 0xd29a4fa9. +// +// Solidity: function fastUpdater() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) FastUpdater(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "fastUpdater") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FastUpdater is a free data retrieval call binding the contract method 0xd29a4fa9. +// +// Solidity: function fastUpdater() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) FastUpdater() (common.Address, error) { + return _FastUpdatesConfiguration.Contract.FastUpdater(&_FastUpdatesConfiguration.CallOpts) +} + +// FastUpdater is a free data retrieval call binding the contract method 0xd29a4fa9. +// +// Solidity: function fastUpdater() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) FastUpdater() (common.Address, error) { + return _FastUpdatesConfiguration.Contract.FastUpdater(&_FastUpdatesConfiguration.CallOpts) +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GetAddressUpdater(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "getAddressUpdater") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GetAddressUpdater() (common.Address, error) { + return _FastUpdatesConfiguration.Contract.GetAddressUpdater(&_FastUpdatesConfiguration.CallOpts) +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GetAddressUpdater() (common.Address, error) { + return _FastUpdatesConfiguration.Contract.GetAddressUpdater(&_FastUpdatesConfiguration.CallOpts) +} + +// GetFeedConfigurations is a free data retrieval call binding the contract method 0x31038aad. +// +// Solidity: function getFeedConfigurations() view returns((bytes21,uint32,uint24)[]) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GetFeedConfigurations(opts *bind.CallOpts) ([]IFastUpdatesConfigurationFeedConfiguration, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "getFeedConfigurations") + + if err != nil { + return *new([]IFastUpdatesConfigurationFeedConfiguration), err + } + + out0 := *abi.ConvertType(out[0], new([]IFastUpdatesConfigurationFeedConfiguration)).(*[]IFastUpdatesConfigurationFeedConfiguration) + + return out0, err + +} + +// GetFeedConfigurations is a free data retrieval call binding the contract method 0x31038aad. +// +// Solidity: function getFeedConfigurations() view returns((bytes21,uint32,uint24)[]) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GetFeedConfigurations() ([]IFastUpdatesConfigurationFeedConfiguration, error) { + return _FastUpdatesConfiguration.Contract.GetFeedConfigurations(&_FastUpdatesConfiguration.CallOpts) +} + +// GetFeedConfigurations is a free data retrieval call binding the contract method 0x31038aad. +// +// Solidity: function getFeedConfigurations() view returns((bytes21,uint32,uint24)[]) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GetFeedConfigurations() ([]IFastUpdatesConfigurationFeedConfiguration, error) { + return _FastUpdatesConfiguration.Contract.GetFeedConfigurations(&_FastUpdatesConfiguration.CallOpts) +} + +// GetFeedConfigurationsBytes is a free data retrieval call binding the contract method 0x48a92482. +// +// Solidity: function getFeedConfigurationsBytes() view returns(bytes _feedIds, bytes _rewardBandValues, bytes _inflationShares) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GetFeedConfigurationsBytes(opts *bind.CallOpts) (struct { + FeedIds []byte + RewardBandValues []byte + InflationShares []byte +}, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "getFeedConfigurationsBytes") + + outstruct := new(struct { + FeedIds []byte + RewardBandValues []byte + InflationShares []byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.FeedIds = *abi.ConvertType(out[0], new([]byte)).(*[]byte) + outstruct.RewardBandValues = *abi.ConvertType(out[1], new([]byte)).(*[]byte) + outstruct.InflationShares = *abi.ConvertType(out[2], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +// GetFeedConfigurationsBytes is a free data retrieval call binding the contract method 0x48a92482. +// +// Solidity: function getFeedConfigurationsBytes() view returns(bytes _feedIds, bytes _rewardBandValues, bytes _inflationShares) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GetFeedConfigurationsBytes() (struct { + FeedIds []byte + RewardBandValues []byte + InflationShares []byte +}, error) { + return _FastUpdatesConfiguration.Contract.GetFeedConfigurationsBytes(&_FastUpdatesConfiguration.CallOpts) +} + +// GetFeedConfigurationsBytes is a free data retrieval call binding the contract method 0x48a92482. +// +// Solidity: function getFeedConfigurationsBytes() view returns(bytes _feedIds, bytes _rewardBandValues, bytes _inflationShares) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GetFeedConfigurationsBytes() (struct { + FeedIds []byte + RewardBandValues []byte + InflationShares []byte +}, error) { + return _FastUpdatesConfiguration.Contract.GetFeedConfigurationsBytes(&_FastUpdatesConfiguration.CallOpts) +} + +// GetFeedId is a free data retrieval call binding the contract method 0x93102836. +// +// Solidity: function getFeedId(uint256 _index) view returns(bytes21 _feedId) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GetFeedId(opts *bind.CallOpts, _index *big.Int) ([21]byte, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "getFeedId", _index) + + if err != nil { + return *new([21]byte), err + } + + out0 := *abi.ConvertType(out[0], new([21]byte)).(*[21]byte) + + return out0, err + +} + +// GetFeedId is a free data retrieval call binding the contract method 0x93102836. +// +// Solidity: function getFeedId(uint256 _index) view returns(bytes21 _feedId) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GetFeedId(_index *big.Int) ([21]byte, error) { + return _FastUpdatesConfiguration.Contract.GetFeedId(&_FastUpdatesConfiguration.CallOpts, _index) +} + +// GetFeedId is a free data retrieval call binding the contract method 0x93102836. +// +// Solidity: function getFeedId(uint256 _index) view returns(bytes21 _feedId) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GetFeedId(_index *big.Int) ([21]byte, error) { + return _FastUpdatesConfiguration.Contract.GetFeedId(&_FastUpdatesConfiguration.CallOpts, _index) +} + +// GetFeedIds is a free data retrieval call binding the contract method 0x0c518dce. +// +// Solidity: function getFeedIds() view returns(bytes21[] _feedIds) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GetFeedIds(opts *bind.CallOpts) ([][21]byte, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "getFeedIds") + + if err != nil { + return *new([][21]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][21]byte)).(*[][21]byte) + + return out0, err + +} + +// GetFeedIds is a free data retrieval call binding the contract method 0x0c518dce. +// +// Solidity: function getFeedIds() view returns(bytes21[] _feedIds) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GetFeedIds() ([][21]byte, error) { + return _FastUpdatesConfiguration.Contract.GetFeedIds(&_FastUpdatesConfiguration.CallOpts) +} + +// GetFeedIds is a free data retrieval call binding the contract method 0x0c518dce. +// +// Solidity: function getFeedIds() view returns(bytes21[] _feedIds) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GetFeedIds() ([][21]byte, error) { + return _FastUpdatesConfiguration.Contract.GetFeedIds(&_FastUpdatesConfiguration.CallOpts) +} + +// GetFeedIndex is a free data retrieval call binding the contract method 0x0a9cabe7. +// +// Solidity: function getFeedIndex(bytes21 _feedId) view returns(uint256 _index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GetFeedIndex(opts *bind.CallOpts, _feedId [21]byte) (*big.Int, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "getFeedIndex", _feedId) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetFeedIndex is a free data retrieval call binding the contract method 0x0a9cabe7. +// +// Solidity: function getFeedIndex(bytes21 _feedId) view returns(uint256 _index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GetFeedIndex(_feedId [21]byte) (*big.Int, error) { + return _FastUpdatesConfiguration.Contract.GetFeedIndex(&_FastUpdatesConfiguration.CallOpts, _feedId) +} + +// GetFeedIndex is a free data retrieval call binding the contract method 0x0a9cabe7. +// +// Solidity: function getFeedIndex(bytes21 _feedId) view returns(uint256 _index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GetFeedIndex(_feedId [21]byte) (*big.Int, error) { + return _FastUpdatesConfiguration.Contract.GetFeedIndex(&_FastUpdatesConfiguration.CallOpts, _feedId) +} + +// GetNumberOfFeeds is a free data retrieval call binding the contract method 0xc906b1b4. +// +// Solidity: function getNumberOfFeeds() view returns(uint256) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GetNumberOfFeeds(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "getNumberOfFeeds") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetNumberOfFeeds is a free data retrieval call binding the contract method 0xc906b1b4. +// +// Solidity: function getNumberOfFeeds() view returns(uint256) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GetNumberOfFeeds() (*big.Int, error) { + return _FastUpdatesConfiguration.Contract.GetNumberOfFeeds(&_FastUpdatesConfiguration.CallOpts) +} + +// GetNumberOfFeeds is a free data retrieval call binding the contract method 0xc906b1b4. +// +// Solidity: function getNumberOfFeeds() view returns(uint256) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GetNumberOfFeeds() (*big.Int, error) { + return _FastUpdatesConfiguration.Contract.GetNumberOfFeeds(&_FastUpdatesConfiguration.CallOpts) +} + +// GetUnusedIndices is a free data retrieval call binding the contract method 0x31864f1f. +// +// Solidity: function getUnusedIndices() view returns(uint256[]) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GetUnusedIndices(opts *bind.CallOpts) ([]*big.Int, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "getUnusedIndices") + + if err != nil { + return *new([]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) + + return out0, err + +} + +// GetUnusedIndices is a free data retrieval call binding the contract method 0x31864f1f. +// +// Solidity: function getUnusedIndices() view returns(uint256[]) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GetUnusedIndices() ([]*big.Int, error) { + return _FastUpdatesConfiguration.Contract.GetUnusedIndices(&_FastUpdatesConfiguration.CallOpts) +} + +// GetUnusedIndices is a free data retrieval call binding the contract method 0x31864f1f. +// +// Solidity: function getUnusedIndices() view returns(uint256[]) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GetUnusedIndices() ([]*big.Int, error) { + return _FastUpdatesConfiguration.Contract.GetUnusedIndices(&_FastUpdatesConfiguration.CallOpts) +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) Governance(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "governance") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) Governance() (common.Address, error) { + return _FastUpdatesConfiguration.Contract.Governance(&_FastUpdatesConfiguration.CallOpts) +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) Governance() (common.Address, error) { + return _FastUpdatesConfiguration.Contract.Governance(&_FastUpdatesConfiguration.CallOpts) +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) GovernanceSettings(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "governanceSettings") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) GovernanceSettings() (common.Address, error) { + return _FastUpdatesConfiguration.Contract.GovernanceSettings(&_FastUpdatesConfiguration.CallOpts) +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) GovernanceSettings() (common.Address, error) { + return _FastUpdatesConfiguration.Contract.GovernanceSettings(&_FastUpdatesConfiguration.CallOpts) +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) IsExecutor(opts *bind.CallOpts, _address common.Address) (bool, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "isExecutor", _address) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) IsExecutor(_address common.Address) (bool, error) { + return _FastUpdatesConfiguration.Contract.IsExecutor(&_FastUpdatesConfiguration.CallOpts, _address) +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) IsExecutor(_address common.Address) (bool, error) { + return _FastUpdatesConfiguration.Contract.IsExecutor(&_FastUpdatesConfiguration.CallOpts, _address) +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) ProductionMode(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "productionMode") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) ProductionMode() (bool, error) { + return _FastUpdatesConfiguration.Contract.ProductionMode(&_FastUpdatesConfiguration.CallOpts) +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) ProductionMode() (bool, error) { + return _FastUpdatesConfiguration.Contract.ProductionMode(&_FastUpdatesConfiguration.CallOpts) +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCaller) TimelockedCalls(opts *bind.CallOpts, selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + var out []interface{} + err := _FastUpdatesConfiguration.contract.Call(opts, &out, "timelockedCalls", selector) + + outstruct := new(struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.AllowedAfterTimestamp = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.EncodedCall = *abi.ConvertType(out[1], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) TimelockedCalls(selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + return _FastUpdatesConfiguration.Contract.TimelockedCalls(&_FastUpdatesConfiguration.CallOpts, selector) +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationCallerSession) TimelockedCalls(selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + return _FastUpdatesConfiguration.Contract.TimelockedCalls(&_FastUpdatesConfiguration.CallOpts, selector) +} + +// AddFeeds is a paid mutator transaction binding the contract method 0x247c9cf7. +// +// Solidity: function addFeeds((bytes21,uint32,uint24)[] _feedConfigs) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactor) AddFeeds(opts *bind.TransactOpts, _feedConfigs []IFastUpdatesConfigurationFeedConfiguration) (*types.Transaction, error) { + return _FastUpdatesConfiguration.contract.Transact(opts, "addFeeds", _feedConfigs) +} + +// AddFeeds is a paid mutator transaction binding the contract method 0x247c9cf7. +// +// Solidity: function addFeeds((bytes21,uint32,uint24)[] _feedConfigs) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) AddFeeds(_feedConfigs []IFastUpdatesConfigurationFeedConfiguration) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.AddFeeds(&_FastUpdatesConfiguration.TransactOpts, _feedConfigs) +} + +// AddFeeds is a paid mutator transaction binding the contract method 0x247c9cf7. +// +// Solidity: function addFeeds((bytes21,uint32,uint24)[] _feedConfigs) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorSession) AddFeeds(_feedConfigs []IFastUpdatesConfigurationFeedConfiguration) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.AddFeeds(&_FastUpdatesConfiguration.TransactOpts, _feedConfigs) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactor) CancelGovernanceCall(opts *bind.TransactOpts, _selector [4]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.contract.Transact(opts, "cancelGovernanceCall", _selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) CancelGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.CancelGovernanceCall(&_FastUpdatesConfiguration.TransactOpts, _selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorSession) CancelGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.CancelGovernanceCall(&_FastUpdatesConfiguration.TransactOpts, _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactor) ExecuteGovernanceCall(opts *bind.TransactOpts, _selector [4]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.contract.Transact(opts, "executeGovernanceCall", _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) ExecuteGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.ExecuteGovernanceCall(&_FastUpdatesConfiguration.TransactOpts, _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorSession) ExecuteGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.ExecuteGovernanceCall(&_FastUpdatesConfiguration.TransactOpts, _selector) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactor) Initialise(opts *bind.TransactOpts, _governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _FastUpdatesConfiguration.contract.Transact(opts, "initialise", _governanceSettings, _initialGovernance) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) Initialise(_governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.Initialise(&_FastUpdatesConfiguration.TransactOpts, _governanceSettings, _initialGovernance) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorSession) Initialise(_governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.Initialise(&_FastUpdatesConfiguration.TransactOpts, _governanceSettings, _initialGovernance) +} + +// RemoveFeeds is a paid mutator transaction binding the contract method 0xa59b2c46. +// +// Solidity: function removeFeeds(bytes21[] _feedIds) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactor) RemoveFeeds(opts *bind.TransactOpts, _feedIds [][21]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.contract.Transact(opts, "removeFeeds", _feedIds) +} + +// RemoveFeeds is a paid mutator transaction binding the contract method 0xa59b2c46. +// +// Solidity: function removeFeeds(bytes21[] _feedIds) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) RemoveFeeds(_feedIds [][21]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.RemoveFeeds(&_FastUpdatesConfiguration.TransactOpts, _feedIds) +} + +// RemoveFeeds is a paid mutator transaction binding the contract method 0xa59b2c46. +// +// Solidity: function removeFeeds(bytes21[] _feedIds) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorSession) RemoveFeeds(_feedIds [][21]byte) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.RemoveFeeds(&_FastUpdatesConfiguration.TransactOpts, _feedIds) +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactor) SwitchToProductionMode(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FastUpdatesConfiguration.contract.Transact(opts, "switchToProductionMode") +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) SwitchToProductionMode() (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.SwitchToProductionMode(&_FastUpdatesConfiguration.TransactOpts) +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorSession) SwitchToProductionMode() (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.SwitchToProductionMode(&_FastUpdatesConfiguration.TransactOpts) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactor) UpdateContractAddresses(opts *bind.TransactOpts, _contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _FastUpdatesConfiguration.contract.Transact(opts, "updateContractAddresses", _contractNameHashes, _contractAddresses) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) UpdateContractAddresses(_contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.UpdateContractAddresses(&_FastUpdatesConfiguration.TransactOpts, _contractNameHashes, _contractAddresses) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorSession) UpdateContractAddresses(_contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.UpdateContractAddresses(&_FastUpdatesConfiguration.TransactOpts, _contractNameHashes, _contractAddresses) +} + +// UpdateFeeds is a paid mutator transaction binding the contract method 0xa087d184. +// +// Solidity: function updateFeeds((bytes21,uint32,uint24)[] _feedConfigs) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactor) UpdateFeeds(opts *bind.TransactOpts, _feedConfigs []IFastUpdatesConfigurationFeedConfiguration) (*types.Transaction, error) { + return _FastUpdatesConfiguration.contract.Transact(opts, "updateFeeds", _feedConfigs) +} + +// UpdateFeeds is a paid mutator transaction binding the contract method 0xa087d184. +// +// Solidity: function updateFeeds((bytes21,uint32,uint24)[] _feedConfigs) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationSession) UpdateFeeds(_feedConfigs []IFastUpdatesConfigurationFeedConfiguration) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.UpdateFeeds(&_FastUpdatesConfiguration.TransactOpts, _feedConfigs) +} + +// UpdateFeeds is a paid mutator transaction binding the contract method 0xa087d184. +// +// Solidity: function updateFeeds((bytes21,uint32,uint24)[] _feedConfigs) returns() +func (_FastUpdatesConfiguration *FastUpdatesConfigurationTransactorSession) UpdateFeeds(_feedConfigs []IFastUpdatesConfigurationFeedConfiguration) (*types.Transaction, error) { + return _FastUpdatesConfiguration.Contract.UpdateFeeds(&_FastUpdatesConfiguration.TransactOpts, _feedConfigs) +} + +// FastUpdatesConfigurationFeedAddedIterator is returned from FilterFeedAdded and is used to iterate over the raw logs and unpacked data for FeedAdded events raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationFeedAddedIterator struct { + Event *FastUpdatesConfigurationFeedAdded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdatesConfigurationFeedAddedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationFeedAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationFeedAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdatesConfigurationFeedAddedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdatesConfigurationFeedAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdatesConfigurationFeedAdded represents a FeedAdded event raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationFeedAdded struct { + FeedId [21]byte + RewardBandValue uint32 + InflationShare *big.Int + Index *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterFeedAdded is a free log retrieval operation binding the contract event 0x3ca318c85958cdc1745f9edcd68164b4579efa8050b27b9d634f5e0427e7e33a. +// +// Solidity: event FeedAdded(bytes21 indexed feedId, uint32 rewardBandValue, uint24 inflationShare, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) FilterFeedAdded(opts *bind.FilterOpts, feedId [][21]byte) (*FastUpdatesConfigurationFeedAddedIterator, error) { + + var feedIdRule []interface{} + for _, feedIdItem := range feedId { + feedIdRule = append(feedIdRule, feedIdItem) + } + + logs, sub, err := _FastUpdatesConfiguration.contract.FilterLogs(opts, "FeedAdded", feedIdRule) + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationFeedAddedIterator{contract: _FastUpdatesConfiguration.contract, event: "FeedAdded", logs: logs, sub: sub}, nil +} + +// WatchFeedAdded is a free log subscription operation binding the contract event 0x3ca318c85958cdc1745f9edcd68164b4579efa8050b27b9d634f5e0427e7e33a. +// +// Solidity: event FeedAdded(bytes21 indexed feedId, uint32 rewardBandValue, uint24 inflationShare, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) WatchFeedAdded(opts *bind.WatchOpts, sink chan<- *FastUpdatesConfigurationFeedAdded, feedId [][21]byte) (event.Subscription, error) { + + var feedIdRule []interface{} + for _, feedIdItem := range feedId { + feedIdRule = append(feedIdRule, feedIdItem) + } + + logs, sub, err := _FastUpdatesConfiguration.contract.WatchLogs(opts, "FeedAdded", feedIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdatesConfigurationFeedAdded) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "FeedAdded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseFeedAdded is a log parse operation binding the contract event 0x3ca318c85958cdc1745f9edcd68164b4579efa8050b27b9d634f5e0427e7e33a. +// +// Solidity: event FeedAdded(bytes21 indexed feedId, uint32 rewardBandValue, uint24 inflationShare, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) ParseFeedAdded(log types.Log) (*FastUpdatesConfigurationFeedAdded, error) { + event := new(FastUpdatesConfigurationFeedAdded) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "FeedAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdatesConfigurationFeedRemovedIterator is returned from FilterFeedRemoved and is used to iterate over the raw logs and unpacked data for FeedRemoved events raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationFeedRemovedIterator struct { + Event *FastUpdatesConfigurationFeedRemoved // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdatesConfigurationFeedRemovedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationFeedRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationFeedRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdatesConfigurationFeedRemovedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdatesConfigurationFeedRemovedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdatesConfigurationFeedRemoved represents a FeedRemoved event raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationFeedRemoved struct { + FeedId [21]byte + Index *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterFeedRemoved is a free log retrieval operation binding the contract event 0xbb4bc8e9bdadd13a82544df890de25d2c6403cd23a7655410eb2ad4f542425ab. +// +// Solidity: event FeedRemoved(bytes21 indexed feedId, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) FilterFeedRemoved(opts *bind.FilterOpts, feedId [][21]byte) (*FastUpdatesConfigurationFeedRemovedIterator, error) { + + var feedIdRule []interface{} + for _, feedIdItem := range feedId { + feedIdRule = append(feedIdRule, feedIdItem) + } + + logs, sub, err := _FastUpdatesConfiguration.contract.FilterLogs(opts, "FeedRemoved", feedIdRule) + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationFeedRemovedIterator{contract: _FastUpdatesConfiguration.contract, event: "FeedRemoved", logs: logs, sub: sub}, nil +} + +// WatchFeedRemoved is a free log subscription operation binding the contract event 0xbb4bc8e9bdadd13a82544df890de25d2c6403cd23a7655410eb2ad4f542425ab. +// +// Solidity: event FeedRemoved(bytes21 indexed feedId, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) WatchFeedRemoved(opts *bind.WatchOpts, sink chan<- *FastUpdatesConfigurationFeedRemoved, feedId [][21]byte) (event.Subscription, error) { + + var feedIdRule []interface{} + for _, feedIdItem := range feedId { + feedIdRule = append(feedIdRule, feedIdItem) + } + + logs, sub, err := _FastUpdatesConfiguration.contract.WatchLogs(opts, "FeedRemoved", feedIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdatesConfigurationFeedRemoved) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "FeedRemoved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseFeedRemoved is a log parse operation binding the contract event 0xbb4bc8e9bdadd13a82544df890de25d2c6403cd23a7655410eb2ad4f542425ab. +// +// Solidity: event FeedRemoved(bytes21 indexed feedId, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) ParseFeedRemoved(log types.Log) (*FastUpdatesConfigurationFeedRemoved, error) { + event := new(FastUpdatesConfigurationFeedRemoved) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "FeedRemoved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdatesConfigurationFeedUpdatedIterator is returned from FilterFeedUpdated and is used to iterate over the raw logs and unpacked data for FeedUpdated events raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationFeedUpdatedIterator struct { + Event *FastUpdatesConfigurationFeedUpdated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdatesConfigurationFeedUpdatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationFeedUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationFeedUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdatesConfigurationFeedUpdatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdatesConfigurationFeedUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdatesConfigurationFeedUpdated represents a FeedUpdated event raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationFeedUpdated struct { + FeedId [21]byte + RewardBandValue uint32 + InflationShare *big.Int + Index *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterFeedUpdated is a free log retrieval operation binding the contract event 0x317c7e03c79b6fcd22d6f17813b4e8e8a4a14104fdfb79431c6c73b550c7ca9d. +// +// Solidity: event FeedUpdated(bytes21 indexed feedId, uint32 rewardBandValue, uint24 inflationShare, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) FilterFeedUpdated(opts *bind.FilterOpts, feedId [][21]byte) (*FastUpdatesConfigurationFeedUpdatedIterator, error) { + + var feedIdRule []interface{} + for _, feedIdItem := range feedId { + feedIdRule = append(feedIdRule, feedIdItem) + } + + logs, sub, err := _FastUpdatesConfiguration.contract.FilterLogs(opts, "FeedUpdated", feedIdRule) + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationFeedUpdatedIterator{contract: _FastUpdatesConfiguration.contract, event: "FeedUpdated", logs: logs, sub: sub}, nil +} + +// WatchFeedUpdated is a free log subscription operation binding the contract event 0x317c7e03c79b6fcd22d6f17813b4e8e8a4a14104fdfb79431c6c73b550c7ca9d. +// +// Solidity: event FeedUpdated(bytes21 indexed feedId, uint32 rewardBandValue, uint24 inflationShare, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) WatchFeedUpdated(opts *bind.WatchOpts, sink chan<- *FastUpdatesConfigurationFeedUpdated, feedId [][21]byte) (event.Subscription, error) { + + var feedIdRule []interface{} + for _, feedIdItem := range feedId { + feedIdRule = append(feedIdRule, feedIdItem) + } + + logs, sub, err := _FastUpdatesConfiguration.contract.WatchLogs(opts, "FeedUpdated", feedIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdatesConfigurationFeedUpdated) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "FeedUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseFeedUpdated is a log parse operation binding the contract event 0x317c7e03c79b6fcd22d6f17813b4e8e8a4a14104fdfb79431c6c73b550c7ca9d. +// +// Solidity: event FeedUpdated(bytes21 indexed feedId, uint32 rewardBandValue, uint24 inflationShare, uint256 index) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) ParseFeedUpdated(log types.Log) (*FastUpdatesConfigurationFeedUpdated, error) { + event := new(FastUpdatesConfigurationFeedUpdated) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "FeedUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdatesConfigurationGovernanceCallTimelockedIterator is returned from FilterGovernanceCallTimelocked and is used to iterate over the raw logs and unpacked data for GovernanceCallTimelocked events raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationGovernanceCallTimelockedIterator struct { + Event *FastUpdatesConfigurationGovernanceCallTimelocked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdatesConfigurationGovernanceCallTimelockedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationGovernanceCallTimelocked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationGovernanceCallTimelocked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdatesConfigurationGovernanceCallTimelockedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdatesConfigurationGovernanceCallTimelockedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdatesConfigurationGovernanceCallTimelocked represents a GovernanceCallTimelocked event raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationGovernanceCallTimelocked struct { + Selector [4]byte + AllowedAfterTimestamp *big.Int + EncodedCall []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernanceCallTimelocked is a free log retrieval operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) FilterGovernanceCallTimelocked(opts *bind.FilterOpts) (*FastUpdatesConfigurationGovernanceCallTimelockedIterator, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.FilterLogs(opts, "GovernanceCallTimelocked") + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationGovernanceCallTimelockedIterator{contract: _FastUpdatesConfiguration.contract, event: "GovernanceCallTimelocked", logs: logs, sub: sub}, nil +} + +// WatchGovernanceCallTimelocked is a free log subscription operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) WatchGovernanceCallTimelocked(opts *bind.WatchOpts, sink chan<- *FastUpdatesConfigurationGovernanceCallTimelocked) (event.Subscription, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.WatchLogs(opts, "GovernanceCallTimelocked") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdatesConfigurationGovernanceCallTimelocked) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "GovernanceCallTimelocked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernanceCallTimelocked is a log parse operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) ParseGovernanceCallTimelocked(log types.Log) (*FastUpdatesConfigurationGovernanceCallTimelocked, error) { + event := new(FastUpdatesConfigurationGovernanceCallTimelocked) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "GovernanceCallTimelocked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdatesConfigurationGovernanceInitialisedIterator is returned from FilterGovernanceInitialised and is used to iterate over the raw logs and unpacked data for GovernanceInitialised events raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationGovernanceInitialisedIterator struct { + Event *FastUpdatesConfigurationGovernanceInitialised // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdatesConfigurationGovernanceInitialisedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationGovernanceInitialised) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationGovernanceInitialised) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdatesConfigurationGovernanceInitialisedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdatesConfigurationGovernanceInitialisedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdatesConfigurationGovernanceInitialised represents a GovernanceInitialised event raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationGovernanceInitialised struct { + InitialGovernance common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernanceInitialised is a free log retrieval operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) FilterGovernanceInitialised(opts *bind.FilterOpts) (*FastUpdatesConfigurationGovernanceInitialisedIterator, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.FilterLogs(opts, "GovernanceInitialised") + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationGovernanceInitialisedIterator{contract: _FastUpdatesConfiguration.contract, event: "GovernanceInitialised", logs: logs, sub: sub}, nil +} + +// WatchGovernanceInitialised is a free log subscription operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) WatchGovernanceInitialised(opts *bind.WatchOpts, sink chan<- *FastUpdatesConfigurationGovernanceInitialised) (event.Subscription, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.WatchLogs(opts, "GovernanceInitialised") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdatesConfigurationGovernanceInitialised) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "GovernanceInitialised", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernanceInitialised is a log parse operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) ParseGovernanceInitialised(log types.Log) (*FastUpdatesConfigurationGovernanceInitialised, error) { + event := new(FastUpdatesConfigurationGovernanceInitialised) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "GovernanceInitialised", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdatesConfigurationGovernedProductionModeEnteredIterator is returned from FilterGovernedProductionModeEntered and is used to iterate over the raw logs and unpacked data for GovernedProductionModeEntered events raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationGovernedProductionModeEnteredIterator struct { + Event *FastUpdatesConfigurationGovernedProductionModeEntered // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdatesConfigurationGovernedProductionModeEnteredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationGovernedProductionModeEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationGovernedProductionModeEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdatesConfigurationGovernedProductionModeEnteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdatesConfigurationGovernedProductionModeEnteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdatesConfigurationGovernedProductionModeEntered represents a GovernedProductionModeEntered event raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationGovernedProductionModeEntered struct { + GovernanceSettings common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernedProductionModeEntered is a free log retrieval operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) FilterGovernedProductionModeEntered(opts *bind.FilterOpts) (*FastUpdatesConfigurationGovernedProductionModeEnteredIterator, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.FilterLogs(opts, "GovernedProductionModeEntered") + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationGovernedProductionModeEnteredIterator{contract: _FastUpdatesConfiguration.contract, event: "GovernedProductionModeEntered", logs: logs, sub: sub}, nil +} + +// WatchGovernedProductionModeEntered is a free log subscription operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) WatchGovernedProductionModeEntered(opts *bind.WatchOpts, sink chan<- *FastUpdatesConfigurationGovernedProductionModeEntered) (event.Subscription, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.WatchLogs(opts, "GovernedProductionModeEntered") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdatesConfigurationGovernedProductionModeEntered) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "GovernedProductionModeEntered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernedProductionModeEntered is a log parse operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) ParseGovernedProductionModeEntered(log types.Log) (*FastUpdatesConfigurationGovernedProductionModeEntered, error) { + event := new(FastUpdatesConfigurationGovernedProductionModeEntered) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "GovernedProductionModeEntered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdatesConfigurationTimelockedGovernanceCallCanceledIterator is returned from FilterTimelockedGovernanceCallCanceled and is used to iterate over the raw logs and unpacked data for TimelockedGovernanceCallCanceled events raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationTimelockedGovernanceCallCanceledIterator struct { + Event *FastUpdatesConfigurationTimelockedGovernanceCallCanceled // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdatesConfigurationTimelockedGovernanceCallCanceledIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationTimelockedGovernanceCallCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationTimelockedGovernanceCallCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdatesConfigurationTimelockedGovernanceCallCanceledIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdatesConfigurationTimelockedGovernanceCallCanceledIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdatesConfigurationTimelockedGovernanceCallCanceled represents a TimelockedGovernanceCallCanceled event raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationTimelockedGovernanceCallCanceled struct { + Selector [4]byte + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTimelockedGovernanceCallCanceled is a free log retrieval operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) FilterTimelockedGovernanceCallCanceled(opts *bind.FilterOpts) (*FastUpdatesConfigurationTimelockedGovernanceCallCanceledIterator, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.FilterLogs(opts, "TimelockedGovernanceCallCanceled") + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationTimelockedGovernanceCallCanceledIterator{contract: _FastUpdatesConfiguration.contract, event: "TimelockedGovernanceCallCanceled", logs: logs, sub: sub}, nil +} + +// WatchTimelockedGovernanceCallCanceled is a free log subscription operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) WatchTimelockedGovernanceCallCanceled(opts *bind.WatchOpts, sink chan<- *FastUpdatesConfigurationTimelockedGovernanceCallCanceled) (event.Subscription, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.WatchLogs(opts, "TimelockedGovernanceCallCanceled") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdatesConfigurationTimelockedGovernanceCallCanceled) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "TimelockedGovernanceCallCanceled", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTimelockedGovernanceCallCanceled is a log parse operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) ParseTimelockedGovernanceCallCanceled(log types.Log) (*FastUpdatesConfigurationTimelockedGovernanceCallCanceled, error) { + event := new(FastUpdatesConfigurationTimelockedGovernanceCallCanceled) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "TimelockedGovernanceCallCanceled", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// FastUpdatesConfigurationTimelockedGovernanceCallExecutedIterator is returned from FilterTimelockedGovernanceCallExecuted and is used to iterate over the raw logs and unpacked data for TimelockedGovernanceCallExecuted events raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationTimelockedGovernanceCallExecutedIterator struct { + Event *FastUpdatesConfigurationTimelockedGovernanceCallExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *FastUpdatesConfigurationTimelockedGovernanceCallExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationTimelockedGovernanceCallExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(FastUpdatesConfigurationTimelockedGovernanceCallExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *FastUpdatesConfigurationTimelockedGovernanceCallExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *FastUpdatesConfigurationTimelockedGovernanceCallExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// FastUpdatesConfigurationTimelockedGovernanceCallExecuted represents a TimelockedGovernanceCallExecuted event raised by the FastUpdatesConfiguration contract. +type FastUpdatesConfigurationTimelockedGovernanceCallExecuted struct { + Selector [4]byte + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTimelockedGovernanceCallExecuted is a free log retrieval operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) FilterTimelockedGovernanceCallExecuted(opts *bind.FilterOpts) (*FastUpdatesConfigurationTimelockedGovernanceCallExecutedIterator, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.FilterLogs(opts, "TimelockedGovernanceCallExecuted") + if err != nil { + return nil, err + } + return &FastUpdatesConfigurationTimelockedGovernanceCallExecutedIterator{contract: _FastUpdatesConfiguration.contract, event: "TimelockedGovernanceCallExecuted", logs: logs, sub: sub}, nil +} + +// WatchTimelockedGovernanceCallExecuted is a free log subscription operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) WatchTimelockedGovernanceCallExecuted(opts *bind.WatchOpts, sink chan<- *FastUpdatesConfigurationTimelockedGovernanceCallExecuted) (event.Subscription, error) { + + logs, sub, err := _FastUpdatesConfiguration.contract.WatchLogs(opts, "TimelockedGovernanceCallExecuted") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(FastUpdatesConfigurationTimelockedGovernanceCallExecuted) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "TimelockedGovernanceCallExecuted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTimelockedGovernanceCallExecuted is a log parse operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_FastUpdatesConfiguration *FastUpdatesConfigurationFilterer) ParseTimelockedGovernanceCallExecuted(log types.Log) (*FastUpdatesConfigurationTimelockedGovernanceCallExecuted, error) { + event := new(FastUpdatesConfigurationTimelockedGovernanceCallExecuted) + if err := _FastUpdatesConfiguration.contract.UnpackLog(event, "TimelockedGovernanceCallExecuted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/go-client/contracts-interface/incentive/FastUpdateIncentiveManager.go b/go-client/contracts-interface/incentive/FastUpdateIncentiveManager.go new file mode 100644 index 0000000..a139b8b --- /dev/null +++ b/go-client/contracts-interface/incentive/FastUpdateIncentiveManager.go @@ -0,0 +1,2609 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package incentive + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IFastUpdateIncentiveManagerIncentiveOffer is an auto generated low-level Go binding around an user-defined struct. +type IFastUpdateIncentiveManagerIncentiveOffer struct { + RangeIncrease *big.Int + RangeLimit *big.Int +} + +// IncentiveMetaData contains all meta data concerning the Incentive contract. +var IncentiveMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"_governanceSettings\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialGovernance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_addressUpdater\",\"type\":\"address\"},{\"internalType\":\"SampleSize\",\"name\":\"_ss\",\"type\":\"uint256\"},{\"internalType\":\"Range\",\"name\":\"_r\",\"type\":\"uint256\"},{\"internalType\":\"SampleSize\",\"name\":\"_sil\",\"type\":\"uint256\"},{\"internalType\":\"Fee\",\"name\":\"_rip\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_dur\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"authorizedAmountWei\",\"type\":\"uint256\"}],\"name\":\"DailyAuthorizedInflationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowedAfterTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedCall\",\"type\":\"bytes\"}],\"name\":\"GovernanceCallTimelocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initialGovernance\",\"type\":\"address\"}],\"name\":\"GovernanceInitialised\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"governanceSettings\",\"type\":\"address\"}],\"name\":\"GovernedProductionModeEntered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Range\",\"name\":\"rangeIncrease\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"SampleSize\",\"name\":\"sampleSizeIncrease\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"Fee\",\"name\":\"offerAmount\",\"type\":\"uint256\"}],\"name\":\"IncentiveOffered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedWei\",\"type\":\"uint256\"}],\"name\":\"InflationReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"feedIds\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rewardBandValues\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"inflationShares\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InflationRewardsOffered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TimelockedGovernanceCallCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TimelockedGovernanceCallExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"advance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"cancelGovernanceCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"circularLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dailyAuthorizedInflation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"executeGovernanceCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fastUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fastUpdatesConfiguration\",\"outputs\":[{\"internalType\":\"contractIFastUpdatesConfiguration\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flareSystemsManager\",\"outputs\":[{\"internalType\":\"contractIIFlareSystemsManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAddressUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addressUpdater\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getContractName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpectedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpectedSampleSize\",\"outputs\":[{\"internalType\":\"SampleSize\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncentiveDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInflationAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrecision\",\"outputs\":[{\"internalType\":\"Precision\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRange\",\"outputs\":[{\"internalType\":\"Range\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getScale\",\"outputs\":[{\"internalType\":\"Scale\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenPoolSupplyData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_lockedFundsWei\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_totalInflationAuthorizedWei\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_totalClaimedWei\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governanceSettings\",\"outputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"_governanceSettings\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialGovernance\",\"type\":\"address\"}],\"name\":\"initialise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isExecutor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastInflationAuthorizationReceivedTs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastInflationReceivedTs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Range\",\"name\":\"rangeIncrease\",\"type\":\"uint256\"},{\"internalType\":\"Range\",\"name\":\"rangeLimit\",\"type\":\"uint256\"}],\"internalType\":\"structIFastUpdateIncentiveManager.IncentiveOffer\",\"name\":\"_offer\",\"type\":\"tuple\"}],\"name\":\"offerIncentive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rangeIncreasePrice\",\"outputs\":[{\"internalType\":\"Fee\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"receiveInflation\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardManager\",\"outputs\":[{\"internalType\":\"contractIIRewardManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sampleIncreaseLimit\",\"outputs\":[{\"internalType\":\"SampleSize\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_toAuthorizeWei\",\"type\":\"uint256\"}],\"name\":\"setDailyAuthorizedInflation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SampleSize\",\"name\":\"_ss\",\"type\":\"uint256\"},{\"internalType\":\"Range\",\"name\":\"_r\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_dur\",\"type\":\"uint256\"}],\"name\":\"setIncentiveParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Fee\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"setRangeIncreasePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SampleSize\",\"name\":\"_lim\",\"type\":\"uint256\"}],\"name\":\"setSampleIncreaseLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"switchToProductionMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"timelockedCalls\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"allowedAfterTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedCall\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalInflationAuthorizedWei\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalInflationReceivedWei\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalInflationRewardsOfferedWei\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"_currentRewardEpochId\",\"type\":\"uint24\"},{\"internalType\":\"uint64\",\"name\":\"_currentRewardEpochExpectedEndTs\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_rewardEpochDurationSeconds\",\"type\":\"uint64\"}],\"name\":\"triggerRewardEpochSwitchover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_contractNameHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"address[]\",\"name\":\"_contractAddresses\",\"type\":\"address[]\"}],\"name\":\"updateContractAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60806040523480156200001157600080fd5b506040516200344f3803806200344f8339810160408190526200003491620006c0565b878787808084848b8b60018a806200004c81620000cc565b506200005b848484846200014d565b50505050620000718282620001e560201b60201c565b506200009d9050817f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b5050505050620000b3836200035a60201b60201c565b620000be82620003b8565b50505050505050506200075a565b60008111620001485760405162461bcd60e51b815260206004820152603b60248201527f43697263756c61724c6973744d616e616765723a2063697263756c6172206c6560448201527f6e677468206d7573742062652067726561746572207468616e2030000000000060648201526084015b60405180910390fd5b600055565b620001588462000416565b620001638362000474565b828411620001c05760405162461bcd60e51b815260206004820152602360248201527f52616e6765206d757374206265206c657373207468616e2073616d706c652073604482015262697a6560e81b60648201526084016200013f565b620001ca82600655565b620001d581620000cc565b620001df620004c4565b50505050565b600754600160a01b900460ff1615620002415760405162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c736500000000000000000000000060448201526064016200013f565b6001600160a01b038216620002995760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f000000000000000060448201526064016200013f565b6001600160a01b038116620002e45760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b60448201526064016200013f565b600780546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600880549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b62000365816200060d565b620003b35760405162461bcd60e51b815260206004820152601f60248201527f53616d706c6520696e637265617365206c696d697420746f6f206c617267650060448201526064016200013f565b601555565b620003c3816200060d565b620004115760405162461bcd60e51b815260206004820152601e60248201527f52616e676520696e63726561736520707269636520746f6f206c61726765000060448201526064016200013f565b601655565b62000421816200060d565b6200046f5760405162461bcd60e51b815260206004820152601560248201527f53616d706c652073697a6520746f6f206c61726765000000000000000000000060448201526064016200013f565b600455565b6200047f816200060d565b620004bf5760405162461bcd60e51b815260206004820152600f60248201526e52616e676520746f6f206c6172676560881b60448201526064016200013f565b600555565b620004d26001600062000623565b620004e06002600062000623565b620004ee6003600062000623565b6000546001600160401b038111156200050b576200050b62000744565b60405190808252806020026020018201604052801562000535578160200160208202803683370190505b5080516200054c9160019160209091019062000643565b506000546001600160401b038111156200056a576200056a62000744565b60405190808252806020026020018201604052801562000594578160200160208202803683370190505b508051620005ab9160029160209091019062000643565b506000546001600160401b03811115620005c957620005c962000744565b604051908082528060200260200182016040528015620005f3578160200160208202803683370190505b5080516200060a9160039160209091019062000643565b50565b60006200061d82600160801b1190565b92915050565b50805460008255906000526020600020908101906200060a919062000693565b82805482825590600052602060002090810192821562000681579160200282015b828111156200068157825182559160200191906001019062000664565b506200068f92915062000693565b5090565b5b808211156200068f576000815560010162000694565b6001600160a01b03811681146200060a57600080fd5b600080600080600080600080610100898b031215620006de57600080fd5b8851620006eb81620006aa565b60208a0151909850620006fe81620006aa565b60408a01519097506200071181620006aa565b60608a015160808b015160a08c015160c08d015160e0909d01519b9e9a9d50929b919a9099929850909650945092505050565b634e487b7160e01b600052604160045260246000fd5b612ce5806200076a6000396000f3fe6080604052600436106102465760003560e01c8063a5555aea11610139578063dd8dca9f116100b6578063ed39d3f81161007a578063ed39d3f81461064a578063ef88bf1314610668578063f5a9838314610688578063f5f5ba721461069d578063f7690bfe146106e9578063faae7fc91461070957600080fd5b8063dd8dca9f146105af578063debfda30146105c4578063e17f212e146105f4578063e273956314610615578063ea105ac71461063557600080fd5b8063bd76b69c116100fd578063bd76b69c1461052d578063c10f489a14610543578063d0c1c39314610563578063d29a4fa914610579578063d4ab8f941461059957600080fd5b8063a5555aea146104ad578063af04cd3b146104c3578063b00c0b76146104d8578063b5cddab8146104f8578063b97e1f5d1461050d57600080fd5b80635aa6e675116101c7578063708e34ce1161018b578063708e34ce1461041f57806374e6310e1461043557806391f25679146104635780639670c0bc146104835780639b85961f1461049857600080fd5b80635aa6e675146103955780635ff27079146103aa57806362354e03146103ca57806367fc4029146103ea5780636d62b4131461040a57600080fd5b8063362471801161020e578063362471801461030c578063473252c41461031f578063488f98061461033557806352545a7c1461034b5780635267a15d1461036157600080fd5b806306201f1d1461024b5780630d6e9537146102555780630f4ef8a61461027557806312afcf0b146102b25780632dafdbbf146102d6575b600080fd5b610253610729565b005b34801561026157600080fd5b506102536102703660046124a9565b61078b565b34801561028157600080fd5b50601254610295906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102be57600080fd5b506102c8600d5481565b6040519081526020016102a9565b3480156102e257600080fd5b506102f1600a54601454600092565b604080519384526020840192909252908201526060016102a9565b61025361031a3660046124c2565b6107d1565b34801561032b57600080fd5b506102c8600c5481565b34801561034157600080fd5b506102c860005481565b34801561035757600080fd5b506102c860165481565b34801561036d57600080fd5b507f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771954610295565b3480156103a157600080fd5b50610295610955565b3480156103b657600080fd5b506102536103c53660046124da565b6109f5565b3480156103d657600080fd5b50600754610295906001600160a01b031681565b3480156103f657600080fd5b506102536104053660046124da565b610c83565b34801561041657600080fd5b506004546102c8565b34801561042b57600080fd5b506102c8600e5481565b34801561044157600080fd5b506104556104503660046124da565b610d64565b6040516102a9929190612554565b34801561046f57600080fd5b5061025361047e3660046125a2565b610e09565b34801561048f57600080fd5b506102c8610e6e565b3480156104a457600080fd5b506005546102c8565b3480156104b957600080fd5b506102c8600b5481565b3480156104cf57600080fd5b506102c8610e78565b3480156104e457600080fd5b506102536104f33660046126d9565b610e82565b34801561050457600080fd5b506102c8610f61565b34801561051957600080fd5b50610253610528366004612791565b610f77565b34801561053957600080fd5b506102c860145481565b34801561054f57600080fd5b50601354610295906001600160a01b031681565b34801561056f57600080fd5b506102c8600a5481565b34801561058557600080fd5b50601154610295906001600160a01b031681565b3480156105a557600080fd5b506102c860155481565b3480156105bb57600080fd5b506000546102c8565b3480156105d057600080fd5b506105e46105df3660046127bd565b610fbe565b60405190151581526020016102a9565b34801561060057600080fd5b506007546105e490600160a81b900460ff1681565b34801561062157600080fd5b506102536106303660046124a9565b611049565b34801561064157600080fd5b506102536110a1565b34801561065657600080fd5b50600f546001600160a01b0316610295565b34801561067457600080fd5b506102536106833660046127da565b6110f7565b34801561069457600080fd5b5061025361125d565b3480156106a957600080fd5b50604080518082018252601a81527f46617374557064617465496e63656e746976654d616e61676572000000000000602082015290516102a99190612813565b3480156106f557600080fd5b506102536107043660046124a9565b611323565b34801561071557600080fd5b50601054610295906001600160a01b031681565b61073161135b565b6107396113c3565b34600b54610747919061283c565b600b5542600d556040513481527f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379060200160405180910390a161078961140e565b565b600754600160b01b900460ff16806107ad5750600754600160a81b900460ff16155b156107c6576107ba611455565b6107c38161148d565b50565b6107c36000366114e7565b6107d961135b565b6000806107e583611637565b9150915060006107f58383611774565b60125460408051637056269760e01b815290519293506001600160a01b039091169163a02e86e5918691849163705626979160048083019260209291908290030181865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f919061284f565b6040516001600160e01b031960e085901b16815262ffffff9091166004820152600060248201526044016000604051808303818588803b1580156108b257600080fd5b505af11580156108c6573d6000803e3d6000fd5b505060408051868152602081018690529081018790527fe2bf2dae8fb2fd1f86fd6d50871b97c48b27cd148bb07311c99b4b7b24453f5b9350606001915061090b9050565b60405180910390a1336108fc610921853461286c565b6040518115909202916000818181858888f19350505050158015610949573d6000803e3d6000fd5b505050506107c361140e565b600754600090600160a81b900460ff1661097957506008546001600160a01b031690565b600760009054906101000a90046001600160a01b03166001600160a01b031663732524946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f0919061287f565b905090565b6109fe33610fbe565b610a3f5760405162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b60448201526064015b60405180910390fd5b6001600160e01b0319811660009081526009602052604081208054909103610aa95760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610a36565b8054421015610afa5760405162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f77656420796574000000000000006044820152606401610a36565b6000816001018054610b0b9061289c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b379061289c565b8015610b845780601f10610b5957610100808354040283529160200191610b84565b820191906000526020600020905b815481529060010190602001808311610b6757829003601f168201915b505050506001600160e01b0319851660009081526009602052604081208181559293509050610bb660018301826123f1565b50506007805460ff60b01b1916600160b01b1790556040516000903090610bde9084906128d0565b6000604051808303816000865af19150503d8060008114610c1b576040519150601f19603f3d011682016040523d82523d6000602084013e610c20565b606091505b50506007805460ff60b01b19169055604080516001600160e01b0319871681524260208201529192507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438910160405180910390a1610c7d81611834565b50505050565b610c8b611851565b6001600160e01b031981166000908152600960205260408120549003610cf35760405162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f720000000000006044820152606401610a36565b604080516001600160e01b0319831681524260208201527f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8910160405180910390a16001600160e01b03198116600090815260096020526040812081815590610d5f60018301826123f1565b505050565b60096020526000908152604090208054600182018054919291610d869061289c565b80601f0160208091040260200160405190810160405280929190818152602001828054610db29061289c565b8015610dff5780601f10610dd457610100808354040283529160200191610dff565b820191906000526020600020905b815481529060010190602001808311610de257829003601f168201915b5050505050905082565b6010546001600160a01b03163314610e635760405162461bcd60e51b815260206004820152601960248201527f6f6e6c7920666c6172652073797374656d206d616e61676572000000000000006044820152606401610a36565b610d5f8383836118ab565b60006109f0611a95565b60006109f0611aa5565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e7719546001600160a01b0316336001600160a01b031614610efb5760405162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b6044820152606401610a36565b610f53610f2f83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611ab7565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b610f5d8282611b94565b5050565b60006109f0610f6e611a95565b6001607f1b0190565b600754600160b01b900460ff1680610f995750600754600160a81b900460ff16155b15610fb357610fa6611455565b610d5f8383600184611cac565b610d5f6000366114e7565b600754600090600160a01b900460ff1680156110435750600754604051630debfda360e41b81526001600160a01b0384811660048301529091169063debfda3090602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104391906128ec565b92915050565b6110516113c3565b600e819055600a5461106490829061283c565b600a5542600c556040518181527f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959060200160405180910390a150565b6011546001600160a01b031633146110ef5760405162461bcd60e51b815260206004820152601160248201527037b7363c903330b9ba103ab83230ba32b960791b6044820152606401610a36565b610789611d33565b600754600160a01b900460ff16156111485760405162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b6044820152606401610a36565b6001600160a01b03821661119e5760405162461bcd60e51b815260206004820152601860248201527f676f7665726e616e63652073657474696e6773207a65726f00000000000000006044820152606401610a36565b6001600160a01b0381166111e75760405162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b6044820152606401610a36565b600780546001600160a01b038481166001600160a81b031990921691909117600160a01b17909155600880549183166001600160a01b0319909216821790556040519081527f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db9060200160405180910390a15050565b611265611851565b600754600160a81b900460ff16156112bf5760405162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f64650000000000006044820152606401610a36565b600880546001600160a01b031916905560078054600160a81b60ff60a81b198216179091556040516001600160a01b0390911681527f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9060200160405180910390a1565b600754600160b01b900460ff16806113455750600754600160a81b900460ff16155b156107c657611352611455565b6107c381611e0c565b600034611366611aa5565b611370919061283c565b905047818111156113b35761dead6108fc61138b848461286c565b6040518115909202916000818181858888f19350505050158015610d5f573d6000803e3d6000fd5b81811015610f5d57610f5d61290e565b600f546001600160a01b031633146107895760405162461bcd60e51b815260206004820152600e60248201526d696e666c6174696f6e206f6e6c7960901b6044820152606401610a36565b611416611aa5565b47146107895760405162461bcd60e51b815260206004820152600e60248201526d6f7574206f662062616c616e636560901b6044820152606401610a36565b600754600160b01b900460ff1615611485573330146114765761147661290e565b6007805460ff60b01b19169055565b610789611851565b61149681611e66565b6114e25760405162461bcd60e51b815260206004820152601e60248201527f52616e676520696e63726561736520707269636520746f6f206c6172676500006044820152606401610a36565b601655565b6114ef611851565b60075460408051636221a54b60e01b815290518435926000926001600160a01b0390911691636221a54b916004808201926020929091908290030181865afa15801561153f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115639190612924565b90506000611571824261283c565b9050604051806040016040528082815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160e01b031986168152600960209081526040909120835181559083015190915060018201906115ef908261298b565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6838287876040516116289493929190612a4a565b60405180910390a15050505050565b6000803460781c1561169c5760405162461bcd60e51b815260206004820152602860248201527f496e63656e74697665206f666665722076616c75652063617070656420617420604482015267313230206269747360c01b6064820152608401610a36565b5050600554346001600160f01b031690823590810160208401358111156116fe578360200135905060006116d1826005541190565b6116df5760055482036116e2565b60005b90506116f96116f18285611e75565b850260801c90565b935091505b611709816004541190565b61176e5760405162461bcd60e51b815260206004820152603060248201527f4f6666657220776f756c64206d616b652074686520707265636973696f6e206760448201526f726561746572207468616e203130302560801b6064820152608401610a36565b50915091565b600080611785601654840260781c90565b9050838111156117f35760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420636f6e747269627574696f6e20746f2070617960448201527220666f722072616e676520696e63726561736560681b6064820152608401610a36565b8084036117ff81611e98565b61181861180e82600654611e75565b6015540260801c90565b925061182383611ef6565b61182c84611f34565b505092915050565b3d604051818101604052816000823e821561184d578181f35b8181fd5b611859610955565b6001600160a01b0316336001600160a01b0316146107895760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b6044820152606401610a36565b60006118b8826002612a90565b6118c29084612ab3565b6001600160401b0316905060006118fb62015180600d546118e3919061283c565b6118ed8587612ab3565b6001600160401b0316611f72565b9050600061192d6001600160401b038516611916858561286c565b601454600b54611926919061286c565b9190611f88565b9050600061193c876001612ada565b90506000806000601360009054906101000a90046001600160a01b03166001600160a01b03166348a924826040518163ffffffff1660e01b8152600401600060405180830381865afa158015611996573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119be9190810190612b59565b9250925092508362ffffff167ffdd0b465b401aa1b01bf9945ca3b5ad04d97007d090db1f5b126a502e890d610848484896040516119ff9493929190612be0565b60405180910390a28460146000828254611a19919061283c565b909155505060125460405163a02e86e560e01b815262ffffff86166004820152600160248201526001600160a01b039091169063a02e86e59087906044016000604051808303818588803b158015611a7057600080fd5b505af1158015611a84573d6000803e3d6000fd5b505050505050505050505050505050565b60006109f06005546004546120ae565b6000601454600b546109f0919061286c565b60008082604051602001611acb9190612813565b6040516020818303038152906040528051906020012090506000805b8651811015611b4357868181518110611b0257611b02612c2b565b60200260200101518303611b3157858181518110611b2257611b22612c2b565b60200260200101519150611b43565b80611b3b81612c41565b915050611ae7565b506001600160a01b038116611b895760405162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b6044820152606401610a36565b9150505b9392505050565b611b9e82826120c6565b611bcc82826040518060400160405280600b81526020016a2330b9ba2ab83230ba32b960a91b815250611ab7565b601160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611c2282826040518060400160405280600d81526020016c2932bbb0b93226b0b730b3b2b960991b815250611ab7565b601260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611c8882826040518060400160405280601881526020017f4661737455706461746573436f6e66696775726174696f6e0000000000000000815250611ab7565b601380546001600160a01b0319166001600160a01b03929092169190911790555050565b611cb58461212a565b611cbe8361217c565b828411611d195760405162461bcd60e51b815260206004820152602360248201527f52616e6765206d757374206265206c657373207468616e2073616d706c652073604482015262697a6560e81b6064820152608401610a36565b611d2282600655565b611d2b816121c8565b610c7d612243565b611d636006546003611d43612371565b81548110611d5357611d53612c2b565b9060005260206000200154900390565b600655600554611d77906002611d43612371565b600555600454611d8b906001611d43612371565b60045560006001611d9a612371565b81548110611daa57611daa612c2b565b906000526020600020018190555060006002611dc4612371565b81548110611dd457611dd4612c2b565b906000526020600020018190555060006003611dee612371565b81548110611dfe57611dfe612c2b565b600091825260209091200155565b611e1581611e66565b611e615760405162461bcd60e51b815260206004820152601f60248201527f53616d706c6520696e637265617365206c696d697420746f6f206c61726765006044820152606401610a36565b601555565b600061104382600160801b1190565b6000608083901b8282818381611e8d57611e8d612c5a565b049695505050505050565b611ec56003611ea561237d565b81548110611eb557611eb5612c2b565b9060005260206000200154820190565b6003611ecf61237d565b81548110611edf57611edf612c2b565b600091825260209091200155600654810160065550565b611f036001611ea561237d565b6001611f0d61237d565b81548110611f1d57611f1d612c2b565b600091825260209091200155600454810160045550565b611f416002611ea561237d565b6002611f4b61237d565b81548110611f5b57611f5b612c2b565b600091825260209091200155600554810160055550565b6000818311611f815781611b8d565b5090919050565b6000808211611fcc5760405162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b6044820152606401610a36565b83600003611fdc57506000611b8d565b83830283858281611fef57611fef612c5a565b040361200d5782818161200457612004612c5a565b04915050611b8d565b50600061201a8386612c70565b905060006120288487612c84565b905060006120368587612c70565b905060006120448688612c84565b9050856120518285612c98565b61205b9190612c70565b6120658385612c98565b61206f8387612c98565b8861207a8689612c98565b6120849190612c98565b61208e919061283c565b612098919061283c565b6120a2919061283c565b98975050505050505050565b6000607f83901b8282818381611e8d57611e8d612c5a565b6120d08282612389565b612106828260405180604001604052806013815260200172233630b932a9bcb9ba32b6b9a6b0b730b3b2b960691b815250611ab7565b601080546001600160a01b0319166001600160a01b03929092169190911790555050565b61213381611e66565b6121775760405162461bcd60e51b815260206004820152601560248201527453616d706c652073697a6520746f6f206c6172676560581b6044820152606401610a36565b600455565b61218581611e66565b6121c35760405162461bcd60e51b815260206004820152600f60248201526e52616e676520746f6f206c6172676560881b6044820152606401610a36565b600555565b6000811161223e5760405162461bcd60e51b815260206004820152603b60248201527f43697263756c61724c6973744d616e616765723a2063697263756c6172206c6560448201527f6e677468206d7573742062652067726561746572207468616e203000000000006064820152608401610a36565b600055565b61224f6001600061242b565b61225b6002600061242b565b6122676003600061242b565b6000546001600160401b03811115612281576122816125e7565b6040519080825280602002602001820160405280156122aa578160200160208202803683370190505b5080516122bf91600191602090910190612449565b506000546001600160401b038111156122da576122da6125e7565b604051908082528060200260200182016040528015612303578160200160208202803683370190505b50805161231891600291602090910190612449565b506000546001600160401b03811115612333576123336125e7565b60405190808252806020026020018201604052801561235c578160200160208202803683370190505b5080516107c391600391602090910190612449565b60006109f060016123d9565b60006109f060006123d9565b6123b582826040518060400160405280600981526020016824b7333630ba34b7b760b91b815250611ab7565b600f80546001600160a01b0319166001600160a01b03929092169190911790555050565b600080546123e7438461283c565b6110439190612c84565b5080546123fd9061289c565b6000825580601f1061240d575050565b601f0160209004906000526020600020908101906107c39190612494565b50805460008255906000526020600020908101906107c39190612494565b828054828255906000526020600020908101928215612484579160200282015b82811115612484578251825591602001919060010190612469565b50612490929150612494565b5090565b5b808211156124905760008155600101612495565b6000602082840312156124bb57600080fd5b5035919050565b6000604082840312156124d457600080fd5b50919050565b6000602082840312156124ec57600080fd5b81356001600160e01b031981168114611b8d57600080fd5b60005b8381101561251f578181015183820152602001612507565b50506000910152565b60008151808452612540816020860160208601612504565b601f01601f19169290920160200192915050565b82815260406020820152600061256d6040830184612528565b949350505050565b62ffffff811681146107c357600080fd5b80356001600160401b038116811461259d57600080fd5b919050565b6000806000606084860312156125b757600080fd5b83356125c281612575565b92506125d060208501612586565b91506125de60408501612586565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612625576126256125e7565b604052919050565b60006001600160401b03821115612646576126466125e7565b5060051b60200190565b6001600160a01b03811681146107c357600080fd5b600082601f83011261267657600080fd5b8135602061268b6126868361262d565b6125fd565b82815260059290921b840181019181810190868411156126aa57600080fd5b8286015b848110156126ce5780356126c181612650565b83529183019183016126ae565b509695505050505050565b600080604083850312156126ec57600080fd5b82356001600160401b038082111561270357600080fd5b818501915085601f83011261271757600080fd5b813560206127276126868361262d565b82815260059290921b8401810191818101908984111561274657600080fd5b948201945b838610156127645785358252948201949082019061274b565b9650508601359250508082111561277a57600080fd5b5061278785828601612665565b9150509250929050565b6000806000606084860312156127a657600080fd5b505081359360208301359350604090920135919050565b6000602082840312156127cf57600080fd5b8135611b8d81612650565b600080604083850312156127ed57600080fd5b82356127f881612650565b9150602083013561280881612650565b809150509250929050565b602081526000611b8d6020830184612528565b634e487b7160e01b600052601160045260246000fd5b8082018082111561104357611043612826565b60006020828403121561286157600080fd5b8151611b8d81612575565b8181038181111561104357611043612826565b60006020828403121561289157600080fd5b8151611b8d81612650565b600181811c908216806128b057607f821691505b6020821081036124d457634e487b7160e01b600052602260045260246000fd5b600082516128e2818460208701612504565b9190910192915050565b6000602082840312156128fe57600080fd5b81518015158114611b8d57600080fd5b634e487b7160e01b600052600160045260246000fd5b60006020828403121561293657600080fd5b5051919050565b601f821115610d5f57600081815260208120601f850160051c810160208610156129645750805b601f850160051c820191505b8181101561298357828155600101612970565b505050505050565b81516001600160401b038111156129a4576129a46125e7565b6129b8816129b2845461289c565b8461293d565b602080601f8311600181146129ed57600084156129d55750858301515b600019600386901b1c1916600185901b178555612983565b600085815260208120601f198616915b82811015612a1c578886015182559484019460019091019084016129fd565b5085821015612a3a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff60e01b8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b6001600160401b0381811683821602808216919082811461182c5761182c612826565b6001600160401b03828116828216039080821115612ad357612ad3612826565b5092915050565b62ffffff818116838216019080821115612ad357612ad3612826565b600082601f830112612b0757600080fd5b81516001600160401b03811115612b2057612b206125e7565b612b33601f8201601f19166020016125fd565b818152846020838601011115612b4857600080fd5b61256d826020830160208701612504565b600080600060608486031215612b6e57600080fd5b83516001600160401b0380821115612b8557600080fd5b612b9187838801612af6565b94506020860151915080821115612ba757600080fd5b612bb387838801612af6565b93506040860151915080821115612bc957600080fd5b50612bd686828701612af6565b9150509250925092565b608081526000612bf36080830187612528565b8281036020840152612c058187612528565b90508281036040840152612c198186612528565b91505082606083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201612c5357612c53612826565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082612c7f57612c7f612c5a565b500490565b600082612c9357612c93612c5a565b500690565b80820281158282048414176110435761104361282656fea2646970667358221220eeeb751c26a44ed2689e0131369651666e567d74523f9596a27193311cd2057c64736f6c63430008140033", +} + +// IncentiveABI is the input ABI used to generate the binding from. +// Deprecated: Use IncentiveMetaData.ABI instead. +var IncentiveABI = IncentiveMetaData.ABI + +// IncentiveBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use IncentiveMetaData.Bin instead. +var IncentiveBin = IncentiveMetaData.Bin + +// DeployIncentive deploys a new Ethereum contract, binding an instance of Incentive to it. +func DeployIncentive(auth *bind.TransactOpts, backend bind.ContractBackend, _governanceSettings common.Address, _initialGovernance common.Address, _addressUpdater common.Address, _ss *big.Int, _r *big.Int, _sil *big.Int, _rip *big.Int, _dur *big.Int) (common.Address, *types.Transaction, *Incentive, error) { + parsed, err := IncentiveMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(IncentiveBin), backend, _governanceSettings, _initialGovernance, _addressUpdater, _ss, _r, _sil, _rip, _dur) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Incentive{IncentiveCaller: IncentiveCaller{contract: contract}, IncentiveTransactor: IncentiveTransactor{contract: contract}, IncentiveFilterer: IncentiveFilterer{contract: contract}}, nil +} + +// Incentive is an auto generated Go binding around an Ethereum contract. +type Incentive struct { + IncentiveCaller // Read-only binding to the contract + IncentiveTransactor // Write-only binding to the contract + IncentiveFilterer // Log filterer for contract events +} + +// IncentiveCaller is an auto generated read-only Go binding around an Ethereum contract. +type IncentiveCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IncentiveTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IncentiveTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IncentiveFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IncentiveFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IncentiveSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IncentiveSession struct { + Contract *Incentive // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IncentiveCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IncentiveCallerSession struct { + Contract *IncentiveCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IncentiveTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IncentiveTransactorSession struct { + Contract *IncentiveTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IncentiveRaw is an auto generated low-level Go binding around an Ethereum contract. +type IncentiveRaw struct { + Contract *Incentive // Generic contract binding to access the raw methods on +} + +// IncentiveCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IncentiveCallerRaw struct { + Contract *IncentiveCaller // Generic read-only contract binding to access the raw methods on +} + +// IncentiveTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IncentiveTransactorRaw struct { + Contract *IncentiveTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIncentive creates a new instance of Incentive, bound to a specific deployed contract. +func NewIncentive(address common.Address, backend bind.ContractBackend) (*Incentive, error) { + contract, err := bindIncentive(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Incentive{IncentiveCaller: IncentiveCaller{contract: contract}, IncentiveTransactor: IncentiveTransactor{contract: contract}, IncentiveFilterer: IncentiveFilterer{contract: contract}}, nil +} + +// NewIncentiveCaller creates a new read-only instance of Incentive, bound to a specific deployed contract. +func NewIncentiveCaller(address common.Address, caller bind.ContractCaller) (*IncentiveCaller, error) { + contract, err := bindIncentive(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IncentiveCaller{contract: contract}, nil +} + +// NewIncentiveTransactor creates a new write-only instance of Incentive, bound to a specific deployed contract. +func NewIncentiveTransactor(address common.Address, transactor bind.ContractTransactor) (*IncentiveTransactor, error) { + contract, err := bindIncentive(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IncentiveTransactor{contract: contract}, nil +} + +// NewIncentiveFilterer creates a new log filterer instance of Incentive, bound to a specific deployed contract. +func NewIncentiveFilterer(address common.Address, filterer bind.ContractFilterer) (*IncentiveFilterer, error) { + contract, err := bindIncentive(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IncentiveFilterer{contract: contract}, nil +} + +// bindIncentive binds a generic wrapper to an already deployed contract. +func bindIncentive(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IncentiveMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Incentive *IncentiveRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Incentive.Contract.IncentiveCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Incentive *IncentiveRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Incentive.Contract.IncentiveTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Incentive *IncentiveRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Incentive.Contract.IncentiveTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Incentive *IncentiveCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Incentive.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Incentive *IncentiveTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Incentive.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Incentive *IncentiveTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Incentive.Contract.contract.Transact(opts, method, params...) +} + +// CircularLength is a free data retrieval call binding the contract method 0x488f9806. +// +// Solidity: function circularLength() view returns(uint256) +func (_Incentive *IncentiveCaller) CircularLength(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "circularLength") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CircularLength is a free data retrieval call binding the contract method 0x488f9806. +// +// Solidity: function circularLength() view returns(uint256) +func (_Incentive *IncentiveSession) CircularLength() (*big.Int, error) { + return _Incentive.Contract.CircularLength(&_Incentive.CallOpts) +} + +// CircularLength is a free data retrieval call binding the contract method 0x488f9806. +// +// Solidity: function circularLength() view returns(uint256) +func (_Incentive *IncentiveCallerSession) CircularLength() (*big.Int, error) { + return _Incentive.Contract.CircularLength(&_Incentive.CallOpts) +} + +// DailyAuthorizedInflation is a free data retrieval call binding the contract method 0x708e34ce. +// +// Solidity: function dailyAuthorizedInflation() view returns(uint256) +func (_Incentive *IncentiveCaller) DailyAuthorizedInflation(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "dailyAuthorizedInflation") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DailyAuthorizedInflation is a free data retrieval call binding the contract method 0x708e34ce. +// +// Solidity: function dailyAuthorizedInflation() view returns(uint256) +func (_Incentive *IncentiveSession) DailyAuthorizedInflation() (*big.Int, error) { + return _Incentive.Contract.DailyAuthorizedInflation(&_Incentive.CallOpts) +} + +// DailyAuthorizedInflation is a free data retrieval call binding the contract method 0x708e34ce. +// +// Solidity: function dailyAuthorizedInflation() view returns(uint256) +func (_Incentive *IncentiveCallerSession) DailyAuthorizedInflation() (*big.Int, error) { + return _Incentive.Contract.DailyAuthorizedInflation(&_Incentive.CallOpts) +} + +// FastUpdater is a free data retrieval call binding the contract method 0xd29a4fa9. +// +// Solidity: function fastUpdater() view returns(address) +func (_Incentive *IncentiveCaller) FastUpdater(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "fastUpdater") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FastUpdater is a free data retrieval call binding the contract method 0xd29a4fa9. +// +// Solidity: function fastUpdater() view returns(address) +func (_Incentive *IncentiveSession) FastUpdater() (common.Address, error) { + return _Incentive.Contract.FastUpdater(&_Incentive.CallOpts) +} + +// FastUpdater is a free data retrieval call binding the contract method 0xd29a4fa9. +// +// Solidity: function fastUpdater() view returns(address) +func (_Incentive *IncentiveCallerSession) FastUpdater() (common.Address, error) { + return _Incentive.Contract.FastUpdater(&_Incentive.CallOpts) +} + +// FastUpdatesConfiguration is a free data retrieval call binding the contract method 0xc10f489a. +// +// Solidity: function fastUpdatesConfiguration() view returns(address) +func (_Incentive *IncentiveCaller) FastUpdatesConfiguration(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "fastUpdatesConfiguration") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FastUpdatesConfiguration is a free data retrieval call binding the contract method 0xc10f489a. +// +// Solidity: function fastUpdatesConfiguration() view returns(address) +func (_Incentive *IncentiveSession) FastUpdatesConfiguration() (common.Address, error) { + return _Incentive.Contract.FastUpdatesConfiguration(&_Incentive.CallOpts) +} + +// FastUpdatesConfiguration is a free data retrieval call binding the contract method 0xc10f489a. +// +// Solidity: function fastUpdatesConfiguration() view returns(address) +func (_Incentive *IncentiveCallerSession) FastUpdatesConfiguration() (common.Address, error) { + return _Incentive.Contract.FastUpdatesConfiguration(&_Incentive.CallOpts) +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_Incentive *IncentiveCaller) FlareSystemsManager(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "flareSystemsManager") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_Incentive *IncentiveSession) FlareSystemsManager() (common.Address, error) { + return _Incentive.Contract.FlareSystemsManager(&_Incentive.CallOpts) +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_Incentive *IncentiveCallerSession) FlareSystemsManager() (common.Address, error) { + return _Incentive.Contract.FlareSystemsManager(&_Incentive.CallOpts) +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_Incentive *IncentiveCaller) GetAddressUpdater(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getAddressUpdater") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_Incentive *IncentiveSession) GetAddressUpdater() (common.Address, error) { + return _Incentive.Contract.GetAddressUpdater(&_Incentive.CallOpts) +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_Incentive *IncentiveCallerSession) GetAddressUpdater() (common.Address, error) { + return _Incentive.Contract.GetAddressUpdater(&_Incentive.CallOpts) +} + +// GetContractName is a free data retrieval call binding the contract method 0xf5f5ba72. +// +// Solidity: function getContractName() pure returns(string) +func (_Incentive *IncentiveCaller) GetContractName(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getContractName") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// GetContractName is a free data retrieval call binding the contract method 0xf5f5ba72. +// +// Solidity: function getContractName() pure returns(string) +func (_Incentive *IncentiveSession) GetContractName() (string, error) { + return _Incentive.Contract.GetContractName(&_Incentive.CallOpts) +} + +// GetContractName is a free data retrieval call binding the contract method 0xf5f5ba72. +// +// Solidity: function getContractName() pure returns(string) +func (_Incentive *IncentiveCallerSession) GetContractName() (string, error) { + return _Incentive.Contract.GetContractName(&_Incentive.CallOpts) +} + +// GetExpectedBalance is a free data retrieval call binding the contract method 0xaf04cd3b. +// +// Solidity: function getExpectedBalance() view returns(uint256) +func (_Incentive *IncentiveCaller) GetExpectedBalance(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getExpectedBalance") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetExpectedBalance is a free data retrieval call binding the contract method 0xaf04cd3b. +// +// Solidity: function getExpectedBalance() view returns(uint256) +func (_Incentive *IncentiveSession) GetExpectedBalance() (*big.Int, error) { + return _Incentive.Contract.GetExpectedBalance(&_Incentive.CallOpts) +} + +// GetExpectedBalance is a free data retrieval call binding the contract method 0xaf04cd3b. +// +// Solidity: function getExpectedBalance() view returns(uint256) +func (_Incentive *IncentiveCallerSession) GetExpectedBalance() (*big.Int, error) { + return _Incentive.Contract.GetExpectedBalance(&_Incentive.CallOpts) +} + +// GetExpectedSampleSize is a free data retrieval call binding the contract method 0x6d62b413. +// +// Solidity: function getExpectedSampleSize() view returns(uint256) +func (_Incentive *IncentiveCaller) GetExpectedSampleSize(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getExpectedSampleSize") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetExpectedSampleSize is a free data retrieval call binding the contract method 0x6d62b413. +// +// Solidity: function getExpectedSampleSize() view returns(uint256) +func (_Incentive *IncentiveSession) GetExpectedSampleSize() (*big.Int, error) { + return _Incentive.Contract.GetExpectedSampleSize(&_Incentive.CallOpts) +} + +// GetExpectedSampleSize is a free data retrieval call binding the contract method 0x6d62b413. +// +// Solidity: function getExpectedSampleSize() view returns(uint256) +func (_Incentive *IncentiveCallerSession) GetExpectedSampleSize() (*big.Int, error) { + return _Incentive.Contract.GetExpectedSampleSize(&_Incentive.CallOpts) +} + +// GetIncentiveDuration is a free data retrieval call binding the contract method 0xdd8dca9f. +// +// Solidity: function getIncentiveDuration() view returns(uint256) +func (_Incentive *IncentiveCaller) GetIncentiveDuration(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getIncentiveDuration") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetIncentiveDuration is a free data retrieval call binding the contract method 0xdd8dca9f. +// +// Solidity: function getIncentiveDuration() view returns(uint256) +func (_Incentive *IncentiveSession) GetIncentiveDuration() (*big.Int, error) { + return _Incentive.Contract.GetIncentiveDuration(&_Incentive.CallOpts) +} + +// GetIncentiveDuration is a free data retrieval call binding the contract method 0xdd8dca9f. +// +// Solidity: function getIncentiveDuration() view returns(uint256) +func (_Incentive *IncentiveCallerSession) GetIncentiveDuration() (*big.Int, error) { + return _Incentive.Contract.GetIncentiveDuration(&_Incentive.CallOpts) +} + +// GetInflationAddress is a free data retrieval call binding the contract method 0xed39d3f8. +// +// Solidity: function getInflationAddress() view returns(address) +func (_Incentive *IncentiveCaller) GetInflationAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getInflationAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetInflationAddress is a free data retrieval call binding the contract method 0xed39d3f8. +// +// Solidity: function getInflationAddress() view returns(address) +func (_Incentive *IncentiveSession) GetInflationAddress() (common.Address, error) { + return _Incentive.Contract.GetInflationAddress(&_Incentive.CallOpts) +} + +// GetInflationAddress is a free data retrieval call binding the contract method 0xed39d3f8. +// +// Solidity: function getInflationAddress() view returns(address) +func (_Incentive *IncentiveCallerSession) GetInflationAddress() (common.Address, error) { + return _Incentive.Contract.GetInflationAddress(&_Incentive.CallOpts) +} + +// GetPrecision is a free data retrieval call binding the contract method 0x9670c0bc. +// +// Solidity: function getPrecision() view returns(uint256) +func (_Incentive *IncentiveCaller) GetPrecision(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getPrecision") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetPrecision is a free data retrieval call binding the contract method 0x9670c0bc. +// +// Solidity: function getPrecision() view returns(uint256) +func (_Incentive *IncentiveSession) GetPrecision() (*big.Int, error) { + return _Incentive.Contract.GetPrecision(&_Incentive.CallOpts) +} + +// GetPrecision is a free data retrieval call binding the contract method 0x9670c0bc. +// +// Solidity: function getPrecision() view returns(uint256) +func (_Incentive *IncentiveCallerSession) GetPrecision() (*big.Int, error) { + return _Incentive.Contract.GetPrecision(&_Incentive.CallOpts) +} + +// GetRange is a free data retrieval call binding the contract method 0x9b85961f. +// +// Solidity: function getRange() view returns(uint256) +func (_Incentive *IncentiveCaller) GetRange(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getRange") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetRange is a free data retrieval call binding the contract method 0x9b85961f. +// +// Solidity: function getRange() view returns(uint256) +func (_Incentive *IncentiveSession) GetRange() (*big.Int, error) { + return _Incentive.Contract.GetRange(&_Incentive.CallOpts) +} + +// GetRange is a free data retrieval call binding the contract method 0x9b85961f. +// +// Solidity: function getRange() view returns(uint256) +func (_Incentive *IncentiveCallerSession) GetRange() (*big.Int, error) { + return _Incentive.Contract.GetRange(&_Incentive.CallOpts) +} + +// GetScale is a free data retrieval call binding the contract method 0xb5cddab8. +// +// Solidity: function getScale() view returns(uint256) +func (_Incentive *IncentiveCaller) GetScale(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getScale") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetScale is a free data retrieval call binding the contract method 0xb5cddab8. +// +// Solidity: function getScale() view returns(uint256) +func (_Incentive *IncentiveSession) GetScale() (*big.Int, error) { + return _Incentive.Contract.GetScale(&_Incentive.CallOpts) +} + +// GetScale is a free data retrieval call binding the contract method 0xb5cddab8. +// +// Solidity: function getScale() view returns(uint256) +func (_Incentive *IncentiveCallerSession) GetScale() (*big.Int, error) { + return _Incentive.Contract.GetScale(&_Incentive.CallOpts) +} + +// GetTokenPoolSupplyData is a free data retrieval call binding the contract method 0x2dafdbbf. +// +// Solidity: function getTokenPoolSupplyData() view returns(uint256 _lockedFundsWei, uint256 _totalInflationAuthorizedWei, uint256 _totalClaimedWei) +func (_Incentive *IncentiveCaller) GetTokenPoolSupplyData(opts *bind.CallOpts) (struct { + LockedFundsWei *big.Int + TotalInflationAuthorizedWei *big.Int + TotalClaimedWei *big.Int +}, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "getTokenPoolSupplyData") + + outstruct := new(struct { + LockedFundsWei *big.Int + TotalInflationAuthorizedWei *big.Int + TotalClaimedWei *big.Int + }) + if err != nil { + return *outstruct, err + } + + outstruct.LockedFundsWei = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.TotalInflationAuthorizedWei = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + outstruct.TotalClaimedWei = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) + + return *outstruct, err + +} + +// GetTokenPoolSupplyData is a free data retrieval call binding the contract method 0x2dafdbbf. +// +// Solidity: function getTokenPoolSupplyData() view returns(uint256 _lockedFundsWei, uint256 _totalInflationAuthorizedWei, uint256 _totalClaimedWei) +func (_Incentive *IncentiveSession) GetTokenPoolSupplyData() (struct { + LockedFundsWei *big.Int + TotalInflationAuthorizedWei *big.Int + TotalClaimedWei *big.Int +}, error) { + return _Incentive.Contract.GetTokenPoolSupplyData(&_Incentive.CallOpts) +} + +// GetTokenPoolSupplyData is a free data retrieval call binding the contract method 0x2dafdbbf. +// +// Solidity: function getTokenPoolSupplyData() view returns(uint256 _lockedFundsWei, uint256 _totalInflationAuthorizedWei, uint256 _totalClaimedWei) +func (_Incentive *IncentiveCallerSession) GetTokenPoolSupplyData() (struct { + LockedFundsWei *big.Int + TotalInflationAuthorizedWei *big.Int + TotalClaimedWei *big.Int +}, error) { + return _Incentive.Contract.GetTokenPoolSupplyData(&_Incentive.CallOpts) +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_Incentive *IncentiveCaller) Governance(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "governance") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_Incentive *IncentiveSession) Governance() (common.Address, error) { + return _Incentive.Contract.Governance(&_Incentive.CallOpts) +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_Incentive *IncentiveCallerSession) Governance() (common.Address, error) { + return _Incentive.Contract.Governance(&_Incentive.CallOpts) +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_Incentive *IncentiveCaller) GovernanceSettings(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "governanceSettings") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_Incentive *IncentiveSession) GovernanceSettings() (common.Address, error) { + return _Incentive.Contract.GovernanceSettings(&_Incentive.CallOpts) +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_Incentive *IncentiveCallerSession) GovernanceSettings() (common.Address, error) { + return _Incentive.Contract.GovernanceSettings(&_Incentive.CallOpts) +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_Incentive *IncentiveCaller) IsExecutor(opts *bind.CallOpts, _address common.Address) (bool, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "isExecutor", _address) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_Incentive *IncentiveSession) IsExecutor(_address common.Address) (bool, error) { + return _Incentive.Contract.IsExecutor(&_Incentive.CallOpts, _address) +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_Incentive *IncentiveCallerSession) IsExecutor(_address common.Address) (bool, error) { + return _Incentive.Contract.IsExecutor(&_Incentive.CallOpts, _address) +} + +// LastInflationAuthorizationReceivedTs is a free data retrieval call binding the contract method 0x473252c4. +// +// Solidity: function lastInflationAuthorizationReceivedTs() view returns(uint256) +func (_Incentive *IncentiveCaller) LastInflationAuthorizationReceivedTs(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "lastInflationAuthorizationReceivedTs") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// LastInflationAuthorizationReceivedTs is a free data retrieval call binding the contract method 0x473252c4. +// +// Solidity: function lastInflationAuthorizationReceivedTs() view returns(uint256) +func (_Incentive *IncentiveSession) LastInflationAuthorizationReceivedTs() (*big.Int, error) { + return _Incentive.Contract.LastInflationAuthorizationReceivedTs(&_Incentive.CallOpts) +} + +// LastInflationAuthorizationReceivedTs is a free data retrieval call binding the contract method 0x473252c4. +// +// Solidity: function lastInflationAuthorizationReceivedTs() view returns(uint256) +func (_Incentive *IncentiveCallerSession) LastInflationAuthorizationReceivedTs() (*big.Int, error) { + return _Incentive.Contract.LastInflationAuthorizationReceivedTs(&_Incentive.CallOpts) +} + +// LastInflationReceivedTs is a free data retrieval call binding the contract method 0x12afcf0b. +// +// Solidity: function lastInflationReceivedTs() view returns(uint256) +func (_Incentive *IncentiveCaller) LastInflationReceivedTs(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "lastInflationReceivedTs") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// LastInflationReceivedTs is a free data retrieval call binding the contract method 0x12afcf0b. +// +// Solidity: function lastInflationReceivedTs() view returns(uint256) +func (_Incentive *IncentiveSession) LastInflationReceivedTs() (*big.Int, error) { + return _Incentive.Contract.LastInflationReceivedTs(&_Incentive.CallOpts) +} + +// LastInflationReceivedTs is a free data retrieval call binding the contract method 0x12afcf0b. +// +// Solidity: function lastInflationReceivedTs() view returns(uint256) +func (_Incentive *IncentiveCallerSession) LastInflationReceivedTs() (*big.Int, error) { + return _Incentive.Contract.LastInflationReceivedTs(&_Incentive.CallOpts) +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_Incentive *IncentiveCaller) ProductionMode(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "productionMode") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_Incentive *IncentiveSession) ProductionMode() (bool, error) { + return _Incentive.Contract.ProductionMode(&_Incentive.CallOpts) +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_Incentive *IncentiveCallerSession) ProductionMode() (bool, error) { + return _Incentive.Contract.ProductionMode(&_Incentive.CallOpts) +} + +// RangeIncreasePrice is a free data retrieval call binding the contract method 0x52545a7c. +// +// Solidity: function rangeIncreasePrice() view returns(uint256) +func (_Incentive *IncentiveCaller) RangeIncreasePrice(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "rangeIncreasePrice") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// RangeIncreasePrice is a free data retrieval call binding the contract method 0x52545a7c. +// +// Solidity: function rangeIncreasePrice() view returns(uint256) +func (_Incentive *IncentiveSession) RangeIncreasePrice() (*big.Int, error) { + return _Incentive.Contract.RangeIncreasePrice(&_Incentive.CallOpts) +} + +// RangeIncreasePrice is a free data retrieval call binding the contract method 0x52545a7c. +// +// Solidity: function rangeIncreasePrice() view returns(uint256) +func (_Incentive *IncentiveCallerSession) RangeIncreasePrice() (*big.Int, error) { + return _Incentive.Contract.RangeIncreasePrice(&_Incentive.CallOpts) +} + +// RewardManager is a free data retrieval call binding the contract method 0x0f4ef8a6. +// +// Solidity: function rewardManager() view returns(address) +func (_Incentive *IncentiveCaller) RewardManager(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "rewardManager") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// RewardManager is a free data retrieval call binding the contract method 0x0f4ef8a6. +// +// Solidity: function rewardManager() view returns(address) +func (_Incentive *IncentiveSession) RewardManager() (common.Address, error) { + return _Incentive.Contract.RewardManager(&_Incentive.CallOpts) +} + +// RewardManager is a free data retrieval call binding the contract method 0x0f4ef8a6. +// +// Solidity: function rewardManager() view returns(address) +func (_Incentive *IncentiveCallerSession) RewardManager() (common.Address, error) { + return _Incentive.Contract.RewardManager(&_Incentive.CallOpts) +} + +// SampleIncreaseLimit is a free data retrieval call binding the contract method 0xd4ab8f94. +// +// Solidity: function sampleIncreaseLimit() view returns(uint256) +func (_Incentive *IncentiveCaller) SampleIncreaseLimit(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "sampleIncreaseLimit") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// SampleIncreaseLimit is a free data retrieval call binding the contract method 0xd4ab8f94. +// +// Solidity: function sampleIncreaseLimit() view returns(uint256) +func (_Incentive *IncentiveSession) SampleIncreaseLimit() (*big.Int, error) { + return _Incentive.Contract.SampleIncreaseLimit(&_Incentive.CallOpts) +} + +// SampleIncreaseLimit is a free data retrieval call binding the contract method 0xd4ab8f94. +// +// Solidity: function sampleIncreaseLimit() view returns(uint256) +func (_Incentive *IncentiveCallerSession) SampleIncreaseLimit() (*big.Int, error) { + return _Incentive.Contract.SampleIncreaseLimit(&_Incentive.CallOpts) +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Incentive *IncentiveCaller) TimelockedCalls(opts *bind.CallOpts, selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "timelockedCalls", selector) + + outstruct := new(struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.AllowedAfterTimestamp = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.EncodedCall = *abi.ConvertType(out[1], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Incentive *IncentiveSession) TimelockedCalls(selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + return _Incentive.Contract.TimelockedCalls(&_Incentive.CallOpts, selector) +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Incentive *IncentiveCallerSession) TimelockedCalls(selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + return _Incentive.Contract.TimelockedCalls(&_Incentive.CallOpts, selector) +} + +// TotalInflationAuthorizedWei is a free data retrieval call binding the contract method 0xd0c1c393. +// +// Solidity: function totalInflationAuthorizedWei() view returns(uint256) +func (_Incentive *IncentiveCaller) TotalInflationAuthorizedWei(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "totalInflationAuthorizedWei") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalInflationAuthorizedWei is a free data retrieval call binding the contract method 0xd0c1c393. +// +// Solidity: function totalInflationAuthorizedWei() view returns(uint256) +func (_Incentive *IncentiveSession) TotalInflationAuthorizedWei() (*big.Int, error) { + return _Incentive.Contract.TotalInflationAuthorizedWei(&_Incentive.CallOpts) +} + +// TotalInflationAuthorizedWei is a free data retrieval call binding the contract method 0xd0c1c393. +// +// Solidity: function totalInflationAuthorizedWei() view returns(uint256) +func (_Incentive *IncentiveCallerSession) TotalInflationAuthorizedWei() (*big.Int, error) { + return _Incentive.Contract.TotalInflationAuthorizedWei(&_Incentive.CallOpts) +} + +// TotalInflationReceivedWei is a free data retrieval call binding the contract method 0xa5555aea. +// +// Solidity: function totalInflationReceivedWei() view returns(uint256) +func (_Incentive *IncentiveCaller) TotalInflationReceivedWei(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "totalInflationReceivedWei") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalInflationReceivedWei is a free data retrieval call binding the contract method 0xa5555aea. +// +// Solidity: function totalInflationReceivedWei() view returns(uint256) +func (_Incentive *IncentiveSession) TotalInflationReceivedWei() (*big.Int, error) { + return _Incentive.Contract.TotalInflationReceivedWei(&_Incentive.CallOpts) +} + +// TotalInflationReceivedWei is a free data retrieval call binding the contract method 0xa5555aea. +// +// Solidity: function totalInflationReceivedWei() view returns(uint256) +func (_Incentive *IncentiveCallerSession) TotalInflationReceivedWei() (*big.Int, error) { + return _Incentive.Contract.TotalInflationReceivedWei(&_Incentive.CallOpts) +} + +// TotalInflationRewardsOfferedWei is a free data retrieval call binding the contract method 0xbd76b69c. +// +// Solidity: function totalInflationRewardsOfferedWei() view returns(uint256) +func (_Incentive *IncentiveCaller) TotalInflationRewardsOfferedWei(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Incentive.contract.Call(opts, &out, "totalInflationRewardsOfferedWei") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalInflationRewardsOfferedWei is a free data retrieval call binding the contract method 0xbd76b69c. +// +// Solidity: function totalInflationRewardsOfferedWei() view returns(uint256) +func (_Incentive *IncentiveSession) TotalInflationRewardsOfferedWei() (*big.Int, error) { + return _Incentive.Contract.TotalInflationRewardsOfferedWei(&_Incentive.CallOpts) +} + +// TotalInflationRewardsOfferedWei is a free data retrieval call binding the contract method 0xbd76b69c. +// +// Solidity: function totalInflationRewardsOfferedWei() view returns(uint256) +func (_Incentive *IncentiveCallerSession) TotalInflationRewardsOfferedWei() (*big.Int, error) { + return _Incentive.Contract.TotalInflationRewardsOfferedWei(&_Incentive.CallOpts) +} + +// Advance is a paid mutator transaction binding the contract method 0xea105ac7. +// +// Solidity: function advance() returns() +func (_Incentive *IncentiveTransactor) Advance(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "advance") +} + +// Advance is a paid mutator transaction binding the contract method 0xea105ac7. +// +// Solidity: function advance() returns() +func (_Incentive *IncentiveSession) Advance() (*types.Transaction, error) { + return _Incentive.Contract.Advance(&_Incentive.TransactOpts) +} + +// Advance is a paid mutator transaction binding the contract method 0xea105ac7. +// +// Solidity: function advance() returns() +func (_Incentive *IncentiveTransactorSession) Advance() (*types.Transaction, error) { + return _Incentive.Contract.Advance(&_Incentive.TransactOpts) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_Incentive *IncentiveTransactor) CancelGovernanceCall(opts *bind.TransactOpts, _selector [4]byte) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "cancelGovernanceCall", _selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_Incentive *IncentiveSession) CancelGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _Incentive.Contract.CancelGovernanceCall(&_Incentive.TransactOpts, _selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_Incentive *IncentiveTransactorSession) CancelGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _Incentive.Contract.CancelGovernanceCall(&_Incentive.TransactOpts, _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_Incentive *IncentiveTransactor) ExecuteGovernanceCall(opts *bind.TransactOpts, _selector [4]byte) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "executeGovernanceCall", _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_Incentive *IncentiveSession) ExecuteGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _Incentive.Contract.ExecuteGovernanceCall(&_Incentive.TransactOpts, _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_Incentive *IncentiveTransactorSession) ExecuteGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _Incentive.Contract.ExecuteGovernanceCall(&_Incentive.TransactOpts, _selector) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_Incentive *IncentiveTransactor) Initialise(opts *bind.TransactOpts, _governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "initialise", _governanceSettings, _initialGovernance) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_Incentive *IncentiveSession) Initialise(_governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _Incentive.Contract.Initialise(&_Incentive.TransactOpts, _governanceSettings, _initialGovernance) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_Incentive *IncentiveTransactorSession) Initialise(_governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _Incentive.Contract.Initialise(&_Incentive.TransactOpts, _governanceSettings, _initialGovernance) +} + +// OfferIncentive is a paid mutator transaction binding the contract method 0x36247180. +// +// Solidity: function offerIncentive((uint256,uint256) _offer) payable returns() +func (_Incentive *IncentiveTransactor) OfferIncentive(opts *bind.TransactOpts, _offer IFastUpdateIncentiveManagerIncentiveOffer) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "offerIncentive", _offer) +} + +// OfferIncentive is a paid mutator transaction binding the contract method 0x36247180. +// +// Solidity: function offerIncentive((uint256,uint256) _offer) payable returns() +func (_Incentive *IncentiveSession) OfferIncentive(_offer IFastUpdateIncentiveManagerIncentiveOffer) (*types.Transaction, error) { + return _Incentive.Contract.OfferIncentive(&_Incentive.TransactOpts, _offer) +} + +// OfferIncentive is a paid mutator transaction binding the contract method 0x36247180. +// +// Solidity: function offerIncentive((uint256,uint256) _offer) payable returns() +func (_Incentive *IncentiveTransactorSession) OfferIncentive(_offer IFastUpdateIncentiveManagerIncentiveOffer) (*types.Transaction, error) { + return _Incentive.Contract.OfferIncentive(&_Incentive.TransactOpts, _offer) +} + +// ReceiveInflation is a paid mutator transaction binding the contract method 0x06201f1d. +// +// Solidity: function receiveInflation() payable returns() +func (_Incentive *IncentiveTransactor) ReceiveInflation(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "receiveInflation") +} + +// ReceiveInflation is a paid mutator transaction binding the contract method 0x06201f1d. +// +// Solidity: function receiveInflation() payable returns() +func (_Incentive *IncentiveSession) ReceiveInflation() (*types.Transaction, error) { + return _Incentive.Contract.ReceiveInflation(&_Incentive.TransactOpts) +} + +// ReceiveInflation is a paid mutator transaction binding the contract method 0x06201f1d. +// +// Solidity: function receiveInflation() payable returns() +func (_Incentive *IncentiveTransactorSession) ReceiveInflation() (*types.Transaction, error) { + return _Incentive.Contract.ReceiveInflation(&_Incentive.TransactOpts) +} + +// SetDailyAuthorizedInflation is a paid mutator transaction binding the contract method 0xe2739563. +// +// Solidity: function setDailyAuthorizedInflation(uint256 _toAuthorizeWei) returns() +func (_Incentive *IncentiveTransactor) SetDailyAuthorizedInflation(opts *bind.TransactOpts, _toAuthorizeWei *big.Int) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "setDailyAuthorizedInflation", _toAuthorizeWei) +} + +// SetDailyAuthorizedInflation is a paid mutator transaction binding the contract method 0xe2739563. +// +// Solidity: function setDailyAuthorizedInflation(uint256 _toAuthorizeWei) returns() +func (_Incentive *IncentiveSession) SetDailyAuthorizedInflation(_toAuthorizeWei *big.Int) (*types.Transaction, error) { + return _Incentive.Contract.SetDailyAuthorizedInflation(&_Incentive.TransactOpts, _toAuthorizeWei) +} + +// SetDailyAuthorizedInflation is a paid mutator transaction binding the contract method 0xe2739563. +// +// Solidity: function setDailyAuthorizedInflation(uint256 _toAuthorizeWei) returns() +func (_Incentive *IncentiveTransactorSession) SetDailyAuthorizedInflation(_toAuthorizeWei *big.Int) (*types.Transaction, error) { + return _Incentive.Contract.SetDailyAuthorizedInflation(&_Incentive.TransactOpts, _toAuthorizeWei) +} + +// SetIncentiveParameters is a paid mutator transaction binding the contract method 0xb97e1f5d. +// +// Solidity: function setIncentiveParameters(uint256 _ss, uint256 _r, uint256 _dur) returns() +func (_Incentive *IncentiveTransactor) SetIncentiveParameters(opts *bind.TransactOpts, _ss *big.Int, _r *big.Int, _dur *big.Int) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "setIncentiveParameters", _ss, _r, _dur) +} + +// SetIncentiveParameters is a paid mutator transaction binding the contract method 0xb97e1f5d. +// +// Solidity: function setIncentiveParameters(uint256 _ss, uint256 _r, uint256 _dur) returns() +func (_Incentive *IncentiveSession) SetIncentiveParameters(_ss *big.Int, _r *big.Int, _dur *big.Int) (*types.Transaction, error) { + return _Incentive.Contract.SetIncentiveParameters(&_Incentive.TransactOpts, _ss, _r, _dur) +} + +// SetIncentiveParameters is a paid mutator transaction binding the contract method 0xb97e1f5d. +// +// Solidity: function setIncentiveParameters(uint256 _ss, uint256 _r, uint256 _dur) returns() +func (_Incentive *IncentiveTransactorSession) SetIncentiveParameters(_ss *big.Int, _r *big.Int, _dur *big.Int) (*types.Transaction, error) { + return _Incentive.Contract.SetIncentiveParameters(&_Incentive.TransactOpts, _ss, _r, _dur) +} + +// SetRangeIncreasePrice is a paid mutator transaction binding the contract method 0x0d6e9537. +// +// Solidity: function setRangeIncreasePrice(uint256 _price) returns() +func (_Incentive *IncentiveTransactor) SetRangeIncreasePrice(opts *bind.TransactOpts, _price *big.Int) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "setRangeIncreasePrice", _price) +} + +// SetRangeIncreasePrice is a paid mutator transaction binding the contract method 0x0d6e9537. +// +// Solidity: function setRangeIncreasePrice(uint256 _price) returns() +func (_Incentive *IncentiveSession) SetRangeIncreasePrice(_price *big.Int) (*types.Transaction, error) { + return _Incentive.Contract.SetRangeIncreasePrice(&_Incentive.TransactOpts, _price) +} + +// SetRangeIncreasePrice is a paid mutator transaction binding the contract method 0x0d6e9537. +// +// Solidity: function setRangeIncreasePrice(uint256 _price) returns() +func (_Incentive *IncentiveTransactorSession) SetRangeIncreasePrice(_price *big.Int) (*types.Transaction, error) { + return _Incentive.Contract.SetRangeIncreasePrice(&_Incentive.TransactOpts, _price) +} + +// SetSampleIncreaseLimit is a paid mutator transaction binding the contract method 0xf7690bfe. +// +// Solidity: function setSampleIncreaseLimit(uint256 _lim) returns() +func (_Incentive *IncentiveTransactor) SetSampleIncreaseLimit(opts *bind.TransactOpts, _lim *big.Int) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "setSampleIncreaseLimit", _lim) +} + +// SetSampleIncreaseLimit is a paid mutator transaction binding the contract method 0xf7690bfe. +// +// Solidity: function setSampleIncreaseLimit(uint256 _lim) returns() +func (_Incentive *IncentiveSession) SetSampleIncreaseLimit(_lim *big.Int) (*types.Transaction, error) { + return _Incentive.Contract.SetSampleIncreaseLimit(&_Incentive.TransactOpts, _lim) +} + +// SetSampleIncreaseLimit is a paid mutator transaction binding the contract method 0xf7690bfe. +// +// Solidity: function setSampleIncreaseLimit(uint256 _lim) returns() +func (_Incentive *IncentiveTransactorSession) SetSampleIncreaseLimit(_lim *big.Int) (*types.Transaction, error) { + return _Incentive.Contract.SetSampleIncreaseLimit(&_Incentive.TransactOpts, _lim) +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_Incentive *IncentiveTransactor) SwitchToProductionMode(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "switchToProductionMode") +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_Incentive *IncentiveSession) SwitchToProductionMode() (*types.Transaction, error) { + return _Incentive.Contract.SwitchToProductionMode(&_Incentive.TransactOpts) +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_Incentive *IncentiveTransactorSession) SwitchToProductionMode() (*types.Transaction, error) { + return _Incentive.Contract.SwitchToProductionMode(&_Incentive.TransactOpts) +} + +// TriggerRewardEpochSwitchover is a paid mutator transaction binding the contract method 0x91f25679. +// +// Solidity: function triggerRewardEpochSwitchover(uint24 _currentRewardEpochId, uint64 _currentRewardEpochExpectedEndTs, uint64 _rewardEpochDurationSeconds) returns() +func (_Incentive *IncentiveTransactor) TriggerRewardEpochSwitchover(opts *bind.TransactOpts, _currentRewardEpochId *big.Int, _currentRewardEpochExpectedEndTs uint64, _rewardEpochDurationSeconds uint64) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "triggerRewardEpochSwitchover", _currentRewardEpochId, _currentRewardEpochExpectedEndTs, _rewardEpochDurationSeconds) +} + +// TriggerRewardEpochSwitchover is a paid mutator transaction binding the contract method 0x91f25679. +// +// Solidity: function triggerRewardEpochSwitchover(uint24 _currentRewardEpochId, uint64 _currentRewardEpochExpectedEndTs, uint64 _rewardEpochDurationSeconds) returns() +func (_Incentive *IncentiveSession) TriggerRewardEpochSwitchover(_currentRewardEpochId *big.Int, _currentRewardEpochExpectedEndTs uint64, _rewardEpochDurationSeconds uint64) (*types.Transaction, error) { + return _Incentive.Contract.TriggerRewardEpochSwitchover(&_Incentive.TransactOpts, _currentRewardEpochId, _currentRewardEpochExpectedEndTs, _rewardEpochDurationSeconds) +} + +// TriggerRewardEpochSwitchover is a paid mutator transaction binding the contract method 0x91f25679. +// +// Solidity: function triggerRewardEpochSwitchover(uint24 _currentRewardEpochId, uint64 _currentRewardEpochExpectedEndTs, uint64 _rewardEpochDurationSeconds) returns() +func (_Incentive *IncentiveTransactorSession) TriggerRewardEpochSwitchover(_currentRewardEpochId *big.Int, _currentRewardEpochExpectedEndTs uint64, _rewardEpochDurationSeconds uint64) (*types.Transaction, error) { + return _Incentive.Contract.TriggerRewardEpochSwitchover(&_Incentive.TransactOpts, _currentRewardEpochId, _currentRewardEpochExpectedEndTs, _rewardEpochDurationSeconds) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_Incentive *IncentiveTransactor) UpdateContractAddresses(opts *bind.TransactOpts, _contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _Incentive.contract.Transact(opts, "updateContractAddresses", _contractNameHashes, _contractAddresses) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_Incentive *IncentiveSession) UpdateContractAddresses(_contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _Incentive.Contract.UpdateContractAddresses(&_Incentive.TransactOpts, _contractNameHashes, _contractAddresses) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_Incentive *IncentiveTransactorSession) UpdateContractAddresses(_contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _Incentive.Contract.UpdateContractAddresses(&_Incentive.TransactOpts, _contractNameHashes, _contractAddresses) +} + +// IncentiveDailyAuthorizedInflationSetIterator is returned from FilterDailyAuthorizedInflationSet and is used to iterate over the raw logs and unpacked data for DailyAuthorizedInflationSet events raised by the Incentive contract. +type IncentiveDailyAuthorizedInflationSetIterator struct { + Event *IncentiveDailyAuthorizedInflationSet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveDailyAuthorizedInflationSetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveDailyAuthorizedInflationSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveDailyAuthorizedInflationSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveDailyAuthorizedInflationSetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveDailyAuthorizedInflationSetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveDailyAuthorizedInflationSet represents a DailyAuthorizedInflationSet event raised by the Incentive contract. +type IncentiveDailyAuthorizedInflationSet struct { + AuthorizedAmountWei *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDailyAuthorizedInflationSet is a free log retrieval operation binding the contract event 0x187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a47669595. +// +// Solidity: event DailyAuthorizedInflationSet(uint256 authorizedAmountWei) +func (_Incentive *IncentiveFilterer) FilterDailyAuthorizedInflationSet(opts *bind.FilterOpts) (*IncentiveDailyAuthorizedInflationSetIterator, error) { + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "DailyAuthorizedInflationSet") + if err != nil { + return nil, err + } + return &IncentiveDailyAuthorizedInflationSetIterator{contract: _Incentive.contract, event: "DailyAuthorizedInflationSet", logs: logs, sub: sub}, nil +} + +// WatchDailyAuthorizedInflationSet is a free log subscription operation binding the contract event 0x187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a47669595. +// +// Solidity: event DailyAuthorizedInflationSet(uint256 authorizedAmountWei) +func (_Incentive *IncentiveFilterer) WatchDailyAuthorizedInflationSet(opts *bind.WatchOpts, sink chan<- *IncentiveDailyAuthorizedInflationSet) (event.Subscription, error) { + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "DailyAuthorizedInflationSet") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveDailyAuthorizedInflationSet) + if err := _Incentive.contract.UnpackLog(event, "DailyAuthorizedInflationSet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDailyAuthorizedInflationSet is a log parse operation binding the contract event 0x187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a47669595. +// +// Solidity: event DailyAuthorizedInflationSet(uint256 authorizedAmountWei) +func (_Incentive *IncentiveFilterer) ParseDailyAuthorizedInflationSet(log types.Log) (*IncentiveDailyAuthorizedInflationSet, error) { + event := new(IncentiveDailyAuthorizedInflationSet) + if err := _Incentive.contract.UnpackLog(event, "DailyAuthorizedInflationSet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IncentiveGovernanceCallTimelockedIterator is returned from FilterGovernanceCallTimelocked and is used to iterate over the raw logs and unpacked data for GovernanceCallTimelocked events raised by the Incentive contract. +type IncentiveGovernanceCallTimelockedIterator struct { + Event *IncentiveGovernanceCallTimelocked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveGovernanceCallTimelockedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveGovernanceCallTimelocked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveGovernanceCallTimelocked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveGovernanceCallTimelockedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveGovernanceCallTimelockedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveGovernanceCallTimelocked represents a GovernanceCallTimelocked event raised by the Incentive contract. +type IncentiveGovernanceCallTimelocked struct { + Selector [4]byte + AllowedAfterTimestamp *big.Int + EncodedCall []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernanceCallTimelocked is a free log retrieval operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Incentive *IncentiveFilterer) FilterGovernanceCallTimelocked(opts *bind.FilterOpts) (*IncentiveGovernanceCallTimelockedIterator, error) { + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "GovernanceCallTimelocked") + if err != nil { + return nil, err + } + return &IncentiveGovernanceCallTimelockedIterator{contract: _Incentive.contract, event: "GovernanceCallTimelocked", logs: logs, sub: sub}, nil +} + +// WatchGovernanceCallTimelocked is a free log subscription operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Incentive *IncentiveFilterer) WatchGovernanceCallTimelocked(opts *bind.WatchOpts, sink chan<- *IncentiveGovernanceCallTimelocked) (event.Subscription, error) { + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "GovernanceCallTimelocked") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveGovernanceCallTimelocked) + if err := _Incentive.contract.UnpackLog(event, "GovernanceCallTimelocked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernanceCallTimelocked is a log parse operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Incentive *IncentiveFilterer) ParseGovernanceCallTimelocked(log types.Log) (*IncentiveGovernanceCallTimelocked, error) { + event := new(IncentiveGovernanceCallTimelocked) + if err := _Incentive.contract.UnpackLog(event, "GovernanceCallTimelocked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IncentiveGovernanceInitialisedIterator is returned from FilterGovernanceInitialised and is used to iterate over the raw logs and unpacked data for GovernanceInitialised events raised by the Incentive contract. +type IncentiveGovernanceInitialisedIterator struct { + Event *IncentiveGovernanceInitialised // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveGovernanceInitialisedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveGovernanceInitialised) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveGovernanceInitialised) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveGovernanceInitialisedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveGovernanceInitialisedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveGovernanceInitialised represents a GovernanceInitialised event raised by the Incentive contract. +type IncentiveGovernanceInitialised struct { + InitialGovernance common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernanceInitialised is a free log retrieval operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_Incentive *IncentiveFilterer) FilterGovernanceInitialised(opts *bind.FilterOpts) (*IncentiveGovernanceInitialisedIterator, error) { + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "GovernanceInitialised") + if err != nil { + return nil, err + } + return &IncentiveGovernanceInitialisedIterator{contract: _Incentive.contract, event: "GovernanceInitialised", logs: logs, sub: sub}, nil +} + +// WatchGovernanceInitialised is a free log subscription operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_Incentive *IncentiveFilterer) WatchGovernanceInitialised(opts *bind.WatchOpts, sink chan<- *IncentiveGovernanceInitialised) (event.Subscription, error) { + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "GovernanceInitialised") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveGovernanceInitialised) + if err := _Incentive.contract.UnpackLog(event, "GovernanceInitialised", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernanceInitialised is a log parse operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_Incentive *IncentiveFilterer) ParseGovernanceInitialised(log types.Log) (*IncentiveGovernanceInitialised, error) { + event := new(IncentiveGovernanceInitialised) + if err := _Incentive.contract.UnpackLog(event, "GovernanceInitialised", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IncentiveGovernedProductionModeEnteredIterator is returned from FilterGovernedProductionModeEntered and is used to iterate over the raw logs and unpacked data for GovernedProductionModeEntered events raised by the Incentive contract. +type IncentiveGovernedProductionModeEnteredIterator struct { + Event *IncentiveGovernedProductionModeEntered // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveGovernedProductionModeEnteredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveGovernedProductionModeEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveGovernedProductionModeEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveGovernedProductionModeEnteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveGovernedProductionModeEnteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveGovernedProductionModeEntered represents a GovernedProductionModeEntered event raised by the Incentive contract. +type IncentiveGovernedProductionModeEntered struct { + GovernanceSettings common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernedProductionModeEntered is a free log retrieval operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_Incentive *IncentiveFilterer) FilterGovernedProductionModeEntered(opts *bind.FilterOpts) (*IncentiveGovernedProductionModeEnteredIterator, error) { + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "GovernedProductionModeEntered") + if err != nil { + return nil, err + } + return &IncentiveGovernedProductionModeEnteredIterator{contract: _Incentive.contract, event: "GovernedProductionModeEntered", logs: logs, sub: sub}, nil +} + +// WatchGovernedProductionModeEntered is a free log subscription operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_Incentive *IncentiveFilterer) WatchGovernedProductionModeEntered(opts *bind.WatchOpts, sink chan<- *IncentiveGovernedProductionModeEntered) (event.Subscription, error) { + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "GovernedProductionModeEntered") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveGovernedProductionModeEntered) + if err := _Incentive.contract.UnpackLog(event, "GovernedProductionModeEntered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernedProductionModeEntered is a log parse operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_Incentive *IncentiveFilterer) ParseGovernedProductionModeEntered(log types.Log) (*IncentiveGovernedProductionModeEntered, error) { + event := new(IncentiveGovernedProductionModeEntered) + if err := _Incentive.contract.UnpackLog(event, "GovernedProductionModeEntered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IncentiveIncentiveOfferedIterator is returned from FilterIncentiveOffered and is used to iterate over the raw logs and unpacked data for IncentiveOffered events raised by the Incentive contract. +type IncentiveIncentiveOfferedIterator struct { + Event *IncentiveIncentiveOffered // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveIncentiveOfferedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveIncentiveOffered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveIncentiveOffered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveIncentiveOfferedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveIncentiveOfferedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveIncentiveOffered represents a IncentiveOffered event raised by the Incentive contract. +type IncentiveIncentiveOffered struct { + RangeIncrease *big.Int + SampleSizeIncrease *big.Int + OfferAmount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterIncentiveOffered is a free log retrieval operation binding the contract event 0xe2bf2dae8fb2fd1f86fd6d50871b97c48b27cd148bb07311c99b4b7b24453f5b. +// +// Solidity: event IncentiveOffered(uint256 rangeIncrease, uint256 sampleSizeIncrease, uint256 offerAmount) +func (_Incentive *IncentiveFilterer) FilterIncentiveOffered(opts *bind.FilterOpts) (*IncentiveIncentiveOfferedIterator, error) { + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "IncentiveOffered") + if err != nil { + return nil, err + } + return &IncentiveIncentiveOfferedIterator{contract: _Incentive.contract, event: "IncentiveOffered", logs: logs, sub: sub}, nil +} + +// WatchIncentiveOffered is a free log subscription operation binding the contract event 0xe2bf2dae8fb2fd1f86fd6d50871b97c48b27cd148bb07311c99b4b7b24453f5b. +// +// Solidity: event IncentiveOffered(uint256 rangeIncrease, uint256 sampleSizeIncrease, uint256 offerAmount) +func (_Incentive *IncentiveFilterer) WatchIncentiveOffered(opts *bind.WatchOpts, sink chan<- *IncentiveIncentiveOffered) (event.Subscription, error) { + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "IncentiveOffered") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveIncentiveOffered) + if err := _Incentive.contract.UnpackLog(event, "IncentiveOffered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseIncentiveOffered is a log parse operation binding the contract event 0xe2bf2dae8fb2fd1f86fd6d50871b97c48b27cd148bb07311c99b4b7b24453f5b. +// +// Solidity: event IncentiveOffered(uint256 rangeIncrease, uint256 sampleSizeIncrease, uint256 offerAmount) +func (_Incentive *IncentiveFilterer) ParseIncentiveOffered(log types.Log) (*IncentiveIncentiveOffered, error) { + event := new(IncentiveIncentiveOffered) + if err := _Incentive.contract.UnpackLog(event, "IncentiveOffered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IncentiveInflationReceivedIterator is returned from FilterInflationReceived and is used to iterate over the raw logs and unpacked data for InflationReceived events raised by the Incentive contract. +type IncentiveInflationReceivedIterator struct { + Event *IncentiveInflationReceived // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveInflationReceivedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveInflationReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveInflationReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveInflationReceivedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveInflationReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveInflationReceived represents a InflationReceived event raised by the Incentive contract. +type IncentiveInflationReceived struct { + AmountReceivedWei *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInflationReceived is a free log retrieval operation binding the contract event 0x95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d37. +// +// Solidity: event InflationReceived(uint256 amountReceivedWei) +func (_Incentive *IncentiveFilterer) FilterInflationReceived(opts *bind.FilterOpts) (*IncentiveInflationReceivedIterator, error) { + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "InflationReceived") + if err != nil { + return nil, err + } + return &IncentiveInflationReceivedIterator{contract: _Incentive.contract, event: "InflationReceived", logs: logs, sub: sub}, nil +} + +// WatchInflationReceived is a free log subscription operation binding the contract event 0x95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d37. +// +// Solidity: event InflationReceived(uint256 amountReceivedWei) +func (_Incentive *IncentiveFilterer) WatchInflationReceived(opts *bind.WatchOpts, sink chan<- *IncentiveInflationReceived) (event.Subscription, error) { + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "InflationReceived") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveInflationReceived) + if err := _Incentive.contract.UnpackLog(event, "InflationReceived", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInflationReceived is a log parse operation binding the contract event 0x95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d37. +// +// Solidity: event InflationReceived(uint256 amountReceivedWei) +func (_Incentive *IncentiveFilterer) ParseInflationReceived(log types.Log) (*IncentiveInflationReceived, error) { + event := new(IncentiveInflationReceived) + if err := _Incentive.contract.UnpackLog(event, "InflationReceived", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IncentiveInflationRewardsOfferedIterator is returned from FilterInflationRewardsOffered and is used to iterate over the raw logs and unpacked data for InflationRewardsOffered events raised by the Incentive contract. +type IncentiveInflationRewardsOfferedIterator struct { + Event *IncentiveInflationRewardsOffered // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveInflationRewardsOfferedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveInflationRewardsOffered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveInflationRewardsOffered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveInflationRewardsOfferedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveInflationRewardsOfferedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveInflationRewardsOffered represents a InflationRewardsOffered event raised by the Incentive contract. +type IncentiveInflationRewardsOffered struct { + RewardEpochId *big.Int + FeedIds []byte + RewardBandValues []byte + InflationShares []byte + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInflationRewardsOffered is a free log retrieval operation binding the contract event 0xfdd0b465b401aa1b01bf9945ca3b5ad04d97007d090db1f5b126a502e890d610. +// +// Solidity: event InflationRewardsOffered(uint24 indexed rewardEpochId, bytes feedIds, bytes rewardBandValues, bytes inflationShares, uint256 amount) +func (_Incentive *IncentiveFilterer) FilterInflationRewardsOffered(opts *bind.FilterOpts, rewardEpochId []*big.Int) (*IncentiveInflationRewardsOfferedIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "InflationRewardsOffered", rewardEpochIdRule) + if err != nil { + return nil, err + } + return &IncentiveInflationRewardsOfferedIterator{contract: _Incentive.contract, event: "InflationRewardsOffered", logs: logs, sub: sub}, nil +} + +// WatchInflationRewardsOffered is a free log subscription operation binding the contract event 0xfdd0b465b401aa1b01bf9945ca3b5ad04d97007d090db1f5b126a502e890d610. +// +// Solidity: event InflationRewardsOffered(uint24 indexed rewardEpochId, bytes feedIds, bytes rewardBandValues, bytes inflationShares, uint256 amount) +func (_Incentive *IncentiveFilterer) WatchInflationRewardsOffered(opts *bind.WatchOpts, sink chan<- *IncentiveInflationRewardsOffered, rewardEpochId []*big.Int) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "InflationRewardsOffered", rewardEpochIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveInflationRewardsOffered) + if err := _Incentive.contract.UnpackLog(event, "InflationRewardsOffered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInflationRewardsOffered is a log parse operation binding the contract event 0xfdd0b465b401aa1b01bf9945ca3b5ad04d97007d090db1f5b126a502e890d610. +// +// Solidity: event InflationRewardsOffered(uint24 indexed rewardEpochId, bytes feedIds, bytes rewardBandValues, bytes inflationShares, uint256 amount) +func (_Incentive *IncentiveFilterer) ParseInflationRewardsOffered(log types.Log) (*IncentiveInflationRewardsOffered, error) { + event := new(IncentiveInflationRewardsOffered) + if err := _Incentive.contract.UnpackLog(event, "InflationRewardsOffered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IncentiveTimelockedGovernanceCallCanceledIterator is returned from FilterTimelockedGovernanceCallCanceled and is used to iterate over the raw logs and unpacked data for TimelockedGovernanceCallCanceled events raised by the Incentive contract. +type IncentiveTimelockedGovernanceCallCanceledIterator struct { + Event *IncentiveTimelockedGovernanceCallCanceled // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveTimelockedGovernanceCallCanceledIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveTimelockedGovernanceCallCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveTimelockedGovernanceCallCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveTimelockedGovernanceCallCanceledIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveTimelockedGovernanceCallCanceledIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveTimelockedGovernanceCallCanceled represents a TimelockedGovernanceCallCanceled event raised by the Incentive contract. +type IncentiveTimelockedGovernanceCallCanceled struct { + Selector [4]byte + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTimelockedGovernanceCallCanceled is a free log retrieval operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_Incentive *IncentiveFilterer) FilterTimelockedGovernanceCallCanceled(opts *bind.FilterOpts) (*IncentiveTimelockedGovernanceCallCanceledIterator, error) { + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "TimelockedGovernanceCallCanceled") + if err != nil { + return nil, err + } + return &IncentiveTimelockedGovernanceCallCanceledIterator{contract: _Incentive.contract, event: "TimelockedGovernanceCallCanceled", logs: logs, sub: sub}, nil +} + +// WatchTimelockedGovernanceCallCanceled is a free log subscription operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_Incentive *IncentiveFilterer) WatchTimelockedGovernanceCallCanceled(opts *bind.WatchOpts, sink chan<- *IncentiveTimelockedGovernanceCallCanceled) (event.Subscription, error) { + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "TimelockedGovernanceCallCanceled") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveTimelockedGovernanceCallCanceled) + if err := _Incentive.contract.UnpackLog(event, "TimelockedGovernanceCallCanceled", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTimelockedGovernanceCallCanceled is a log parse operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_Incentive *IncentiveFilterer) ParseTimelockedGovernanceCallCanceled(log types.Log) (*IncentiveTimelockedGovernanceCallCanceled, error) { + event := new(IncentiveTimelockedGovernanceCallCanceled) + if err := _Incentive.contract.UnpackLog(event, "TimelockedGovernanceCallCanceled", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IncentiveTimelockedGovernanceCallExecutedIterator is returned from FilterTimelockedGovernanceCallExecuted and is used to iterate over the raw logs and unpacked data for TimelockedGovernanceCallExecuted events raised by the Incentive contract. +type IncentiveTimelockedGovernanceCallExecutedIterator struct { + Event *IncentiveTimelockedGovernanceCallExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IncentiveTimelockedGovernanceCallExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IncentiveTimelockedGovernanceCallExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IncentiveTimelockedGovernanceCallExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IncentiveTimelockedGovernanceCallExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IncentiveTimelockedGovernanceCallExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IncentiveTimelockedGovernanceCallExecuted represents a TimelockedGovernanceCallExecuted event raised by the Incentive contract. +type IncentiveTimelockedGovernanceCallExecuted struct { + Selector [4]byte + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTimelockedGovernanceCallExecuted is a free log retrieval operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_Incentive *IncentiveFilterer) FilterTimelockedGovernanceCallExecuted(opts *bind.FilterOpts) (*IncentiveTimelockedGovernanceCallExecutedIterator, error) { + + logs, sub, err := _Incentive.contract.FilterLogs(opts, "TimelockedGovernanceCallExecuted") + if err != nil { + return nil, err + } + return &IncentiveTimelockedGovernanceCallExecutedIterator{contract: _Incentive.contract, event: "TimelockedGovernanceCallExecuted", logs: logs, sub: sub}, nil +} + +// WatchTimelockedGovernanceCallExecuted is a free log subscription operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_Incentive *IncentiveFilterer) WatchTimelockedGovernanceCallExecuted(opts *bind.WatchOpts, sink chan<- *IncentiveTimelockedGovernanceCallExecuted) (event.Subscription, error) { + + logs, sub, err := _Incentive.contract.WatchLogs(opts, "TimelockedGovernanceCallExecuted") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IncentiveTimelockedGovernanceCallExecuted) + if err := _Incentive.contract.UnpackLog(event, "TimelockedGovernanceCallExecuted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTimelockedGovernanceCallExecuted is a log parse operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_Incentive *IncentiveFilterer) ParseTimelockedGovernanceCallExecuted(log types.Log) (*IncentiveTimelockedGovernanceCallExecuted, error) { + event := new(IncentiveTimelockedGovernanceCallExecuted) + if err := _Incentive.contract.UnpackLog(event, "TimelockedGovernanceCallExecuted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/go-client/contracts-interface/mock/FlareSystemMock.go b/go-client/contracts-interface/mock/FlareSystemMock.go new file mode 100644 index 0000000..a872893 --- /dev/null +++ b/go-client/contracts-interface/mock/FlareSystemMock.go @@ -0,0 +1,531 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package mock + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// FlareSystemMockPolicy is an auto generated low-level Go binding around an user-defined struct. +type FlareSystemMockPolicy struct { + Pk1 [32]byte + Pk2 [32]byte + Weight uint16 +} + +// IFtsoFeedPublisherFeed is an auto generated low-level Go binding around an user-defined struct. +type IFtsoFeedPublisherFeed struct { + VotingRoundId uint32 + Id [21]byte + Value int32 + TurnoutBIPS uint16 + Decimals int8 +} + +// MockMetaData contains all meta data concerning the Mock contract. +var MockMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_randomSeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_epochLen\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"epochLen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes21\",\"name\":\"\",\"type\":\"bytes21\"}],\"name\":\"getCurrentFeed\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"votingRoundId\",\"type\":\"uint32\"},{\"internalType\":\"bytes21\",\"name\":\"id\",\"type\":\"bytes21\"},{\"internalType\":\"int32\",\"name\":\"value\",\"type\":\"int32\"},{\"internalType\":\"uint16\",\"name\":\"turnoutBIPS\",\"type\":\"uint16\"},{\"internalType\":\"int8\",\"name\":\"decimals\",\"type\":\"int8\"}],\"internalType\":\"structIFtsoFeedPublisher.Feed\",\"name\":\"_feed\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentRewardEpochId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"_currentRewardEpochId\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_signingPolicyAddress\",\"type\":\"address\"}],\"name\":\"getPublicKeyAndNormalisedWeight\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_publicKeyPart1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_publicKeyPart2\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_normalisedWeight\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_normalisedWeightsSumOfVotersWithPublicKeys\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getSeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_currentRandom\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"policies\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"pk1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pk2\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"weight\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomSeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"pk1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pk2\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"weight\",\"type\":\"uint16\"}],\"internalType\":\"structFlareSystemMock.Policy\",\"name\":\"_policy\",\"type\":\"tuple\"}],\"name\":\"registerAsVoter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"totalWeights\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b506040516106de3803806106de83398101604081905261002f9161003d565b600091909155600155610061565b6000806040838503121561005057600080fd5b505080516020909101519092909150565b61066e806100706000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806381bd4bf41161006657806381bd4bf4146101ae5780639b97b24c146101c3578063b62e1efc1461028a578063d2b3996f146102c1578063e0d4ea37146102ca57600080fd5b80630b747d911461009857806344b571d9146100b457806358fb1039146101395780637056269714610192575b600080fd5b6100a160005481565b6040519081526020015b60405180910390f35b61010f6100c2366004610477565b60008281526002602081815260408084206001600160a01b039095168452938152838320805460018201549190930154958452600390915292909120549093919261ffff90811692911690565b60408051948552602085019390935261ffff918216928401929092521660608201526080016100ab565b610173610147366004610477565b6002602081815260009384526040808520909152918352912080546001820154919092015461ffff1683565b60408051938452602084019290925261ffff16908201526060016100ab565b61019a6102dd565b60405162ffffff90911681526020016100ab565b6101c16101bc3660046104a3565b6102f2565b005b61022f6101d13660046104eb565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250506040805160a08101825260008082526020820152620186a09181019190915261271060608201526002608082015290565b6040516100ab9190815163ffffffff1681526020808301516affffffffffffffffffffff19169082015260408083015160030b9082015260608083015161ffff169082015260809182015160000b9181019190915260a00190565b6102ae610298366004610520565b60036020526000908152604090205461ffff1681565b60405161ffff90911681526020016100ab565b6100a160015481565b6100a16102d8366004610520565b6103d4565b6000600154436102ed9190610539565b905090565b610302606082016040830161056e565b61ffff166000036103525760405162461bcd60e51b8152602060048201526016602482015275576569676874206d757374206265206e6f6e7a65726f60501b604482015260640160405180910390fd5b60008381526002602090815260408083206001600160a01b038616845290915290208190610380828261058b565b506103939050606082016040830161056e565b600084815260036020526040812080549091906103b590849061ffff166105c0565b92506101000a81548161ffff021916908361ffff160217905550505050565b60006002600154436103e69190610539565b60005460408051602081019390935282015260600160408051601f1981840301815290829052610415916105f0565b602060405180830381855afa158015610432573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610455919061061f565b92915050565b80356001600160a01b038116811461047257600080fd5b919050565b6000806040838503121561048a57600080fd5b8235915061049a6020840161045b565b90509250929050565b600080600083850360a08112156104b957600080fd5b843593506104c96020860161045b565b92506060603f19820112156104dd57600080fd5b506040840190509250925092565b6000602082840312156104fd57600080fd5b81356affffffffffffffffffffff198116811461051957600080fd5b9392505050565b60006020828403121561053257600080fd5b5035919050565b60008261055657634e487b7160e01b600052601260045260246000fd5b500490565b61ffff8116811461056b57600080fd5b50565b60006020828403121561058057600080fd5b81356105198161055b565b81358155602082013560018201556002810160408301356105ab8161055b565b815461ffff191661ffff919091161790555050565b61ffff8181168382160190808211156105e957634e487b7160e01b600052601160045260246000fd5b5092915050565b6000825160005b8181101561061157602081860181015185830152016105f7565b506000920191825250919050565b60006020828403121561063157600080fd5b505191905056fea2646970667358221220988d211aac67deeaf4b0a8b724eb30649d4bd70118ebe1b94df98912381aefab64736f6c63430008140033", +} + +// MockABI is the input ABI used to generate the binding from. +// Deprecated: Use MockMetaData.ABI instead. +var MockABI = MockMetaData.ABI + +// MockBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use MockMetaData.Bin instead. +var MockBin = MockMetaData.Bin + +// DeployMock deploys a new Ethereum contract, binding an instance of Mock to it. +func DeployMock(auth *bind.TransactOpts, backend bind.ContractBackend, _randomSeed *big.Int, _epochLen *big.Int) (common.Address, *types.Transaction, *Mock, error) { + parsed, err := MockMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(MockBin), backend, _randomSeed, _epochLen) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Mock{MockCaller: MockCaller{contract: contract}, MockTransactor: MockTransactor{contract: contract}, MockFilterer: MockFilterer{contract: contract}}, nil +} + +// Mock is an auto generated Go binding around an Ethereum contract. +type Mock struct { + MockCaller // Read-only binding to the contract + MockTransactor // Write-only binding to the contract + MockFilterer // Log filterer for contract events +} + +// MockCaller is an auto generated read-only Go binding around an Ethereum contract. +type MockCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockTransactor is an auto generated write-only Go binding around an Ethereum contract. +type MockTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type MockFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MockSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type MockSession struct { + Contract *Mock // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MockCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type MockCallerSession struct { + Contract *MockCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// MockTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type MockTransactorSession struct { + Contract *MockTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MockRaw is an auto generated low-level Go binding around an Ethereum contract. +type MockRaw struct { + Contract *Mock // Generic contract binding to access the raw methods on +} + +// MockCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type MockCallerRaw struct { + Contract *MockCaller // Generic read-only contract binding to access the raw methods on +} + +// MockTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type MockTransactorRaw struct { + Contract *MockTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewMock creates a new instance of Mock, bound to a specific deployed contract. +func NewMock(address common.Address, backend bind.ContractBackend) (*Mock, error) { + contract, err := bindMock(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Mock{MockCaller: MockCaller{contract: contract}, MockTransactor: MockTransactor{contract: contract}, MockFilterer: MockFilterer{contract: contract}}, nil +} + +// NewMockCaller creates a new read-only instance of Mock, bound to a specific deployed contract. +func NewMockCaller(address common.Address, caller bind.ContractCaller) (*MockCaller, error) { + contract, err := bindMock(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MockCaller{contract: contract}, nil +} + +// NewMockTransactor creates a new write-only instance of Mock, bound to a specific deployed contract. +func NewMockTransactor(address common.Address, transactor bind.ContractTransactor) (*MockTransactor, error) { + contract, err := bindMock(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MockTransactor{contract: contract}, nil +} + +// NewMockFilterer creates a new log filterer instance of Mock, bound to a specific deployed contract. +func NewMockFilterer(address common.Address, filterer bind.ContractFilterer) (*MockFilterer, error) { + contract, err := bindMock(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MockFilterer{contract: contract}, nil +} + +// bindMock binds a generic wrapper to an already deployed contract. +func bindMock(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := MockMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Mock *MockRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Mock.Contract.MockCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Mock *MockRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Mock.Contract.MockTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Mock *MockRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Mock.Contract.MockTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Mock *MockCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Mock.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Mock *MockTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Mock.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Mock *MockTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Mock.Contract.contract.Transact(opts, method, params...) +} + +// EpochLen is a free data retrieval call binding the contract method 0xd2b3996f. +// +// Solidity: function epochLen() view returns(uint256) +func (_Mock *MockCaller) EpochLen(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Mock.contract.Call(opts, &out, "epochLen") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EpochLen is a free data retrieval call binding the contract method 0xd2b3996f. +// +// Solidity: function epochLen() view returns(uint256) +func (_Mock *MockSession) EpochLen() (*big.Int, error) { + return _Mock.Contract.EpochLen(&_Mock.CallOpts) +} + +// EpochLen is a free data retrieval call binding the contract method 0xd2b3996f. +// +// Solidity: function epochLen() view returns(uint256) +func (_Mock *MockCallerSession) EpochLen() (*big.Int, error) { + return _Mock.Contract.EpochLen(&_Mock.CallOpts) +} + +// GetCurrentFeed is a free data retrieval call binding the contract method 0x9b97b24c. +// +// Solidity: function getCurrentFeed(bytes21 ) pure returns((uint32,bytes21,int32,uint16,int8) _feed) +func (_Mock *MockCaller) GetCurrentFeed(opts *bind.CallOpts, arg0 [21]byte) (IFtsoFeedPublisherFeed, error) { + var out []interface{} + err := _Mock.contract.Call(opts, &out, "getCurrentFeed", arg0) + + if err != nil { + return *new(IFtsoFeedPublisherFeed), err + } + + out0 := *abi.ConvertType(out[0], new(IFtsoFeedPublisherFeed)).(*IFtsoFeedPublisherFeed) + + return out0, err + +} + +// GetCurrentFeed is a free data retrieval call binding the contract method 0x9b97b24c. +// +// Solidity: function getCurrentFeed(bytes21 ) pure returns((uint32,bytes21,int32,uint16,int8) _feed) +func (_Mock *MockSession) GetCurrentFeed(arg0 [21]byte) (IFtsoFeedPublisherFeed, error) { + return _Mock.Contract.GetCurrentFeed(&_Mock.CallOpts, arg0) +} + +// GetCurrentFeed is a free data retrieval call binding the contract method 0x9b97b24c. +// +// Solidity: function getCurrentFeed(bytes21 ) pure returns((uint32,bytes21,int32,uint16,int8) _feed) +func (_Mock *MockCallerSession) GetCurrentFeed(arg0 [21]byte) (IFtsoFeedPublisherFeed, error) { + return _Mock.Contract.GetCurrentFeed(&_Mock.CallOpts, arg0) +} + +// GetCurrentRewardEpochId is a free data retrieval call binding the contract method 0x70562697. +// +// Solidity: function getCurrentRewardEpochId() view returns(uint24 _currentRewardEpochId) +func (_Mock *MockCaller) GetCurrentRewardEpochId(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Mock.contract.Call(opts, &out, "getCurrentRewardEpochId") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCurrentRewardEpochId is a free data retrieval call binding the contract method 0x70562697. +// +// Solidity: function getCurrentRewardEpochId() view returns(uint24 _currentRewardEpochId) +func (_Mock *MockSession) GetCurrentRewardEpochId() (*big.Int, error) { + return _Mock.Contract.GetCurrentRewardEpochId(&_Mock.CallOpts) +} + +// GetCurrentRewardEpochId is a free data retrieval call binding the contract method 0x70562697. +// +// Solidity: function getCurrentRewardEpochId() view returns(uint24 _currentRewardEpochId) +func (_Mock *MockCallerSession) GetCurrentRewardEpochId() (*big.Int, error) { + return _Mock.Contract.GetCurrentRewardEpochId(&_Mock.CallOpts) +} + +// GetPublicKeyAndNormalisedWeight is a free data retrieval call binding the contract method 0x44b571d9. +// +// Solidity: function getPublicKeyAndNormalisedWeight(uint256 _rewardEpochId, address _signingPolicyAddress) view returns(bytes32 _publicKeyPart1, bytes32 _publicKeyPart2, uint16 _normalisedWeight, uint16 _normalisedWeightsSumOfVotersWithPublicKeys) +func (_Mock *MockCaller) GetPublicKeyAndNormalisedWeight(opts *bind.CallOpts, _rewardEpochId *big.Int, _signingPolicyAddress common.Address) (struct { + PublicKeyPart1 [32]byte + PublicKeyPart2 [32]byte + NormalisedWeight uint16 + NormalisedWeightsSumOfVotersWithPublicKeys uint16 +}, error) { + var out []interface{} + err := _Mock.contract.Call(opts, &out, "getPublicKeyAndNormalisedWeight", _rewardEpochId, _signingPolicyAddress) + + outstruct := new(struct { + PublicKeyPart1 [32]byte + PublicKeyPart2 [32]byte + NormalisedWeight uint16 + NormalisedWeightsSumOfVotersWithPublicKeys uint16 + }) + if err != nil { + return *outstruct, err + } + + outstruct.PublicKeyPart1 = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + outstruct.PublicKeyPart2 = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + outstruct.NormalisedWeight = *abi.ConvertType(out[2], new(uint16)).(*uint16) + outstruct.NormalisedWeightsSumOfVotersWithPublicKeys = *abi.ConvertType(out[3], new(uint16)).(*uint16) + + return *outstruct, err + +} + +// GetPublicKeyAndNormalisedWeight is a free data retrieval call binding the contract method 0x44b571d9. +// +// Solidity: function getPublicKeyAndNormalisedWeight(uint256 _rewardEpochId, address _signingPolicyAddress) view returns(bytes32 _publicKeyPart1, bytes32 _publicKeyPart2, uint16 _normalisedWeight, uint16 _normalisedWeightsSumOfVotersWithPublicKeys) +func (_Mock *MockSession) GetPublicKeyAndNormalisedWeight(_rewardEpochId *big.Int, _signingPolicyAddress common.Address) (struct { + PublicKeyPart1 [32]byte + PublicKeyPart2 [32]byte + NormalisedWeight uint16 + NormalisedWeightsSumOfVotersWithPublicKeys uint16 +}, error) { + return _Mock.Contract.GetPublicKeyAndNormalisedWeight(&_Mock.CallOpts, _rewardEpochId, _signingPolicyAddress) +} + +// GetPublicKeyAndNormalisedWeight is a free data retrieval call binding the contract method 0x44b571d9. +// +// Solidity: function getPublicKeyAndNormalisedWeight(uint256 _rewardEpochId, address _signingPolicyAddress) view returns(bytes32 _publicKeyPart1, bytes32 _publicKeyPart2, uint16 _normalisedWeight, uint16 _normalisedWeightsSumOfVotersWithPublicKeys) +func (_Mock *MockCallerSession) GetPublicKeyAndNormalisedWeight(_rewardEpochId *big.Int, _signingPolicyAddress common.Address) (struct { + PublicKeyPart1 [32]byte + PublicKeyPart2 [32]byte + NormalisedWeight uint16 + NormalisedWeightsSumOfVotersWithPublicKeys uint16 +}, error) { + return _Mock.Contract.GetPublicKeyAndNormalisedWeight(&_Mock.CallOpts, _rewardEpochId, _signingPolicyAddress) +} + +// GetSeed is a free data retrieval call binding the contract method 0xe0d4ea37. +// +// Solidity: function getSeed(uint256 ) view returns(uint256 _currentRandom) +func (_Mock *MockCaller) GetSeed(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _Mock.contract.Call(opts, &out, "getSeed", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetSeed is a free data retrieval call binding the contract method 0xe0d4ea37. +// +// Solidity: function getSeed(uint256 ) view returns(uint256 _currentRandom) +func (_Mock *MockSession) GetSeed(arg0 *big.Int) (*big.Int, error) { + return _Mock.Contract.GetSeed(&_Mock.CallOpts, arg0) +} + +// GetSeed is a free data retrieval call binding the contract method 0xe0d4ea37. +// +// Solidity: function getSeed(uint256 ) view returns(uint256 _currentRandom) +func (_Mock *MockCallerSession) GetSeed(arg0 *big.Int) (*big.Int, error) { + return _Mock.Contract.GetSeed(&_Mock.CallOpts, arg0) +} + +// Policies is a free data retrieval call binding the contract method 0x58fb1039. +// +// Solidity: function policies(uint256 , address ) view returns(bytes32 pk1, bytes32 pk2, uint16 weight) +func (_Mock *MockCaller) Policies(opts *bind.CallOpts, arg0 *big.Int, arg1 common.Address) (struct { + Pk1 [32]byte + Pk2 [32]byte + Weight uint16 +}, error) { + var out []interface{} + err := _Mock.contract.Call(opts, &out, "policies", arg0, arg1) + + outstruct := new(struct { + Pk1 [32]byte + Pk2 [32]byte + Weight uint16 + }) + if err != nil { + return *outstruct, err + } + + outstruct.Pk1 = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + outstruct.Pk2 = *abi.ConvertType(out[1], new([32]byte)).(*[32]byte) + outstruct.Weight = *abi.ConvertType(out[2], new(uint16)).(*uint16) + + return *outstruct, err + +} + +// Policies is a free data retrieval call binding the contract method 0x58fb1039. +// +// Solidity: function policies(uint256 , address ) view returns(bytes32 pk1, bytes32 pk2, uint16 weight) +func (_Mock *MockSession) Policies(arg0 *big.Int, arg1 common.Address) (struct { + Pk1 [32]byte + Pk2 [32]byte + Weight uint16 +}, error) { + return _Mock.Contract.Policies(&_Mock.CallOpts, arg0, arg1) +} + +// Policies is a free data retrieval call binding the contract method 0x58fb1039. +// +// Solidity: function policies(uint256 , address ) view returns(bytes32 pk1, bytes32 pk2, uint16 weight) +func (_Mock *MockCallerSession) Policies(arg0 *big.Int, arg1 common.Address) (struct { + Pk1 [32]byte + Pk2 [32]byte + Weight uint16 +}, error) { + return _Mock.Contract.Policies(&_Mock.CallOpts, arg0, arg1) +} + +// RandomSeed is a free data retrieval call binding the contract method 0x0b747d91. +// +// Solidity: function randomSeed() view returns(uint256) +func (_Mock *MockCaller) RandomSeed(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Mock.contract.Call(opts, &out, "randomSeed") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// RandomSeed is a free data retrieval call binding the contract method 0x0b747d91. +// +// Solidity: function randomSeed() view returns(uint256) +func (_Mock *MockSession) RandomSeed() (*big.Int, error) { + return _Mock.Contract.RandomSeed(&_Mock.CallOpts) +} + +// RandomSeed is a free data retrieval call binding the contract method 0x0b747d91. +// +// Solidity: function randomSeed() view returns(uint256) +func (_Mock *MockCallerSession) RandomSeed() (*big.Int, error) { + return _Mock.Contract.RandomSeed(&_Mock.CallOpts) +} + +// TotalWeights is a free data retrieval call binding the contract method 0xb62e1efc. +// +// Solidity: function totalWeights(uint256 ) view returns(uint16) +func (_Mock *MockCaller) TotalWeights(opts *bind.CallOpts, arg0 *big.Int) (uint16, error) { + var out []interface{} + err := _Mock.contract.Call(opts, &out, "totalWeights", arg0) + + if err != nil { + return *new(uint16), err + } + + out0 := *abi.ConvertType(out[0], new(uint16)).(*uint16) + + return out0, err + +} + +// TotalWeights is a free data retrieval call binding the contract method 0xb62e1efc. +// +// Solidity: function totalWeights(uint256 ) view returns(uint16) +func (_Mock *MockSession) TotalWeights(arg0 *big.Int) (uint16, error) { + return _Mock.Contract.TotalWeights(&_Mock.CallOpts, arg0) +} + +// TotalWeights is a free data retrieval call binding the contract method 0xb62e1efc. +// +// Solidity: function totalWeights(uint256 ) view returns(uint16) +func (_Mock *MockCallerSession) TotalWeights(arg0 *big.Int) (uint16, error) { + return _Mock.Contract.TotalWeights(&_Mock.CallOpts, arg0) +} + +// RegisterAsVoter is a paid mutator transaction binding the contract method 0x81bd4bf4. +// +// Solidity: function registerAsVoter(uint256 _epoch, address _sender, (bytes32,bytes32,uint16) _policy) returns() +func (_Mock *MockTransactor) RegisterAsVoter(opts *bind.TransactOpts, _epoch *big.Int, _sender common.Address, _policy FlareSystemMockPolicy) (*types.Transaction, error) { + return _Mock.contract.Transact(opts, "registerAsVoter", _epoch, _sender, _policy) +} + +// RegisterAsVoter is a paid mutator transaction binding the contract method 0x81bd4bf4. +// +// Solidity: function registerAsVoter(uint256 _epoch, address _sender, (bytes32,bytes32,uint16) _policy) returns() +func (_Mock *MockSession) RegisterAsVoter(_epoch *big.Int, _sender common.Address, _policy FlareSystemMockPolicy) (*types.Transaction, error) { + return _Mock.Contract.RegisterAsVoter(&_Mock.TransactOpts, _epoch, _sender, _policy) +} + +// RegisterAsVoter is a paid mutator transaction binding the contract method 0x81bd4bf4. +// +// Solidity: function registerAsVoter(uint256 _epoch, address _sender, (bytes32,bytes32,uint16) _policy) returns() +func (_Mock *MockTransactorSession) RegisterAsVoter(_epoch *big.Int, _sender common.Address, _policy FlareSystemMockPolicy) (*types.Transaction, error) { + return _Mock.Contract.RegisterAsVoter(&_Mock.TransactOpts, _epoch, _sender, _policy) +} diff --git a/go-client/contracts-interface/submission/Submission.go b/go-client/contracts-interface/submission/Submission.go new file mode 100644 index 0000000..2480d25 --- /dev/null +++ b/go-client/contracts-interface/submission/Submission.go @@ -0,0 +1,1742 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package submission + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// SubmissionMetaData contains all meta data concerning the Submission contract. +var SubmissionMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"_governanceSettings\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialGovernance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_addressUpdater\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_submit3MethodEnabled\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowedAfterTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedCall\",\"type\":\"bytes\"}],\"name\":\"GovernanceCallTimelocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initialGovernance\",\"type\":\"address\"}],\"name\":\"GovernanceInitialised\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"governanceSettings\",\"type\":\"address\"}],\"name\":\"GovernedProductionModeEntered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"NewVotingRoundInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TimelockedGovernanceCallCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TimelockedGovernanceCallExecuted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"cancelGovernanceCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"executeGovernanceCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flareSystemsManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAddressUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addressUpdater\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentRandom\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_currentRandom\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentRandomWithQuality\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_currentRandom\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isSecureRandom\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentRandomWithQualityAndTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_currentRandom\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isSecureRandom\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"_randomTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governanceSettings\",\"outputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_submit1Addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_submit2Addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_submit3Addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_submitSignaturesAddresses\",\"type\":\"address[]\"}],\"name\":\"initNewVotingRound\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIGovernanceSettings\",\"name\":\"_governanceSettings\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialGovernance\",\"type\":\"address\"}],\"name\":\"initialise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isExecutor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relay\",\"outputs\":[{\"internalType\":\"contractIRelay\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_enabled\",\"type\":\"bool\"}],\"name\":\"setSubmit3MethodEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_submitAndPassContract\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"_submitAndPassSelector\",\"type\":\"bytes4\"}],\"name\":\"setSubmitAndPassData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submit1\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submit2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submit3\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submit3MethodEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"submitAndPass\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submitAndPassContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submitAndPassSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submitSignatures\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"switchToProductionMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"timelockedCalls\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"allowedAfterTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedCall\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_contractNameHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"address[]\",\"name\":\"_contractAddresses\",\"type\":\"address[]\"}],\"name\":\"updateContractAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", +} + +// SubmissionABI is the input ABI used to generate the binding from. +// Deprecated: Use SubmissionMetaData.ABI instead. +var SubmissionABI = SubmissionMetaData.ABI + +// Submission is an auto generated Go binding around an Ethereum contract. +type Submission struct { + SubmissionCaller // Read-only binding to the contract + SubmissionTransactor // Write-only binding to the contract + SubmissionFilterer // Log filterer for contract events +} + +// SubmissionCaller is an auto generated read-only Go binding around an Ethereum contract. +type SubmissionCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SubmissionTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SubmissionTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SubmissionFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SubmissionFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SubmissionSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SubmissionSession struct { + Contract *Submission // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SubmissionCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SubmissionCallerSession struct { + Contract *SubmissionCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SubmissionTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SubmissionTransactorSession struct { + Contract *SubmissionTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SubmissionRaw is an auto generated low-level Go binding around an Ethereum contract. +type SubmissionRaw struct { + Contract *Submission // Generic contract binding to access the raw methods on +} + +// SubmissionCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SubmissionCallerRaw struct { + Contract *SubmissionCaller // Generic read-only contract binding to access the raw methods on +} + +// SubmissionTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SubmissionTransactorRaw struct { + Contract *SubmissionTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSubmission creates a new instance of Submission, bound to a specific deployed contract. +func NewSubmission(address common.Address, backend bind.ContractBackend) (*Submission, error) { + contract, err := bindSubmission(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Submission{SubmissionCaller: SubmissionCaller{contract: contract}, SubmissionTransactor: SubmissionTransactor{contract: contract}, SubmissionFilterer: SubmissionFilterer{contract: contract}}, nil +} + +// NewSubmissionCaller creates a new read-only instance of Submission, bound to a specific deployed contract. +func NewSubmissionCaller(address common.Address, caller bind.ContractCaller) (*SubmissionCaller, error) { + contract, err := bindSubmission(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SubmissionCaller{contract: contract}, nil +} + +// NewSubmissionTransactor creates a new write-only instance of Submission, bound to a specific deployed contract. +func NewSubmissionTransactor(address common.Address, transactor bind.ContractTransactor) (*SubmissionTransactor, error) { + contract, err := bindSubmission(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SubmissionTransactor{contract: contract}, nil +} + +// NewSubmissionFilterer creates a new log filterer instance of Submission, bound to a specific deployed contract. +func NewSubmissionFilterer(address common.Address, filterer bind.ContractFilterer) (*SubmissionFilterer, error) { + contract, err := bindSubmission(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SubmissionFilterer{contract: contract}, nil +} + +// bindSubmission binds a generic wrapper to an already deployed contract. +func bindSubmission(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SubmissionMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Submission *SubmissionRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Submission.Contract.SubmissionCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Submission *SubmissionRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Submission.Contract.SubmissionTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Submission *SubmissionRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Submission.Contract.SubmissionTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Submission *SubmissionCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Submission.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Submission *SubmissionTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Submission.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Submission *SubmissionTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Submission.Contract.contract.Transact(opts, method, params...) +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_Submission *SubmissionCaller) FlareSystemsManager(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "flareSystemsManager") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_Submission *SubmissionSession) FlareSystemsManager() (common.Address, error) { + return _Submission.Contract.FlareSystemsManager(&_Submission.CallOpts) +} + +// FlareSystemsManager is a free data retrieval call binding the contract method 0xfaae7fc9. +// +// Solidity: function flareSystemsManager() view returns(address) +func (_Submission *SubmissionCallerSession) FlareSystemsManager() (common.Address, error) { + return _Submission.Contract.FlareSystemsManager(&_Submission.CallOpts) +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_Submission *SubmissionCaller) GetAddressUpdater(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "getAddressUpdater") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_Submission *SubmissionSession) GetAddressUpdater() (common.Address, error) { + return _Submission.Contract.GetAddressUpdater(&_Submission.CallOpts) +} + +// GetAddressUpdater is a free data retrieval call binding the contract method 0x5267a15d. +// +// Solidity: function getAddressUpdater() view returns(address _addressUpdater) +func (_Submission *SubmissionCallerSession) GetAddressUpdater() (common.Address, error) { + return _Submission.Contract.GetAddressUpdater(&_Submission.CallOpts) +} + +// GetCurrentRandom is a free data retrieval call binding the contract method 0xd89601fd. +// +// Solidity: function getCurrentRandom() view returns(uint256 _currentRandom) +func (_Submission *SubmissionCaller) GetCurrentRandom(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "getCurrentRandom") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCurrentRandom is a free data retrieval call binding the contract method 0xd89601fd. +// +// Solidity: function getCurrentRandom() view returns(uint256 _currentRandom) +func (_Submission *SubmissionSession) GetCurrentRandom() (*big.Int, error) { + return _Submission.Contract.GetCurrentRandom(&_Submission.CallOpts) +} + +// GetCurrentRandom is a free data retrieval call binding the contract method 0xd89601fd. +// +// Solidity: function getCurrentRandom() view returns(uint256 _currentRandom) +func (_Submission *SubmissionCallerSession) GetCurrentRandom() (*big.Int, error) { + return _Submission.Contract.GetCurrentRandom(&_Submission.CallOpts) +} + +// GetCurrentRandomWithQuality is a free data retrieval call binding the contract method 0xa978fb6b. +// +// Solidity: function getCurrentRandomWithQuality() view returns(uint256 _currentRandom, bool _isSecureRandom) +func (_Submission *SubmissionCaller) GetCurrentRandomWithQuality(opts *bind.CallOpts) (struct { + CurrentRandom *big.Int + IsSecureRandom bool +}, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "getCurrentRandomWithQuality") + + outstruct := new(struct { + CurrentRandom *big.Int + IsSecureRandom bool + }) + if err != nil { + return *outstruct, err + } + + outstruct.CurrentRandom = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.IsSecureRandom = *abi.ConvertType(out[1], new(bool)).(*bool) + + return *outstruct, err + +} + +// GetCurrentRandomWithQuality is a free data retrieval call binding the contract method 0xa978fb6b. +// +// Solidity: function getCurrentRandomWithQuality() view returns(uint256 _currentRandom, bool _isSecureRandom) +func (_Submission *SubmissionSession) GetCurrentRandomWithQuality() (struct { + CurrentRandom *big.Int + IsSecureRandom bool +}, error) { + return _Submission.Contract.GetCurrentRandomWithQuality(&_Submission.CallOpts) +} + +// GetCurrentRandomWithQuality is a free data retrieval call binding the contract method 0xa978fb6b. +// +// Solidity: function getCurrentRandomWithQuality() view returns(uint256 _currentRandom, bool _isSecureRandom) +func (_Submission *SubmissionCallerSession) GetCurrentRandomWithQuality() (struct { + CurrentRandom *big.Int + IsSecureRandom bool +}, error) { + return _Submission.Contract.GetCurrentRandomWithQuality(&_Submission.CallOpts) +} + +// GetCurrentRandomWithQualityAndTimestamp is a free data retrieval call binding the contract method 0xaf9fbc3e. +// +// Solidity: function getCurrentRandomWithQualityAndTimestamp() view returns(uint256 _currentRandom, bool _isSecureRandom, uint256 _randomTimestamp) +func (_Submission *SubmissionCaller) GetCurrentRandomWithQualityAndTimestamp(opts *bind.CallOpts) (struct { + CurrentRandom *big.Int + IsSecureRandom bool + RandomTimestamp *big.Int +}, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "getCurrentRandomWithQualityAndTimestamp") + + outstruct := new(struct { + CurrentRandom *big.Int + IsSecureRandom bool + RandomTimestamp *big.Int + }) + if err != nil { + return *outstruct, err + } + + outstruct.CurrentRandom = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.IsSecureRandom = *abi.ConvertType(out[1], new(bool)).(*bool) + outstruct.RandomTimestamp = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) + + return *outstruct, err + +} + +// GetCurrentRandomWithQualityAndTimestamp is a free data retrieval call binding the contract method 0xaf9fbc3e. +// +// Solidity: function getCurrentRandomWithQualityAndTimestamp() view returns(uint256 _currentRandom, bool _isSecureRandom, uint256 _randomTimestamp) +func (_Submission *SubmissionSession) GetCurrentRandomWithQualityAndTimestamp() (struct { + CurrentRandom *big.Int + IsSecureRandom bool + RandomTimestamp *big.Int +}, error) { + return _Submission.Contract.GetCurrentRandomWithQualityAndTimestamp(&_Submission.CallOpts) +} + +// GetCurrentRandomWithQualityAndTimestamp is a free data retrieval call binding the contract method 0xaf9fbc3e. +// +// Solidity: function getCurrentRandomWithQualityAndTimestamp() view returns(uint256 _currentRandom, bool _isSecureRandom, uint256 _randomTimestamp) +func (_Submission *SubmissionCallerSession) GetCurrentRandomWithQualityAndTimestamp() (struct { + CurrentRandom *big.Int + IsSecureRandom bool + RandomTimestamp *big.Int +}, error) { + return _Submission.Contract.GetCurrentRandomWithQualityAndTimestamp(&_Submission.CallOpts) +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_Submission *SubmissionCaller) Governance(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "governance") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_Submission *SubmissionSession) Governance() (common.Address, error) { + return _Submission.Contract.Governance(&_Submission.CallOpts) +} + +// Governance is a free data retrieval call binding the contract method 0x5aa6e675. +// +// Solidity: function governance() view returns(address) +func (_Submission *SubmissionCallerSession) Governance() (common.Address, error) { + return _Submission.Contract.Governance(&_Submission.CallOpts) +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_Submission *SubmissionCaller) GovernanceSettings(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "governanceSettings") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_Submission *SubmissionSession) GovernanceSettings() (common.Address, error) { + return _Submission.Contract.GovernanceSettings(&_Submission.CallOpts) +} + +// GovernanceSettings is a free data retrieval call binding the contract method 0x62354e03. +// +// Solidity: function governanceSettings() view returns(address) +func (_Submission *SubmissionCallerSession) GovernanceSettings() (common.Address, error) { + return _Submission.Contract.GovernanceSettings(&_Submission.CallOpts) +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_Submission *SubmissionCaller) IsExecutor(opts *bind.CallOpts, _address common.Address) (bool, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "isExecutor", _address) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_Submission *SubmissionSession) IsExecutor(_address common.Address) (bool, error) { + return _Submission.Contract.IsExecutor(&_Submission.CallOpts, _address) +} + +// IsExecutor is a free data retrieval call binding the contract method 0xdebfda30. +// +// Solidity: function isExecutor(address _address) view returns(bool) +func (_Submission *SubmissionCallerSession) IsExecutor(_address common.Address) (bool, error) { + return _Submission.Contract.IsExecutor(&_Submission.CallOpts, _address) +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_Submission *SubmissionCaller) ProductionMode(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "productionMode") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_Submission *SubmissionSession) ProductionMode() (bool, error) { + return _Submission.Contract.ProductionMode(&_Submission.CallOpts) +} + +// ProductionMode is a free data retrieval call binding the contract method 0xe17f212e. +// +// Solidity: function productionMode() view returns(bool) +func (_Submission *SubmissionCallerSession) ProductionMode() (bool, error) { + return _Submission.Contract.ProductionMode(&_Submission.CallOpts) +} + +// Relay is a free data retrieval call binding the contract method 0xb59589d1. +// +// Solidity: function relay() view returns(address) +func (_Submission *SubmissionCaller) Relay(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "relay") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Relay is a free data retrieval call binding the contract method 0xb59589d1. +// +// Solidity: function relay() view returns(address) +func (_Submission *SubmissionSession) Relay() (common.Address, error) { + return _Submission.Contract.Relay(&_Submission.CallOpts) +} + +// Relay is a free data retrieval call binding the contract method 0xb59589d1. +// +// Solidity: function relay() view returns(address) +func (_Submission *SubmissionCallerSession) Relay() (common.Address, error) { + return _Submission.Contract.Relay(&_Submission.CallOpts) +} + +// Submit3MethodEnabled is a free data retrieval call binding the contract method 0x32de7a9f. +// +// Solidity: function submit3MethodEnabled() view returns(bool) +func (_Submission *SubmissionCaller) Submit3MethodEnabled(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "submit3MethodEnabled") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Submit3MethodEnabled is a free data retrieval call binding the contract method 0x32de7a9f. +// +// Solidity: function submit3MethodEnabled() view returns(bool) +func (_Submission *SubmissionSession) Submit3MethodEnabled() (bool, error) { + return _Submission.Contract.Submit3MethodEnabled(&_Submission.CallOpts) +} + +// Submit3MethodEnabled is a free data retrieval call binding the contract method 0x32de7a9f. +// +// Solidity: function submit3MethodEnabled() view returns(bool) +func (_Submission *SubmissionCallerSession) Submit3MethodEnabled() (bool, error) { + return _Submission.Contract.Submit3MethodEnabled(&_Submission.CallOpts) +} + +// SubmitAndPassContract is a free data retrieval call binding the contract method 0x93953af1. +// +// Solidity: function submitAndPassContract() view returns(address) +func (_Submission *SubmissionCaller) SubmitAndPassContract(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "submitAndPassContract") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// SubmitAndPassContract is a free data retrieval call binding the contract method 0x93953af1. +// +// Solidity: function submitAndPassContract() view returns(address) +func (_Submission *SubmissionSession) SubmitAndPassContract() (common.Address, error) { + return _Submission.Contract.SubmitAndPassContract(&_Submission.CallOpts) +} + +// SubmitAndPassContract is a free data retrieval call binding the contract method 0x93953af1. +// +// Solidity: function submitAndPassContract() view returns(address) +func (_Submission *SubmissionCallerSession) SubmitAndPassContract() (common.Address, error) { + return _Submission.Contract.SubmitAndPassContract(&_Submission.CallOpts) +} + +// SubmitAndPassSelector is a free data retrieval call binding the contract method 0xafd7f821. +// +// Solidity: function submitAndPassSelector() view returns(bytes4) +func (_Submission *SubmissionCaller) SubmitAndPassSelector(opts *bind.CallOpts) ([4]byte, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "submitAndPassSelector") + + if err != nil { + return *new([4]byte), err + } + + out0 := *abi.ConvertType(out[0], new([4]byte)).(*[4]byte) + + return out0, err + +} + +// SubmitAndPassSelector is a free data retrieval call binding the contract method 0xafd7f821. +// +// Solidity: function submitAndPassSelector() view returns(bytes4) +func (_Submission *SubmissionSession) SubmitAndPassSelector() ([4]byte, error) { + return _Submission.Contract.SubmitAndPassSelector(&_Submission.CallOpts) +} + +// SubmitAndPassSelector is a free data retrieval call binding the contract method 0xafd7f821. +// +// Solidity: function submitAndPassSelector() view returns(bytes4) +func (_Submission *SubmissionCallerSession) SubmitAndPassSelector() ([4]byte, error) { + return _Submission.Contract.SubmitAndPassSelector(&_Submission.CallOpts) +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Submission *SubmissionCaller) TimelockedCalls(opts *bind.CallOpts, selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + var out []interface{} + err := _Submission.contract.Call(opts, &out, "timelockedCalls", selector) + + outstruct := new(struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.AllowedAfterTimestamp = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.EncodedCall = *abi.ConvertType(out[1], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Submission *SubmissionSession) TimelockedCalls(selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + return _Submission.Contract.TimelockedCalls(&_Submission.CallOpts, selector) +} + +// TimelockedCalls is a free data retrieval call binding the contract method 0x74e6310e. +// +// Solidity: function timelockedCalls(bytes4 selector) view returns(uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Submission *SubmissionCallerSession) TimelockedCalls(selector [4]byte) (struct { + AllowedAfterTimestamp *big.Int + EncodedCall []byte +}, error) { + return _Submission.Contract.TimelockedCalls(&_Submission.CallOpts, selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_Submission *SubmissionTransactor) CancelGovernanceCall(opts *bind.TransactOpts, _selector [4]byte) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "cancelGovernanceCall", _selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_Submission *SubmissionSession) CancelGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _Submission.Contract.CancelGovernanceCall(&_Submission.TransactOpts, _selector) +} + +// CancelGovernanceCall is a paid mutator transaction binding the contract method 0x67fc4029. +// +// Solidity: function cancelGovernanceCall(bytes4 _selector) returns() +func (_Submission *SubmissionTransactorSession) CancelGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _Submission.Contract.CancelGovernanceCall(&_Submission.TransactOpts, _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_Submission *SubmissionTransactor) ExecuteGovernanceCall(opts *bind.TransactOpts, _selector [4]byte) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "executeGovernanceCall", _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_Submission *SubmissionSession) ExecuteGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _Submission.Contract.ExecuteGovernanceCall(&_Submission.TransactOpts, _selector) +} + +// ExecuteGovernanceCall is a paid mutator transaction binding the contract method 0x5ff27079. +// +// Solidity: function executeGovernanceCall(bytes4 _selector) returns() +func (_Submission *SubmissionTransactorSession) ExecuteGovernanceCall(_selector [4]byte) (*types.Transaction, error) { + return _Submission.Contract.ExecuteGovernanceCall(&_Submission.TransactOpts, _selector) +} + +// InitNewVotingRound is a paid mutator transaction binding the contract method 0xf8ae8a2f. +// +// Solidity: function initNewVotingRound(address[] _submit1Addresses, address[] _submit2Addresses, address[] _submit3Addresses, address[] _submitSignaturesAddresses) returns() +func (_Submission *SubmissionTransactor) InitNewVotingRound(opts *bind.TransactOpts, _submit1Addresses []common.Address, _submit2Addresses []common.Address, _submit3Addresses []common.Address, _submitSignaturesAddresses []common.Address) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "initNewVotingRound", _submit1Addresses, _submit2Addresses, _submit3Addresses, _submitSignaturesAddresses) +} + +// InitNewVotingRound is a paid mutator transaction binding the contract method 0xf8ae8a2f. +// +// Solidity: function initNewVotingRound(address[] _submit1Addresses, address[] _submit2Addresses, address[] _submit3Addresses, address[] _submitSignaturesAddresses) returns() +func (_Submission *SubmissionSession) InitNewVotingRound(_submit1Addresses []common.Address, _submit2Addresses []common.Address, _submit3Addresses []common.Address, _submitSignaturesAddresses []common.Address) (*types.Transaction, error) { + return _Submission.Contract.InitNewVotingRound(&_Submission.TransactOpts, _submit1Addresses, _submit2Addresses, _submit3Addresses, _submitSignaturesAddresses) +} + +// InitNewVotingRound is a paid mutator transaction binding the contract method 0xf8ae8a2f. +// +// Solidity: function initNewVotingRound(address[] _submit1Addresses, address[] _submit2Addresses, address[] _submit3Addresses, address[] _submitSignaturesAddresses) returns() +func (_Submission *SubmissionTransactorSession) InitNewVotingRound(_submit1Addresses []common.Address, _submit2Addresses []common.Address, _submit3Addresses []common.Address, _submitSignaturesAddresses []common.Address) (*types.Transaction, error) { + return _Submission.Contract.InitNewVotingRound(&_Submission.TransactOpts, _submit1Addresses, _submit2Addresses, _submit3Addresses, _submitSignaturesAddresses) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_Submission *SubmissionTransactor) Initialise(opts *bind.TransactOpts, _governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "initialise", _governanceSettings, _initialGovernance) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_Submission *SubmissionSession) Initialise(_governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _Submission.Contract.Initialise(&_Submission.TransactOpts, _governanceSettings, _initialGovernance) +} + +// Initialise is a paid mutator transaction binding the contract method 0xef88bf13. +// +// Solidity: function initialise(address _governanceSettings, address _initialGovernance) returns() +func (_Submission *SubmissionTransactorSession) Initialise(_governanceSettings common.Address, _initialGovernance common.Address) (*types.Transaction, error) { + return _Submission.Contract.Initialise(&_Submission.TransactOpts, _governanceSettings, _initialGovernance) +} + +// SetSubmit3MethodEnabled is a paid mutator transaction binding the contract method 0x941877d0. +// +// Solidity: function setSubmit3MethodEnabled(bool _enabled) returns() +func (_Submission *SubmissionTransactor) SetSubmit3MethodEnabled(opts *bind.TransactOpts, _enabled bool) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "setSubmit3MethodEnabled", _enabled) +} + +// SetSubmit3MethodEnabled is a paid mutator transaction binding the contract method 0x941877d0. +// +// Solidity: function setSubmit3MethodEnabled(bool _enabled) returns() +func (_Submission *SubmissionSession) SetSubmit3MethodEnabled(_enabled bool) (*types.Transaction, error) { + return _Submission.Contract.SetSubmit3MethodEnabled(&_Submission.TransactOpts, _enabled) +} + +// SetSubmit3MethodEnabled is a paid mutator transaction binding the contract method 0x941877d0. +// +// Solidity: function setSubmit3MethodEnabled(bool _enabled) returns() +func (_Submission *SubmissionTransactorSession) SetSubmit3MethodEnabled(_enabled bool) (*types.Transaction, error) { + return _Submission.Contract.SetSubmit3MethodEnabled(&_Submission.TransactOpts, _enabled) +} + +// SetSubmitAndPassData is a paid mutator transaction binding the contract method 0x9ee7fe4d. +// +// Solidity: function setSubmitAndPassData(address _submitAndPassContract, bytes4 _submitAndPassSelector) returns() +func (_Submission *SubmissionTransactor) SetSubmitAndPassData(opts *bind.TransactOpts, _submitAndPassContract common.Address, _submitAndPassSelector [4]byte) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "setSubmitAndPassData", _submitAndPassContract, _submitAndPassSelector) +} + +// SetSubmitAndPassData is a paid mutator transaction binding the contract method 0x9ee7fe4d. +// +// Solidity: function setSubmitAndPassData(address _submitAndPassContract, bytes4 _submitAndPassSelector) returns() +func (_Submission *SubmissionSession) SetSubmitAndPassData(_submitAndPassContract common.Address, _submitAndPassSelector [4]byte) (*types.Transaction, error) { + return _Submission.Contract.SetSubmitAndPassData(&_Submission.TransactOpts, _submitAndPassContract, _submitAndPassSelector) +} + +// SetSubmitAndPassData is a paid mutator transaction binding the contract method 0x9ee7fe4d. +// +// Solidity: function setSubmitAndPassData(address _submitAndPassContract, bytes4 _submitAndPassSelector) returns() +func (_Submission *SubmissionTransactorSession) SetSubmitAndPassData(_submitAndPassContract common.Address, _submitAndPassSelector [4]byte) (*types.Transaction, error) { + return _Submission.Contract.SetSubmitAndPassData(&_Submission.TransactOpts, _submitAndPassContract, _submitAndPassSelector) +} + +// Submit1 is a paid mutator transaction binding the contract method 0x6c532fae. +// +// Solidity: function submit1() returns(bool) +func (_Submission *SubmissionTransactor) Submit1(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "submit1") +} + +// Submit1 is a paid mutator transaction binding the contract method 0x6c532fae. +// +// Solidity: function submit1() returns(bool) +func (_Submission *SubmissionSession) Submit1() (*types.Transaction, error) { + return _Submission.Contract.Submit1(&_Submission.TransactOpts) +} + +// Submit1 is a paid mutator transaction binding the contract method 0x6c532fae. +// +// Solidity: function submit1() returns(bool) +func (_Submission *SubmissionTransactorSession) Submit1() (*types.Transaction, error) { + return _Submission.Contract.Submit1(&_Submission.TransactOpts) +} + +// Submit2 is a paid mutator transaction binding the contract method 0x9d00c9fd. +// +// Solidity: function submit2() returns(bool) +func (_Submission *SubmissionTransactor) Submit2(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "submit2") +} + +// Submit2 is a paid mutator transaction binding the contract method 0x9d00c9fd. +// +// Solidity: function submit2() returns(bool) +func (_Submission *SubmissionSession) Submit2() (*types.Transaction, error) { + return _Submission.Contract.Submit2(&_Submission.TransactOpts) +} + +// Submit2 is a paid mutator transaction binding the contract method 0x9d00c9fd. +// +// Solidity: function submit2() returns(bool) +func (_Submission *SubmissionTransactorSession) Submit2() (*types.Transaction, error) { + return _Submission.Contract.Submit2(&_Submission.TransactOpts) +} + +// Submit3 is a paid mutator transaction binding the contract method 0xe1b157e7. +// +// Solidity: function submit3() returns(bool) +func (_Submission *SubmissionTransactor) Submit3(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "submit3") +} + +// Submit3 is a paid mutator transaction binding the contract method 0xe1b157e7. +// +// Solidity: function submit3() returns(bool) +func (_Submission *SubmissionSession) Submit3() (*types.Transaction, error) { + return _Submission.Contract.Submit3(&_Submission.TransactOpts) +} + +// Submit3 is a paid mutator transaction binding the contract method 0xe1b157e7. +// +// Solidity: function submit3() returns(bool) +func (_Submission *SubmissionTransactorSession) Submit3() (*types.Transaction, error) { + return _Submission.Contract.Submit3(&_Submission.TransactOpts) +} + +// SubmitAndPass is a paid mutator transaction binding the contract method 0x833bf6c0. +// +// Solidity: function submitAndPass(bytes _data) returns(bool) +func (_Submission *SubmissionTransactor) SubmitAndPass(opts *bind.TransactOpts, _data []byte) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "submitAndPass", _data) +} + +// SubmitAndPass is a paid mutator transaction binding the contract method 0x833bf6c0. +// +// Solidity: function submitAndPass(bytes _data) returns(bool) +func (_Submission *SubmissionSession) SubmitAndPass(_data []byte) (*types.Transaction, error) { + return _Submission.Contract.SubmitAndPass(&_Submission.TransactOpts, _data) +} + +// SubmitAndPass is a paid mutator transaction binding the contract method 0x833bf6c0. +// +// Solidity: function submitAndPass(bytes _data) returns(bool) +func (_Submission *SubmissionTransactorSession) SubmitAndPass(_data []byte) (*types.Transaction, error) { + return _Submission.Contract.SubmitAndPass(&_Submission.TransactOpts, _data) +} + +// SubmitSignatures is a paid mutator transaction binding the contract method 0x57eed580. +// +// Solidity: function submitSignatures() returns(bool) +func (_Submission *SubmissionTransactor) SubmitSignatures(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "submitSignatures") +} + +// SubmitSignatures is a paid mutator transaction binding the contract method 0x57eed580. +// +// Solidity: function submitSignatures() returns(bool) +func (_Submission *SubmissionSession) SubmitSignatures() (*types.Transaction, error) { + return _Submission.Contract.SubmitSignatures(&_Submission.TransactOpts) +} + +// SubmitSignatures is a paid mutator transaction binding the contract method 0x57eed580. +// +// Solidity: function submitSignatures() returns(bool) +func (_Submission *SubmissionTransactorSession) SubmitSignatures() (*types.Transaction, error) { + return _Submission.Contract.SubmitSignatures(&_Submission.TransactOpts) +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_Submission *SubmissionTransactor) SwitchToProductionMode(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "switchToProductionMode") +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_Submission *SubmissionSession) SwitchToProductionMode() (*types.Transaction, error) { + return _Submission.Contract.SwitchToProductionMode(&_Submission.TransactOpts) +} + +// SwitchToProductionMode is a paid mutator transaction binding the contract method 0xf5a98383. +// +// Solidity: function switchToProductionMode() returns() +func (_Submission *SubmissionTransactorSession) SwitchToProductionMode() (*types.Transaction, error) { + return _Submission.Contract.SwitchToProductionMode(&_Submission.TransactOpts) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_Submission *SubmissionTransactor) UpdateContractAddresses(opts *bind.TransactOpts, _contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _Submission.contract.Transact(opts, "updateContractAddresses", _contractNameHashes, _contractAddresses) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_Submission *SubmissionSession) UpdateContractAddresses(_contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _Submission.Contract.UpdateContractAddresses(&_Submission.TransactOpts, _contractNameHashes, _contractAddresses) +} + +// UpdateContractAddresses is a paid mutator transaction binding the contract method 0xb00c0b76. +// +// Solidity: function updateContractAddresses(bytes32[] _contractNameHashes, address[] _contractAddresses) returns() +func (_Submission *SubmissionTransactorSession) UpdateContractAddresses(_contractNameHashes [][32]byte, _contractAddresses []common.Address) (*types.Transaction, error) { + return _Submission.Contract.UpdateContractAddresses(&_Submission.TransactOpts, _contractNameHashes, _contractAddresses) +} + +// SubmissionGovernanceCallTimelockedIterator is returned from FilterGovernanceCallTimelocked and is used to iterate over the raw logs and unpacked data for GovernanceCallTimelocked events raised by the Submission contract. +type SubmissionGovernanceCallTimelockedIterator struct { + Event *SubmissionGovernanceCallTimelocked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SubmissionGovernanceCallTimelockedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SubmissionGovernanceCallTimelocked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SubmissionGovernanceCallTimelocked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SubmissionGovernanceCallTimelockedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SubmissionGovernanceCallTimelockedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SubmissionGovernanceCallTimelocked represents a GovernanceCallTimelocked event raised by the Submission contract. +type SubmissionGovernanceCallTimelocked struct { + Selector [4]byte + AllowedAfterTimestamp *big.Int + EncodedCall []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernanceCallTimelocked is a free log retrieval operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Submission *SubmissionFilterer) FilterGovernanceCallTimelocked(opts *bind.FilterOpts) (*SubmissionGovernanceCallTimelockedIterator, error) { + + logs, sub, err := _Submission.contract.FilterLogs(opts, "GovernanceCallTimelocked") + if err != nil { + return nil, err + } + return &SubmissionGovernanceCallTimelockedIterator{contract: _Submission.contract, event: "GovernanceCallTimelocked", logs: logs, sub: sub}, nil +} + +// WatchGovernanceCallTimelocked is a free log subscription operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Submission *SubmissionFilterer) WatchGovernanceCallTimelocked(opts *bind.WatchOpts, sink chan<- *SubmissionGovernanceCallTimelocked) (event.Subscription, error) { + + logs, sub, err := _Submission.contract.WatchLogs(opts, "GovernanceCallTimelocked") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SubmissionGovernanceCallTimelocked) + if err := _Submission.contract.UnpackLog(event, "GovernanceCallTimelocked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernanceCallTimelocked is a log parse operation binding the contract event 0xed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b6. +// +// Solidity: event GovernanceCallTimelocked(bytes4 selector, uint256 allowedAfterTimestamp, bytes encodedCall) +func (_Submission *SubmissionFilterer) ParseGovernanceCallTimelocked(log types.Log) (*SubmissionGovernanceCallTimelocked, error) { + event := new(SubmissionGovernanceCallTimelocked) + if err := _Submission.contract.UnpackLog(event, "GovernanceCallTimelocked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SubmissionGovernanceInitialisedIterator is returned from FilterGovernanceInitialised and is used to iterate over the raw logs and unpacked data for GovernanceInitialised events raised by the Submission contract. +type SubmissionGovernanceInitialisedIterator struct { + Event *SubmissionGovernanceInitialised // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SubmissionGovernanceInitialisedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SubmissionGovernanceInitialised) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SubmissionGovernanceInitialised) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SubmissionGovernanceInitialisedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SubmissionGovernanceInitialisedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SubmissionGovernanceInitialised represents a GovernanceInitialised event raised by the Submission contract. +type SubmissionGovernanceInitialised struct { + InitialGovernance common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernanceInitialised is a free log retrieval operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_Submission *SubmissionFilterer) FilterGovernanceInitialised(opts *bind.FilterOpts) (*SubmissionGovernanceInitialisedIterator, error) { + + logs, sub, err := _Submission.contract.FilterLogs(opts, "GovernanceInitialised") + if err != nil { + return nil, err + } + return &SubmissionGovernanceInitialisedIterator{contract: _Submission.contract, event: "GovernanceInitialised", logs: logs, sub: sub}, nil +} + +// WatchGovernanceInitialised is a free log subscription operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_Submission *SubmissionFilterer) WatchGovernanceInitialised(opts *bind.WatchOpts, sink chan<- *SubmissionGovernanceInitialised) (event.Subscription, error) { + + logs, sub, err := _Submission.contract.WatchLogs(opts, "GovernanceInitialised") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SubmissionGovernanceInitialised) + if err := _Submission.contract.UnpackLog(event, "GovernanceInitialised", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernanceInitialised is a log parse operation binding the contract event 0x9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db. +// +// Solidity: event GovernanceInitialised(address initialGovernance) +func (_Submission *SubmissionFilterer) ParseGovernanceInitialised(log types.Log) (*SubmissionGovernanceInitialised, error) { + event := new(SubmissionGovernanceInitialised) + if err := _Submission.contract.UnpackLog(event, "GovernanceInitialised", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SubmissionGovernedProductionModeEnteredIterator is returned from FilterGovernedProductionModeEntered and is used to iterate over the raw logs and unpacked data for GovernedProductionModeEntered events raised by the Submission contract. +type SubmissionGovernedProductionModeEnteredIterator struct { + Event *SubmissionGovernedProductionModeEntered // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SubmissionGovernedProductionModeEnteredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SubmissionGovernedProductionModeEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SubmissionGovernedProductionModeEntered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SubmissionGovernedProductionModeEnteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SubmissionGovernedProductionModeEnteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SubmissionGovernedProductionModeEntered represents a GovernedProductionModeEntered event raised by the Submission contract. +type SubmissionGovernedProductionModeEntered struct { + GovernanceSettings common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterGovernedProductionModeEntered is a free log retrieval operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_Submission *SubmissionFilterer) FilterGovernedProductionModeEntered(opts *bind.FilterOpts) (*SubmissionGovernedProductionModeEnteredIterator, error) { + + logs, sub, err := _Submission.contract.FilterLogs(opts, "GovernedProductionModeEntered") + if err != nil { + return nil, err + } + return &SubmissionGovernedProductionModeEnteredIterator{contract: _Submission.contract, event: "GovernedProductionModeEntered", logs: logs, sub: sub}, nil +} + +// WatchGovernedProductionModeEntered is a free log subscription operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_Submission *SubmissionFilterer) WatchGovernedProductionModeEntered(opts *bind.WatchOpts, sink chan<- *SubmissionGovernedProductionModeEntered) (event.Subscription, error) { + + logs, sub, err := _Submission.contract.WatchLogs(opts, "GovernedProductionModeEntered") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SubmissionGovernedProductionModeEntered) + if err := _Submission.contract.UnpackLog(event, "GovernedProductionModeEntered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseGovernedProductionModeEntered is a log parse operation binding the contract event 0x83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c. +// +// Solidity: event GovernedProductionModeEntered(address governanceSettings) +func (_Submission *SubmissionFilterer) ParseGovernedProductionModeEntered(log types.Log) (*SubmissionGovernedProductionModeEntered, error) { + event := new(SubmissionGovernedProductionModeEntered) + if err := _Submission.contract.UnpackLog(event, "GovernedProductionModeEntered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SubmissionNewVotingRoundInitiatedIterator is returned from FilterNewVotingRoundInitiated and is used to iterate over the raw logs and unpacked data for NewVotingRoundInitiated events raised by the Submission contract. +type SubmissionNewVotingRoundInitiatedIterator struct { + Event *SubmissionNewVotingRoundInitiated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SubmissionNewVotingRoundInitiatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SubmissionNewVotingRoundInitiated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SubmissionNewVotingRoundInitiated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SubmissionNewVotingRoundInitiatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SubmissionNewVotingRoundInitiatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SubmissionNewVotingRoundInitiated represents a NewVotingRoundInitiated event raised by the Submission contract. +type SubmissionNewVotingRoundInitiated struct { + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNewVotingRoundInitiated is a free log retrieval operation binding the contract event 0xb74d3a815b816fdb5f14fb14f14bf86e1a87dcbc3f23150f1c32f89cd4622f3d. +// +// Solidity: event NewVotingRoundInitiated() +func (_Submission *SubmissionFilterer) FilterNewVotingRoundInitiated(opts *bind.FilterOpts) (*SubmissionNewVotingRoundInitiatedIterator, error) { + + logs, sub, err := _Submission.contract.FilterLogs(opts, "NewVotingRoundInitiated") + if err != nil { + return nil, err + } + return &SubmissionNewVotingRoundInitiatedIterator{contract: _Submission.contract, event: "NewVotingRoundInitiated", logs: logs, sub: sub}, nil +} + +// WatchNewVotingRoundInitiated is a free log subscription operation binding the contract event 0xb74d3a815b816fdb5f14fb14f14bf86e1a87dcbc3f23150f1c32f89cd4622f3d. +// +// Solidity: event NewVotingRoundInitiated() +func (_Submission *SubmissionFilterer) WatchNewVotingRoundInitiated(opts *bind.WatchOpts, sink chan<- *SubmissionNewVotingRoundInitiated) (event.Subscription, error) { + + logs, sub, err := _Submission.contract.WatchLogs(opts, "NewVotingRoundInitiated") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SubmissionNewVotingRoundInitiated) + if err := _Submission.contract.UnpackLog(event, "NewVotingRoundInitiated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNewVotingRoundInitiated is a log parse operation binding the contract event 0xb74d3a815b816fdb5f14fb14f14bf86e1a87dcbc3f23150f1c32f89cd4622f3d. +// +// Solidity: event NewVotingRoundInitiated() +func (_Submission *SubmissionFilterer) ParseNewVotingRoundInitiated(log types.Log) (*SubmissionNewVotingRoundInitiated, error) { + event := new(SubmissionNewVotingRoundInitiated) + if err := _Submission.contract.UnpackLog(event, "NewVotingRoundInitiated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SubmissionTimelockedGovernanceCallCanceledIterator is returned from FilterTimelockedGovernanceCallCanceled and is used to iterate over the raw logs and unpacked data for TimelockedGovernanceCallCanceled events raised by the Submission contract. +type SubmissionTimelockedGovernanceCallCanceledIterator struct { + Event *SubmissionTimelockedGovernanceCallCanceled // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SubmissionTimelockedGovernanceCallCanceledIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SubmissionTimelockedGovernanceCallCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SubmissionTimelockedGovernanceCallCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SubmissionTimelockedGovernanceCallCanceledIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SubmissionTimelockedGovernanceCallCanceledIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SubmissionTimelockedGovernanceCallCanceled represents a TimelockedGovernanceCallCanceled event raised by the Submission contract. +type SubmissionTimelockedGovernanceCallCanceled struct { + Selector [4]byte + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTimelockedGovernanceCallCanceled is a free log retrieval operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_Submission *SubmissionFilterer) FilterTimelockedGovernanceCallCanceled(opts *bind.FilterOpts) (*SubmissionTimelockedGovernanceCallCanceledIterator, error) { + + logs, sub, err := _Submission.contract.FilterLogs(opts, "TimelockedGovernanceCallCanceled") + if err != nil { + return nil, err + } + return &SubmissionTimelockedGovernanceCallCanceledIterator{contract: _Submission.contract, event: "TimelockedGovernanceCallCanceled", logs: logs, sub: sub}, nil +} + +// WatchTimelockedGovernanceCallCanceled is a free log subscription operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_Submission *SubmissionFilterer) WatchTimelockedGovernanceCallCanceled(opts *bind.WatchOpts, sink chan<- *SubmissionTimelockedGovernanceCallCanceled) (event.Subscription, error) { + + logs, sub, err := _Submission.contract.WatchLogs(opts, "TimelockedGovernanceCallCanceled") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SubmissionTimelockedGovernanceCallCanceled) + if err := _Submission.contract.UnpackLog(event, "TimelockedGovernanceCallCanceled", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTimelockedGovernanceCallCanceled is a log parse operation binding the contract event 0x7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8. +// +// Solidity: event TimelockedGovernanceCallCanceled(bytes4 selector, uint256 timestamp) +func (_Submission *SubmissionFilterer) ParseTimelockedGovernanceCallCanceled(log types.Log) (*SubmissionTimelockedGovernanceCallCanceled, error) { + event := new(SubmissionTimelockedGovernanceCallCanceled) + if err := _Submission.contract.UnpackLog(event, "TimelockedGovernanceCallCanceled", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SubmissionTimelockedGovernanceCallExecutedIterator is returned from FilterTimelockedGovernanceCallExecuted and is used to iterate over the raw logs and unpacked data for TimelockedGovernanceCallExecuted events raised by the Submission contract. +type SubmissionTimelockedGovernanceCallExecutedIterator struct { + Event *SubmissionTimelockedGovernanceCallExecuted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SubmissionTimelockedGovernanceCallExecutedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SubmissionTimelockedGovernanceCallExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SubmissionTimelockedGovernanceCallExecuted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SubmissionTimelockedGovernanceCallExecutedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SubmissionTimelockedGovernanceCallExecutedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SubmissionTimelockedGovernanceCallExecuted represents a TimelockedGovernanceCallExecuted event raised by the Submission contract. +type SubmissionTimelockedGovernanceCallExecuted struct { + Selector [4]byte + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTimelockedGovernanceCallExecuted is a free log retrieval operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_Submission *SubmissionFilterer) FilterTimelockedGovernanceCallExecuted(opts *bind.FilterOpts) (*SubmissionTimelockedGovernanceCallExecutedIterator, error) { + + logs, sub, err := _Submission.contract.FilterLogs(opts, "TimelockedGovernanceCallExecuted") + if err != nil { + return nil, err + } + return &SubmissionTimelockedGovernanceCallExecutedIterator{contract: _Submission.contract, event: "TimelockedGovernanceCallExecuted", logs: logs, sub: sub}, nil +} + +// WatchTimelockedGovernanceCallExecuted is a free log subscription operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_Submission *SubmissionFilterer) WatchTimelockedGovernanceCallExecuted(opts *bind.WatchOpts, sink chan<- *SubmissionTimelockedGovernanceCallExecuted) (event.Subscription, error) { + + logs, sub, err := _Submission.contract.WatchLogs(opts, "TimelockedGovernanceCallExecuted") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SubmissionTimelockedGovernanceCallExecuted) + if err := _Submission.contract.UnpackLog(event, "TimelockedGovernanceCallExecuted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTimelockedGovernanceCallExecuted is a log parse operation binding the contract event 0xa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438. +// +// Solidity: event TimelockedGovernanceCallExecuted(bytes4 selector, uint256 timestamp) +func (_Submission *SubmissionFilterer) ParseTimelockedGovernanceCallExecuted(log types.Log) (*SubmissionTimelockedGovernanceCallExecuted, error) { + event := new(SubmissionTimelockedGovernanceCallExecuted) + if err := _Submission.contract.UnpackLog(event, "TimelockedGovernanceCallExecuted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/go-client/contracts-interface/system_manager/FlareSystemManager.go b/go-client/contracts-interface/system_manager/FlareSystemManager.go new file mode 100644 index 0000000..e2a20fe --- /dev/null +++ b/go-client/contracts-interface/system_manager/FlareSystemManager.go @@ -0,0 +1,1936 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package system_manager + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IFlareSystemsManagerNumberOfWeightBasedClaims is an auto generated low-level Go binding around an user-defined struct. +type IFlareSystemsManagerNumberOfWeightBasedClaims struct { + RewardManagerId *big.Int + NoOfWeightBasedClaims *big.Int +} + +// IFlareSystemsManagerSignature is an auto generated low-level Go binding around an user-defined struct. +type IFlareSystemsManagerSignature struct { + V uint8 + R [32]byte + S [32]byte +} + +// SystemManagerMetaData contains all meta data concerning the SystemManager contract. +var SystemManagerMetaData = &bind.MetaData{ + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"RandomAcquisitionStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"startVotingRoundId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"RewardEpochStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signingPolicyAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"rewardsHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"rewardManagerId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"noOfWeightBasedClaims\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structIFlareSystemsManager.NumberOfWeightBasedClaims[]\",\"name\":\"noOfWeightBasedClaims\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"thresholdReached\",\"type\":\"bool\"}],\"name\":\"RewardsSigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"SignUptimeVoteEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signingPolicyAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"thresholdReached\",\"type\":\"bool\"}],\"name\":\"SigningPolicySigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signingPolicyAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uptimeVoteHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"thresholdReached\",\"type\":\"bool\"}],\"name\":\"UptimeVoteSigned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signingPolicyAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes20[]\",\"name\":\"nodeIds\",\"type\":\"bytes20[]\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"UptimeVoteSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"votePowerBlock\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"VotePowerBlockSelected\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"firstRewardEpochStartTs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"firstVotingRoundStartTs\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentRewardEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentRewardEpochId\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentVotingEpochId\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"getSeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"getStartVotingRoundId\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"getThreshold\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"getVotePowerBlock\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"_votePowerBlock\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"getVoterRegistrationData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_votePowerBlock\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_enabled\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isVoterRegistrationEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardEpochDurationSeconds\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"_rewardEpochId\",\"type\":\"uint24\"},{\"internalType\":\"bytes32\",\"name\":\"_newSigningPolicyHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIFlareSystemsManager.Signature\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"signNewSigningPolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"_rewardEpochId\",\"type\":\"uint24\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"rewardManagerId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"noOfWeightBasedClaims\",\"type\":\"uint256\"}],\"internalType\":\"structIFlareSystemsManager.NumberOfWeightBasedClaims[]\",\"name\":\"_noOfWeightBasedClaims\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"_rewardsHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIFlareSystemsManager.Signature\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"signRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"_rewardEpochId\",\"type\":\"uint24\"},{\"internalType\":\"bytes32\",\"name\":\"_uptimeVoteHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIFlareSystemsManager.Signature\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"signUptimeVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"_rewardEpochId\",\"type\":\"uint24\"},{\"internalType\":\"bytes20[]\",\"name\":\"_nodeIds\",\"type\":\"bytes20[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIFlareSystemsManager.Signature\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"submitUptimeVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingEpochDurationSeconds\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", +} + +// SystemManagerABI is the input ABI used to generate the binding from. +// Deprecated: Use SystemManagerMetaData.ABI instead. +var SystemManagerABI = SystemManagerMetaData.ABI + +// SystemManager is an auto generated Go binding around an Ethereum contract. +type SystemManager struct { + SystemManagerCaller // Read-only binding to the contract + SystemManagerTransactor // Write-only binding to the contract + SystemManagerFilterer // Log filterer for contract events +} + +// SystemManagerCaller is an auto generated read-only Go binding around an Ethereum contract. +type SystemManagerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SystemManagerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SystemManagerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SystemManagerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SystemManagerSession struct { + Contract *SystemManager // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SystemManagerCallerSession struct { + Contract *SystemManagerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SystemManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SystemManagerTransactorSession struct { + Contract *SystemManagerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SystemManagerRaw is an auto generated low-level Go binding around an Ethereum contract. +type SystemManagerRaw struct { + Contract *SystemManager // Generic contract binding to access the raw methods on +} + +// SystemManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SystemManagerCallerRaw struct { + Contract *SystemManagerCaller // Generic read-only contract binding to access the raw methods on +} + +// SystemManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SystemManagerTransactorRaw struct { + Contract *SystemManagerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSystemManager creates a new instance of SystemManager, bound to a specific deployed contract. +func NewSystemManager(address common.Address, backend bind.ContractBackend) (*SystemManager, error) { + contract, err := bindSystemManager(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SystemManager{SystemManagerCaller: SystemManagerCaller{contract: contract}, SystemManagerTransactor: SystemManagerTransactor{contract: contract}, SystemManagerFilterer: SystemManagerFilterer{contract: contract}}, nil +} + +// NewSystemManagerCaller creates a new read-only instance of SystemManager, bound to a specific deployed contract. +func NewSystemManagerCaller(address common.Address, caller bind.ContractCaller) (*SystemManagerCaller, error) { + contract, err := bindSystemManager(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SystemManagerCaller{contract: contract}, nil +} + +// NewSystemManagerTransactor creates a new write-only instance of SystemManager, bound to a specific deployed contract. +func NewSystemManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*SystemManagerTransactor, error) { + contract, err := bindSystemManager(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SystemManagerTransactor{contract: contract}, nil +} + +// NewSystemManagerFilterer creates a new log filterer instance of SystemManager, bound to a specific deployed contract. +func NewSystemManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*SystemManagerFilterer, error) { + contract, err := bindSystemManager(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SystemManagerFilterer{contract: contract}, nil +} + +// bindSystemManager binds a generic wrapper to an already deployed contract. +func bindSystemManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := SystemManagerMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemManager *SystemManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemManager.Contract.SystemManagerCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemManager *SystemManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemManager.Contract.SystemManagerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemManager *SystemManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemManager.Contract.SystemManagerTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SystemManager *SystemManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SystemManager.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SystemManager *SystemManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SystemManager.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SystemManager *SystemManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SystemManager.Contract.contract.Transact(opts, method, params...) +} + +// FirstRewardEpochStartTs is a free data retrieval call binding the contract method 0x79e047ed. +// +// Solidity: function firstRewardEpochStartTs() view returns(uint64) +func (_SystemManager *SystemManagerCaller) FirstRewardEpochStartTs(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "firstRewardEpochStartTs") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// FirstRewardEpochStartTs is a free data retrieval call binding the contract method 0x79e047ed. +// +// Solidity: function firstRewardEpochStartTs() view returns(uint64) +func (_SystemManager *SystemManagerSession) FirstRewardEpochStartTs() (uint64, error) { + return _SystemManager.Contract.FirstRewardEpochStartTs(&_SystemManager.CallOpts) +} + +// FirstRewardEpochStartTs is a free data retrieval call binding the contract method 0x79e047ed. +// +// Solidity: function firstRewardEpochStartTs() view returns(uint64) +func (_SystemManager *SystemManagerCallerSession) FirstRewardEpochStartTs() (uint64, error) { + return _SystemManager.Contract.FirstRewardEpochStartTs(&_SystemManager.CallOpts) +} + +// FirstVotingRoundStartTs is a free data retrieval call binding the contract method 0xe8d0e70a. +// +// Solidity: function firstVotingRoundStartTs() view returns(uint64) +func (_SystemManager *SystemManagerCaller) FirstVotingRoundStartTs(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "firstVotingRoundStartTs") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// FirstVotingRoundStartTs is a free data retrieval call binding the contract method 0xe8d0e70a. +// +// Solidity: function firstVotingRoundStartTs() view returns(uint64) +func (_SystemManager *SystemManagerSession) FirstVotingRoundStartTs() (uint64, error) { + return _SystemManager.Contract.FirstVotingRoundStartTs(&_SystemManager.CallOpts) +} + +// FirstVotingRoundStartTs is a free data retrieval call binding the contract method 0xe8d0e70a. +// +// Solidity: function firstVotingRoundStartTs() view returns(uint64) +func (_SystemManager *SystemManagerCallerSession) FirstVotingRoundStartTs() (uint64, error) { + return _SystemManager.Contract.FirstVotingRoundStartTs(&_SystemManager.CallOpts) +} + +// GetCurrentRewardEpoch is a free data retrieval call binding the contract method 0xe7c830d4. +// +// Solidity: function getCurrentRewardEpoch() view returns(uint256) +func (_SystemManager *SystemManagerCaller) GetCurrentRewardEpoch(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "getCurrentRewardEpoch") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCurrentRewardEpoch is a free data retrieval call binding the contract method 0xe7c830d4. +// +// Solidity: function getCurrentRewardEpoch() view returns(uint256) +func (_SystemManager *SystemManagerSession) GetCurrentRewardEpoch() (*big.Int, error) { + return _SystemManager.Contract.GetCurrentRewardEpoch(&_SystemManager.CallOpts) +} + +// GetCurrentRewardEpoch is a free data retrieval call binding the contract method 0xe7c830d4. +// +// Solidity: function getCurrentRewardEpoch() view returns(uint256) +func (_SystemManager *SystemManagerCallerSession) GetCurrentRewardEpoch() (*big.Int, error) { + return _SystemManager.Contract.GetCurrentRewardEpoch(&_SystemManager.CallOpts) +} + +// GetCurrentRewardEpochId is a free data retrieval call binding the contract method 0x70562697. +// +// Solidity: function getCurrentRewardEpochId() view returns(uint24) +func (_SystemManager *SystemManagerCaller) GetCurrentRewardEpochId(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "getCurrentRewardEpochId") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCurrentRewardEpochId is a free data retrieval call binding the contract method 0x70562697. +// +// Solidity: function getCurrentRewardEpochId() view returns(uint24) +func (_SystemManager *SystemManagerSession) GetCurrentRewardEpochId() (*big.Int, error) { + return _SystemManager.Contract.GetCurrentRewardEpochId(&_SystemManager.CallOpts) +} + +// GetCurrentRewardEpochId is a free data retrieval call binding the contract method 0x70562697. +// +// Solidity: function getCurrentRewardEpochId() view returns(uint24) +func (_SystemManager *SystemManagerCallerSession) GetCurrentRewardEpochId() (*big.Int, error) { + return _SystemManager.Contract.GetCurrentRewardEpochId(&_SystemManager.CallOpts) +} + +// GetCurrentVotingEpochId is a free data retrieval call binding the contract method 0x4134520b. +// +// Solidity: function getCurrentVotingEpochId() view returns(uint32) +func (_SystemManager *SystemManagerCaller) GetCurrentVotingEpochId(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "getCurrentVotingEpochId") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// GetCurrentVotingEpochId is a free data retrieval call binding the contract method 0x4134520b. +// +// Solidity: function getCurrentVotingEpochId() view returns(uint32) +func (_SystemManager *SystemManagerSession) GetCurrentVotingEpochId() (uint32, error) { + return _SystemManager.Contract.GetCurrentVotingEpochId(&_SystemManager.CallOpts) +} + +// GetCurrentVotingEpochId is a free data retrieval call binding the contract method 0x4134520b. +// +// Solidity: function getCurrentVotingEpochId() view returns(uint32) +func (_SystemManager *SystemManagerCallerSession) GetCurrentVotingEpochId() (uint32, error) { + return _SystemManager.Contract.GetCurrentVotingEpochId(&_SystemManager.CallOpts) +} + +// GetSeed is a free data retrieval call binding the contract method 0xe0d4ea37. +// +// Solidity: function getSeed(uint256 _rewardEpochId) view returns(uint256) +func (_SystemManager *SystemManagerCaller) GetSeed(opts *bind.CallOpts, _rewardEpochId *big.Int) (*big.Int, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "getSeed", _rewardEpochId) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetSeed is a free data retrieval call binding the contract method 0xe0d4ea37. +// +// Solidity: function getSeed(uint256 _rewardEpochId) view returns(uint256) +func (_SystemManager *SystemManagerSession) GetSeed(_rewardEpochId *big.Int) (*big.Int, error) { + return _SystemManager.Contract.GetSeed(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetSeed is a free data retrieval call binding the contract method 0xe0d4ea37. +// +// Solidity: function getSeed(uint256 _rewardEpochId) view returns(uint256) +func (_SystemManager *SystemManagerCallerSession) GetSeed(_rewardEpochId *big.Int) (*big.Int, error) { + return _SystemManager.Contract.GetSeed(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetStartVotingRoundId is a free data retrieval call binding the contract method 0x75d2187a. +// +// Solidity: function getStartVotingRoundId(uint256 _rewardEpochId) view returns(uint32) +func (_SystemManager *SystemManagerCaller) GetStartVotingRoundId(opts *bind.CallOpts, _rewardEpochId *big.Int) (uint32, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "getStartVotingRoundId", _rewardEpochId) + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// GetStartVotingRoundId is a free data retrieval call binding the contract method 0x75d2187a. +// +// Solidity: function getStartVotingRoundId(uint256 _rewardEpochId) view returns(uint32) +func (_SystemManager *SystemManagerSession) GetStartVotingRoundId(_rewardEpochId *big.Int) (uint32, error) { + return _SystemManager.Contract.GetStartVotingRoundId(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetStartVotingRoundId is a free data retrieval call binding the contract method 0x75d2187a. +// +// Solidity: function getStartVotingRoundId(uint256 _rewardEpochId) view returns(uint32) +func (_SystemManager *SystemManagerCallerSession) GetStartVotingRoundId(_rewardEpochId *big.Int) (uint32, error) { + return _SystemManager.Contract.GetStartVotingRoundId(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetThreshold is a free data retrieval call binding the contract method 0x4615d5e9. +// +// Solidity: function getThreshold(uint256 _rewardEpochId) view returns(uint16) +func (_SystemManager *SystemManagerCaller) GetThreshold(opts *bind.CallOpts, _rewardEpochId *big.Int) (uint16, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "getThreshold", _rewardEpochId) + + if err != nil { + return *new(uint16), err + } + + out0 := *abi.ConvertType(out[0], new(uint16)).(*uint16) + + return out0, err + +} + +// GetThreshold is a free data retrieval call binding the contract method 0x4615d5e9. +// +// Solidity: function getThreshold(uint256 _rewardEpochId) view returns(uint16) +func (_SystemManager *SystemManagerSession) GetThreshold(_rewardEpochId *big.Int) (uint16, error) { + return _SystemManager.Contract.GetThreshold(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetThreshold is a free data retrieval call binding the contract method 0x4615d5e9. +// +// Solidity: function getThreshold(uint256 _rewardEpochId) view returns(uint16) +func (_SystemManager *SystemManagerCallerSession) GetThreshold(_rewardEpochId *big.Int) (uint16, error) { + return _SystemManager.Contract.GetThreshold(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetVotePowerBlock is a free data retrieval call binding the contract method 0xc2632216. +// +// Solidity: function getVotePowerBlock(uint256 _rewardEpochId) view returns(uint64 _votePowerBlock) +func (_SystemManager *SystemManagerCaller) GetVotePowerBlock(opts *bind.CallOpts, _rewardEpochId *big.Int) (uint64, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "getVotePowerBlock", _rewardEpochId) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// GetVotePowerBlock is a free data retrieval call binding the contract method 0xc2632216. +// +// Solidity: function getVotePowerBlock(uint256 _rewardEpochId) view returns(uint64 _votePowerBlock) +func (_SystemManager *SystemManagerSession) GetVotePowerBlock(_rewardEpochId *big.Int) (uint64, error) { + return _SystemManager.Contract.GetVotePowerBlock(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetVotePowerBlock is a free data retrieval call binding the contract method 0xc2632216. +// +// Solidity: function getVotePowerBlock(uint256 _rewardEpochId) view returns(uint64 _votePowerBlock) +func (_SystemManager *SystemManagerCallerSession) GetVotePowerBlock(_rewardEpochId *big.Int) (uint64, error) { + return _SystemManager.Contract.GetVotePowerBlock(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetVoterRegistrationData is a free data retrieval call binding the contract method 0x1703a788. +// +// Solidity: function getVoterRegistrationData(uint256 _rewardEpochId) view returns(uint256 _votePowerBlock, bool _enabled) +func (_SystemManager *SystemManagerCaller) GetVoterRegistrationData(opts *bind.CallOpts, _rewardEpochId *big.Int) (struct { + VotePowerBlock *big.Int + Enabled bool +}, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "getVoterRegistrationData", _rewardEpochId) + + outstruct := new(struct { + VotePowerBlock *big.Int + Enabled bool + }) + if err != nil { + return *outstruct, err + } + + outstruct.VotePowerBlock = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.Enabled = *abi.ConvertType(out[1], new(bool)).(*bool) + + return *outstruct, err + +} + +// GetVoterRegistrationData is a free data retrieval call binding the contract method 0x1703a788. +// +// Solidity: function getVoterRegistrationData(uint256 _rewardEpochId) view returns(uint256 _votePowerBlock, bool _enabled) +func (_SystemManager *SystemManagerSession) GetVoterRegistrationData(_rewardEpochId *big.Int) (struct { + VotePowerBlock *big.Int + Enabled bool +}, error) { + return _SystemManager.Contract.GetVoterRegistrationData(&_SystemManager.CallOpts, _rewardEpochId) +} + +// GetVoterRegistrationData is a free data retrieval call binding the contract method 0x1703a788. +// +// Solidity: function getVoterRegistrationData(uint256 _rewardEpochId) view returns(uint256 _votePowerBlock, bool _enabled) +func (_SystemManager *SystemManagerCallerSession) GetVoterRegistrationData(_rewardEpochId *big.Int) (struct { + VotePowerBlock *big.Int + Enabled bool +}, error) { + return _SystemManager.Contract.GetVoterRegistrationData(&_SystemManager.CallOpts, _rewardEpochId) +} + +// IsVoterRegistrationEnabled is a free data retrieval call binding the contract method 0x09505d25. +// +// Solidity: function isVoterRegistrationEnabled() view returns(bool) +func (_SystemManager *SystemManagerCaller) IsVoterRegistrationEnabled(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "isVoterRegistrationEnabled") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsVoterRegistrationEnabled is a free data retrieval call binding the contract method 0x09505d25. +// +// Solidity: function isVoterRegistrationEnabled() view returns(bool) +func (_SystemManager *SystemManagerSession) IsVoterRegistrationEnabled() (bool, error) { + return _SystemManager.Contract.IsVoterRegistrationEnabled(&_SystemManager.CallOpts) +} + +// IsVoterRegistrationEnabled is a free data retrieval call binding the contract method 0x09505d25. +// +// Solidity: function isVoterRegistrationEnabled() view returns(bool) +func (_SystemManager *SystemManagerCallerSession) IsVoterRegistrationEnabled() (bool, error) { + return _SystemManager.Contract.IsVoterRegistrationEnabled(&_SystemManager.CallOpts) +} + +// RewardEpochDurationSeconds is a free data retrieval call binding the contract method 0x85f3c9c9. +// +// Solidity: function rewardEpochDurationSeconds() view returns(uint64) +func (_SystemManager *SystemManagerCaller) RewardEpochDurationSeconds(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "rewardEpochDurationSeconds") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// RewardEpochDurationSeconds is a free data retrieval call binding the contract method 0x85f3c9c9. +// +// Solidity: function rewardEpochDurationSeconds() view returns(uint64) +func (_SystemManager *SystemManagerSession) RewardEpochDurationSeconds() (uint64, error) { + return _SystemManager.Contract.RewardEpochDurationSeconds(&_SystemManager.CallOpts) +} + +// RewardEpochDurationSeconds is a free data retrieval call binding the contract method 0x85f3c9c9. +// +// Solidity: function rewardEpochDurationSeconds() view returns(uint64) +func (_SystemManager *SystemManagerCallerSession) RewardEpochDurationSeconds() (uint64, error) { + return _SystemManager.Contract.RewardEpochDurationSeconds(&_SystemManager.CallOpts) +} + +// VotingEpochDurationSeconds is a free data retrieval call binding the contract method 0x5a832088. +// +// Solidity: function votingEpochDurationSeconds() view returns(uint64) +func (_SystemManager *SystemManagerCaller) VotingEpochDurationSeconds(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _SystemManager.contract.Call(opts, &out, "votingEpochDurationSeconds") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// VotingEpochDurationSeconds is a free data retrieval call binding the contract method 0x5a832088. +// +// Solidity: function votingEpochDurationSeconds() view returns(uint64) +func (_SystemManager *SystemManagerSession) VotingEpochDurationSeconds() (uint64, error) { + return _SystemManager.Contract.VotingEpochDurationSeconds(&_SystemManager.CallOpts) +} + +// VotingEpochDurationSeconds is a free data retrieval call binding the contract method 0x5a832088. +// +// Solidity: function votingEpochDurationSeconds() view returns(uint64) +func (_SystemManager *SystemManagerCallerSession) VotingEpochDurationSeconds() (uint64, error) { + return _SystemManager.Contract.VotingEpochDurationSeconds(&_SystemManager.CallOpts) +} + +// SignNewSigningPolicy is a paid mutator transaction binding the contract method 0x6b4c7bd6. +// +// Solidity: function signNewSigningPolicy(uint24 _rewardEpochId, bytes32 _newSigningPolicyHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerTransactor) SignNewSigningPolicy(opts *bind.TransactOpts, _rewardEpochId *big.Int, _newSigningPolicyHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.contract.Transact(opts, "signNewSigningPolicy", _rewardEpochId, _newSigningPolicyHash, _signature) +} + +// SignNewSigningPolicy is a paid mutator transaction binding the contract method 0x6b4c7bd6. +// +// Solidity: function signNewSigningPolicy(uint24 _rewardEpochId, bytes32 _newSigningPolicyHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerSession) SignNewSigningPolicy(_rewardEpochId *big.Int, _newSigningPolicyHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.Contract.SignNewSigningPolicy(&_SystemManager.TransactOpts, _rewardEpochId, _newSigningPolicyHash, _signature) +} + +// SignNewSigningPolicy is a paid mutator transaction binding the contract method 0x6b4c7bd6. +// +// Solidity: function signNewSigningPolicy(uint24 _rewardEpochId, bytes32 _newSigningPolicyHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerTransactorSession) SignNewSigningPolicy(_rewardEpochId *big.Int, _newSigningPolicyHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.Contract.SignNewSigningPolicy(&_SystemManager.TransactOpts, _rewardEpochId, _newSigningPolicyHash, _signature) +} + +// SignRewards is a paid mutator transaction binding the contract method 0xc00a1a97. +// +// Solidity: function signRewards(uint24 _rewardEpochId, (uint256,uint256)[] _noOfWeightBasedClaims, bytes32 _rewardsHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerTransactor) SignRewards(opts *bind.TransactOpts, _rewardEpochId *big.Int, _noOfWeightBasedClaims []IFlareSystemsManagerNumberOfWeightBasedClaims, _rewardsHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.contract.Transact(opts, "signRewards", _rewardEpochId, _noOfWeightBasedClaims, _rewardsHash, _signature) +} + +// SignRewards is a paid mutator transaction binding the contract method 0xc00a1a97. +// +// Solidity: function signRewards(uint24 _rewardEpochId, (uint256,uint256)[] _noOfWeightBasedClaims, bytes32 _rewardsHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerSession) SignRewards(_rewardEpochId *big.Int, _noOfWeightBasedClaims []IFlareSystemsManagerNumberOfWeightBasedClaims, _rewardsHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.Contract.SignRewards(&_SystemManager.TransactOpts, _rewardEpochId, _noOfWeightBasedClaims, _rewardsHash, _signature) +} + +// SignRewards is a paid mutator transaction binding the contract method 0xc00a1a97. +// +// Solidity: function signRewards(uint24 _rewardEpochId, (uint256,uint256)[] _noOfWeightBasedClaims, bytes32 _rewardsHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerTransactorSession) SignRewards(_rewardEpochId *big.Int, _noOfWeightBasedClaims []IFlareSystemsManagerNumberOfWeightBasedClaims, _rewardsHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.Contract.SignRewards(&_SystemManager.TransactOpts, _rewardEpochId, _noOfWeightBasedClaims, _rewardsHash, _signature) +} + +// SignUptimeVote is a paid mutator transaction binding the contract method 0xdc5a4225. +// +// Solidity: function signUptimeVote(uint24 _rewardEpochId, bytes32 _uptimeVoteHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerTransactor) SignUptimeVote(opts *bind.TransactOpts, _rewardEpochId *big.Int, _uptimeVoteHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.contract.Transact(opts, "signUptimeVote", _rewardEpochId, _uptimeVoteHash, _signature) +} + +// SignUptimeVote is a paid mutator transaction binding the contract method 0xdc5a4225. +// +// Solidity: function signUptimeVote(uint24 _rewardEpochId, bytes32 _uptimeVoteHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerSession) SignUptimeVote(_rewardEpochId *big.Int, _uptimeVoteHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.Contract.SignUptimeVote(&_SystemManager.TransactOpts, _rewardEpochId, _uptimeVoteHash, _signature) +} + +// SignUptimeVote is a paid mutator transaction binding the contract method 0xdc5a4225. +// +// Solidity: function signUptimeVote(uint24 _rewardEpochId, bytes32 _uptimeVoteHash, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerTransactorSession) SignUptimeVote(_rewardEpochId *big.Int, _uptimeVoteHash [32]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.Contract.SignUptimeVote(&_SystemManager.TransactOpts, _rewardEpochId, _uptimeVoteHash, _signature) +} + +// SubmitUptimeVote is a paid mutator transaction binding the contract method 0x9dd6850f. +// +// Solidity: function submitUptimeVote(uint24 _rewardEpochId, bytes20[] _nodeIds, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerTransactor) SubmitUptimeVote(opts *bind.TransactOpts, _rewardEpochId *big.Int, _nodeIds [][20]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.contract.Transact(opts, "submitUptimeVote", _rewardEpochId, _nodeIds, _signature) +} + +// SubmitUptimeVote is a paid mutator transaction binding the contract method 0x9dd6850f. +// +// Solidity: function submitUptimeVote(uint24 _rewardEpochId, bytes20[] _nodeIds, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerSession) SubmitUptimeVote(_rewardEpochId *big.Int, _nodeIds [][20]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.Contract.SubmitUptimeVote(&_SystemManager.TransactOpts, _rewardEpochId, _nodeIds, _signature) +} + +// SubmitUptimeVote is a paid mutator transaction binding the contract method 0x9dd6850f. +// +// Solidity: function submitUptimeVote(uint24 _rewardEpochId, bytes20[] _nodeIds, (uint8,bytes32,bytes32) _signature) returns() +func (_SystemManager *SystemManagerTransactorSession) SubmitUptimeVote(_rewardEpochId *big.Int, _nodeIds [][20]byte, _signature IFlareSystemsManagerSignature) (*types.Transaction, error) { + return _SystemManager.Contract.SubmitUptimeVote(&_SystemManager.TransactOpts, _rewardEpochId, _nodeIds, _signature) +} + +// SystemManagerRandomAcquisitionStartedIterator is returned from FilterRandomAcquisitionStarted and is used to iterate over the raw logs and unpacked data for RandomAcquisitionStarted events raised by the SystemManager contract. +type SystemManagerRandomAcquisitionStartedIterator struct { + Event *SystemManagerRandomAcquisitionStarted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemManagerRandomAcquisitionStartedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemManagerRandomAcquisitionStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemManagerRandomAcquisitionStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemManagerRandomAcquisitionStartedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemManagerRandomAcquisitionStartedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemManagerRandomAcquisitionStarted represents a RandomAcquisitionStarted event raised by the SystemManager contract. +type SystemManagerRandomAcquisitionStarted struct { + RewardEpochId *big.Int + Timestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRandomAcquisitionStarted is a free log retrieval operation binding the contract event 0xf9991783e5e480e42d9a54d3f35f4321857f8f0ebeb3742d326dce28b1126708. +// +// Solidity: event RandomAcquisitionStarted(uint24 indexed rewardEpochId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) FilterRandomAcquisitionStarted(opts *bind.FilterOpts, rewardEpochId []*big.Int) (*SystemManagerRandomAcquisitionStartedIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _SystemManager.contract.FilterLogs(opts, "RandomAcquisitionStarted", rewardEpochIdRule) + if err != nil { + return nil, err + } + return &SystemManagerRandomAcquisitionStartedIterator{contract: _SystemManager.contract, event: "RandomAcquisitionStarted", logs: logs, sub: sub}, nil +} + +// WatchRandomAcquisitionStarted is a free log subscription operation binding the contract event 0xf9991783e5e480e42d9a54d3f35f4321857f8f0ebeb3742d326dce28b1126708. +// +// Solidity: event RandomAcquisitionStarted(uint24 indexed rewardEpochId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) WatchRandomAcquisitionStarted(opts *bind.WatchOpts, sink chan<- *SystemManagerRandomAcquisitionStarted, rewardEpochId []*big.Int) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _SystemManager.contract.WatchLogs(opts, "RandomAcquisitionStarted", rewardEpochIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemManagerRandomAcquisitionStarted) + if err := _SystemManager.contract.UnpackLog(event, "RandomAcquisitionStarted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRandomAcquisitionStarted is a log parse operation binding the contract event 0xf9991783e5e480e42d9a54d3f35f4321857f8f0ebeb3742d326dce28b1126708. +// +// Solidity: event RandomAcquisitionStarted(uint24 indexed rewardEpochId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) ParseRandomAcquisitionStarted(log types.Log) (*SystemManagerRandomAcquisitionStarted, error) { + event := new(SystemManagerRandomAcquisitionStarted) + if err := _SystemManager.contract.UnpackLog(event, "RandomAcquisitionStarted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemManagerRewardEpochStartedIterator is returned from FilterRewardEpochStarted and is used to iterate over the raw logs and unpacked data for RewardEpochStarted events raised by the SystemManager contract. +type SystemManagerRewardEpochStartedIterator struct { + Event *SystemManagerRewardEpochStarted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemManagerRewardEpochStartedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemManagerRewardEpochStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemManagerRewardEpochStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemManagerRewardEpochStartedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemManagerRewardEpochStartedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemManagerRewardEpochStarted represents a RewardEpochStarted event raised by the SystemManager contract. +type SystemManagerRewardEpochStarted struct { + RewardEpochId *big.Int + StartVotingRoundId uint32 + Timestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRewardEpochStarted is a free log retrieval operation binding the contract event 0x4abb62ab1e4c42a11b90e4e45b92af1274f74cc634b759518e8c99e000d8be6d. +// +// Solidity: event RewardEpochStarted(uint24 indexed rewardEpochId, uint32 startVotingRoundId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) FilterRewardEpochStarted(opts *bind.FilterOpts, rewardEpochId []*big.Int) (*SystemManagerRewardEpochStartedIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _SystemManager.contract.FilterLogs(opts, "RewardEpochStarted", rewardEpochIdRule) + if err != nil { + return nil, err + } + return &SystemManagerRewardEpochStartedIterator{contract: _SystemManager.contract, event: "RewardEpochStarted", logs: logs, sub: sub}, nil +} + +// WatchRewardEpochStarted is a free log subscription operation binding the contract event 0x4abb62ab1e4c42a11b90e4e45b92af1274f74cc634b759518e8c99e000d8be6d. +// +// Solidity: event RewardEpochStarted(uint24 indexed rewardEpochId, uint32 startVotingRoundId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) WatchRewardEpochStarted(opts *bind.WatchOpts, sink chan<- *SystemManagerRewardEpochStarted, rewardEpochId []*big.Int) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _SystemManager.contract.WatchLogs(opts, "RewardEpochStarted", rewardEpochIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemManagerRewardEpochStarted) + if err := _SystemManager.contract.UnpackLog(event, "RewardEpochStarted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRewardEpochStarted is a log parse operation binding the contract event 0x4abb62ab1e4c42a11b90e4e45b92af1274f74cc634b759518e8c99e000d8be6d. +// +// Solidity: event RewardEpochStarted(uint24 indexed rewardEpochId, uint32 startVotingRoundId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) ParseRewardEpochStarted(log types.Log) (*SystemManagerRewardEpochStarted, error) { + event := new(SystemManagerRewardEpochStarted) + if err := _SystemManager.contract.UnpackLog(event, "RewardEpochStarted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemManagerRewardsSignedIterator is returned from FilterRewardsSigned and is used to iterate over the raw logs and unpacked data for RewardsSigned events raised by the SystemManager contract. +type SystemManagerRewardsSignedIterator struct { + Event *SystemManagerRewardsSigned // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemManagerRewardsSignedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemManagerRewardsSigned) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemManagerRewardsSigned) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemManagerRewardsSignedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemManagerRewardsSignedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemManagerRewardsSigned represents a RewardsSigned event raised by the SystemManager contract. +type SystemManagerRewardsSigned struct { + RewardEpochId *big.Int + SigningPolicyAddress common.Address + Voter common.Address + RewardsHash [32]byte + NoOfWeightBasedClaims []IFlareSystemsManagerNumberOfWeightBasedClaims + Timestamp uint64 + ThresholdReached bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRewardsSigned is a free log retrieval operation binding the contract event 0x81b5504045130d3b82498ff414ad58271e85bbde420cc85aa66d91eff9af30fb. +// +// Solidity: event RewardsSigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes32 rewardsHash, (uint256,uint256)[] noOfWeightBasedClaims, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) FilterRewardsSigned(opts *bind.FilterOpts, rewardEpochId []*big.Int, signingPolicyAddress []common.Address, voter []common.Address) (*SystemManagerRewardsSignedIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + + logs, sub, err := _SystemManager.contract.FilterLogs(opts, "RewardsSigned", rewardEpochIdRule, signingPolicyAddressRule, voterRule) + if err != nil { + return nil, err + } + return &SystemManagerRewardsSignedIterator{contract: _SystemManager.contract, event: "RewardsSigned", logs: logs, sub: sub}, nil +} + +// WatchRewardsSigned is a free log subscription operation binding the contract event 0x81b5504045130d3b82498ff414ad58271e85bbde420cc85aa66d91eff9af30fb. +// +// Solidity: event RewardsSigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes32 rewardsHash, (uint256,uint256)[] noOfWeightBasedClaims, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) WatchRewardsSigned(opts *bind.WatchOpts, sink chan<- *SystemManagerRewardsSigned, rewardEpochId []*big.Int, signingPolicyAddress []common.Address, voter []common.Address) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + + logs, sub, err := _SystemManager.contract.WatchLogs(opts, "RewardsSigned", rewardEpochIdRule, signingPolicyAddressRule, voterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemManagerRewardsSigned) + if err := _SystemManager.contract.UnpackLog(event, "RewardsSigned", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRewardsSigned is a log parse operation binding the contract event 0x81b5504045130d3b82498ff414ad58271e85bbde420cc85aa66d91eff9af30fb. +// +// Solidity: event RewardsSigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes32 rewardsHash, (uint256,uint256)[] noOfWeightBasedClaims, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) ParseRewardsSigned(log types.Log) (*SystemManagerRewardsSigned, error) { + event := new(SystemManagerRewardsSigned) + if err := _SystemManager.contract.UnpackLog(event, "RewardsSigned", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemManagerSignUptimeVoteEnabledIterator is returned from FilterSignUptimeVoteEnabled and is used to iterate over the raw logs and unpacked data for SignUptimeVoteEnabled events raised by the SystemManager contract. +type SystemManagerSignUptimeVoteEnabledIterator struct { + Event *SystemManagerSignUptimeVoteEnabled // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemManagerSignUptimeVoteEnabledIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemManagerSignUptimeVoteEnabled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemManagerSignUptimeVoteEnabled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemManagerSignUptimeVoteEnabledIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemManagerSignUptimeVoteEnabledIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemManagerSignUptimeVoteEnabled represents a SignUptimeVoteEnabled event raised by the SystemManager contract. +type SystemManagerSignUptimeVoteEnabled struct { + RewardEpochId *big.Int + Timestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSignUptimeVoteEnabled is a free log retrieval operation binding the contract event 0x235cef7d085c1e59545613282d239e56eb0cd056135aa46b8c658cf54a078561. +// +// Solidity: event SignUptimeVoteEnabled(uint24 indexed rewardEpochId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) FilterSignUptimeVoteEnabled(opts *bind.FilterOpts, rewardEpochId []*big.Int) (*SystemManagerSignUptimeVoteEnabledIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _SystemManager.contract.FilterLogs(opts, "SignUptimeVoteEnabled", rewardEpochIdRule) + if err != nil { + return nil, err + } + return &SystemManagerSignUptimeVoteEnabledIterator{contract: _SystemManager.contract, event: "SignUptimeVoteEnabled", logs: logs, sub: sub}, nil +} + +// WatchSignUptimeVoteEnabled is a free log subscription operation binding the contract event 0x235cef7d085c1e59545613282d239e56eb0cd056135aa46b8c658cf54a078561. +// +// Solidity: event SignUptimeVoteEnabled(uint24 indexed rewardEpochId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) WatchSignUptimeVoteEnabled(opts *bind.WatchOpts, sink chan<- *SystemManagerSignUptimeVoteEnabled, rewardEpochId []*big.Int) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _SystemManager.contract.WatchLogs(opts, "SignUptimeVoteEnabled", rewardEpochIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemManagerSignUptimeVoteEnabled) + if err := _SystemManager.contract.UnpackLog(event, "SignUptimeVoteEnabled", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSignUptimeVoteEnabled is a log parse operation binding the contract event 0x235cef7d085c1e59545613282d239e56eb0cd056135aa46b8c658cf54a078561. +// +// Solidity: event SignUptimeVoteEnabled(uint24 indexed rewardEpochId, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) ParseSignUptimeVoteEnabled(log types.Log) (*SystemManagerSignUptimeVoteEnabled, error) { + event := new(SystemManagerSignUptimeVoteEnabled) + if err := _SystemManager.contract.UnpackLog(event, "SignUptimeVoteEnabled", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemManagerSigningPolicySignedIterator is returned from FilterSigningPolicySigned and is used to iterate over the raw logs and unpacked data for SigningPolicySigned events raised by the SystemManager contract. +type SystemManagerSigningPolicySignedIterator struct { + Event *SystemManagerSigningPolicySigned // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemManagerSigningPolicySignedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemManagerSigningPolicySigned) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemManagerSigningPolicySigned) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemManagerSigningPolicySignedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemManagerSigningPolicySignedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemManagerSigningPolicySigned represents a SigningPolicySigned event raised by the SystemManager contract. +type SystemManagerSigningPolicySigned struct { + RewardEpochId *big.Int + SigningPolicyAddress common.Address + Voter common.Address + Timestamp uint64 + ThresholdReached bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSigningPolicySigned is a free log retrieval operation binding the contract event 0x154b0214ae62d8a5548c1eac25fabd87c38b04932a217732e1022f3118da67f3. +// +// Solidity: event SigningPolicySigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) FilterSigningPolicySigned(opts *bind.FilterOpts, rewardEpochId []*big.Int, signingPolicyAddress []common.Address, voter []common.Address) (*SystemManagerSigningPolicySignedIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + + logs, sub, err := _SystemManager.contract.FilterLogs(opts, "SigningPolicySigned", rewardEpochIdRule, signingPolicyAddressRule, voterRule) + if err != nil { + return nil, err + } + return &SystemManagerSigningPolicySignedIterator{contract: _SystemManager.contract, event: "SigningPolicySigned", logs: logs, sub: sub}, nil +} + +// WatchSigningPolicySigned is a free log subscription operation binding the contract event 0x154b0214ae62d8a5548c1eac25fabd87c38b04932a217732e1022f3118da67f3. +// +// Solidity: event SigningPolicySigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) WatchSigningPolicySigned(opts *bind.WatchOpts, sink chan<- *SystemManagerSigningPolicySigned, rewardEpochId []*big.Int, signingPolicyAddress []common.Address, voter []common.Address) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + + logs, sub, err := _SystemManager.contract.WatchLogs(opts, "SigningPolicySigned", rewardEpochIdRule, signingPolicyAddressRule, voterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemManagerSigningPolicySigned) + if err := _SystemManager.contract.UnpackLog(event, "SigningPolicySigned", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSigningPolicySigned is a log parse operation binding the contract event 0x154b0214ae62d8a5548c1eac25fabd87c38b04932a217732e1022f3118da67f3. +// +// Solidity: event SigningPolicySigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) ParseSigningPolicySigned(log types.Log) (*SystemManagerSigningPolicySigned, error) { + event := new(SystemManagerSigningPolicySigned) + if err := _SystemManager.contract.UnpackLog(event, "SigningPolicySigned", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemManagerUptimeVoteSignedIterator is returned from FilterUptimeVoteSigned and is used to iterate over the raw logs and unpacked data for UptimeVoteSigned events raised by the SystemManager contract. +type SystemManagerUptimeVoteSignedIterator struct { + Event *SystemManagerUptimeVoteSigned // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemManagerUptimeVoteSignedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemManagerUptimeVoteSigned) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemManagerUptimeVoteSigned) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemManagerUptimeVoteSignedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemManagerUptimeVoteSignedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemManagerUptimeVoteSigned represents a UptimeVoteSigned event raised by the SystemManager contract. +type SystemManagerUptimeVoteSigned struct { + RewardEpochId *big.Int + SigningPolicyAddress common.Address + Voter common.Address + UptimeVoteHash [32]byte + Timestamp uint64 + ThresholdReached bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUptimeVoteSigned is a free log retrieval operation binding the contract event 0x5506337d1266599f8b64675a1c8321701657ca2f2f70be0e0c58302b6c22e797. +// +// Solidity: event UptimeVoteSigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes32 uptimeVoteHash, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) FilterUptimeVoteSigned(opts *bind.FilterOpts, rewardEpochId []*big.Int, signingPolicyAddress []common.Address, voter []common.Address) (*SystemManagerUptimeVoteSignedIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + + logs, sub, err := _SystemManager.contract.FilterLogs(opts, "UptimeVoteSigned", rewardEpochIdRule, signingPolicyAddressRule, voterRule) + if err != nil { + return nil, err + } + return &SystemManagerUptimeVoteSignedIterator{contract: _SystemManager.contract, event: "UptimeVoteSigned", logs: logs, sub: sub}, nil +} + +// WatchUptimeVoteSigned is a free log subscription operation binding the contract event 0x5506337d1266599f8b64675a1c8321701657ca2f2f70be0e0c58302b6c22e797. +// +// Solidity: event UptimeVoteSigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes32 uptimeVoteHash, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) WatchUptimeVoteSigned(opts *bind.WatchOpts, sink chan<- *SystemManagerUptimeVoteSigned, rewardEpochId []*big.Int, signingPolicyAddress []common.Address, voter []common.Address) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + + logs, sub, err := _SystemManager.contract.WatchLogs(opts, "UptimeVoteSigned", rewardEpochIdRule, signingPolicyAddressRule, voterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemManagerUptimeVoteSigned) + if err := _SystemManager.contract.UnpackLog(event, "UptimeVoteSigned", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUptimeVoteSigned is a log parse operation binding the contract event 0x5506337d1266599f8b64675a1c8321701657ca2f2f70be0e0c58302b6c22e797. +// +// Solidity: event UptimeVoteSigned(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes32 uptimeVoteHash, uint64 timestamp, bool thresholdReached) +func (_SystemManager *SystemManagerFilterer) ParseUptimeVoteSigned(log types.Log) (*SystemManagerUptimeVoteSigned, error) { + event := new(SystemManagerUptimeVoteSigned) + if err := _SystemManager.contract.UnpackLog(event, "UptimeVoteSigned", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemManagerUptimeVoteSubmittedIterator is returned from FilterUptimeVoteSubmitted and is used to iterate over the raw logs and unpacked data for UptimeVoteSubmitted events raised by the SystemManager contract. +type SystemManagerUptimeVoteSubmittedIterator struct { + Event *SystemManagerUptimeVoteSubmitted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemManagerUptimeVoteSubmittedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemManagerUptimeVoteSubmitted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemManagerUptimeVoteSubmitted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemManagerUptimeVoteSubmittedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemManagerUptimeVoteSubmittedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemManagerUptimeVoteSubmitted represents a UptimeVoteSubmitted event raised by the SystemManager contract. +type SystemManagerUptimeVoteSubmitted struct { + RewardEpochId *big.Int + SigningPolicyAddress common.Address + Voter common.Address + NodeIds [][20]byte + Timestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUptimeVoteSubmitted is a free log retrieval operation binding the contract event 0xed370d61eb315e1d46d979894585530b99f94dab64c0d40366685aebe39e3db0. +// +// Solidity: event UptimeVoteSubmitted(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes20[] nodeIds, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) FilterUptimeVoteSubmitted(opts *bind.FilterOpts, rewardEpochId []*big.Int, signingPolicyAddress []common.Address, voter []common.Address) (*SystemManagerUptimeVoteSubmittedIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + + logs, sub, err := _SystemManager.contract.FilterLogs(opts, "UptimeVoteSubmitted", rewardEpochIdRule, signingPolicyAddressRule, voterRule) + if err != nil { + return nil, err + } + return &SystemManagerUptimeVoteSubmittedIterator{contract: _SystemManager.contract, event: "UptimeVoteSubmitted", logs: logs, sub: sub}, nil +} + +// WatchUptimeVoteSubmitted is a free log subscription operation binding the contract event 0xed370d61eb315e1d46d979894585530b99f94dab64c0d40366685aebe39e3db0. +// +// Solidity: event UptimeVoteSubmitted(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes20[] nodeIds, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) WatchUptimeVoteSubmitted(opts *bind.WatchOpts, sink chan<- *SystemManagerUptimeVoteSubmitted, rewardEpochId []*big.Int, signingPolicyAddress []common.Address, voter []common.Address) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + + logs, sub, err := _SystemManager.contract.WatchLogs(opts, "UptimeVoteSubmitted", rewardEpochIdRule, signingPolicyAddressRule, voterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemManagerUptimeVoteSubmitted) + if err := _SystemManager.contract.UnpackLog(event, "UptimeVoteSubmitted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUptimeVoteSubmitted is a log parse operation binding the contract event 0xed370d61eb315e1d46d979894585530b99f94dab64c0d40366685aebe39e3db0. +// +// Solidity: event UptimeVoteSubmitted(uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address indexed voter, bytes20[] nodeIds, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) ParseUptimeVoteSubmitted(log types.Log) (*SystemManagerUptimeVoteSubmitted, error) { + event := new(SystemManagerUptimeVoteSubmitted) + if err := _SystemManager.contract.UnpackLog(event, "UptimeVoteSubmitted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SystemManagerVotePowerBlockSelectedIterator is returned from FilterVotePowerBlockSelected and is used to iterate over the raw logs and unpacked data for VotePowerBlockSelected events raised by the SystemManager contract. +type SystemManagerVotePowerBlockSelectedIterator struct { + Event *SystemManagerVotePowerBlockSelected // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SystemManagerVotePowerBlockSelectedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SystemManagerVotePowerBlockSelected) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SystemManagerVotePowerBlockSelected) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SystemManagerVotePowerBlockSelectedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SystemManagerVotePowerBlockSelectedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SystemManagerVotePowerBlockSelected represents a VotePowerBlockSelected event raised by the SystemManager contract. +type SystemManagerVotePowerBlockSelected struct { + RewardEpochId *big.Int + VotePowerBlock uint64 + Timestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterVotePowerBlockSelected is a free log retrieval operation binding the contract event 0xf21722dbe044a7cea0f6d81c871cae750971e36c9dd10999e46f2b46f26ac7ff. +// +// Solidity: event VotePowerBlockSelected(uint24 indexed rewardEpochId, uint64 votePowerBlock, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) FilterVotePowerBlockSelected(opts *bind.FilterOpts, rewardEpochId []*big.Int) (*SystemManagerVotePowerBlockSelectedIterator, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _SystemManager.contract.FilterLogs(opts, "VotePowerBlockSelected", rewardEpochIdRule) + if err != nil { + return nil, err + } + return &SystemManagerVotePowerBlockSelectedIterator{contract: _SystemManager.contract, event: "VotePowerBlockSelected", logs: logs, sub: sub}, nil +} + +// WatchVotePowerBlockSelected is a free log subscription operation binding the contract event 0xf21722dbe044a7cea0f6d81c871cae750971e36c9dd10999e46f2b46f26ac7ff. +// +// Solidity: event VotePowerBlockSelected(uint24 indexed rewardEpochId, uint64 votePowerBlock, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) WatchVotePowerBlockSelected(opts *bind.WatchOpts, sink chan<- *SystemManagerVotePowerBlockSelected, rewardEpochId []*big.Int) (event.Subscription, error) { + + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _SystemManager.contract.WatchLogs(opts, "VotePowerBlockSelected", rewardEpochIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SystemManagerVotePowerBlockSelected) + if err := _SystemManager.contract.UnpackLog(event, "VotePowerBlockSelected", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseVotePowerBlockSelected is a log parse operation binding the contract event 0xf21722dbe044a7cea0f6d81c871cae750971e36c9dd10999e46f2b46f26ac7ff. +// +// Solidity: event VotePowerBlockSelected(uint24 indexed rewardEpochId, uint64 votePowerBlock, uint64 timestamp) +func (_SystemManager *SystemManagerFilterer) ParseVotePowerBlockSelected(log types.Log) (*SystemManagerVotePowerBlockSelected, error) { + event := new(SystemManagerVotePowerBlockSelected) + if err := _SystemManager.contract.UnpackLog(event, "VotePowerBlockSelected", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/go-client/contracts-interface/voter_registry/VoterRegistry.go b/go-client/contracts-interface/voter_registry/VoterRegistry.go new file mode 100644 index 0000000..b6615dd --- /dev/null +++ b/go-client/contracts-interface/voter_registry/VoterRegistry.go @@ -0,0 +1,891 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package voter_registry + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IVoterRegistrySignature is an auto generated low-level Go binding around an user-defined struct. +type IVoterRegistrySignature struct { + V uint8 + R [32]byte + S [32]byte +} + +// VoterRegistryMetaData contains all meta data concerning the VoterRegistry contract. +var VoterRegistryMetaData = &bind.MetaData{ + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes20\",\"name\":\"beneficiary\",\"type\":\"bytes20\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"untilRewardEpochId\",\"type\":\"uint256\"}],\"name\":\"BeneficiaryChilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"rewardEpochId\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signingPolicyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitSignaturesAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"publicKeyPart1\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"publicKeyPart2\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"registrationWeight\",\"type\":\"uint256\"}],\"name\":\"VoterRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"VoterRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes20\",\"name\":\"_beneficiary\",\"type\":\"bytes20\"}],\"name\":\"chilledUntilRewardEpochId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"getNumberOfRegisteredVoters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"getRegisteredVoters\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"isVoterRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxVoters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_rewardEpochId\",\"type\":\"uint256\"}],\"name\":\"newSigningPolicyInitializationStartBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"publicKeyRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIVoterRegistry.Signature\",\"name\":\"_signature\",\"type\":\"tuple\"}],\"name\":\"registerVoter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", +} + +// VoterRegistryABI is the input ABI used to generate the binding from. +// Deprecated: Use VoterRegistryMetaData.ABI instead. +var VoterRegistryABI = VoterRegistryMetaData.ABI + +// VoterRegistry is an auto generated Go binding around an Ethereum contract. +type VoterRegistry struct { + VoterRegistryCaller // Read-only binding to the contract + VoterRegistryTransactor // Write-only binding to the contract + VoterRegistryFilterer // Log filterer for contract events +} + +// VoterRegistryCaller is an auto generated read-only Go binding around an Ethereum contract. +type VoterRegistryCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VoterRegistryTransactor is an auto generated write-only Go binding around an Ethereum contract. +type VoterRegistryTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VoterRegistryFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type VoterRegistryFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// VoterRegistrySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type VoterRegistrySession struct { + Contract *VoterRegistry // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// VoterRegistryCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type VoterRegistryCallerSession struct { + Contract *VoterRegistryCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// VoterRegistryTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type VoterRegistryTransactorSession struct { + Contract *VoterRegistryTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// VoterRegistryRaw is an auto generated low-level Go binding around an Ethereum contract. +type VoterRegistryRaw struct { + Contract *VoterRegistry // Generic contract binding to access the raw methods on +} + +// VoterRegistryCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type VoterRegistryCallerRaw struct { + Contract *VoterRegistryCaller // Generic read-only contract binding to access the raw methods on +} + +// VoterRegistryTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type VoterRegistryTransactorRaw struct { + Contract *VoterRegistryTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewVoterRegistry creates a new instance of VoterRegistry, bound to a specific deployed contract. +func NewVoterRegistry(address common.Address, backend bind.ContractBackend) (*VoterRegistry, error) { + contract, err := bindVoterRegistry(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &VoterRegistry{VoterRegistryCaller: VoterRegistryCaller{contract: contract}, VoterRegistryTransactor: VoterRegistryTransactor{contract: contract}, VoterRegistryFilterer: VoterRegistryFilterer{contract: contract}}, nil +} + +// NewVoterRegistryCaller creates a new read-only instance of VoterRegistry, bound to a specific deployed contract. +func NewVoterRegistryCaller(address common.Address, caller bind.ContractCaller) (*VoterRegistryCaller, error) { + contract, err := bindVoterRegistry(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &VoterRegistryCaller{contract: contract}, nil +} + +// NewVoterRegistryTransactor creates a new write-only instance of VoterRegistry, bound to a specific deployed contract. +func NewVoterRegistryTransactor(address common.Address, transactor bind.ContractTransactor) (*VoterRegistryTransactor, error) { + contract, err := bindVoterRegistry(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &VoterRegistryTransactor{contract: contract}, nil +} + +// NewVoterRegistryFilterer creates a new log filterer instance of VoterRegistry, bound to a specific deployed contract. +func NewVoterRegistryFilterer(address common.Address, filterer bind.ContractFilterer) (*VoterRegistryFilterer, error) { + contract, err := bindVoterRegistry(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &VoterRegistryFilterer{contract: contract}, nil +} + +// bindVoterRegistry binds a generic wrapper to an already deployed contract. +func bindVoterRegistry(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := VoterRegistryMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_VoterRegistry *VoterRegistryRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _VoterRegistry.Contract.VoterRegistryCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_VoterRegistry *VoterRegistryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VoterRegistry.Contract.VoterRegistryTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_VoterRegistry *VoterRegistryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _VoterRegistry.Contract.VoterRegistryTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_VoterRegistry *VoterRegistryCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _VoterRegistry.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_VoterRegistry *VoterRegistryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _VoterRegistry.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_VoterRegistry *VoterRegistryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _VoterRegistry.Contract.contract.Transact(opts, method, params...) +} + +// ChilledUntilRewardEpochId is a free data retrieval call binding the contract method 0x3c5cb76f. +// +// Solidity: function chilledUntilRewardEpochId(bytes20 _beneficiary) view returns(uint256 _rewardEpochId) +func (_VoterRegistry *VoterRegistryCaller) ChilledUntilRewardEpochId(opts *bind.CallOpts, _beneficiary [20]byte) (*big.Int, error) { + var out []interface{} + err := _VoterRegistry.contract.Call(opts, &out, "chilledUntilRewardEpochId", _beneficiary) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ChilledUntilRewardEpochId is a free data retrieval call binding the contract method 0x3c5cb76f. +// +// Solidity: function chilledUntilRewardEpochId(bytes20 _beneficiary) view returns(uint256 _rewardEpochId) +func (_VoterRegistry *VoterRegistrySession) ChilledUntilRewardEpochId(_beneficiary [20]byte) (*big.Int, error) { + return _VoterRegistry.Contract.ChilledUntilRewardEpochId(&_VoterRegistry.CallOpts, _beneficiary) +} + +// ChilledUntilRewardEpochId is a free data retrieval call binding the contract method 0x3c5cb76f. +// +// Solidity: function chilledUntilRewardEpochId(bytes20 _beneficiary) view returns(uint256 _rewardEpochId) +func (_VoterRegistry *VoterRegistryCallerSession) ChilledUntilRewardEpochId(_beneficiary [20]byte) (*big.Int, error) { + return _VoterRegistry.Contract.ChilledUntilRewardEpochId(&_VoterRegistry.CallOpts, _beneficiary) +} + +// GetNumberOfRegisteredVoters is a free data retrieval call binding the contract method 0x369e9434. +// +// Solidity: function getNumberOfRegisteredVoters(uint256 _rewardEpochId) view returns(uint256) +func (_VoterRegistry *VoterRegistryCaller) GetNumberOfRegisteredVoters(opts *bind.CallOpts, _rewardEpochId *big.Int) (*big.Int, error) { + var out []interface{} + err := _VoterRegistry.contract.Call(opts, &out, "getNumberOfRegisteredVoters", _rewardEpochId) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetNumberOfRegisteredVoters is a free data retrieval call binding the contract method 0x369e9434. +// +// Solidity: function getNumberOfRegisteredVoters(uint256 _rewardEpochId) view returns(uint256) +func (_VoterRegistry *VoterRegistrySession) GetNumberOfRegisteredVoters(_rewardEpochId *big.Int) (*big.Int, error) { + return _VoterRegistry.Contract.GetNumberOfRegisteredVoters(&_VoterRegistry.CallOpts, _rewardEpochId) +} + +// GetNumberOfRegisteredVoters is a free data retrieval call binding the contract method 0x369e9434. +// +// Solidity: function getNumberOfRegisteredVoters(uint256 _rewardEpochId) view returns(uint256) +func (_VoterRegistry *VoterRegistryCallerSession) GetNumberOfRegisteredVoters(_rewardEpochId *big.Int) (*big.Int, error) { + return _VoterRegistry.Contract.GetNumberOfRegisteredVoters(&_VoterRegistry.CallOpts, _rewardEpochId) +} + +// GetRegisteredVoters is a free data retrieval call binding the contract method 0x457c2e47. +// +// Solidity: function getRegisteredVoters(uint256 _rewardEpochId) view returns(address[]) +func (_VoterRegistry *VoterRegistryCaller) GetRegisteredVoters(opts *bind.CallOpts, _rewardEpochId *big.Int) ([]common.Address, error) { + var out []interface{} + err := _VoterRegistry.contract.Call(opts, &out, "getRegisteredVoters", _rewardEpochId) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// GetRegisteredVoters is a free data retrieval call binding the contract method 0x457c2e47. +// +// Solidity: function getRegisteredVoters(uint256 _rewardEpochId) view returns(address[]) +func (_VoterRegistry *VoterRegistrySession) GetRegisteredVoters(_rewardEpochId *big.Int) ([]common.Address, error) { + return _VoterRegistry.Contract.GetRegisteredVoters(&_VoterRegistry.CallOpts, _rewardEpochId) +} + +// GetRegisteredVoters is a free data retrieval call binding the contract method 0x457c2e47. +// +// Solidity: function getRegisteredVoters(uint256 _rewardEpochId) view returns(address[]) +func (_VoterRegistry *VoterRegistryCallerSession) GetRegisteredVoters(_rewardEpochId *big.Int) ([]common.Address, error) { + return _VoterRegistry.Contract.GetRegisteredVoters(&_VoterRegistry.CallOpts, _rewardEpochId) +} + +// IsVoterRegistered is a free data retrieval call binding the contract method 0x4f5a9968. +// +// Solidity: function isVoterRegistered(address _voter, uint256 _rewardEpochId) view returns(bool) +func (_VoterRegistry *VoterRegistryCaller) IsVoterRegistered(opts *bind.CallOpts, _voter common.Address, _rewardEpochId *big.Int) (bool, error) { + var out []interface{} + err := _VoterRegistry.contract.Call(opts, &out, "isVoterRegistered", _voter, _rewardEpochId) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsVoterRegistered is a free data retrieval call binding the contract method 0x4f5a9968. +// +// Solidity: function isVoterRegistered(address _voter, uint256 _rewardEpochId) view returns(bool) +func (_VoterRegistry *VoterRegistrySession) IsVoterRegistered(_voter common.Address, _rewardEpochId *big.Int) (bool, error) { + return _VoterRegistry.Contract.IsVoterRegistered(&_VoterRegistry.CallOpts, _voter, _rewardEpochId) +} + +// IsVoterRegistered is a free data retrieval call binding the contract method 0x4f5a9968. +// +// Solidity: function isVoterRegistered(address _voter, uint256 _rewardEpochId) view returns(bool) +func (_VoterRegistry *VoterRegistryCallerSession) IsVoterRegistered(_voter common.Address, _rewardEpochId *big.Int) (bool, error) { + return _VoterRegistry.Contract.IsVoterRegistered(&_VoterRegistry.CallOpts, _voter, _rewardEpochId) +} + +// MaxVoters is a free data retrieval call binding the contract method 0xd5e50a63. +// +// Solidity: function maxVoters() view returns(uint256) +func (_VoterRegistry *VoterRegistryCaller) MaxVoters(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _VoterRegistry.contract.Call(opts, &out, "maxVoters") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MaxVoters is a free data retrieval call binding the contract method 0xd5e50a63. +// +// Solidity: function maxVoters() view returns(uint256) +func (_VoterRegistry *VoterRegistrySession) MaxVoters() (*big.Int, error) { + return _VoterRegistry.Contract.MaxVoters(&_VoterRegistry.CallOpts) +} + +// MaxVoters is a free data retrieval call binding the contract method 0xd5e50a63. +// +// Solidity: function maxVoters() view returns(uint256) +func (_VoterRegistry *VoterRegistryCallerSession) MaxVoters() (*big.Int, error) { + return _VoterRegistry.Contract.MaxVoters(&_VoterRegistry.CallOpts) +} + +// NewSigningPolicyInitializationStartBlockNumber is a free data retrieval call binding the contract method 0xfff50753. +// +// Solidity: function newSigningPolicyInitializationStartBlockNumber(uint256 _rewardEpochId) view returns(uint256) +func (_VoterRegistry *VoterRegistryCaller) NewSigningPolicyInitializationStartBlockNumber(opts *bind.CallOpts, _rewardEpochId *big.Int) (*big.Int, error) { + var out []interface{} + err := _VoterRegistry.contract.Call(opts, &out, "newSigningPolicyInitializationStartBlockNumber", _rewardEpochId) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// NewSigningPolicyInitializationStartBlockNumber is a free data retrieval call binding the contract method 0xfff50753. +// +// Solidity: function newSigningPolicyInitializationStartBlockNumber(uint256 _rewardEpochId) view returns(uint256) +func (_VoterRegistry *VoterRegistrySession) NewSigningPolicyInitializationStartBlockNumber(_rewardEpochId *big.Int) (*big.Int, error) { + return _VoterRegistry.Contract.NewSigningPolicyInitializationStartBlockNumber(&_VoterRegistry.CallOpts, _rewardEpochId) +} + +// NewSigningPolicyInitializationStartBlockNumber is a free data retrieval call binding the contract method 0xfff50753. +// +// Solidity: function newSigningPolicyInitializationStartBlockNumber(uint256 _rewardEpochId) view returns(uint256) +func (_VoterRegistry *VoterRegistryCallerSession) NewSigningPolicyInitializationStartBlockNumber(_rewardEpochId *big.Int) (*big.Int, error) { + return _VoterRegistry.Contract.NewSigningPolicyInitializationStartBlockNumber(&_VoterRegistry.CallOpts, _rewardEpochId) +} + +// PublicKeyRequired is a free data retrieval call binding the contract method 0x92e3e45f. +// +// Solidity: function publicKeyRequired() view returns(bool) +func (_VoterRegistry *VoterRegistryCaller) PublicKeyRequired(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _VoterRegistry.contract.Call(opts, &out, "publicKeyRequired") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// PublicKeyRequired is a free data retrieval call binding the contract method 0x92e3e45f. +// +// Solidity: function publicKeyRequired() view returns(bool) +func (_VoterRegistry *VoterRegistrySession) PublicKeyRequired() (bool, error) { + return _VoterRegistry.Contract.PublicKeyRequired(&_VoterRegistry.CallOpts) +} + +// PublicKeyRequired is a free data retrieval call binding the contract method 0x92e3e45f. +// +// Solidity: function publicKeyRequired() view returns(bool) +func (_VoterRegistry *VoterRegistryCallerSession) PublicKeyRequired() (bool, error) { + return _VoterRegistry.Contract.PublicKeyRequired(&_VoterRegistry.CallOpts) +} + +// RegisterVoter is a paid mutator transaction binding the contract method 0x8f7d0957. +// +// Solidity: function registerVoter(address _voter, (uint8,bytes32,bytes32) _signature) returns() +func (_VoterRegistry *VoterRegistryTransactor) RegisterVoter(opts *bind.TransactOpts, _voter common.Address, _signature IVoterRegistrySignature) (*types.Transaction, error) { + return _VoterRegistry.contract.Transact(opts, "registerVoter", _voter, _signature) +} + +// RegisterVoter is a paid mutator transaction binding the contract method 0x8f7d0957. +// +// Solidity: function registerVoter(address _voter, (uint8,bytes32,bytes32) _signature) returns() +func (_VoterRegistry *VoterRegistrySession) RegisterVoter(_voter common.Address, _signature IVoterRegistrySignature) (*types.Transaction, error) { + return _VoterRegistry.Contract.RegisterVoter(&_VoterRegistry.TransactOpts, _voter, _signature) +} + +// RegisterVoter is a paid mutator transaction binding the contract method 0x8f7d0957. +// +// Solidity: function registerVoter(address _voter, (uint8,bytes32,bytes32) _signature) returns() +func (_VoterRegistry *VoterRegistryTransactorSession) RegisterVoter(_voter common.Address, _signature IVoterRegistrySignature) (*types.Transaction, error) { + return _VoterRegistry.Contract.RegisterVoter(&_VoterRegistry.TransactOpts, _voter, _signature) +} + +// VoterRegistryBeneficiaryChilledIterator is returned from FilterBeneficiaryChilled and is used to iterate over the raw logs and unpacked data for BeneficiaryChilled events raised by the VoterRegistry contract. +type VoterRegistryBeneficiaryChilledIterator struct { + Event *VoterRegistryBeneficiaryChilled // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *VoterRegistryBeneficiaryChilledIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(VoterRegistryBeneficiaryChilled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(VoterRegistryBeneficiaryChilled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *VoterRegistryBeneficiaryChilledIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *VoterRegistryBeneficiaryChilledIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// VoterRegistryBeneficiaryChilled represents a BeneficiaryChilled event raised by the VoterRegistry contract. +type VoterRegistryBeneficiaryChilled struct { + Beneficiary [20]byte + UntilRewardEpochId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeneficiaryChilled is a free log retrieval operation binding the contract event 0x0a5e087b026d8f1c57e75d9d0cb0394c2ad3535e7a15d97d553be80476274cd0. +// +// Solidity: event BeneficiaryChilled(bytes20 indexed beneficiary, uint256 untilRewardEpochId) +func (_VoterRegistry *VoterRegistryFilterer) FilterBeneficiaryChilled(opts *bind.FilterOpts, beneficiary [][20]byte) (*VoterRegistryBeneficiaryChilledIterator, error) { + + var beneficiaryRule []interface{} + for _, beneficiaryItem := range beneficiary { + beneficiaryRule = append(beneficiaryRule, beneficiaryItem) + } + + logs, sub, err := _VoterRegistry.contract.FilterLogs(opts, "BeneficiaryChilled", beneficiaryRule) + if err != nil { + return nil, err + } + return &VoterRegistryBeneficiaryChilledIterator{contract: _VoterRegistry.contract, event: "BeneficiaryChilled", logs: logs, sub: sub}, nil +} + +// WatchBeneficiaryChilled is a free log subscription operation binding the contract event 0x0a5e087b026d8f1c57e75d9d0cb0394c2ad3535e7a15d97d553be80476274cd0. +// +// Solidity: event BeneficiaryChilled(bytes20 indexed beneficiary, uint256 untilRewardEpochId) +func (_VoterRegistry *VoterRegistryFilterer) WatchBeneficiaryChilled(opts *bind.WatchOpts, sink chan<- *VoterRegistryBeneficiaryChilled, beneficiary [][20]byte) (event.Subscription, error) { + + var beneficiaryRule []interface{} + for _, beneficiaryItem := range beneficiary { + beneficiaryRule = append(beneficiaryRule, beneficiaryItem) + } + + logs, sub, err := _VoterRegistry.contract.WatchLogs(opts, "BeneficiaryChilled", beneficiaryRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(VoterRegistryBeneficiaryChilled) + if err := _VoterRegistry.contract.UnpackLog(event, "BeneficiaryChilled", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBeneficiaryChilled is a log parse operation binding the contract event 0x0a5e087b026d8f1c57e75d9d0cb0394c2ad3535e7a15d97d553be80476274cd0. +// +// Solidity: event BeneficiaryChilled(bytes20 indexed beneficiary, uint256 untilRewardEpochId) +func (_VoterRegistry *VoterRegistryFilterer) ParseBeneficiaryChilled(log types.Log) (*VoterRegistryBeneficiaryChilled, error) { + event := new(VoterRegistryBeneficiaryChilled) + if err := _VoterRegistry.contract.UnpackLog(event, "BeneficiaryChilled", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// VoterRegistryVoterRegisteredIterator is returned from FilterVoterRegistered and is used to iterate over the raw logs and unpacked data for VoterRegistered events raised by the VoterRegistry contract. +type VoterRegistryVoterRegisteredIterator struct { + Event *VoterRegistryVoterRegistered // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *VoterRegistryVoterRegisteredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(VoterRegistryVoterRegistered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(VoterRegistryVoterRegistered) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *VoterRegistryVoterRegisteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *VoterRegistryVoterRegisteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// VoterRegistryVoterRegistered represents a VoterRegistered event raised by the VoterRegistry contract. +type VoterRegistryVoterRegistered struct { + Voter common.Address + RewardEpochId *big.Int + SigningPolicyAddress common.Address + SubmitAddress common.Address + SubmitSignaturesAddress common.Address + PublicKeyPart1 [32]byte + PublicKeyPart2 [32]byte + RegistrationWeight *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterVoterRegistered is a free log retrieval operation binding the contract event 0x824bc2cc10bfe21ead60b8c8a90716eb325b9335aa73eaede799abf38fce062c. +// +// Solidity: event VoterRegistered(address indexed voter, uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address submitAddress, address submitSignaturesAddress, bytes32 publicKeyPart1, bytes32 publicKeyPart2, uint256 registrationWeight) +func (_VoterRegistry *VoterRegistryFilterer) FilterVoterRegistered(opts *bind.FilterOpts, voter []common.Address, rewardEpochId []*big.Int, signingPolicyAddress []common.Address) (*VoterRegistryVoterRegisteredIterator, error) { + + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + + logs, sub, err := _VoterRegistry.contract.FilterLogs(opts, "VoterRegistered", voterRule, rewardEpochIdRule, signingPolicyAddressRule) + if err != nil { + return nil, err + } + return &VoterRegistryVoterRegisteredIterator{contract: _VoterRegistry.contract, event: "VoterRegistered", logs: logs, sub: sub}, nil +} + +// WatchVoterRegistered is a free log subscription operation binding the contract event 0x824bc2cc10bfe21ead60b8c8a90716eb325b9335aa73eaede799abf38fce062c. +// +// Solidity: event VoterRegistered(address indexed voter, uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address submitAddress, address submitSignaturesAddress, bytes32 publicKeyPart1, bytes32 publicKeyPart2, uint256 registrationWeight) +func (_VoterRegistry *VoterRegistryFilterer) WatchVoterRegistered(opts *bind.WatchOpts, sink chan<- *VoterRegistryVoterRegistered, voter []common.Address, rewardEpochId []*big.Int, signingPolicyAddress []common.Address) (event.Subscription, error) { + + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + var signingPolicyAddressRule []interface{} + for _, signingPolicyAddressItem := range signingPolicyAddress { + signingPolicyAddressRule = append(signingPolicyAddressRule, signingPolicyAddressItem) + } + + logs, sub, err := _VoterRegistry.contract.WatchLogs(opts, "VoterRegistered", voterRule, rewardEpochIdRule, signingPolicyAddressRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(VoterRegistryVoterRegistered) + if err := _VoterRegistry.contract.UnpackLog(event, "VoterRegistered", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseVoterRegistered is a log parse operation binding the contract event 0x824bc2cc10bfe21ead60b8c8a90716eb325b9335aa73eaede799abf38fce062c. +// +// Solidity: event VoterRegistered(address indexed voter, uint24 indexed rewardEpochId, address indexed signingPolicyAddress, address submitAddress, address submitSignaturesAddress, bytes32 publicKeyPart1, bytes32 publicKeyPart2, uint256 registrationWeight) +func (_VoterRegistry *VoterRegistryFilterer) ParseVoterRegistered(log types.Log) (*VoterRegistryVoterRegistered, error) { + event := new(VoterRegistryVoterRegistered) + if err := _VoterRegistry.contract.UnpackLog(event, "VoterRegistered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// VoterRegistryVoterRemovedIterator is returned from FilterVoterRemoved and is used to iterate over the raw logs and unpacked data for VoterRemoved events raised by the VoterRegistry contract. +type VoterRegistryVoterRemovedIterator struct { + Event *VoterRegistryVoterRemoved // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *VoterRegistryVoterRemovedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(VoterRegistryVoterRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(VoterRegistryVoterRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *VoterRegistryVoterRemovedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *VoterRegistryVoterRemovedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// VoterRegistryVoterRemoved represents a VoterRemoved event raised by the VoterRegistry contract. +type VoterRegistryVoterRemoved struct { + Voter common.Address + RewardEpochId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterVoterRemoved is a free log retrieval operation binding the contract event 0x98a7f87f8e2aa2f23f43769eff67782bb12946384b142d1ce1e8e38e05d9a3e6. +// +// Solidity: event VoterRemoved(address indexed voter, uint256 indexed rewardEpochId) +func (_VoterRegistry *VoterRegistryFilterer) FilterVoterRemoved(opts *bind.FilterOpts, voter []common.Address, rewardEpochId []*big.Int) (*VoterRegistryVoterRemovedIterator, error) { + + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _VoterRegistry.contract.FilterLogs(opts, "VoterRemoved", voterRule, rewardEpochIdRule) + if err != nil { + return nil, err + } + return &VoterRegistryVoterRemovedIterator{contract: _VoterRegistry.contract, event: "VoterRemoved", logs: logs, sub: sub}, nil +} + +// WatchVoterRemoved is a free log subscription operation binding the contract event 0x98a7f87f8e2aa2f23f43769eff67782bb12946384b142d1ce1e8e38e05d9a3e6. +// +// Solidity: event VoterRemoved(address indexed voter, uint256 indexed rewardEpochId) +func (_VoterRegistry *VoterRegistryFilterer) WatchVoterRemoved(opts *bind.WatchOpts, sink chan<- *VoterRegistryVoterRemoved, voter []common.Address, rewardEpochId []*big.Int) (event.Subscription, error) { + + var voterRule []interface{} + for _, voterItem := range voter { + voterRule = append(voterRule, voterItem) + } + var rewardEpochIdRule []interface{} + for _, rewardEpochIdItem := range rewardEpochId { + rewardEpochIdRule = append(rewardEpochIdRule, rewardEpochIdItem) + } + + logs, sub, err := _VoterRegistry.contract.WatchLogs(opts, "VoterRemoved", voterRule, rewardEpochIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(VoterRegistryVoterRemoved) + if err := _VoterRegistry.contract.UnpackLog(event, "VoterRemoved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseVoterRemoved is a log parse operation binding the contract event 0x98a7f87f8e2aa2f23f43769eff67782bb12946384b142d1ce1e8e38e05d9a3e6. +// +// Solidity: event VoterRemoved(address indexed voter, uint256 indexed rewardEpochId) +func (_VoterRegistry *VoterRegistryFilterer) ParseVoterRemoved(log types.Log) (*VoterRegistryVoterRemoved, error) { + event := new(VoterRegistryVoterRemoved) + if err := _VoterRegistry.contract.UnpackLog(event, "VoterRemoved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/go-client/go.mod b/go-client/go.mod new file mode 100644 index 0000000..00e9625 --- /dev/null +++ b/go-client/go.mod @@ -0,0 +1,41 @@ +module fast-updates-client + +go 1.21.0 + +require ( + github.com/BurntSushi/toml v1.3.2 + github.com/consensys/gnark-crypto v0.12.1 + github.com/ethereum/go-ethereum v1.12.2 + github.com/kelseyhightower/envconfig v1.4.0 + go.uber.org/zap v1.26.0 + gopkg.in/natefinch/lumberjack.v2 v2.2.1 + github.com/pkg/errors v0.9.1 +) + +require ( + github.com/StackExchange/wmi v1.2.1 // indirect + github.com/bits-and-blooms/bitset v1.10.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect + github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect + github.com/ethereum/c-kzg-4844 v0.4.0 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/go-stack/stack v1.8.1 // indirect + github.com/google/uuid v1.3.0 // indirect + github.com/gorilla/websocket v1.4.2 // indirect + github.com/holiman/uint256 v1.2.4 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect + github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + go.uber.org/multierr v1.10.0 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect + golang.org/x/sync v0.5.0 // indirect + golang.org/x/sys v0.16.0 // indirect + gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect + rsc.io/tmplfunc v0.0.3 // indirect +) diff --git a/go-client/go.sum b/go-client/go.sum new file mode 100644 index 0000000..a0f0515 --- /dev/null +++ b/go-client/go.sum @@ -0,0 +1,188 @@ +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= +github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= +github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= +github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k= +github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= +github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= +github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811 h1:ytcWPaNPhNoGMWEhDvS3zToKcDpRsLuRolQJBVGdozk= +github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811/go.mod h1:Nb5lgvnQ2+oGlE/EyZy4+2/CxRh9KfvCXnag1vtpxVM= +github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= +github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= +github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= +github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= +github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.12.2 h1:eGHJ4ij7oyVqUQn48LBz3B7pvQ8sV0wGJiIE6gDq/6Y= +github.com/ethereum/go-ethereum v1.12.2/go.mod h1:1cRAEV+rp/xX0zraSCBnu9Py3HQ+geRMj3HdR+k0wfI= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= +github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= +github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= +github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= +github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= +github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= +github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= +github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 h1:3JQNjnMRil1yD0IfZKHF9GxxWKDJGj8I0IqOUol//sw= +github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= +github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= +github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= +github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= +github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= +github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= +github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= +github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= +github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= +github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= +github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= +github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= +github.com/urfave/cli/v2 v2.24.1 h1:/QYYr7g0EhwXEML8jO+8OYt5trPnLHS0p3mrgExJ5NU= +github.com/urfave/cli/v2 v2.24.1/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/go-client/keygen/keygen.go b/go-client/keygen/keygen.go new file mode 100644 index 0000000..864625d --- /dev/null +++ b/go-client/keygen/keygen.go @@ -0,0 +1,164 @@ +package main + +import ( + "crypto/sha256" + "encoding/hex" + "encoding/json" + "fast-updates-client/config" + "fast-updates-client/logger" + "fast-updates-client/sortition" + "flag" + "fmt" + "log" + "math/big" + "os" + + "github.com/consensys/gnark-crypto/ecc/bn254" + "github.com/consensys/gnark-crypto/ecc/bn254/fp" +) + +var InFlag = flag.String("key", "", "Private key") +var AddressFlag = flag.String("address", "", "Value of the address that needs to be signed.") +var InFileFlag = flag.String("key_file", "", "File to load private and public key") +var KeyOutFlag = flag.String("key_out", "", "File to save a freshly generated private and public key") +var SigOutFlag = flag.String("sig_out", "", "File to save a signature") + +type keyStrings struct { + PublicKeyX string + PublicKeyY string + PrivateKey string +} + +type sigStrings struct { + RX string + RY string + S string +} + +func main() { + flag.Parse() + cfgLog := config.LoggerConfig{Console: true} + cfg := &config.Config{Logger: cfgLog} + + config.GlobalConfigCallback.Call(cfg) + + var keys *sortition.Key + var err error + if *InFileFlag == "" && *InFlag == "" { + logger.Info("No input specified, generating a new key pair.") + keys, err = sortition.KeyGen() + if err != nil { + log.Fatal(err) + } + keyStrings := keyStrings{PrivateKey: "0x" + keys.Sk.Text(16), PublicKeyX: "0x" + keys.Pk.X.Text(16), PublicKeyY: "0x" + keys.Pk.Y.Text(16)} + keyBytes, err := json.Marshal(keyStrings) + if err != nil { + log.Fatal(err) + } + + if *KeyOutFlag == "" { + logger.Info("Key generated: " + string(keyBytes)) + } else { + f, err := os.Create(*KeyOutFlag) + if err != nil { + log.Fatal(err) + } + + _, err = f.Write(keyBytes) + if err != nil { + log.Fatal(err) + } + err = f.Close() + if err != nil { + log.Fatal(err) + } + logger.Info("Saved key in file " + *KeyOutFlag) + } + + } else { + if *InFileFlag != "" { + keyBytes, err := os.ReadFile(*InFileFlag) + if err != nil { + log.Fatal(err) + } + var keyStrings keyStrings + err = json.Unmarshal(keyBytes, &keyStrings) + if err != nil { + log.Fatal(err) + } + + keys, err = sortition.KeyFromString(keyStrings.PrivateKey) + if err != nil { + log.Fatal(err) + } + + pkCheck := &bn254.G1Affine{} + pkXCheck, check := new(big.Int).SetString(keyStrings.PublicKeyX, 0) + if !check { + log.Fatal(fmt.Errorf("failed to read the key")) + } + pkCheck.X = *new(fp.Element).SetBigInt(pkXCheck) + pkYCheck, check := new(big.Int).SetString(keyStrings.PublicKeyY, 0) + if !check { + log.Fatal(fmt.Errorf("failed to read the key")) + } + pkCheck.Y = *new(fp.Element).SetBigInt(pkYCheck) + + if !keys.Pk.Equal(pkCheck) { + log.Fatal(fmt.Errorf("keys deformed")) + } + + logger.Info("Read the key pair from " + *InFileFlag) + } else { + keys, err = sortition.KeyFromString(*InFlag) + if err != nil { + log.Fatal(err) + } + + logger.Info("Read the key from the provided flag") + } + + } + + if *AddressFlag != "" { + addressBytes, err := hex.DecodeString((*AddressFlag)[2:]) + if err != nil { + log.Fatal(err) + } + hash := sha256.New() + hash.Write(addressBytes) + buf := hash.Sum(nil) + + var msg [32]byte + copy(msg[:], buf) + signature, err := sortition.Sign(keys, msg) + if err != nil { + log.Fatal(err) + } + sigStrings := sigStrings{S: "0x" + signature.S.Text(16), RX: "0x" + signature.R.X.Text(16), RY: "0x" + signature.R.Y.Text(16)} + sigBytes, err := json.Marshal(sigStrings) + if err != nil { + log.Fatal(err) + } + + if *SigOutFlag == "" { + logger.Info("Signature generated: " + string(sigBytes)) + } else { + f, err := os.Create(*SigOutFlag) + if err != nil { + log.Fatal(err) + } + + _, err = f.Write(sigBytes) + if err != nil { + log.Fatal(err) + } + err = f.Close() + if err != nil { + log.Fatal(err) + } + logger.Info("Saved the signature in file " + *SigOutFlag) + } + } + +} diff --git a/go-client/logger/colors.go b/go-client/logger/colors.go new file mode 100644 index 0000000..e0761b2 --- /dev/null +++ b/go-client/logger/colors.go @@ -0,0 +1,53 @@ +package logger + +import "go.uber.org/zap/zapcore" + +type Color string + +// Colors taken from Avalanche logger colors +// (avalanchego/utils/logging/color.go) +const ( + Black Color = "\033[0;30m" + DarkGray Color = "\033[1;30m" + Red Color = "\033[0;31m" + LightRed Color = "\033[1;31m" + Green Color = "\033[0;32m" + LightGreen Color = "\033[1;32m" + Orange Color = "\033[0;33m" + Yellow Color = "\033[1;33m" + Blue Color = "\033[0;34m" + LightBlue Color = "\033[1;34m" + Purple Color = "\033[0;35m" + LightPurple Color = "\033[1;35m" + Cyan Color = "\033[0;36m" + LightCyan Color = "\033[1;36m" + LightGray Color = "\033[0;37m" + White Color = "\033[1;37m" + + Reset Color = "\033[0;0m" + Bold Color = "\033[;1m" + Reverse Color = "\033[;7m" +) + +var ( + levelToColor = map[zapcore.Level]Color{ + zapcore.FatalLevel: Red, + zapcore.ErrorLevel: Orange, + zapcore.WarnLevel: Yellow, + zapcore.InfoLevel: Reset, + zapcore.DebugLevel: LightBlue, + } + + levelToCapitalColorString = make(map[zapcore.Level]string, len(levelToColor)) + unknownLevelColor = Reset +) + +func init() { + for level, color := range levelToColor { + levelToCapitalColorString[level] = color.Wrap(level.CapitalString()) + } +} + +func (lc Color) Wrap(text string) string { + return string(lc) + text + string(Reset) +} diff --git a/go-client/logger/logger.go b/go-client/logger/logger.go new file mode 100644 index 0000000..e585000 --- /dev/null +++ b/go-client/logger/logger.go @@ -0,0 +1,128 @@ +package logger + +import ( + "errors" + "fast-updates-client/config" + "log" + "os" + "syscall" + + "go.uber.org/zap" + "go.uber.org/zap/zapcore" + "gopkg.in/natefinch/lumberjack.v2" +) + +var ( + sugar *zap.SugaredLogger +) + +const ( + timeFormat = "[01-02|15:04:05.000]" +) + +func init() { + sugar = createSugaredLogger(DefaultLoggerConfig()) + + // zap.NewDevelopment( + + config.GlobalConfigCallback.AddCallback(func(config config.GlobalConfig) { + sugar = createSugaredLogger(config.LoggerConfig()) + }) +} + +func createSugaredLogger(config config.LoggerConfig) *zap.SugaredLogger { + atom := zap.NewAtomicLevel() + cores := make([]zapcore.Core, 0) + if config.Console { + cores = append(cores, createConsoleLoggerCore(config, atom)) + } + if len(config.File) > 0 { + cores = append(cores, createFileLoggerCore(config, atom)) + } + + core := zapcore.NewTee(cores...) + logger := zap.New(core, + zap.AddStacktrace(zap.ErrorLevel), + zap.AddCaller(), + zap.AddCallerSkip(1), + ) + defer func() { + err := logger.Sync() + if err != nil && !errors.Is(err, syscall.ENOTTY) && !errors.Is(err, syscall.EBADF) { + log.Print("Failed to sync logger", err) + } + }() + + sugar = logger.Sugar() + + level, err := zapcore.ParseLevel(config.Level) + if err != nil { + sugar.Errorf("Wrong level %s", config.Level) + } + atom.SetLevel(level) + return sugar +} + +func createFileLoggerCore(config config.LoggerConfig, atom zap.AtomicLevel) zapcore.Core { + w := zapcore.AddSync(&lumberjack.Logger{ + Filename: config.File, + MaxSize: config.MaxFileSize, + }) + encoderCfg := zap.NewProductionEncoderConfig() + encoderCfg.EncodeLevel = fileLevelEncoder + encoderCfg.EncodeTime = zapcore.TimeEncoderOfLayout(timeFormat) + return zapcore.NewCore( + zapcore.NewConsoleEncoder(encoderCfg), + w, + atom, + ) +} + +func createConsoleLoggerCore(config config.LoggerConfig, atom zap.AtomicLevel) zapcore.Core { + encoderCfg := zap.NewProductionEncoderConfig() + encoderCfg.EncodeLevel = consoleColorLevelEncoder + encoderCfg.EncodeTime = zapcore.TimeEncoderOfLayout(timeFormat) + return zapcore.NewCore( + zapcore.NewConsoleEncoder(encoderCfg), + zapcore.AddSync(os.Stdout), + atom, + ) +} + +func consoleColorLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder) { + s, ok := levelToCapitalColorString[l] + if !ok { + s = unknownLevelColor.Wrap(l.CapitalString()) + } + enc.AppendString(s) +} + +func fileLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder) { + enc.AppendString(l.CapitalString()) +} + +func DefaultLoggerConfig() config.LoggerConfig { + return config.LoggerConfig{ + Level: "DEBUG", + } +} + +func Warn(msg string, args ...interface{}) { + sugar.Warnf(msg, args...) +} + +func Error(msg string, args ...interface{}) { + sugar.Errorf(msg, args...) +} + +func Info(msg string, args ...interface{}) { + sugar.Infof(msg, args...) +} + +func Debug(msg string, args ...interface{}) { + sugar.Debugf(msg, args...) +} + +func Fatal(msg string, args ...interface{}) { + sugar.Fatalf(msg, args...) +} diff --git a/go-client/main.go b/go-client/main.go new file mode 100644 index 0000000..3c9168c --- /dev/null +++ b/go-client/main.go @@ -0,0 +1,41 @@ +package main + +import ( + "fast-updates-client/client" + "fast-updates-client/config" + "fast-updates-client/logger" + "fast-updates-client/provider" + "flag" + "time" +) + +func main() { + flag.Parse() + cfg, err := config.BuildConfig() + if err != nil { + logger.Fatal("Config error: %s", err) + return + } + config.GlobalConfigCallback.Call(cfg) + + valuesProvider := provider.NewHttpValueProvider(cfg.Client.ValueProviderUrl) + if err != nil { + logger.Fatal("Error: %s", err) + return + } + + client, err := client.CreateFastUpdatesClient(cfg, valuesProvider) + if err != nil { + logger.Fatal("Error: %s", err) + return + } + + for { + err = client.Run(0, 0) + if err != nil { + logger.Error("Error: %s", err) + logger.Info("Restarting") + } + time.Sleep(200 * time.Millisecond) + } +} diff --git a/go-client/provider/feed_provider.go b/go-client/provider/feed_provider.go new file mode 100644 index 0000000..6f961a8 --- /dev/null +++ b/go-client/provider/feed_provider.go @@ -0,0 +1,114 @@ +package provider + +import ( + "fast-updates-client/logger" + "math" + "math/big" + "math/rand" + + "github.com/pkg/errors" +) + +type ValuesDecimals struct { + Feeds []*big.Int + Decimals []int8 +} + +// Values provider is an interface needed to provide current off-chain values. +type ValuesProvider interface { + GetValues(feeds []FeedId) ([]float64, error) +} + +// GetDeltas calculates the deltas between the provider values and the chain values for each feed. +// It returns the deltas as a byte slice, the deltas as a string, and any error that occurred. +// rawChainValues and providerValues contain values for supported feeds. +func GetDeltas(chainValues []float64, providerValues []float64, valueIndexToFeedIndex []int, scale *big.Int) ([]byte, string, error) { + if len(chainValues) != len(providerValues) { + return nil, "", errors.New("chain and provider values length mismatch") + } + scaleDiff, _ := new(big.Int).Sub(scale, new(big.Int).Exp(big.NewInt(2), big.NewInt(127), nil)).Float64() + scaleDiff = scaleDiff / math.Pow(2, 127) + + logger.Info("chain feeds values: %v, provider feeds values: %v", chainValues, providerValues) + + lastFeedIndex := valueIndexToFeedIndex[len(valueIndexToFeedIndex)-1] + deltasList := make([]byte, lastFeedIndex+1) + // for index := range deltasList { + // deltasList[index] = '0' + // } + + for i := 0; i < len(chainValues); i++ { + delta := byte('0') + diff := math.Abs((providerValues[i] - chainValues[i])) / chainValues[i] + + if diff > scaleDiff { + if providerValues[i] > chainValues[i] { + delta = '+' + } else if providerValues[i] < chainValues[i] { + delta = '-' + } + } else { + r := rand.Float64() + if r < diff/scaleDiff { + if providerValues[i] > chainValues[i] { + delta = '+' + } else if providerValues[i] < chainValues[i] { + delta = '-' + } + } + } + + deltasList[valueIndexToFeedIndex[i]] = delta + } + + deltasString := string(deltasList) + logger.Info("deltas: %s", deltasString) + deltas, err := StringToDeltas(deltasString) + + return deltas, deltasString, err +} + +// StringToDeltas converts a string representation of updates into a byte slice of deltas. +// Each character in the input string represents a delta value, where '+' represents an increment of 1 +// and '-' represents an increment of 3. The deltas are packed into a byte slice, with each byte +// containing 4 delta values. +func StringToDeltas(update string) ([]byte, error) { + deltas := make([]byte, 0) + k := 0 + var delta byte + for i, part := range update { + k = i % 4 + if k == 0 { + delta = 0 + } + if part == '+' { + delta += 1 << (2 * (3 - k)) + } + if part == '-' { + delta += 3 << (2 * (3 - k)) + } + if k == 3 { + deltas = append(deltas, delta) + } + } + if len(update)%4 != 0 { + deltas = append(deltas, delta) + } + + return deltas, nil +} + +// Sorts values according to feeds order. +func sortFeedValues(feeds []FeedId, feedValues []FeedValue) ([]float64, error) { + var values []float64 + for _, feed := range feeds { + for _, v := range feedValues { + if v.Feed == feed { + value := v.Value + values = append(values, value) + break + } + } + } + return values, nil +} diff --git a/go-client/provider/feed_provider_test.go b/go-client/provider/feed_provider_test.go new file mode 100644 index 0000000..5378f14 --- /dev/null +++ b/go-client/provider/feed_provider_test.go @@ -0,0 +1,26 @@ +package provider_test + +import ( + "fast-updates-client/provider" + "testing" +) + +func TestStringToDeltas(t *testing.T) { + update := "+-0+" + expected := []byte{113} + result, err := provider.StringToDeltas(update) + + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if len(result) != len(expected) { + t.Errorf("Expected length of result to be %d, but got %d", len(expected), len(result)) + } + + for i := range expected { + if result[i] != expected[i] { + t.Errorf("Expected result[%d] to be %d, but got %d", i, expected[i], result[i]) + } + } +} diff --git a/go-client/provider/http_feed_provider.go b/go-client/provider/http_feed_provider.go new file mode 100644 index 0000000..a6246ef --- /dev/null +++ b/go-client/provider/http_feed_provider.go @@ -0,0 +1,108 @@ +package provider + +import ( + "bytes" + "encoding/json" + "fast-updates-client/logger" + "fmt" + "io" + "net/http" +) + +type FeedValue struct { + Feed FeedId `json:"feed"` + Value float64 `json:"value"` +} + +type HttpValuesProvider struct { + baseUrl string + httpClient *http.Client +} + +func (p *HttpValuesProvider) GetValues(feeds []FeedId) ([]float64, error) { + feedValues, err := p.GetFeedValues(feeds) + if err != nil { + return nil, err + } + values, err := sortFeedValues(feeds, feedValues) + if err != nil { + return nil, err + } + + return values, err +} + +func NewHttpValueProvider(baseUrl string) *HttpValuesProvider { + logger.Info("Creating new feed values provider") + + return &HttpValuesProvider{ + baseUrl: baseUrl, + httpClient: http.DefaultClient, + } +} + +// Define the struct for the payload +type FeedValuesRequest struct { + Feeds []FeedId `json:"feeds"` +} + +type FeedId struct { + Category byte `json:"category"` + Name string `json:"name"` +} + +type FeedValuesResponse struct { + VotingRoundId int `json:"votingRoundId"` + Data []FeedValue `json:"data"` +} + +func (c *HttpValuesProvider) post(endpoint string, requestBody []byte) ([]byte, error) { + req, err := http.NewRequest("POST", c.baseUrl+endpoint, bytes.NewBuffer(requestBody)) + if err != nil { + return nil, err + } + req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36") + req.Header.Set("accept", "application/json") + req.Header.Set("Content-Type", "application/json") + + resp, err := c.httpClient.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode != 201 { + return nil, fmt.Errorf("%s (Code: %d)", resp.Status, resp.StatusCode) + } + + responseBody, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + return responseBody, nil +} + +func (c *HttpValuesProvider) GetFeedValues(feeds []FeedId) ([]FeedValue, error) { + req, err := json.Marshal( + FeedValuesRequest{ + Feeds: feeds, + }, + ) + if err != nil { + return nil, err + } + + // TODO: Should we specify voting round id instead of 0? + body, err := c.post("feed-values/0", req) + if err != nil { + return nil, err + } + + res := FeedValuesResponse{} + err = json.Unmarshal(body, &res) + if err != nil { + return nil, err + } + + return res.Data, nil +} diff --git a/go-client/provider/http_feed_provider_test.go b/go-client/provider/http_feed_provider_test.go new file mode 100644 index 0000000..8ae384a --- /dev/null +++ b/go-client/provider/http_feed_provider_test.go @@ -0,0 +1,47 @@ +package provider_test + +import ( + "fast-updates-client/client" + "fast-updates-client/provider" + "math/big" + "testing" +) + +func TestRawChainFeedsToFloats(t *testing.T) { + rawFeeds := provider.ValuesDecimals{ + Feeds: []*big.Int{big.NewInt(100), big.NewInt(200), big.NewInt(300)}, + Decimals: []int8{2, 2, 2}, + } + + expected := []float64{1.0, 2.0, 3.0} + result := client.RawChainValuesToFloats(rawFeeds) + + if len(result) != len(expected) { + t.Errorf("Expected length of result to be %d, but got %d", len(expected), len(result)) + } + + for i := range expected { + if result[i] != expected[i] { + t.Errorf("Expected result[%d] to be %f, but got %f", i, expected[i], result[i]) + } + } +} + +func TestGetProviderFeeds(t *testing.T) { + // Add test case + feedsIds := []provider.FeedId{ + {Category: 1, Name: "BTC/USD"}, + {Category: 1, Name: "ETH/USD"}, + {Category: 1, Name: "BOL/USD"}, + } + // TODO: Mock endpoint and fix test + feedProvider := provider.NewHttpValueProvider("http://localhost:3101/") + + feeds, err := feedProvider.GetValues(feedsIds) + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if len(feeds) != len(feedsIds) { + t.Errorf("Expected length of feeds to be %d, but got %d", len(feedsIds), len(feeds)) + } +} diff --git a/go-client/provider/random_provider.go b/go-client/provider/random_provider.go new file mode 100644 index 0000000..9e41b61 --- /dev/null +++ b/go-client/provider/random_provider.go @@ -0,0 +1,21 @@ +package provider + +import ( + "math/rand" +) + +type RandomFeedsProvider struct { +} + +func NewRandomFeedsProvider() RandomFeedsProvider { + return RandomFeedsProvider{} +} + +func (provider *RandomFeedsProvider) GetValues(feeds []FeedId) ([]float64, error) { + randomFeeds := make([]float64, len(feeds)) + for i := 0; i < len(feeds); i++ { + randomFeeds[i] = rand.Float64() + } + + return randomFeeds, nil +} diff --git a/go-client/provider/random_provider_test.go b/go-client/provider/random_provider_test.go new file mode 100644 index 0000000..2b0a1cb --- /dev/null +++ b/go-client/provider/random_provider_test.go @@ -0,0 +1,22 @@ +package provider_test + +import ( + "fast-updates-client/provider" + "testing" +) + +func TestGetRandomDeltas(t *testing.T) { + randProvider := provider.NewRandomFeedsProvider() + feedsIds := []provider.FeedId{ + {Category: 1, Name: "BTC/USD"}, + {Category: 1, Name: "ETH/USD"}, + {Category: 1, Name: "BOL/USD"}, + } + feeds, err := randProvider.GetValues(feedsIds) + if err != nil { + t.Fatal(err) + } + if len(feeds) != len(feedsIds) { + t.Fatalf("number of deltas in the representation string not correct") + } +} diff --git a/go-client/sortition/sortition.go b/go-client/sortition/sortition.go new file mode 100644 index 0000000..53d6dd8 --- /dev/null +++ b/go-client/sortition/sortition.go @@ -0,0 +1,256 @@ +package sortition + +import ( + "crypto/rand" + "crypto/sha256" + "fmt" + "math/big" + + "github.com/consensys/gnark-crypto/ecc/bn254" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/crypto" +) + +var ( + p = bn254.ID.BaseField() + q = bn254.ID.ScalarField() + g = GeneratorG1() + one = big.NewInt(1) + uint256Ty, _ = abi.NewType("uint256", "uint256", nil) + bytes32Ty, _ = abi.NewType("bytes32", "bytes32", nil) +) + +// Key structure represents a private and public key +// used in the sortition protocol +type Key struct { + Pk *bn254.G1Affine + Sk *big.Int +} + +// Proof represents a generated verifiable randomness +// together with a proof of the correctness. +type Proof struct { + Gamma *bn254.G1Affine + C *big.Int + S *big.Int +} + +// UpdateProof contains all the information needed to prove the eligibility to +// submit updates. +type UpdateProof struct { + Proof *Proof + BlockNumber *big.Int + Replicate *big.Int +} + +// Signature represents a Schnorr signature of arbitrary message using +// the private/public key used in the sortition protocol. +type Signature struct { + R *bn254.G1Affine + S *big.Int +} + +// KeyGen generates a private/public key pair to be used in the +// sortition protocol. +func KeyGen() (*Key, error) { + sk, err := rand.Int(rand.Reader, q) + if err != nil { + return nil, err + } + pk := new(bn254.G1Affine).ScalarMultiplicationBase(sk) + + return &Key{pk, sk}, nil +} + +// KeyFromString creates a a private/public key pair from the +// hexagonal string representation of the private key. +func KeyFromString(skString string) (*Key, error) { + sk, check := new(big.Int).SetString(skString, 0) + if !check { + return nil, fmt.Errorf("failed to read the secret key") + } + pk := new(bn254.G1Affine).ScalarMultiplicationBase(sk) + + return &Key{pk, sk}, nil +} + +// VerifiableRandomness creates a deterministic verifiable randomness (with proof) given a +// private key, seed, blockNum, and replicate number. +func VerifiableRandomness(key *Key, seed *big.Int, blockNum *big.Int, replicate *big.Int) (Proof, error) { + arguments := abi.Arguments{{Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}} + toHash, err := arguments.Pack(seed, blockNum, replicate) + if err != nil { + return Proof{}, err + } + + h := HashToG1(toHash) + gamma := new(bn254.G1Affine).ScalarMultiplication(h, key.Sk) + + k, err := rand.Int(rand.Reader, q) + if err != nil { + return Proof{}, err + } + + gToK := new(bn254.G1Affine).ScalarMultiplicationBase(k) + hToK := new(bn254.G1Affine).ScalarMultiplication(h, k) + + arguments = abi.Arguments{{Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}, + {Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}, + {Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}, + {Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}} + + toHash, err = arguments.Pack( + g.X.BigInt(new(big.Int)), g.Y.BigInt(new(big.Int)), + h.X.BigInt(new(big.Int)), h.Y.BigInt(new(big.Int)), + key.Pk.X.BigInt(new(big.Int)), key.Pk.Y.BigInt(new(big.Int)), + gamma.X.BigInt(new(big.Int)), gamma.Y.BigInt(new(big.Int)), + gToK.X.BigInt(new(big.Int)), gToK.Y.BigInt(new(big.Int)), + hToK.X.BigInt(new(big.Int)), hToK.Y.BigInt(new(big.Int)), + ) + if err != nil { + return Proof{}, err + } + hash := sha256.New() + hash.Write(toHash) + buf := hash.Sum(nil) + c := new(big.Int).SetBytes(buf) + c.Mod(c, q) + + s := new(big.Int).Mul(key.Sk, c) + s.Neg(s) + s.Add(k, s) + s.Mod(s, q) + + return Proof{Gamma: gamma, S: s, C: c}, nil +} + +// VerifyRandomness verifies that the provided randomness corresponds to the providers public key, +// and given seed, block number, and replicate number. Used for tests, actual verification +// is done at the contract. +func VerifyRandomness(proof Proof, pk *bn254.G1Affine, seed *big.Int, blockNum *big.Int, replicate *big.Int) (bool, error) { + pkToC := new(bn254.G1Affine).ScalarMultiplication(pk, proof.C) + gToS := new(bn254.G1Affine).ScalarMultiplicationBase(proof.S) + u := new(bn254.G1Affine).Add(pkToC, gToS) + + arguments := abi.Arguments{{Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}} + toHash, err := arguments.Pack(seed, blockNum, replicate) + if err != nil { + return false, err + } + h := HashToG1(toHash) + + gammaToC := new(bn254.G1Affine).ScalarMultiplication(proof.Gamma, proof.C) + hToS := new(bn254.G1Affine).ScalarMultiplication(h, proof.S) + v := new(bn254.G1Affine).Add(gammaToC, hToS) + + arguments = abi.Arguments{{Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}, + {Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}, + {Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}, + {Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}} + + toHash, err = arguments.Pack( + g.X.BigInt(new(big.Int)), g.Y.BigInt(new(big.Int)), + h.X.BigInt(new(big.Int)), h.Y.BigInt(new(big.Int)), + pk.X.BigInt(new(big.Int)), pk.Y.BigInt(new(big.Int)), + proof.Gamma.X.BigInt(new(big.Int)), proof.Gamma.Y.BigInt(new(big.Int)), + u.X.BigInt(new(big.Int)), u.Y.BigInt(new(big.Int)), + v.X.BigInt(new(big.Int)), v.Y.BigInt(new(big.Int)), + ) + if err != nil { + return false, err + } + var buf []byte + hash := sha256.New() + hash.Write(toHash) + buf = hash.Sum(nil) + c := new(big.Int).SetBytes(buf) + c.Mod(c, q) + + if c.Cmp(proof.C) != 0 { + return false, nil + } + + return true, nil +} + +// FindUpdateProofs searches among replicate numbers smaller than the provided weight for +// a randomness that is generated by the provided key, seed and block number, and is +// smaller than the provided cutoff. Such a randomness proves that the client can submit +// an update to the chain. +func FindUpdateProofs(key *Key, seed, cutoff *big.Int, blockNum *big.Int, weight uint64) ([]*UpdateProof, error) { + updateProofs := make([]*UpdateProof, 0) + for rep := 0; rep < int(weight); rep++ { + proof, err := VerifiableRandomness(key, seed, blockNum, big.NewInt(int64(rep))) + if err != nil { + return nil, fmt.Errorf("VerifiableRandomness: %w", err) + } + if proof.Gamma.X.BigInt(new(big.Int)).Cmp(cutoff) < 0 { + updateProof := UpdateProof{Proof: &proof, BlockNumber: blockNum, Replicate: big.NewInt(int64(rep))} + updateProofs = append(updateProofs, &updateProof) + } + } + + return updateProofs, nil +} + +// HashToG1 hashes an arbitrary message to a point in an elliptic group. +func HashToG1(msg []byte) *bn254.G1Affine { + var buf []byte + hash := sha256.New() + hash.Write(msg) + buf = hash.Sum(nil) + x := new(big.Int).SetBytes(buf) + + for { + x3 := new(big.Int).Exp(x, big.NewInt(3), p) + x3.Add(x3, big.NewInt(3)) + + y := new(big.Int).ModSqrt(x3, p) + if y != nil { + g := new(bn254.G1Affine) + g.X.SetBigInt(x) + g.Y.SetBigInt(y) + + return g + } + x.Add(x, one) + } +} + +func Sign(key *Key, msg [32]byte) (*Signature, error) { + k, err := rand.Int(rand.Reader, q) + if err != nil { + return nil, err + } + r := new(bn254.G1Affine).ScalarMultiplicationBase(k) + + arguments := abi.Arguments{ + {Type: uint256Ty}, {Type: uint256Ty}, {Type: bytes32Ty}, + {Type: uint256Ty}, {Type: uint256Ty}, + } + + toHash, err := arguments.Pack( + key.Pk.X.BigInt(new(big.Int)), key.Pk.Y.BigInt(new(big.Int)), + msg, + r.X.BigInt(new(big.Int)), r.Y.BigInt(new(big.Int)), + ) + if err != nil { + return nil, err + } + + eBytes := crypto.Keccak256(toHash) + e := new(big.Int).SetBytes(eBytes) + + s := new(big.Int).Sub(k, new(big.Int).Mul(key.Sk, e)) + s.Mod(s, q) + + return &Signature{R: r, S: s}, nil +} + +// GeneratorG1 returns the generator of the elliptic group used in +// the sortition protocol. +func GeneratorG1() bn254.G1Affine { + _, _, g, _ := bn254.Generators() + + return g +} diff --git a/go-client/sortition/sortition_test.go b/go-client/sortition/sortition_test.go new file mode 100644 index 0000000..6feb728 --- /dev/null +++ b/go-client/sortition/sortition_test.go @@ -0,0 +1,80 @@ +package sortition_test + +import ( + "crypto/rand" + "fast-updates-client/sortition" + "fmt" + "math/big" + "testing" + + "github.com/consensys/gnark-crypto/ecc/bn254" +) + +func TestSortition(t *testing.T) { + key, err := sortition.KeyGen() + if err != nil { + t.Fatal(err) + } + + blockNum, err := rand.Int(rand.Reader, new(big.Int).Exp(big.NewInt(2), big.NewInt(256), nil)) + if err != nil { + t.Fatal(err) + } + seed, err := rand.Int(rand.Reader, new(big.Int).Exp(big.NewInt(2), big.NewInt(256), nil)) + if err != nil { + t.Fatal(err) + } + for i := int64(0); i < 1000; i++ { + replicate := big.NewInt(i) + proof, err := sortition.VerifiableRandomness(key, seed, blockNum, replicate) + if err != nil { + t.Fatal(err) + } + + check, err := sortition.VerifyRandomness(proof, key.Pk, seed, blockNum, replicate) + if err != nil { + t.Fatal(err) + } + if check == false { + t.Fatal(fmt.Errorf("failed randomness check")) + } + } +} + +func TestFindUpdateProofs(t *testing.T) { + key, err := sortition.KeyGen() + if err != nil { + t.Fatal(err) + } + + blockNum, err := rand.Int(rand.Reader, new(big.Int).Exp(big.NewInt(2), big.NewInt(256), nil)) + if err != nil { + t.Fatal(err) + } + seed, err := rand.Int(rand.Reader, new(big.Int).Exp(big.NewInt(2), big.NewInt(256), nil)) + if err != nil { + t.Fatal(err) + } + cutoff := new(big.Int).Div(bn254.ID.BaseField(), big.NewInt(10)) + weight := uint64(1000) + + updateProofs, err := sortition.FindUpdateProofs(key, seed, cutoff, blockNum, weight) + if err != nil { + t.Fatal(err) + } + for _, updateProof := range updateProofs { + if updateProof.Proof.Gamma.X.BigInt(new(big.Int)).Cmp(cutoff) >= 0 { + t.Fatal("randomness should be smaller than cutoff") + } + if updateProof.Replicate.Int64() >= int64(weight) { + t.Fatal("replicate should be smaller than weight") + } + check, err := sortition.VerifyRandomness(*updateProof.Proof, key.Pk, seed, blockNum, updateProof.Replicate) + if err != nil { + t.Fatal(err) + } + if check == false { + t.Fatal(fmt.Errorf("failed randomness check")) + } + } +} diff --git a/go-client/tests/configs/config1.toml b/go-client/tests/configs/config1.toml new file mode 100644 index 0000000..b9dacf6 --- /dev/null +++ b/go-client/tests/configs/config1.toml @@ -0,0 +1,35 @@ +[client] +private_key = "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089" +sortition_private_key = "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089" +fast_updater_address = "0x0C6c3C47A1f650809B0D1048FDf9603e09473D7E" +fast_updates_configuration_address = "0x06bA8d8af0dF898D0712DffFb0f862cC51AF45c2" +submission_address = "0x18b9306737eaf6E8FC8e737F488a1AE077b18053" +flare_system_manager = "0xa4bcDF64Cdd5451b6ac3743B414124A6299B65FF" +incentive_manager_address = "0x78Aeff0658Fa67735fBF99Ce7CDB01Fe5D520259" +submission_window = 8 +advance_blocks = 0 +max_weight = 256 +value_provider_base_url = "http://host.docker.internal:3101/" + +[transactions] +accounts = [ + "0xac9f0d4e1a33b04f1424399eafa37c12dcadb858ea7b6ae979dbbfb377f3e52e", + "0xf7d92163b49d93b0fb810b9bb7fb2b3a7a3833495b9f04c1148fa311a538870d", + "0xf2369231bdf51d8b3f994b63a675ba413169bcdd27228cee057db8f18348ea7c", +] +gas_limit = 8000000 +value = 0 +gas_price_multiplier = 1.2 + +[logger] +level = "INFO" +file = "./logger/logs/fast_updates_client1.log" +console = true + +[chain] +# node_url = "http://ganache:8545/" +# chain_id = 1337 +node_url = "http://host.docker.internal:8545/" +chain_id = 31337 +# node_url = "https://coston2-api.flare.network/ext/C/rpc" +# chain_id = 114 diff --git a/go-client/tests/configs/config2.toml b/go-client/tests/configs/config2.toml new file mode 100644 index 0000000..fdf050e --- /dev/null +++ b/go-client/tests/configs/config2.toml @@ -0,0 +1,35 @@ +[client] +private_key = "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908d" +sortition_private_key = "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908d" +fast_updater_address = "0x0C6c3C47A1f650809B0D1048FDf9603e09473D7E" +fast_updates_configuration_address = "0x06bA8d8af0dF898D0712DffFb0f862cC51AF45c2" +submission_address = "0x18b9306737eaf6E8FC8e737F488a1AE077b18053" +flare_system_manager = "0xa4bcDF64Cdd5451b6ac3743B414124A6299B65FF" +incentive_manager_address = "0x78Aeff0658Fa67735fBF99Ce7CDB01Fe5D520259" +submission_window = 8 +advance_blocks = 0 +max_weight = 256 +value_provider_base_url = "http://host.docker.internal:3101/" + +[transactions] +accounts = [ + "0xa97b38b31b82ec9625b5d3e676b157b8feb5f37511cffb1ac0e2a186b32088ad", + "0xef47811d16008e26090a629d205cb80a57e0515ab73349cd01eb4f18d29782bf", + "0x4be7bbacf640bb188f4d7faaba95537c5d81c860af42ca9c84e56f0214d4742d", +] +gas_limit = 8000000 +value = 0 +gas_price_multiplier = 1.2 + +[logger] +level = "INFO" +file = "./logger/logs/fast_updates_client2.log" +console = true + +[chain] +# node_url = "http://ganache:8545/" +# chain_id = 1337 +node_url = "http://host.docker.internal:8545/" +chain_id = 31337 +# node_url = "https://coston2-api.flare.network/ext/C/rpc" +# chain_id = 114 diff --git a/go-client/tests/configs/config3.toml b/go-client/tests/configs/config3.toml new file mode 100644 index 0000000..94821f9 --- /dev/null +++ b/go-client/tests/configs/config3.toml @@ -0,0 +1,35 @@ +[client] +private_key = "0x3470bca8ba3507255a31d99a04ae7ed047974c1aba721021a0dfdcffa29a685c" +sortition_private_key = "0x3470bca8ba3507255a31d99a04ae7ed047974c1aba721021a0dfdcffa29a685c" +fast_updater_address = "0x0C6c3C47A1f650809B0D1048FDf9603e09473D7E" +fast_updates_configuration_address = "0x06bA8d8af0dF898D0712DffFb0f862cC51AF45c2" +submission_address = "0x18b9306737eaf6E8FC8e737F488a1AE077b18053" +flare_system_manager = "0xa4bcDF64Cdd5451b6ac3743B414124A6299B65FF" +incentive_manager_address = "0x78Aeff0658Fa67735fBF99Ce7CDB01Fe5D520259" +submission_window = 8 +advance_blocks = 0 +max_weight = 256 +value_provider_base_url = "http://host.docker.internal:3101/" + +[transactions] +accounts = [ + "0x47f234638c3bb44e3a35dcd57b7e57727f301caaf9232d4661763a685d3aa5d6", + "0x4f57fb560c0ac60b8556a0ddd08a04befb4a3c93d0a62e6923b3b74c9c45a0ec", + "0x9af36beedf7efdedccb631bf95c2b4e14e0fb6b6af4f89f89ff30001f7510bee", +] +gas_limit = 8000000 +value = 0 +gas_price_multiplier = 1.2 + +[logger] +level = "INFO" +file = "./logger/logs/fast_updates_client3.log" +console = true + +[chain] +# node_url = "http://ganache:8545/" +# chain_id = 1337 +node_url = "http://host.docker.internal:8545/" +chain_id = 31337 +# node_url = "https://coston2-api.flare.network/ext/C/rpc" +# chain_id = 114 diff --git a/go-client/tests/configs/config_coston2.toml b/go-client/tests/configs/config_coston2.toml new file mode 100644 index 0000000..b3e2055 --- /dev/null +++ b/go-client/tests/configs/config_coston2.toml @@ -0,0 +1,30 @@ +[client] +private_key = "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb" +sortition_private_key = "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb" +fast_updater_address = "0x740e30661aE6d8eF368088A34b3f4AD302F63841" +mock_address = "0x3b9a1E27c317DdD9c256dD5a49f7f2C67E603c06" +flare_system_manager = "0x3b9a1E27c317DdD9c256dD5a49f7f2C67E603c06" +submission_window = 8 +advance_blocks = 0 +max_weight = 512 +value_provider_base_url = "http://host.docker.internal:3101/" + +[transactions] +accounts = [ + "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb", + "0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569", + "0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131", +] +gas_limit = 8000000 +value = 0 +gas_price_multiplier = 1.2 + + +[logger] +level = "INFO" +file = "./logger/logs/fast_updates_client.log" +console = true + +[chain] +chain_id = 114 +node_url = "https://coston2-api.flare.network/ext/C/rpc" diff --git a/go-client/tests/configs/config_deploy.toml b/go-client/tests/configs/config_deploy.toml new file mode 100644 index 0000000..bb39411 --- /dev/null +++ b/go-client/tests/configs/config_deploy.toml @@ -0,0 +1,18 @@ +[transactions] +accounts = [ + "0xc5e8f61d1ab959b397eecc0a37a6517b8e67a0e7cf1f4bce5591f3ed80199122", +] +gas_limit = 8000000 +value = 0 +gas_price_multiplier = 1.2 + + +[chain] +node_url = "http://ganache:8545/" +chain_id = 1337 +# node_url = "http://127.0.0.1:8545/" +# chain_id = 1337 +# node_url = "https://coston2-api.flare.network/ext/C/rpc" +# chain_id = 114 +# chain_id = 16 +# node_url = "https://coston-api.flare.network/ext/bc/C/rpc" diff --git a/go-client/tests/configs/config_hardhat.toml b/go-client/tests/configs/config_hardhat.toml new file mode 100644 index 0000000..44edbe3 --- /dev/null +++ b/go-client/tests/configs/config_hardhat.toml @@ -0,0 +1,29 @@ +[client] +private_key = "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089" +sortition_private_key = "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089" +fast_updater_address = "0x0C6c3C47A1f650809B0D1048FDf9603e09473D7E" +flare_system_manager = "0xa4bcDF64Cdd5451b6ac3743B414124A6299B65FF" +submission_window = 8 +advance_blocks = 0 +max_weight = 256 +value_provider_base_url = "http://host.docker.internal:3101/" + +[transactions] +accounts = [ + "0xac9f0d4e1a33b04f1424399eafa37c12dcadb858ea7b6ae979dbbfb377f3e52e", + "0xf7d92163b49d93b0fb810b9bb7fb2b3a7a3833495b9f04c1148fa311a538870d", + "0xf2369231bdf51d8b3f994b63a675ba413169bcdd27228cee057db8f18348ea7c", +] +gas_limit = 8000000 +value = 0 +gas_price_multiplier = 1.2 + + +[logger] +level = "INFO" +file = "./logger/logs/fast_updates_client.log" +console = true + +[chain] +node_url = "http://127.0.0.1:8545/" +chain_id = 31337 diff --git a/go-client/tests/docker-compose.yaml b/go-client/tests/docker-compose.yaml new file mode 100644 index 0000000..3495c63 --- /dev/null +++ b/go-client/tests/docker-compose.yaml @@ -0,0 +1,72 @@ +version: '3.3' + +services: + ganache: + image: trufflesuite/ganache:latest + command: --chain.hardfork="london" --miner.blockTime=5 --wallet.accounts "0xc5e8f61d1ab959b397eecc0a37a6517b8e67a0e7cf1f4bce5591f3ed80199122, 10000000000000000000000" "0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb, 10000000000000000000000" "0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569, 10000000000000000000000" "0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131, 10000000000000000000000" "0x87630b2d1de0fbd5044eb6891b3d9d98c34c8d310c852f98550ba774480e47cc, 10000000000000000000000" "0x275cc4a2bfd4f612625204a20a2280ab53a6da2d14860c47a9f5affe58ad86d4, 10000000000000000000000" "0x7f307c41137d1ed409f0a7b028f6c7596f12734b1d289b58099b99d60a96efff, 10000000000000000000000" "0x2a8aede924268f84156a00761de73998dac7bf703408754b776ff3f873bcec60, 10000000000000000000000" "0x8b24fd94f1ce869d81a34b95351e7f97b2cd88a891d5c00abc33d0ec9501902e, 10000000000000000000000" "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29085, 10000000000000000000000" "0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29086, 10000000000000000000000" + ports: + - 8545:8545 + + deploy: + container_name: deploy + image: golang:1.21.0-bullseye + volumes: + - "../:/client" + working_dir: "/client" + command: /bin/bash -c 'go run tests/test.go --config tests/configs/config_deploy.toml deploy' + + mock_register: + container_name: mock_register + image: golang:1.21.0-bullseye + volumes: + - "../:/client" + working_dir: "/client" + command: /bin/bash -c 'go run tests/test.go --config tests/configs/config1.toml register 2 && go run tests/test.go --config tests/configs/config2.toml register 2 && go run tests/test.go --config tests/configs/config3.toml register 2' + + client1: + container_name: client1 + image: golang:1.21.0-bullseye + volumes: + - "../:/client" + working_dir: "/client" + extra_hosts: + - "host.docker.internal:host-gateway" + command: /bin/bash -c 'go run main.go --config tests/configs/config1.toml' + + client2: + container_name: client2 + image: golang:1.21.0-bullseye + volumes: + - "../:/client" + working_dir: "/client" + extra_hosts: + - "host.docker.internal:host-gateway" + command: /bin/bash -c 'go run main.go --config tests/configs/config2.toml' + + client3: + container_name: client3 + image: golang:1.21.0-bullseye + volumes: + - "../:/client" + working_dir: "/client" + extra_hosts: + - "host.docker.internal:host-gateway" + command: /bin/bash -c 'go run main.go --config tests/configs/config3.toml' + + test-client: + container_name: test-client + image: golang:1.21.0-bullseye + volumes: + - "../:/client" + working_dir: "/client" + command: /bin/bash -c 'CHAIN_NODE="docker_ganache" go test -v client/client_test.go' + + value-provider: + container_name: value-provider + image: ghcr.io/flare-foundation/ftso-scaling:latest + ports: + - 3101:3101 + environment: + - VALUE_PROVIDER_IMPL=${VALUE_PROVIDER_IMPL} + - VALUE_PROVIDER_CLIENT_PORT=3101 + command: /bin/bash -c 'node dist/apps/example_provider/apps/example_provider/src/main.js' \ No newline at end of file diff --git a/go-client/tests/test.go b/go-client/tests/test.go new file mode 100644 index 0000000..9965aa7 --- /dev/null +++ b/go-client/tests/test.go @@ -0,0 +1,42 @@ +package main + +import ( + "flag" + "fmt" + "os" + "strconv" + + "fast-updates-client/config" + "fast-updates-client/logger" + "fast-updates-client/tests/test_utils" +) + +func main() { + flag.Parse() + cfg, err := config.BuildConfig() + if err != nil { + fmt.Println("Config error: %w", err) + return + } + config.GlobalConfigCallback.Call(cfg) + + arg := os.Args[3] + if arg == "deploy" { + test_utils.Deploy(cfg) + } else if arg == "register" { + numEpoch, err := strconv.Atoi(os.Args[4]) + if err != nil { + if os.Args[4] == "" { + numEpoch = 1 + } else { + logger.Fatal("Config error: %s", err) + return + } + } + err = test_utils.Register(cfg, numEpoch) + if err != nil { + logger.Fatal("Registering error: %s", err) + return + } + } +} diff --git a/go-client/tests/test_utils/test_utils.go b/go-client/tests/test_utils/test_utils.go new file mode 100644 index 0000000..f2af0e1 --- /dev/null +++ b/go-client/tests/test_utils/test_utils.go @@ -0,0 +1,269 @@ +package test_utils + +import ( + "context" + "crypto/ecdsa" + "encoding/hex" + + "fast-updates-client/client" + "fast-updates-client/config" + "fast-updates-client/contracts-interface/fast_updater" + "fast-updates-client/contracts-interface/fast_updates_configuration" + "fast-updates-client/contracts-interface/incentive" + "fast-updates-client/contracts-interface/mock" + "fast-updates-client/logger" + "log" + "math/big" + + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/ethclient" +) + +var ( + BASE_SAMPLE_SIZE, _ = new(big.Int).SetString("0x01000000000000000000000000000000", 0) + BASE_RANGE, _ = new(big.Int).SetString("0x00000800000000000000000000000000", 0) + SAMPLE_INCREASE_LIMIT, _ = new(big.Int).SetString("0x00100000000000000000000000000000", 0) + RANGE_INCREASE_PRICE = big.NewInt(1000000) + DURATION = big.NewInt(8) + EPOCH_LEN = big.NewInt(1000) + // starting feeds hardcoded in mocked contract to be 100000 + FEEDS_INDICES = []*big.Int{big.NewInt(0), big.NewInt(1), big.NewInt(2), big.NewInt(3), big.NewInt(4), big.NewInt(5), big.NewInt(6), big.NewInt(7), big.NewInt(8)} + SUBMISSION_WINDOW = big.NewInt(10) + BACKLOG_LEN = big.NewInt(20) +) + +type ContractAddresses struct { + FastUpdater common.Address + FastUpdatesConfiguration common.Address + IncentiveManager common.Address + Mock common.Address +} + +func Register(cfg *config.Config, numEpochs int) error { + client, err := client.CreateFastUpdatesClient(cfg, nil) + if err != nil { + return err + } + + epoch, err := client.GetCurrentRewardEpochId() + if err != nil { + return err + } + + for i := 0; i < numEpochs; i++ { + client.Register(epoch + int64(i)) + } + + client.WaitToEmptyRequests() + client.Stop() + + return nil +} + +func Deploy(cfg *config.Config) ContractAddresses { + client, err := ethclient.Dial(cfg.Chain.NodeURL) + if err != nil { + logger.Fatal("Error: %s", err) + } + privateKey := cfg.Transactions.Accounts[0] + if privateKey[:2] == "0x" { + privateKey = privateKey[2:] + } + privateKeyECDSA, err := crypto.HexToECDSA(privateKey) + if err != nil { + logger.Fatal("Error: %s", err) + } + + publicKey := privateKeyECDSA.Public() + publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey) + if !ok { + logger.Fatal("error casting public key to ECDSA") + } + + fromAddress := crypto.PubkeyToAddress(*publicKeyECDSA) + nonce, err := client.PendingNonceAt(context.Background(), fromAddress) + if err != nil { + logger.Fatal("Error: %s", err) + } + + gasPrice, err := client.SuggestGasPrice(context.Background()) + if err != nil { + logger.Fatal("Error: %s", err) + } + + opts, err := bind.NewKeyedTransactorWithChainID(privateKeyECDSA, big.NewInt(int64(cfg.Chain.ChainId))) + if err != nil { + logger.Fatal("Error: %s", err) + } + opts.Nonce = big.NewInt(int64(nonce)) + opts.Value = big.NewInt(int64(cfg.Transactions.Value)) + opts.GasLimit = uint64(cfg.Transactions.GasLimit) + opts.GasPrice = gasPrice + + mockAddress, tx1, _, err := mock.DeployMock(opts, client, big.NewInt(1), EPOCH_LEN) + if err != nil { + logger.Fatal("Error: %s", err) + } + _, err = bind.WaitMined(context.Background(), client, tx1) + if err != nil { + logger.Fatal("Error: %s", err) + } + logger.Info("mock contract address %s", mockAddress.Hex()) + opts.Nonce.Add(opts.Nonce, big.NewInt(1)) + + incentiveAddress, _, _, err := incentive.DeployIncentive( + opts, client, fromAddress, fromAddress, fromAddress, BASE_SAMPLE_SIZE, BASE_RANGE, + SAMPLE_INCREASE_LIMIT, RANGE_INCREASE_PRICE, DURATION) + if err != nil { + logger.Fatal("Error: %s", err) + } + logger.Info("incentiveManager address %s", incentiveAddress.Hex()) + + opts.Nonce.Add(opts.Nonce, big.NewInt(1)) + + block, err := client.BlockByNumber(context.Background(), nil) + if err != nil { + logger.Fatal("Error: %s", err) + } + + fastUpdaterAddress, _, _, err := fast_updater.DeployFastUpdater(opts, client, fromAddress, fromAddress, + fromAddress, fromAddress, uint32(block.Time()), 90, SUBMISSION_WINDOW) + if err != nil { + logger.Fatal("Error: %s", err) + } + logger.Info("fastUpdater address %s", fastUpdaterAddress.Hex()) + opts.Nonce.Add(opts.Nonce, big.NewInt(1)) + + fastUpdatesConfigurationAddress, _, _, err := fast_updates_configuration.DeployFastUpdatesConfiguration(opts, client, fromAddress, fromAddress, fromAddress) + if err != nil { + logger.Fatal("Error: %s", err) + } + logger.Info("fastUpdatesConfiguration address %s", fastUpdatesConfigurationAddress.Hex()) + opts.Nonce.Add(opts.Nonce, big.NewInt(1)) + + fastUpdaterContract, err := fast_updater.NewFastUpdater(fastUpdaterAddress, client) + if err != nil { + logger.Fatal("Error: %s", err) + } + + addressesHash := []string{ + "0x12e7f85251b6a8cc2a2841f61f59a88110842aebcb7b0156dd0c10bd473fcb7a", + "0x2b5425460b937e96e509004540fff99ad6ec17948dba96effce0ba122b8bb899", + "0x7ae386e71020f3892e238530238dee40111e0bff57a096544e6b6806e26e8ab0", + "0x7de5495162bf7c2e65e3e8356a8981e85633d651c850dcb5b6e0c0b8a878a195", + "0x6be6257da65c607a560a35b4efea3c17b461c71f51e72de30b7c1e124e6b8153", + "0x597295c852f29045b82e8864e15b8a3e2c0da8de0e4fbdd3ec498197e11d6a5e", + } + + addressesBytes := make([][32]byte, len(addressesHash)) + for i := 0; i < len(addressesHash); i++ { + var buf [32]byte + b, err := hex.DecodeString(addressesHash[i][2:]) + if err != nil { + log.Fatal(err) + } + copy(buf[:], b) + addressesBytes[i] = buf + } + addresses := []common.Address{ + fromAddress, + mockAddress, + incentiveAddress, + mockAddress, + fastUpdatesConfigurationAddress, + mockAddress, + } + tx, err := fastUpdaterContract.UpdateContractAddresses(opts, addressesBytes, addresses) + if err != nil { + logger.Fatal("Error: %s", err) + } + _, err = bind.WaitMined(context.Background(), client, tx) + if err != nil { + logger.Fatal("Error: %s", err) + } + opts.Nonce.Add(opts.Nonce, big.NewInt(1)) + + fastUpdatesConfigurationContract, err := fast_updates_configuration.NewFastUpdatesConfiguration(fastUpdatesConfigurationAddress, client) + if err != nil { + logger.Fatal("Error: %s", err) + } + + addressesHash = []string{ + "0x12e7f85251b6a8cc2a2841f61f59a88110842aebcb7b0156dd0c10bd473fcb7a", + "0x0cf0bcabf35e9f54dc06269101d6c97535ba08da6ca99a9c5df65a4dd717919c", + } + addressesBytes = make([][32]byte, len(addressesHash)) + for i := 0; i < len(addressesHash); i++ { + var buf [32]byte + b, err := hex.DecodeString(addressesHash[i][2:]) + if err != nil { + log.Fatal(err) + } + copy(buf[:], b) + addressesBytes[i] = buf + } + + addresses = []common.Address{ + fromAddress, + fastUpdaterAddress, + } + + tx, err = fastUpdatesConfigurationContract.UpdateContractAddresses(opts, addressesBytes, addresses) + if err != nil { + logger.Fatal("Error: %s", err) + } + _, err = bind.WaitMined(context.Background(), client, tx) + if err != nil { + logger.Fatal("Error: %s", err) + } + opts.Nonce.Add(opts.Nonce, big.NewInt(1)) + + feedsConfigurations := make([]fast_updates_configuration.IFastUpdatesConfigurationFeedConfiguration, len(FEEDS_INDICES)) + for i := 0; i < len(FEEDS_INDICES); i++ { + feedId := [21]byte{} + feedId[20] = byte(i + 1) + feedsConfigurations[i] = fast_updates_configuration.IFastUpdatesConfigurationFeedConfiguration{FeedId: feedId, RewardBandValue: 200, InflationShare: big.NewInt(200)} + } + + tx, err = fastUpdatesConfigurationContract.AddFeeds(opts, feedsConfigurations) + if err != nil { + logger.Fatal("Error: %s", err) + } + _, err = bind.WaitMined(context.Background(), client, tx) + if err != nil { + logger.Fatal("Error: %s", err) + } + + opts.Nonce.Add(opts.Nonce, big.NewInt(1)) + + numFeedsCheck, err := fastUpdatesConfigurationContract.GetNumberOfFeeds(nil) + if err != nil { + logger.Fatal("Error: %s", err) + } + + if int(numFeedsCheck.Int64()) != len(FEEDS_INDICES) { + logger.Fatal("Error: Feeds wrong number") + } + + // tx, err = fastUpdaterContract.ResetFeeds(opts, FEEDS_INDICES) + // if err != nil { + // logger.Fatal("Error: %s", err) + // } + // _, err = bind.WaitMined(context.Background(), client, tx) + // if err != nil { + // logger.Fatal("Error: %s", err) + // } + + // fmt.Println(fastUpdaterContract.CurrentScoreCutoff(nil)) + + contracts := ContractAddresses{ + FastUpdater: fastUpdaterAddress, + FastUpdatesConfiguration: fastUpdatesConfigurationAddress, + IncentiveManager: incentiveAddress, + Mock: mockAddress, + } + + return contracts +} diff --git a/go-client/updates/updates.go b/go-client/updates/updates.go new file mode 100644 index 0000000..ffddb7e --- /dev/null +++ b/go-client/updates/updates.go @@ -0,0 +1,86 @@ +package updates + +import ( + "crypto/ecdsa" + "crypto/sha256" + "fast-updates-client/contracts-interface/fast_updater" + "fast-updates-client/sortition" + "fmt" + "math/big" + + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/crypto" +) + +var ( + uint256Ty, _ = abi.NewType("uint256", "uint256", nil) + bytesTy, _ = abi.NewType("bytes", "bytes", nil) +) + +// PrepareUpdates creates a struct that can be submitted to the FastUpdates contract. +func PrepareUpdates(updateProof *sortition.UpdateProof, deltas []byte, privateKey *ecdsa.PrivateKey) (*fast_updater.IFastUpdaterFastUpdates, error) { + // prepare credential + gamma := fast_updater.Bn256G1Point{ + X: updateProof.Proof.Gamma.X.BigInt(new(big.Int)), + Y: updateProof.Proof.Gamma.Y.BigInt(new(big.Int)), + } + sortitionCredential := fast_updater.SortitionCredential{ + Replicate: updateProof.Replicate, Gamma: gamma, C: updateProof.Proof.C, S: updateProof.Proof.S, + } + + // sign the update + arguments := abi.Arguments{{Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}, + {Type: uint256Ty}, {Type: uint256Ty}, {Type: uint256Ty}, {Type: bytesTy}, + } + toHash, err := arguments.Pack( + updateProof.BlockNumber, updateProof.Replicate, gamma.X, + gamma.Y, updateProof.Proof.C, updateProof.Proof.S, deltas, + ) + if err != nil { + return nil, fmt.Errorf("PrepareUpdates: Pack: %w", err) + } + hashFunc := sha256.New() + _, err = hashFunc.Write(toHash) + if err != nil { + return nil, fmt.Errorf("PrepareUpdates: Write: %w", err) + } + buf := hashFunc.Sum(nil) + prefix := "\x19Ethereum Signed Message:\n32" + hashed := crypto.Keccak256([]byte(prefix), buf) + signature, err := crypto.Sign(hashed, privateKey) + if err != nil { + return nil, fmt.Errorf("PrepareUpdates: Sign: %w", err) + } + var r [32]byte + copy(r[:], signature[0:32]) + var s [32]byte + copy(s[:], signature[32:64]) + v := uint8(signature[64]) + 27 + sig := fast_updater.IFastUpdaterSignature{R: r, S: s, V: v} + + // prepare the update + update := &fast_updater.IFastUpdaterFastUpdates{SortitionBlock: updateProof.BlockNumber, Deltas: deltas, + SortitionCredential: sortitionCredential, Signature: sig} + + return update, nil +} + +// PrepareUpdatesSubmission creates the bytes representation of the fast updates submission call +// stripped of the selector. This can be used to submit to the submission contract instead of directly +// to the Fast Updates contract. +func PrepareUpdatesSubmission(update *fast_updater.IFastUpdaterFastUpdates) ([]byte, error) { + parsed, err := fast_updater.FastUpdaterMetaData.GetAbi() + if err != nil { + return nil, fmt.Errorf("PrepareUpdatesSubmission: GetAbi: %w", err) + } + packedCall, err := parsed.Pack("submitUpdates", *update) + if err != nil { + return nil, fmt.Errorf("PrepareUpdatesSubmission: Pack: %w", err) + } + + if len(packedCall) < 4 { + return nil, fmt.Errorf("PrepareUpdatesSubmission: bytes representation of the call is too short") + } + + return packedCall[4:], nil +} diff --git a/hardhat.config.ts b/hardhat.config.ts deleted file mode 100644 index 501bffa..0000000 --- a/hardhat.config.ts +++ /dev/null @@ -1,123 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import '@nomicfoundation/hardhat-chai-matchers' -import '@nomiclabs/hardhat-truffle5' -import '@nomiclabs/hardhat-web3' -import '@nomicfoundation/hardhat-web3-v4' -import 'solidity-coverage' - -import dotenv from 'dotenv' -import type { HardhatUserConfig } from 'hardhat/config' -import { task } from 'hardhat/config' -import type { HardhatNetworkAccountUserConfig } from 'hardhat/types/config' - -import { PATHS } from './deployment/config' -import { deployContracts } from './deployment/scripts/deploy-contracts' -import { runAdminDaemon } from './deployment/scripts/run-admin-daemon' -import { loadNetworkParameters } from './deployment/utils' -import loadTestAccounts from './hardhat.utils' - -dotenv.config() - -task('deploy-contracts', `Deploy contracts to the network`).setAction( - async (_args, hre, _runSuper) => { - await deployContracts(hre) - } -) - -task('run-admin-daemon', `Does admin tasks`).setAction( - async (_args, _hre, _runSuper) => { - const parameters = loadNetworkParameters(PATHS.configPath) - await runAdminDaemon(parameters) - } -) - -const accounts: HardhatNetworkAccountUserConfig[] = loadTestAccounts() -const privateKeys = accounts.map( - (x: HardhatNetworkAccountUserConfig) => x.privateKey -) - -const config: HardhatUserConfig = { - solidity: { - version: '0.8.18', - settings: { - evmVersion: 'london', - optimizer: { - enabled: true, - runs: 200, - }, - }, - }, - mocha: { - timeout: 100000000, - }, - defaultNetwork: 'hardhat', - networks: { - hardhat: { - accounts, - blockGasLimit: 8000000, - /** - * Normally each Truffle smart contract interaction that modifies state results - * in a transaction mined in a new block with a +1s block timestamp. - * This is problematic because we need perform multiple smart contract actions - * in the same price epoch, and the block timestamps end up not fitting into an epoch duration, - * causing test failures. - * - * Enabling consecutive blocks with the same timestamp is not perfect, - * but it alleviates this problem. A better solution would be manual mining and packing - * multiple e.g. setup transactions into a single block with a controlled timestamp, but that - * would make test code more complex and seems to be not very well supported by Truffle. - */ - allowBlocksWithSameTimestamp: true, - mining: { - auto: false, - interval: 5000, - }, - }, - scdev: { - url: 'http://127.0.0.1:9650/ext/bc/C/rpc', - timeout: 40000, - accounts: privateKeys, - }, - staging: { - url: 'http://127.0.0.1:9650/ext/bc/C/rpc', - timeout: 40000, - accounts: privateKeys, - }, - songbird: { - url: 'https://songbird-api.flare.network/ext/C/rpc', - timeout: 40000, - accounts: privateKeys, - }, - flare: { - url: 'https://flare-api.flare.network/ext/C/rpc', - timeout: 40000, - accounts: privateKeys, - }, - coston: { - url: 'https://coston-api.flare.network/ext/C/rpc', - timeout: 40000, - accounts: privateKeys, - }, - coston2: { - url: 'https://coston2-api.flare.network/ext/C/rpc', - timeout: 40000, - accounts: privateKeys, - }, - local: { - url: 'http://127.0.0.1:8545', - chainId: 31337, - }, - docker: { - url: 'http://chain:8545', - chainId: 31337, - }, - }, - paths: { - sources: './contracts', - tests: './test', - cache: './cache', - artifacts: './artifacts', - }, -} - -export default config diff --git a/hardhat.utils.ts b/hardhat.utils.ts deleted file mode 100644 index 0bb6523..0000000 --- a/hardhat.utils.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { readFileSync } from 'fs' - -import dotenv from 'dotenv' -import type { HardhatNetworkAccountUserConfig } from 'hardhat/types/config' - -import { PATHS } from './deployment/config' - -dotenv.config() - -/** - * Loads the test accounts for the application. - * - * @returns An array of HardhatNetworkAccountUserConfig objects representing the test accounts. - */ -export default function loadTestAccounts(): HardhatNetworkAccountUserConfig[] { - const testAccounts: HardhatNetworkAccountUserConfig[] = [] - - // Add deployer account as the first account - if (process.env['DEPLOYER_PRIVATE_KEY']) { - testAccounts.push({ - privateKey: process.env['DEPLOYER_PRIVATE_KEY'], - balance: '100000000000000000000000000000000', - }) - } - // Add governance settings deployer account as the second account - if (process.env['GOVERNANCE_SETTINGS_DEPLOYER_PRIVATE_KEY']) { - testAccounts.push({ - privateKey: process.env['GOVERNANCE_SETTINGS_DEPLOYER_PRIVATE_KEY'], - balance: '100000000000000000000000000000000', - }) - } - // Add list of accounts from json - testAccounts.push( - ...( - JSON.parse( - readFileSync(PATHS.accountsPath).toString() - ) as HardhatNetworkAccountUserConfig[] - ) - .slice(0, process.env['TENDERLY'] == 'true' ? 150 : 2000) - .filter( - (x: HardhatNetworkAccountUserConfig) => - x.privateKey != process.env['DEPLOYER_PRIVATE_KEY'] - ) - ) - // Add genesis governance account as second last account - if (process.env['GENESIS_GOVERNANCE_PRIVATE_KEY']) { - testAccounts.push({ - privateKey: process.env['GENESIS_GOVERNANCE_PRIVATE_KEY'], - balance: '100000000000000000000000000000000', - }) - } - // Add governance account as last account - if (process.env['GOVERNANCE_PRIVATE_KEY']) { - testAccounts.push({ - privateKey: process.env['GOVERNANCE_PRIVATE_KEY'], - balance: '100000000000000000000000000000000', - }) - } - - return testAccounts -} diff --git a/nyc.config.js b/nyc.config.js deleted file mode 100644 index 15bb15f..0000000 --- a/nyc.config.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = { - extends: '@istanbuljs/nyc-config-typescript', - 'check-coverage': true, - all: true, - include: [ - 'deployment/**/!(*.test.*).[tj]s?(x)', - 'client/**/!(*.test.*).[tj]s?(x)', - ], - exclude: [], - reporter: ['html', 'lcov', 'text', 'text-summary'], - 'report-dir': 'coverage', - lines: 40, -} diff --git a/package.json b/package.json deleted file mode 100644 index 62e5f4b..0000000 --- a/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "flare-fast-updates-client", - "version": "0.0.1", - "description": "Client for fast updates protocol on Flare", - "repository": { - "type": "git", - "url": "git+https://gitlab.com/flarenetwork/fast-updates.git" - }, - "license": "MIT", - "engines": { - "node": "<20" - }, - "scripts": { - "compile": "yarn hardhat compile && yarn typechain-truffle-v5 && yarn typechain-web3-v1", - "typechain-truffle-v5": "yarn typechain --target=truffle-v5 --out-dir typechain-truffle \"artifacts/!(build-info)/**/+([a-zA-Z0-9_]).json\" 1> nul", - "typechain-web3-v1": "yarn typechain --target=web3-v1 --out-dir typechain-web3 \"artifacts/!(build-info)/**/+([a-zA-Z0-9_]).json\" 1> nul", - "clean": "yarn hardhat clean && rm -rf typechain typechain-types typechain-truffle typechain-web3", - "test": "yarn hardhat test", - "test-coverage": "nyc yarn hardhat coverage", - "format": "prettier . --write", - "lint": "eslint . --ext ts,js --fix" - }, - "devDependencies": { - "@istanbuljs/nyc-config-typescript": "^1.0.2", - "@nomicfoundation/hardhat-chai-matchers": "^2.0.6", - "@nomicfoundation/hardhat-ethers": "^3.0.5", - "@nomicfoundation/hardhat-network-helpers": "^1.0.10", - "@nomicfoundation/hardhat-toolbox": "^4.0.0", - "@nomicfoundation/hardhat-verify": "^2.0.5", - "@nomicfoundation/hardhat-web3-v4": "^1.0.0", - "@nomiclabs/hardhat-truffle5": "^2.0.7", - "@nomiclabs/hardhat-web3": "^2.0.0", - "@typechain/ethers-v6": "^0.5.1", - "@typechain/hardhat": "^9.1.0", - "@typechain/truffle-v5": "^8.0.7", - "@typechain/web3-v1": "^6.0.7", - "@types/chai": "^4.3.14", - "@types/mocha": "^10.0.6", - "@types/node": "^20.12.2", - "@typescript-eslint/eslint-plugin": "^7.4.0", - "@typescript-eslint/parser": "^7.4.0", - "chai": "^4.4.1", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-prettier": "^5.1.3", - "hardhat-gas-reporter": "^1.0.10", - "nyc": "^15.1.0", - "prettier": "^3.2.5", - "solidity-coverage": "^0.8.11", - "ts-node": "^10.9.2", - "typechain": "^8.3.2", - "typescript": "^5.4.3" - }, - "dependencies": { - "@openzeppelin/contracts": "^5.0.2", - "dotenv": "^16.4.5", - "ethers": "^6.11.1", - "hardhat": "^2.22.2", - "truffle": "^5.11.5", - "web3": "^4.7.0", - "web3-core": "^1.0.0", - "web3-eth-contract": "^1.0.0", - "web3-utils": "^1.0.0", - "winston": "^3.13.0" - }, - "packageManager": "yarn@4.1.1" -} diff --git a/visualizer/.gitignore b/py-visualizer/.gitignore similarity index 100% rename from visualizer/.gitignore rename to py-visualizer/.gitignore diff --git a/visualizer/README.md b/py-visualizer/README.md similarity index 78% rename from visualizer/README.md rename to py-visualizer/README.md index 4f14333..c68264f 100644 --- a/visualizer/README.md +++ b/py-visualizer/README.md @@ -1,8 +1,8 @@ -# Fast Updates Visualizer +# FTSO Fast Updates Visualizer ## Install -Using [poetry](https://python-poetry.org) +Using Python 3.12 and [poetry](https://python-poetry.org) ```bash poetry install --no-root diff --git a/visualizer/app.py b/py-visualizer/app.py similarity index 100% rename from visualizer/app.py rename to py-visualizer/app.py diff --git a/visualizer/helpers.py b/py-visualizer/helpers.py similarity index 100% rename from visualizer/helpers.py rename to py-visualizer/helpers.py diff --git a/visualizer/io_handler.py b/py-visualizer/io_handler.py similarity index 100% rename from visualizer/io_handler.py rename to py-visualizer/io_handler.py diff --git a/visualizer/poetry.lock b/py-visualizer/poetry.lock similarity index 95% rename from visualizer/poetry.lock rename to py-visualizer/poetry.lock index 95313f1..f8c08b6 100644 --- a/visualizer/poetry.lock +++ b/py-visualizer/poetry.lock @@ -591,28 +591,28 @@ six = ">=1.7.0" [[package]] name = "ruff" -version = "0.3.4" +version = "0.3.5" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.3.4-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:60c870a7d46efcbc8385d27ec07fe534ac32f3b251e4fc44b3cbfd9e09609ef4"}, - {file = "ruff-0.3.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6fc14fa742e1d8f24910e1fff0bd5e26d395b0e0e04cc1b15c7c5e5fe5b4af91"}, - {file = "ruff-0.3.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3ee7880f653cc03749a3bfea720cf2a192e4f884925b0cf7eecce82f0ce5854"}, - {file = "ruff-0.3.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cf133dd744f2470b347f602452a88e70dadfbe0fcfb5fd46e093d55da65f82f7"}, - {file = "ruff-0.3.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f3860057590e810c7ffea75669bdc6927bfd91e29b4baa9258fd48b540a4365"}, - {file = "ruff-0.3.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:986f2377f7cf12efac1f515fc1a5b753c000ed1e0a6de96747cdf2da20a1b369"}, - {file = "ruff-0.3.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fd98e85869603e65f554fdc5cddf0712e352fe6e61d29d5a6fe087ec82b76c"}, - {file = "ruff-0.3.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64abeed785dad51801b423fa51840b1764b35d6c461ea8caef9cf9e5e5ab34d9"}, - {file = "ruff-0.3.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df52972138318bc7546d92348a1ee58449bc3f9eaf0db278906eb511889c4b50"}, - {file = "ruff-0.3.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:98e98300056445ba2cc27d0b325fd044dc17fcc38e4e4d2c7711585bd0a958ed"}, - {file = "ruff-0.3.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:519cf6a0ebed244dce1dc8aecd3dc99add7a2ee15bb68cf19588bb5bf58e0488"}, - {file = "ruff-0.3.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:bb0acfb921030d00070539c038cd24bb1df73a2981e9f55942514af8b17be94e"}, - {file = "ruff-0.3.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:cf187a7e7098233d0d0c71175375c5162f880126c4c716fa28a8ac418dcf3378"}, - {file = "ruff-0.3.4-py3-none-win32.whl", hash = "sha256:af27ac187c0a331e8ef91d84bf1c3c6a5dea97e912a7560ac0cef25c526a4102"}, - {file = "ruff-0.3.4-py3-none-win_amd64.whl", hash = "sha256:de0d5069b165e5a32b3c6ffbb81c350b1e3d3483347196ffdf86dc0ef9e37dd6"}, - {file = "ruff-0.3.4-py3-none-win_arm64.whl", hash = "sha256:6810563cc08ad0096b57c717bd78aeac888a1bfd38654d9113cb3dc4d3f74232"}, - {file = "ruff-0.3.4.tar.gz", hash = "sha256:f0f4484c6541a99862b693e13a151435a279b271cff20e37101116a21e2a1ad1"}, + {file = "ruff-0.3.5-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:aef5bd3b89e657007e1be6b16553c8813b221ff6d92c7526b7e0227450981eac"}, + {file = "ruff-0.3.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:89b1e92b3bd9fca249153a97d23f29bed3992cff414b222fcd361d763fc53f12"}, + {file = "ruff-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e55771559c89272c3ebab23326dc23e7f813e492052391fe7950c1a5a139d89"}, + {file = "ruff-0.3.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dabc62195bf54b8a7876add6e789caae0268f34582333cda340497c886111c39"}, + {file = "ruff-0.3.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a05f3793ba25f194f395578579c546ca5d83e0195f992edc32e5907d142bfa3"}, + {file = "ruff-0.3.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:dfd3504e881082959b4160ab02f7a205f0fadc0a9619cc481982b6837b2fd4c0"}, + {file = "ruff-0.3.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87258e0d4b04046cf1d6cc1c56fadbf7a880cc3de1f7294938e923234cf9e498"}, + {file = "ruff-0.3.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:712e71283fc7d9f95047ed5f793bc019b0b0a29849b14664a60fd66c23b96da1"}, + {file = "ruff-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a532a90b4a18d3f722c124c513ffb5e5eaff0cc4f6d3aa4bda38e691b8600c9f"}, + {file = "ruff-0.3.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:122de171a147c76ada00f76df533b54676f6e321e61bd8656ae54be326c10296"}, + {file = "ruff-0.3.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d80a6b18a6c3b6ed25b71b05eba183f37d9bc8b16ace9e3d700997f00b74660b"}, + {file = "ruff-0.3.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a7b6e63194c68bca8e71f81de30cfa6f58ff70393cf45aab4c20f158227d5936"}, + {file = "ruff-0.3.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a759d33a20c72f2dfa54dae6e85e1225b8e302e8ac655773aff22e542a300985"}, + {file = "ruff-0.3.5-py3-none-win32.whl", hash = "sha256:9d8605aa990045517c911726d21293ef4baa64f87265896e491a05461cae078d"}, + {file = "ruff-0.3.5-py3-none-win_amd64.whl", hash = "sha256:dc56bb16a63c1303bd47563c60482a1512721053d93231cf7e9e1c6954395a0e"}, + {file = "ruff-0.3.5-py3-none-win_arm64.whl", hash = "sha256:faeeae9905446b975dcf6d4499dc93439b131f1443ee264055c5716dd947af55"}, + {file = "ruff-0.3.5.tar.gz", hash = "sha256:a067daaeb1dc2baf9b82a32dae67d154d95212080c80435eb052d95da647763d"}, ] [[package]] @@ -697,13 +697,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "werkzeug" -version = "3.0.1" +version = "3.0.2" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.8" files = [ - {file = "werkzeug-3.0.1-py3-none-any.whl", hash = "sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10"}, - {file = "werkzeug-3.0.1.tar.gz", hash = "sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc"}, + {file = "werkzeug-3.0.2-py3-none-any.whl", hash = "sha256:3aac3f5da756f93030740bc235d3e09449efcf65f2f55e3602e1d851b8f48795"}, + {file = "werkzeug-3.0.2.tar.gz", hash = "sha256:e39b645a6ac92822588e7b39a692e7828724ceae0b0d702ef96701f90e70128d"}, ] [package.dependencies] diff --git a/visualizer/pyproject.toml b/py-visualizer/pyproject.toml similarity index 91% rename from visualizer/pyproject.toml rename to py-visualizer/pyproject.toml index d9e887c..fde7d5c 100644 --- a/visualizer/pyproject.toml +++ b/py-visualizer/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] -name = "visualizer" +name = "fast-updates-visualizer" version = "0.1.0" -description = "" +description = "Visualizer for FTSO Fast Updates on Flare" authors = ["dineshpinto "] readme = "README.md" diff --git a/test/client/PriceFeedProvider.test.ts b/test/client/PriceFeedProvider.test.ts deleted file mode 100644 index 4832fe8..0000000 --- a/test/client/PriceFeedProvider.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ExamplePriceFeedProvider } from '../../client/providers/ExamplePriceFeedProvider' - -describe('PriceFeedProvider', () => { - describe('getFeed', () => { - it('should return the price feed and representation for the given chain prices and local prices', () => { - const provider = new ExamplePriceFeedProvider(1) - const onChainPrices = [100] - const offChainPrices = [90] - - const [feed, representation] = provider.getFastUpdateDeltas( - onChainPrices, - offChainPrices - ) - expect(feed).to.equal('0xc0') - expect(representation).to.equal('-') - }) - - it('should throw an error if the arrays are not of equal length or the length is not 1', () => { - const provider = new ExamplePriceFeedProvider(1) - const onChainPrices = [100, 200] - const offChainPrices = [90] - - expect(() => - provider.getFastUpdateDeltas(onChainPrices, offChainPrices) - ).to.throw('Arrays should be of equal length') - }) - }) -}) diff --git a/test/client/loader.test.ts b/test/client/loader.test.ts deleted file mode 100644 index 57415c3..0000000 --- a/test/client/loader.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { expect } from 'chai' -import { describe, it } from 'mocha' -import Web3 from 'web3' - -import { - loadNetworkParameters, - loadProviderAccounts, -} from '../../client/utils/loader' -import { PATHS } from '../../deployment/config' - -describe('Loader Utils', () => { - describe('loadNetworkParameters', () => { - it('should load FTSO parameters from a file', () => { - const params = loadNetworkParameters(PATHS.configPath) - - expect(params).to.have.property('rpcUrl') - expect(params).to.have.property('gasLimit') - expect(params).to.have.property('gasPriceMultiplier') - }) - }) - - describe('loadProviderAccounts', () => { - it('should load provider accounts from a file and convert them to Web3 accounts', () => { - const web3 = new Web3() - const accounts = loadProviderAccounts(web3, PATHS.accountsPath) - - expect(accounts).to.be.an('array') - expect(accounts).to.have.lengthOf.at.least(1) - expect(accounts[0]).to.have.property('address') - expect(accounts[0]).to.have.property('privateKey') - }) - }) -}) diff --git a/test/client/retry.test.ts b/test/client/retry.test.ts deleted file mode 100644 index 964b4b7..0000000 --- a/test/client/retry.test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { expect } from 'chai' - -import { sleepFor } from '../../client/utils/retry' - -describe('sleepFor', () => { - it('should pause execution for the specified number of milliseconds', async () => { - const ms = 1001 - const start = Date.now() - await sleepFor(ms) - const end = Date.now() - const elapsed = end - start - expect(elapsed).to.be.greaterThanOrEqual(1000) - }) -}) diff --git a/test/client/sortition.test.ts b/test/client/sortition.test.ts deleted file mode 100644 index 6d56f83..0000000 --- a/test/client/sortition.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { expect } from 'chai' -import { encodePacked } from 'web3-utils' - -import { - calculateRandomness, - g1HashToPoint, - g1compress, - generateSortitionKey, - generateVerifiableRandomnessProof, - randomInt, -} from '../../client/utils/sortition' - -describe('Sortition', () => { - describe('generateSortitionKey', () => { - it('should generate a sortition key with sk and pk properties', () => { - const key = generateSortitionKey() - - expect(key).to.have.property('sk').that.is.a('bigint') - expect(key).to.have.property('pk') - }) - }) - - describe('calculateRandomness', () => { - it('should calculate the randomness value based on the provided parameters', () => { - const key = generateSortitionKey() - const baseSeed = '123' - const blockNum = '456' - const replicate = '789' - - const randomness = calculateRandomness( - key, - baseSeed, - blockNum, - replicate - ) - - expect(randomness).to.be.a('bigint') - }) - }) - - describe('generateVerifiableRandomnessProof', () => { - it('should generate a verifiable randomness proof', () => { - const key = generateSortitionKey() - const baseSeed = '123' - const blockNum = '456' - const replicate = '789' - - const proof = generateVerifiableRandomnessProof( - key, - baseSeed, - blockNum, - replicate - ) - - expect(proof).to.have.property('gamma') - expect(proof).to.have.property('c').that.is.a('bigint') - expect(proof).to.have.property('s').that.is.a('bigint') - }) - }) - - describe('g1compress', () => { - it('should compress a ProjPointType into a string representation', () => { - const baseSeed = 123n - const blockNum = 456n - const replicate = 789n - - const msg: string = - encodePacked( - { value: baseSeed.toString(), type: 'uint256' }, - { value: blockNum.toString(), type: 'uint256' }, - { value: replicate.toString(), type: 'uint256' } - ) ?? '' - - const projPoint = g1HashToPoint(msg) - const compressed = g1compress(projPoint) - expect(compressed).to.equal( - '0x8aa3dd625c54203caad154a15acb97a7b32616ecfb25ec1f75dbaff55f1482ff' - ) - }) - }) -}) - -describe('randomInt', () => { - it('should return a random integer less than the given max', () => { - const max = 100n - const result = randomInt(max) - - expect(result).to.be.lessThan(max) - }) - - it('should return a random integer within the range of 0 to max - 1', () => { - const max = 100n - const result = randomInt(max) - - expect(result).to.be.greaterThanOrEqual(0n) - expect(result).to.be.lessThan(max) - }) - - it('should return a random integer within the range of 0 to 2^length - 1', () => { - const max = 2n ** 32n - const result = randomInt(max) - - expect(result).to.be.greaterThanOrEqual(0n) - expect(result).to.be.lessThan(max) - }) -}) diff --git a/test/contracts/Bn256.test.ts b/test/contracts/Bn256.test.ts deleted file mode 100644 index 70d10dc..0000000 --- a/test/contracts/Bn256.test.ts +++ /dev/null @@ -1,63 +0,0 @@ -import path from 'path' - -import { bn254 } from '@noble/curves/bn254' -import { expect } from 'chai' - -import { randomInt } from '../../client/utils' -import type { - TestBn256Contract, - TestBn256Instance, -} from '../../typechain-truffle/contracts/fastUpdates/test/TestBn256' - -const TestBn256 = artifacts.require('TestBn256') as TestBn256Contract - -contract( - `Bn256.sol; ${path.relative(path.resolve(), __filename)}`, - (accounts) => { - let bn256Instance: TestBn256Instance - before(async () => { - const governance = accounts[0] - if (!governance) throw new Error('No governance account') - bn256Instance = await TestBn256.new( - governance as Truffle.TransactionDetails - ) - }) - - it('should add two points', async () => { - const r1 = randomInt(bn254.CURVE.n) - const r2 = randomInt(bn254.CURVE.n) - const a = bn254.ProjectivePoint.BASE.multiply(r1) - const b = bn254.ProjectivePoint.BASE.multiply(r2) - - const c = await bn256Instance.publicG1Add( - { - x: a.x.toString(), - y: a.y.toString(), - }, - { - x: b.x.toString(), - y: b.y.toString(), - } - ) - - const cCheck = a.add(b) - expect(c.x.toString()).to.equal(cCheck.x.toString()) - expect(c.y.toString()).to.equal(cCheck.y.toString()) - }) - - it('should multiply a point with a scalar', async () => { - const r1 = randomInt(bn254.CURVE.n) - const r2 = randomInt(bn254.CURVE.n) - const a = bn254.ProjectivePoint.BASE.multiply(r1) - - const c = await bn256Instance.publicG1ScalarMultiply( - { x: a.x.toString(), y: a.y.toString() }, - r2.toString() - ) - - const cCheck = a.multiply(r2) - expect(c.x.toString()).to.equal(cCheck.x.toString()) - expect(c.y.toString()).to.equal(cCheck.y.toString()) - }) - } -) diff --git a/test/contracts/FastUpdateIncentiveManager.test.ts b/test/contracts/FastUpdateIncentiveManager.test.ts deleted file mode 100644 index 826f8ea..0000000 --- a/test/contracts/FastUpdateIncentiveManager.test.ts +++ /dev/null @@ -1,122 +0,0 @@ -import path from 'path' - -import type { Web3Account } from 'web3-eth-accounts' - -import { PATHS } from '../../deployment/config' -import { loadProviderAccounts } from '../../deployment/utils' -import type { - FastUpdateIncentiveManagerContract, - FastUpdateIncentiveManagerInstance, -} from '../../typechain-truffle/contracts/fastUpdates/implementation/FastUpdateIncentiveManager' - -const FastUpdateIncentiveManager = artifacts.require( - 'FastUpdateIncentiveManager' -) as FastUpdateIncentiveManagerContract - -const BASE_SAMPLE_SIZE = 5 * 2 ** 8 // 2^8 since scaled for 2^(-8) for fixed precision arithmetic -const BASE_RANGE = 2 * 2 ** 8 -const SAMPLE_INCREASE_LIMIT = 5 * 2 ** 8 -const RANGE_INCREASE_PRICE = 5 -const DURATION = 8 - -contract( - `FastUpdateIncentiveManager.sol; ${path.relative(path.resolve(), __filename)}`, - () => { - let fastUpdateIncentiveManager: FastUpdateIncentiveManagerInstance - let accounts: Web3Account[] - - before(async () => { - accounts = loadProviderAccounts(web3, PATHS.accountsPath) - const governance = accounts[0] - if (!governance) throw new Error('Governance account not found') - - fastUpdateIncentiveManager = await FastUpdateIncentiveManager.new( - governance.address, - governance.address, - BASE_SAMPLE_SIZE, - BASE_RANGE, - SAMPLE_INCREASE_LIMIT, - RANGE_INCREASE_PRICE, - DURATION - ) - }) - - it('should get expected sample size', async () => { - const sampleSize = - await fastUpdateIncentiveManager.getExpectedSampleSize() - expect(sampleSize).to.equal(BASE_SAMPLE_SIZE) - }) - - it('should get range', async () => { - const range = await fastUpdateIncentiveManager.getRange() - expect(range).to.equal(BASE_RANGE) - }) - - it('should get precision', async () => { - const precision = await fastUpdateIncentiveManager.getPrecision() - // precision scaled for 2^(-127) - expect(precision).to.equal( - (BigInt(BASE_RANGE) << 127n) / BigInt(BASE_SAMPLE_SIZE) - ) - }) - - it('should get scale', async () => { - const scale = await fastUpdateIncentiveManager.getScale() - expect(scale).to.equal( - (1n << 127n) + - (BigInt(BASE_RANGE) << 127n) / BigInt(BASE_SAMPLE_SIZE) - ) - }) - - it('should offer incentive', async () => { - const rangeIncrease = BASE_RANGE - const rangeLimit = 4 * 2 ** 8 - const offer = { - rangeIncrease: rangeIncrease.toString(), - rangeLimit: rangeLimit.toString(), - } - if (!accounts[1]) throw new Error('Account not found') - await fastUpdateIncentiveManager.offerIncentive(offer, { - from: accounts[1].address, - value: '100000', - }) - - const newRange = ( - await fastUpdateIncentiveManager.getRange() - ).toNumber() - expect(newRange).to.equal(BASE_RANGE * 2) - - const newSampleSize = ( - await fastUpdateIncentiveManager.getExpectedSampleSize() - ).toNumber() - expect(newSampleSize).to.equal(BASE_SAMPLE_SIZE * 2 - 1) - - const precision = await fastUpdateIncentiveManager.getPrecision() - expect(precision).to.equal( - (BigInt(newRange) << 127n) / BigInt(newSampleSize) - ) - - const scale = await fastUpdateIncentiveManager.getScale() - expect(scale).to.equal( - (1n << 127n) + - (BigInt(newRange) << 127n) / BigInt(newSampleSize) - ) - }) - - it('should change incentive duration', async () => { - const incentiveDuration = - await fastUpdateIncentiveManager.getIncentiveDuration() - expect(incentiveDuration.toString()).to.equal(DURATION.toString()) - - if (!accounts[0]) throw new Error('Account not found') - await fastUpdateIncentiveManager.setIncentiveDuration('10', { - from: accounts[0].address, - }) - - const newIncentiveDuration = - await fastUpdateIncentiveManager.getIncentiveDuration() - - expect(newIncentiveDuration.toString()).to.equal('10') - }) - } -) diff --git a/test/contracts/FastUpdater.test.ts b/test/contracts/FastUpdater.test.ts deleted file mode 100644 index 751bbd8..0000000 --- a/test/contracts/FastUpdater.test.ts +++ /dev/null @@ -1,317 +0,0 @@ -import path from 'path' - -import type { BytesLike } from 'ethers' -import { sha256 } from 'ethers' -import type { Web3Account } from 'web3-eth-accounts' - -import { signMessage } from '../../client/utils' -import { - generateSortitionKey, - generateVerifiableRandomnessProof, -} from '../../client/utils' -import type { Proof, SortitionKey } from '../../client/utils' -import { PATHS } from '../../deployment/config' -import { - RangeOrSampleFPA, - loadProviderAccounts, - randomInt, -} from '../../deployment/utils' -import type { - FastUpdateIncentiveManagerContract, - FastUpdateIncentiveManagerInstance, -} from '../../typechain-truffle/contracts/fastUpdates/implementation/FastUpdateIncentiveManager' -import type { - FastUpdaterContract, - FastUpdaterInstance, -} from '../../typechain-truffle/contracts/fastUpdates/implementation/FastUpdater' -import type { - FlareSystemMockContract, - FlareSystemMockInstance, -} from '../../typechain-truffle/contracts/fastUpdates/test/FlareSystemMock' - -const FastUpdater = artifacts.require('FastUpdater') as FastUpdaterContract -const FastUpdateIncentiveManager = artifacts.require( - 'FastUpdateIncentiveManager' -) as FastUpdateIncentiveManagerContract -const FlareSystemMock = artifacts.require( - 'FlareSystemMock' -) as FlareSystemMockContract - -let TEST_REWARD_EPOCH: bigint -const NUM_ACCOUNTS = 5 - -const NUM_FEEDS = 256 -const ANCHOR_PRICES = [5000, 10000, 20000, 30000, 40000, 50000, 60000, 70000] -for (let i = 8; i < NUM_FEEDS; i++) { - ANCHOR_PRICES.push(i * 10000) -} - -const VOTER_WEIGHT = 1000 -const SUBMISSION_WINDOW = 10 -const BASE_SAMPLE_SIZE = 16 -const BASE_RANGE = 2 ** -5 -const SAMPLE_INCREASE_LIMIT = 5 -const SCALE = 1 + BASE_RANGE / BASE_SAMPLE_SIZE -const RANGE_INCREASE_PRICE = 16 -const DURATION = 8 -const EPOCH_LEN = 1000 -const BACKLOG_LEN = 20 - -contract( - `FastUpdater.sol; ${path.relative(path.resolve(), __filename)}`, - () => { - let fastUpdater: FastUpdaterInstance - let fastUpdateIncentiveManager: FastUpdateIncentiveManagerInstance - let flareSystemMock: FlareSystemMockInstance - let accounts: Web3Account[] - let sortitionKeys: SortitionKey[] - const weights: number[] = [] - - before(async () => { - accounts = loadProviderAccounts(web3, PATHS.accountsPath) - const governance = accounts[0] - if (!governance) { - throw new Error('No governance account') - } - - flareSystemMock = await FlareSystemMock.new( - randomInt(2n ** 256n - 1n).toString(), - EPOCH_LEN - ) - fastUpdateIncentiveManager = await FastUpdateIncentiveManager.new( - governance.address, - governance.address, - RangeOrSampleFPA(BASE_SAMPLE_SIZE), - RangeOrSampleFPA(BASE_RANGE), - RangeOrSampleFPA(SAMPLE_INCREASE_LIMIT), - RANGE_INCREASE_PRICE, - DURATION - ) - - TEST_REWARD_EPOCH = BigInt( - (await flareSystemMock.getCurrentRewardEpochId()).toString() - ) - - sortitionKeys = new Array(NUM_ACCOUNTS) - for (let i = 0; i < NUM_ACCOUNTS; i++) { - const key: SortitionKey = generateSortitionKey() - sortitionKeys[i] = key - const x = '0x' + web3.utils.padLeft(key.pk.x.toString(16), 64) - const y = '0x' + web3.utils.padLeft(key.pk.y.toString(16), 64) - const policy = { - pk_1: x, - pk_2: y, - weight: VOTER_WEIGHT, - } - await flareSystemMock.registerAsVoter( - TEST_REWARD_EPOCH.toString(), - accounts[i + 1]?.address ?? '', - policy - ) - } - - // Create local instance of Fast Updater contract - fastUpdater = await FastUpdater.new( - governance.address, - flareSystemMock.address, - flareSystemMock.address, - fastUpdateIncentiveManager.address, - ANCHOR_PRICES, - SUBMISSION_WINDOW, - BACKLOG_LEN - ) - }) - - it('should submit updates', async () => { - let submissionBlockNum - - for (let i = 0; i < NUM_ACCOUNTS; i++) { - const weight = await fastUpdater.currentSortitionWeight( - (accounts[i + 1] as Web3Account).address - ) - weights[i] = weight.toNumber() - expect(weights[i]).to.equal(Math.floor(4096 / NUM_ACCOUNTS)) - } - - // Fetch current feed prices from the contract - const feeds: number[] = [] - for (let i = 0; i < NUM_FEEDS; i++) { - feeds.push(i) - } - const startingPrices: number[] = ( - await fastUpdater.fetchCurrentPrices(feeds) - ).map((x: BN) => x.toNumber()) - - // test with feeds of various length - let feed = '+--+00--'.repeat(16) - let deltas = '0x' + '7d0f'.repeat(16) - const differentFeed = '-+0000++'.repeat(8) + '-+00' - let differentDeltas = 'd005'.repeat(8) + 'd0' - deltas += differentDeltas - feed += differentFeed - differentDeltas = '0x' + differentDeltas - - let numSubmitted = 0 - for (;;) { - submissionBlockNum = ( - await web3.eth.getBlockNumber() - ).toString() - const scoreCutoff = BigInt( - (await fastUpdater.currentScoreCutoff()).toString() - ) - const baseSeed = ( - await flareSystemMock.getCurrentRandom() - ).toString() - for (let i = 0; i < NUM_ACCOUNTS; i++) { - submissionBlockNum = ( - await web3.eth.getBlockNumber() - ).toString() - - for (let rep = 0; rep < (weights[i] ?? 0); rep++) { - const repStr = rep.toString() - const proof: Proof = generateVerifiableRandomnessProof( - sortitionKeys[i] as SortitionKey, - baseSeed, - submissionBlockNum, - repStr - ) - - const sortitionCredential = { - replicate: repStr, - gamma: { - x: proof.gamma.x.toString(), - y: proof.gamma.y.toString(), - }, - c: proof.c.toString(), - s: proof.s.toString(), - } - - if (proof.gamma.x < scoreCutoff) { - let update = deltas - if (numSubmitted == 1) { - // use a different update with different length for this test - update = differentDeltas - } - - const toHash = web3.eth.abi.encodeParameters( - [ - 'uint256', - 'uint256', - 'uint256', - 'uint256', - 'uint256', - 'uint256', - 'bytes', - ], - [ - submissionBlockNum, - repStr, - proof.gamma.x.toString(), - proof.gamma.y.toString(), - proof.c.toString(), - proof.s.toString(), - update, - ] - ) - const signature = signMessage( - web3, - sha256(toHash as BytesLike), - (accounts[i + 1] as Web3Account).privateKey - ) - const newFastUpdate = { - sortitionBlock: submissionBlockNum, - sortitionCredential: sortitionCredential, - deltas: update, - signature: signature, - } - - // Submit updates to the contract - await fastUpdater.submitUpdates(newFastUpdate, { - from: accounts[i + 1]?.address ?? '', - }) - // console.log('cost', tx.receipt.gasUsed) - - // let caughtError = false - // try { - // // test if submitting again gives error - // console.log('gere2') - - // const tx = await fastUpdater.submitUpdates( - // newFastUpdate, - // { - // from: accounts[i + 1]?.address ?? '', - // } - // ) - // console.log('gere3', tx) - // } catch (e) { - // expect(e).to.be.not.empty - // caughtError = true - // } - // console.log('gere') - // expect(caughtError).to.equal(true) - - numSubmitted++ - if (numSubmitted >= 2) break - } - } - await fastUpdater.freeSubmitted({ - from: accounts[0]?.address ?? '', - }) - if (numSubmitted >= 2) break - } - if (numSubmitted > 0) break - } - - // See effect of price updates made - let pricesBN: BN[] = await fastUpdater.fetchCurrentPrices(feeds) - const prices: number[] = [] - for (let i = 0; i < NUM_FEEDS; i++) { - prices[i] = (pricesBN[i] as BN).toNumber() - let newPrice = startingPrices[i] as number - for (let j = 0; j < numSubmitted; j++) { - let delta = feed[i] - if (j == 1) { - delta = differentFeed[i] - } - - if (delta == '+') { - newPrice *= SCALE - } - if (delta == '-') { - newPrice /= SCALE - } - newPrice = Math.floor(newPrice) - } - - expect(prices[i]).to.be.equal(newPrice) - } - - console.log('applying deltas') - await fastUpdater.applySubmitted({ - from: (accounts[0] as Web3Account).address, - }) - // console.log('cost2', tx.receipt.gasUsed) - - pricesBN = await fastUpdater.fetchCurrentPrices.call(feeds) - for (let i = 0; i < NUM_FEEDS; i++) { - prices[i] = (pricesBN[i] as BN).toNumber() - let newPrice = startingPrices[i] as number - for (let j = 0; j < numSubmitted; j++) { - let delta = feed[i] - if (j == 1) { - delta = differentFeed[i] - } - - if (delta == '+') { - newPrice *= SCALE - } - if (delta == '-') { - newPrice /= SCALE - } - newPrice = Math.floor(newPrice) - } - expect(prices[i]).to.be.equal(newPrice) - } - }) - } -) diff --git a/test/contracts/FixedPointArithmetic.test.ts b/test/contracts/FixedPointArithmetic.test.ts deleted file mode 100644 index 17427e5..0000000 --- a/test/contracts/FixedPointArithmetic.test.ts +++ /dev/null @@ -1,284 +0,0 @@ -import path from 'path' - -import { expect } from 'chai' - -import { randomInt } from '../../deployment/utils' -import type { - TestFixedPointArithmeticContract, - TestFixedPointArithmeticInstance, -} from '../../typechain-truffle/contracts/fastUpdates/test/TestFixedPointArithmetic' - -const TestFixedPointArithmetic = artifacts.require( - 'TestFixedPointArithmetic' -) as TestFixedPointArithmeticContract - -contract( - `FixedPointArithmetic.sol; ${path.relative(path.resolve(), __filename)}`, - (accounts) => { - let fpaInstance: TestFixedPointArithmeticInstance - before(async () => { - const governance = accounts[0] - if (!governance) { - throw new Error('No governance account') - } - fpaInstance = await TestFixedPointArithmetic.new( - governance as Truffle.TransactionDetails - ) - }) - - // Arithmetic identity tests - - it('should have one as additive one', async () => { - const x = randomInt(2n ** 16n - 1n) - const c = await fpaInstance.oneTest(x.toString()) - - expect(c[0]).to.equal(x) - expect(c[1]).to.equal(x) - }) - it('should have zeroS as additive zero', async () => { - const x = randomInt(2n ** 16n - 1n) - const c = await fpaInstance.zeroSTest(x.toString()) - - expect(c[0]).to.equal(x) - expect(c[1]).to.equal(x) - }) - it('should have zeroR as additive zero', async () => { - const x = randomInt(2n ** 16n - 1n) - const c = await fpaInstance.zeroRTest(x.toString()) - - expect(c[0]).to.equal(x) - expect(c[1]).to.equal(x) - }) - - // Addition/subtraction tests - - it('should add and subtract SampleSize values', async () => { - let x = randomInt(2n ** 16n - 1n) - let y = randomInt(2n ** 16n - 1n - x) - if (x < y) { - const z = x - x = y - y = z - } - - const c = await fpaInstance.addSampleSizeTest( - x.toString(), - y.toString() - ) - - expect(c[0]).to.equal(x + y) - expect(c[1]).to.equal(x - y) - }) - - it('should add and subtract Range values', async () => { - let x = randomInt(2n ** 16n - 1n) - let y = randomInt(2n ** 16n - 1n - x) - if (x < y) { - const z = x - x = y - y = z - } - - const c = await fpaInstance.addRangeTest(x.toString(), y.toString()) - - expect(c[0]).to.equal(x + y) - expect(c[1]).to.equal(x - y) - }) - - it('should add and subtract Fee values', async () => { - let x = randomInt(2n ** 240n - 1n) - let y = randomInt(2n ** 240n - 1n - x) - if (x < y) { - const z = x - x = y - y = z - } - - const c = await fpaInstance.addFeeTest(x.toString(), y.toString()) - - expect(c[0]).to.equal(x + y) - expect(c[1]).to.equal(x - y) - }) - - // Multiplication/division tests - - it('should multiply Scale values', async () => { - // 47 is the largest exponent for a Number with a whole number of bytes - // 45 is small enough to prevent overflow. - const xS = - '0x' + - Math.floor(2 ** 47 + Math.random() * 2 ** 45).toString(16) + - '0'.repeat(20) - const yS = - '0x' + - Math.floor(2 ** 47 + Math.random() * 2 ** 45).toString(16) + - '0'.repeat(20) - - const c = await fpaInstance.mulScaleTest(xS, yS) - - const x = BigInt(xS) - const y = BigInt(yS) - - // TODO: These should not be compared as numbers, but as bigints - expect(c.toString(16)).to.equal(((x * y) >> 127n).toString(16)) - }) - it('should multiply Price and Scale values', async () => { - const xN = Math.floor(Math.random() * 2 ** 32) - const yS = - '0x' + - Math.floor(2 ** 47 + Math.random() * 2 ** 45).toString(16) + - '0'.repeat(20) - - const c = await fpaInstance.mulPriceScaleTest(xN, yS) - - const x = BigInt(xN) - const y = BigInt(yS) - - expect(c.toString(16)).to.equal(((x * y) >> 127n).toString(16)) - }) - it('should multiply Fee and Range values', async () => { - const xS = - '0x' + - Math.floor(Math.random() * 2 ** 39).toString(16) + - '0'.repeat(20) - const yS = - '0x' + - Math.floor(Math.random() * 2 ** 47).toString(16) + - '0'.repeat(20) - - const c = await fpaInstance.mulFeeRangeTest(xS, yS) - - const x = BigInt(xS) - const y = BigInt(yS) - - expect(c.toString(16)).to.equal(((x * y) >> 120n).toString(16)) - }) - it('should multiply Fractional and Fee values', async () => { - const xS = - '0x' + - Math.floor(Math.random() * 2 ** 47).toString(16) + - '0'.repeat(20) - const yN = Math.floor(Math.random() * 2 ** 32) - - const c = await fpaInstance.mulFractionalFeeTest(xS, yN) - - const x = BigInt(xS) - const y = BigInt(yN) - - expect(c.toString(16)).to.equal(((x * y) >> 128n).toString(16)) - }) - it('should multiply Fractional and SampleSize values', async () => { - const xS = - '0x' + - Math.floor(Math.random() * 2 ** 47).toString(16) + - '0'.repeat(20) - const yS = - '0x' + - Math.floor(Math.random() * 2 ** 47).toString(16) + - '0'.repeat(20) - - const c = await fpaInstance.mulFractionalSampleSizeTest(xS, yS) - - const x = BigInt(xS) - const y = BigInt(yS) - - expect(c.toString(16)).to.equal(((x * y) >> 128n).toString(16)) - }) - it('should divide Range values', async () => { - const y0 = Math.floor(Math.random() * 2 ** 47) - const yS = '0x' + y0.toString(16) + '0'.repeat(20) - const x0 = Math.floor(Math.random() * y0) - const xS = '0x' + x0.toString(16) + '0'.repeat(20) - - const c = await fpaInstance.divRangeTest(xS, yS) - - const x = BigInt(xS) - const y = BigInt(yS) - - expect(c.toString(16)).to.equal(((x << 128n) / y).toString(16)) - }) - it('should divide Fee values', async () => { - const y0 = Math.floor(Math.random() * 2 ** 47) - const yS = '0x' + y0.toString(16) + '0'.repeat(20) - const x0 = Math.floor(Math.random() * y0) - const xS = '0x' + x0.toString(16) + '0'.repeat(20) - - const c = await fpaInstance.divRangeTest(xS, yS) - - const x = BigInt(xS) - const y = BigInt(yS) - - expect(c.toString(16)).to.equal(((x << 128n) / y).toString(16)) - }) - it('should divide Range and SampleSize values', async () => { - const y0 = Math.floor(Math.random() * 2 ** 47) - const yS = '0x' + y0.toString(16) + '0'.repeat(20) - const x0 = Math.floor(Math.random() * y0) - const xS = '0x' + x0.toString(16) + '0'.repeat(20) - - const c = await fpaInstance.divRangeTest(xS, yS) - - const x = BigInt(xS) - const y = BigInt(yS) - - expect(c.toString(16)).to.equal(((x << 128n) / y).toString(16)) - }) - it('should divide Price and Scale values', async () => { - const xN = Math.floor(Math.random() * 2 ** 32) - const yS = - '0x' + - Math.floor(Math.random() * xN).toString(16) + - '0'.repeat(20) - - const c = await fpaInstance.mulPriceScaleTest(xN, yS) - - const x = BigInt(xN) - const y = BigInt(yS) - - expect(c.toString(16)).to.equal(((x * y) >> 127n).toString(16)) - }) - - // Comparison and conversion tests - - it('should convert Precision to Scale', async () => { - const xS = - '0x' + - Math.floor(Math.random() * 2 ** 46).toString(16) + - '0'.repeat(20) - - const c = await fpaInstance.scaleWithPrecisionTest(xS) - - const x = BigInt(xS) - - expect(c.toString(16)).to.equal((x + (1n << 127n)).toString(16)) - }) - it('should compare Range values', async () => { - const xI = Math.floor(Math.random() * 2 ** 16) - const x = xI / 2 ** 8 - const yI = Math.floor(Math.random() * 2 ** 16) - const y = yI / 2 ** 8 - - const c = await fpaInstance.lessThanRangeTest(xI, yI) - - expect(c).to.equal(x < y) - }) - it('should compare Fee values', async () => { - const x = Math.floor(Math.random() * 2 ** 32) - const y = Math.floor(Math.random() * 2 ** 32) - - const c = await fpaInstance.lessThanFeeTest(x, y) - - expect(c).to.equal(x < y) - }) - it('should compare Range and SampleSize values', async () => { - const xI = Math.floor(Math.random() * 2 ** 16) - const x = xI / 2 ** 8 - const yI = Math.floor(Math.random() * 2 ** 16) - const y = yI / 2 ** 8 - - const c = await fpaInstance.lessThanRangeSampleSizeTest(xI, yI) - - expect(c).to.equal(x < y) - }) - } -) diff --git a/test/contracts/Sortition.test.ts b/test/contracts/Sortition.test.ts deleted file mode 100644 index 5d3dbd0..0000000 --- a/test/contracts/Sortition.test.ts +++ /dev/null @@ -1,120 +0,0 @@ -import path from 'path' - -import { bn254 } from '@noble/curves/bn254' - -import { - generateSortitionKey, - generateVerifiableRandomnessProof, - randomInt, -} from '../../client/utils' -import type { Proof, SortitionKey } from '../../client/utils' -import type { - TestSortitionContractContract, - TestSortitionContractInstance, -} from '../../typechain-truffle/contracts/fastUpdates/test/TestSortition.sol/TestSortitionContract' - -const SortitionContract = artifacts.require( - 'TestSortitionContract' -) as TestSortitionContractContract - -contract( - `Sortition.sol; ${path.relative(path.resolve(), __filename)}`, - (accounts) => { - let sortition: TestSortitionContractInstance - before(async () => { - const governance = accounts[0] - if (!governance) { - throw new Error('No governance account') - } - sortition = await SortitionContract.new( - governance as Truffle.TransactionDetails - ) - }) - - it('should generate a verifiable randomness', async () => { - const key: SortitionKey = generateSortitionKey() - const seed = randomInt(bn254.CURVE.n).toString() - const blockNum = (await web3.eth.getBlockNumber()).toString() - const replicate = randomInt(bn254.CURVE.n).toString() - const proof: Proof = generateVerifiableRandomnessProof( - key, - seed, - blockNum, - replicate - ) - const pubKey = { x: key.pk.x.toString(), y: key.pk.y.toString() } - const sortitionCredential = { - replicate: replicate, - gamma: { - x: proof.gamma.x.toString(), - y: proof.gamma.y.toString(), - }, - c: proof.c.toString(), - s: proof.s.toString(), - } - const sortitionState = { - baseSeed: seed, - blockNumber: blockNum, - scoreCutoff: 0, - weight: 0, - pubKey: pubKey, - } - - const check = await sortition.testVerifySortitionProof( - sortitionState, - sortitionCredential - ) - - expect(check).to.equal(true) - }) - it('should correctly accept or reject the randomness', async () => { - const key: SortitionKey = generateSortitionKey() - const scoreCutoff = 2n ** 248n - for (;;) { - const seed = randomInt(bn254.CURVE.n).toString() - const replicate = randomInt(bn254.CURVE.n) - const blockNum = (await web3.eth.getBlockNumber()).toString() - const weight = replicate + 1n - - const proof: Proof = generateVerifiableRandomnessProof( - key, - seed, - blockNum, - replicate.toString() - ) - const pubKey = { - x: key.pk.x.toString(), - y: key.pk.y.toString(), - } - const sortitionCredential = { - replicate: replicate.toString(), - gamma: { - x: proof.gamma.x.toString(), - y: proof.gamma.y.toString(), - }, - c: proof.c.toString(), - s: proof.s.toString(), - } - const sortitionState = { - baseSeed: seed, - blockNumber: blockNum, - scoreCutoff: scoreCutoff.toString(), - weight: weight.toString(), - pubKey: pubKey, - } - - const check = await sortition.testVerifySortitionCredential( - sortitionState, - sortitionCredential - ) - - if (proof.gamma.x > scoreCutoff) { - expect(check).to.equal(false) - } else { - expect(check).to.equal(true) - break - } - } - }) - } -) diff --git a/test/deployment/fixed-point-arithmetic.test.ts b/test/deployment/fixed-point-arithmetic.test.ts deleted file mode 100644 index 8951cbc..0000000 --- a/test/deployment/fixed-point-arithmetic.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { RangeOrSampleFPA } from '../../deployment/utils/fixed-point-arithmetic' - -describe('RangeOrSampleFPA', () => { - it('should convert a range value to a fixed-point arithmetic representation', () => { - const range = 0.5 - const result = RangeOrSampleFPA(range) - - expect(result).to.equal('0x8' + '0'.repeat(29)) - }) - - it('should throw an error if the range value is out of bounds', () => { - const range = 256 - - expect(() => RangeOrSampleFPA(range)).to.throw( - 'range or sample size too large' - ) - }) -}) diff --git a/test/docker-compose.yaml b/test/docker-compose.yaml deleted file mode 100644 index 0f766ce..0000000 --- a/test/docker-compose.yaml +++ /dev/null @@ -1,7 +0,0 @@ -version: '3.8' - -services: - test: - container_name: 'test' - image: fast-updates - command: bash -c "yarn test" diff --git a/ts-simulation/.gitignore b/ts-simulation/.gitignore new file mode 100644 index 0000000..ddd220e --- /dev/null +++ b/ts-simulation/.gitignore @@ -0,0 +1,94 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test +.DS_Store +.idea +.vscode + +# yarn v2 +.yarn +.pnp.* + +# coverage +coverage +coverage.json + +# typing + +# typing +typechain +typechain-types +typechain-truffle +typechain-web3 +typechain-truffle +typechain-web3 + +# Hardhat files +cache +artifacts +nul + +# other files +go-client/sig.out +go-client/keys.out diff --git a/.prettierrc b/ts-simulation/.prettierrc similarity index 100% rename from .prettierrc rename to ts-simulation/.prettierrc diff --git a/ts-simulation/README.md b/ts-simulation/README.md new file mode 100644 index 0000000..abe285b --- /dev/null +++ b/ts-simulation/README.md @@ -0,0 +1,99 @@ +# FTSO Fast Updates Simulation + +This repo contains MVP of an implementation of the new Fast Updates proposal. + +## Setup + +### Node.JS + +Install [NVM](https://github.com/nvm-sh/nvm), and Node v18 (LTS): + +```bash +nvm install 18 +``` + +### Yarn + +Install dependencies with `yarn`: + +```bash +corepack enable +yarn install +``` + +### Project + +To compile smart contracts: + +```bash +yarn compile +``` + +To format with prettier: + +```bash +yarn format +``` + +To lint with eslint: + +```bash +yarn lint +``` + +## Docker + +To build a docker image, run: + +```bash +docker build -t fast-updates . +``` + +To test the protocol using docker, navigate to the `test` directory and run docker compose: + +```bash +cd test +docker compose up +``` + +## Simulating locally + +Start the chain: + +```bash +yarn hardhat node +``` + +Deploy the contracts and run the admin daemon: + +```bash +yarn hardhat deploy-contracts --network localhost && yarn hardhat run-admin-daemon --network localhost +``` + +Run the fast updates providers: + +```bash +yarn ts-node client/run-fast-updates-provider.ts $ID --network localhost +``` + +where `$ID` is the ID of the provider (1, 2, ...) + +## Simulating with Docker + +A simulation of the protocol using docker is available. It includes deploying and setting a chain node, +deploying contracts, running a daemon, and running multiple fast updates providers. Navigate to +`deployment/simulation` (assuming that the docker image `fast-updates` was build, as explained above) +and run docker compose: + +```bash +cd deployment +docker compose up +``` + +## Notes + +Strict type checked (in addition to strict mode) is enforced throughout the project (see `tsconfig.json` and `.eslintrc.js`). + +For testing purposes (under `test/`), `typechain-truffle` is used to generate typechain artifacts from the contracts. The contracts are locally instantiated and used in the tests. + +For deployment purposes (under `deployment/`), `typechain-web3-v1` is used to interact with the contracts. diff --git a/client/config/example-price-feeds/arbusdt.json b/ts-simulation/client/config/example-price-feeds/arbusdt.json similarity index 100% rename from client/config/example-price-feeds/arbusdt.json rename to ts-simulation/client/config/example-price-feeds/arbusdt.json diff --git a/client/config/example-price-feeds/btcusdt.json b/ts-simulation/client/config/example-price-feeds/btcusdt.json similarity index 100% rename from client/config/example-price-feeds/btcusdt.json rename to ts-simulation/client/config/example-price-feeds/btcusdt.json diff --git a/client/config/example-price-feeds/ethusdt.json b/ts-simulation/client/config/example-price-feeds/ethusdt.json similarity index 100% rename from client/config/example-price-feeds/ethusdt.json rename to ts-simulation/client/config/example-price-feeds/ethusdt.json diff --git a/client/config/example-price-feeds/linkusdt.json b/ts-simulation/client/config/example-price-feeds/linkusdt.json similarity index 100% rename from client/config/example-price-feeds/linkusdt.json rename to ts-simulation/client/config/example-price-feeds/linkusdt.json diff --git a/client/config/example-price-feeds/offchain_btcusd_prices.json b/ts-simulation/client/config/example-price-feeds/offchain_btcusd_prices.json similarity index 100% rename from client/config/example-price-feeds/offchain_btcusd_prices.json rename to ts-simulation/client/config/example-price-feeds/offchain_btcusd_prices.json diff --git a/client/config/example-price-feeds/shibusdt.json b/ts-simulation/client/config/example-price-feeds/shibusdt.json similarity index 100% rename from client/config/example-price-feeds/shibusdt.json rename to ts-simulation/client/config/example-price-feeds/shibusdt.json diff --git a/client/config/example-price-feeds/solusdt.json b/ts-simulation/client/config/example-price-feeds/solusdt.json similarity index 100% rename from client/config/example-price-feeds/solusdt.json rename to ts-simulation/client/config/example-price-feeds/solusdt.json diff --git a/client/config/index.ts b/ts-simulation/client/config/index.ts similarity index 100% rename from client/config/index.ts rename to ts-simulation/client/config/index.ts diff --git a/client/config/price-feed.ts b/ts-simulation/client/config/price-feed.ts similarity index 100% rename from client/config/price-feed.ts rename to ts-simulation/client/config/price-feed.ts diff --git a/client/config/retries.ts b/ts-simulation/client/config/retries.ts similarity index 100% rename from client/config/retries.ts rename to ts-simulation/client/config/retries.ts diff --git a/client/providers/ExamplePriceFeedProvider.ts b/ts-simulation/client/providers/ExamplePriceFeedProvider.ts similarity index 98% rename from client/providers/ExamplePriceFeedProvider.ts rename to ts-simulation/client/providers/ExamplePriceFeedProvider.ts index 0b78438..a43b6d2 100644 --- a/client/providers/ExamplePriceFeedProvider.ts +++ b/ts-simulation/client/providers/ExamplePriceFeedProvider.ts @@ -2,7 +2,7 @@ import { readFileSync } from 'fs' import { feedPaths } from '../config' import { getOrCreateLogger } from '../utils' -import type { PriceDeltas } from '../utils/' +import type { PriceDeltas } from '../utils' type PriceFeed = { [timestampSec: string]: number diff --git a/client/providers/FastUpdatesProvider.ts b/ts-simulation/client/providers/FastUpdatesProvider.ts similarity index 99% rename from client/providers/FastUpdatesProvider.ts rename to ts-simulation/client/providers/FastUpdatesProvider.ts index 2403f4c..e75f1d4 100644 --- a/client/providers/FastUpdatesProvider.ts +++ b/ts-simulation/client/providers/FastUpdatesProvider.ts @@ -4,13 +4,13 @@ import type { TransactionReceipt } from 'web3-types' import type { Logger } from 'winston' import { FEEDS } from '../../deployment/config' -import type { PriceDeltas, Proof } from '../utils/' +import type { PriceDeltas, Proof } from '../utils' import { calculateRandomness, generateSortitionKey, generateVerifiableRandomnessProof, -} from '../utils/' -import { signMessage } from '../utils/' +} from '../utils' +import { signMessage } from '../utils' import type { ExamplePriceFeedProvider } from './ExamplePriceFeedProvider' import type { Web3Provider } from './Web3Provider' diff --git a/client/providers/Web3Provider.ts b/ts-simulation/client/providers/Web3Provider.ts similarity index 100% rename from client/providers/Web3Provider.ts rename to ts-simulation/client/providers/Web3Provider.ts diff --git a/client/run-fast-updates-provider.ts b/ts-simulation/client/run-fast-updates-provider.ts similarity index 100% rename from client/run-fast-updates-provider.ts rename to ts-simulation/client/run-fast-updates-provider.ts diff --git a/client/utils/error.ts b/ts-simulation/client/utils/error.ts similarity index 100% rename from client/utils/error.ts rename to ts-simulation/client/utils/error.ts diff --git a/client/utils/index.ts b/ts-simulation/client/utils/index.ts similarity index 100% rename from client/utils/index.ts rename to ts-simulation/client/utils/index.ts diff --git a/client/utils/loader.ts b/ts-simulation/client/utils/loader.ts similarity index 100% rename from client/utils/loader.ts rename to ts-simulation/client/utils/loader.ts diff --git a/client/utils/logger.ts b/ts-simulation/client/utils/logger.ts similarity index 100% rename from client/utils/logger.ts rename to ts-simulation/client/utils/logger.ts diff --git a/client/utils/retry.ts b/ts-simulation/client/utils/retry.ts similarity index 100% rename from client/utils/retry.ts rename to ts-simulation/client/utils/retry.ts diff --git a/client/utils/sortition.ts b/ts-simulation/client/utils/sortition.ts similarity index 100% rename from client/utils/sortition.ts rename to ts-simulation/client/utils/sortition.ts diff --git a/client/utils/web3.ts b/ts-simulation/client/utils/web3.ts similarity index 100% rename from client/utils/web3.ts rename to ts-simulation/client/utils/web3.ts diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 9f21231..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "compilerOptions": { - /* Base Options */ - "target": "es2022", - "module": "commonjs", - "esModuleInterop": true, - "skipLibCheck": true, - "resolveJsonModule": true, - - /* Other Options */ - "outDir": "dist", - "typeRoots": ["node_modules/@types"], - - /* Strictness */ - "strict": true, - "alwaysStrict": true, - "strictNullChecks": true, - "strictBindCallApply": true, - "strictFunctionTypes": true, - "strictPropertyInitialization": true, - "noImplicitAny": true, - "noImplicitThis": true, - "useUnknownInCatchVariables": true, - "noUncheckedIndexedAccess": true, - "exactOptionalPropertyTypes": true, - "noPropertyAccessFromIndexSignature": true, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "noImplicitOverride": true - }, - "include": [ - "./client", - "./deployment", - "./test", - "./typechain-truffle", - "./typechain-web3" - ], - "exclude": ["**/node_modules", "**/.*/"], - "files": ["./hardhat.config.ts"] -} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 5f89903..0000000 --- a/yarn.lock +++ /dev/null @@ -1,14635 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 8 - cacheKey: 10c0 - -"@aashutoshrathi/word-wrap@npm:^1.2.3": - version: 1.2.6 - resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" - checksum: 10c0/53c2b231a61a46792b39a0d43bc4f4f776bb4542aa57ee04930676802e5501282c2fc8aac14e4cd1f1120ff8b52616b6ff5ab539ad30aa2277d726444b71619f - languageName: node - linkType: hard - -"@adraffy/ens-normalize@npm:1.10.1, @adraffy/ens-normalize@npm:^1.8.8": - version: 1.10.1 - resolution: "@adraffy/ens-normalize@npm:1.10.1" - checksum: 10c0/fdd647604e8fac6204921888aaf5a6bc65eabf0d2921bc5f93b64d01f4bc33ead167c1445f7de05468d05cd92ac31b74c68d2be840c62b79d73693308f885c06 - languageName: node - linkType: hard - -"@ampproject/remapping@npm:^2.2.0": - version: 2.3.0 - resolution: "@ampproject/remapping@npm:2.3.0" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed - languageName: node - linkType: hard - -"@apollo/protobufjs@npm:1.2.6": - version: 1.2.6 - resolution: "@apollo/protobufjs@npm:1.2.6" - dependencies: - "@protobufjs/aspromise": "npm:^1.1.2" - "@protobufjs/base64": "npm:^1.1.2" - "@protobufjs/codegen": "npm:^2.0.4" - "@protobufjs/eventemitter": "npm:^1.1.0" - "@protobufjs/fetch": "npm:^1.1.0" - "@protobufjs/float": "npm:^1.0.2" - "@protobufjs/inquire": "npm:^1.1.0" - "@protobufjs/path": "npm:^1.1.2" - "@protobufjs/pool": "npm:^1.1.0" - "@protobufjs/utf8": "npm:^1.1.0" - "@types/long": "npm:^4.0.0" - "@types/node": "npm:^10.1.0" - long: "npm:^4.0.0" - bin: - apollo-pbjs: bin/pbjs - apollo-pbts: bin/pbts - checksum: 10c0/f41395da673cca37e59371718c4790cecc27e4560557b1bd6a26d9a9e04a1750cb822b51f591011a7b76c33810dfee8d32b22b4d5263af9fc14c8a7a555d2a2d - languageName: node - linkType: hard - -"@apollo/protobufjs@npm:1.2.7": - version: 1.2.7 - resolution: "@apollo/protobufjs@npm:1.2.7" - dependencies: - "@protobufjs/aspromise": "npm:^1.1.2" - "@protobufjs/base64": "npm:^1.1.2" - "@protobufjs/codegen": "npm:^2.0.4" - "@protobufjs/eventemitter": "npm:^1.1.0" - "@protobufjs/fetch": "npm:^1.1.0" - "@protobufjs/float": "npm:^1.0.2" - "@protobufjs/inquire": "npm:^1.1.0" - "@protobufjs/path": "npm:^1.1.2" - "@protobufjs/pool": "npm:^1.1.0" - "@protobufjs/utf8": "npm:^1.1.0" - "@types/long": "npm:^4.0.0" - long: "npm:^4.0.0" - bin: - apollo-pbjs: bin/pbjs - apollo-pbts: bin/pbts - checksum: 10c0/24b08929c5216f75e3bf457cf7e132d957d6774b0feebb104e98d9b0c06e801ef3919ee23d6a63a6297fb4aa41da3491b8e9acc3481fea0909c90f41f1e5a0f6 - languageName: node - linkType: hard - -"@apollo/usage-reporting-protobuf@npm:^4.0.0": - version: 4.1.1 - resolution: "@apollo/usage-reporting-protobuf@npm:4.1.1" - dependencies: - "@apollo/protobufjs": "npm:1.2.7" - checksum: 10c0/45f0167a87d4ae8a12124831ebb29905122d28afdbfa23a4f25f4570189d5ddaa6f2829ef97923f5909b9753e39dbd28f810ca2a93ad9fcd60b2baf5669f5223 - languageName: node - linkType: hard - -"@apollo/utils.dropunuseddefinitions@npm:^1.1.0": - version: 1.1.0 - resolution: "@apollo/utils.dropunuseddefinitions@npm:1.1.0" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/144341253966fb657175fa6c2a85ba2f67908e1e104a191aca45b5886dbe4668f234da2e8bdae054d823b9811831df9ba3c53e3ffbe36d4c53af18f5fb80586d - languageName: node - linkType: hard - -"@apollo/utils.keyvaluecache@npm:^1.0.1": - version: 1.0.2 - resolution: "@apollo/utils.keyvaluecache@npm:1.0.2" - dependencies: - "@apollo/utils.logger": "npm:^1.0.0" - lru-cache: "npm:7.10.1 - 7.13.1" - checksum: 10c0/be80dec55148c3bb0cb7ad64e4d1a49954856d4c70bb330b65d46e3a5c5d04de3f30edca6a52c98fef2fe121c857d9aca855754ef7641d2d534c755a0abca20c - languageName: node - linkType: hard - -"@apollo/utils.logger@npm:^1.0.0": - version: 1.0.1 - resolution: "@apollo/utils.logger@npm:1.0.1" - checksum: 10c0/8cec56f0d6cb9ca12c7a0f1d23ab4d69d668173fd4077bfc242247885217b98ab4dd9aadaa5ba54fe1c19a7442eae86c6ca4776e96079d103c9048d51adc1d2d - languageName: node - linkType: hard - -"@apollo/utils.printwithreducedwhitespace@npm:^1.1.0": - version: 1.1.0 - resolution: "@apollo/utils.printwithreducedwhitespace@npm:1.1.0" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/a6f4522bfa3ee460b5c4b6d82642d24a256b6889796486d853045f8a9aa41674e40fd2ee400a40861229896c69771de98c569597d54a1b5901d69513fae64d93 - languageName: node - linkType: hard - -"@apollo/utils.removealiases@npm:1.0.0": - version: 1.0.0 - resolution: "@apollo/utils.removealiases@npm:1.0.0" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/32985f8e3be41afc3348814485c23d0760c4f4896396ec71643fd71c689912fc00b0137d7b9cd738eaa7ad74812962c97437432a33c95a492d92bfd7d1d18f5e - languageName: node - linkType: hard - -"@apollo/utils.sortast@npm:^1.1.0": - version: 1.1.0 - resolution: "@apollo/utils.sortast@npm:1.1.0" - dependencies: - lodash.sortby: "npm:^4.7.0" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/aca60b50aa9ed29da81e4ecb4442ef795d174ac2c28925be89297a1811a0cc8695a5d2bf9811d32232823b5946a41181125ddc2c94e653bc1ef916c1be408c62 - languageName: node - linkType: hard - -"@apollo/utils.stripsensitiveliterals@npm:^1.2.0": - version: 1.2.0 - resolution: "@apollo/utils.stripsensitiveliterals@npm:1.2.0" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/95c5093ed7b8f720b4867f2eb37f15af1719d27cfa3418a437c69ee44125d4baedb146e9ffe8656a0bf38f58c836799bc07bf08ccdaca9fc1486acd45ec8c2a4 - languageName: node - linkType: hard - -"@apollo/utils.usagereporting@npm:^1.0.0": - version: 1.0.1 - resolution: "@apollo/utils.usagereporting@npm:1.0.1" - dependencies: - "@apollo/usage-reporting-protobuf": "npm:^4.0.0" - "@apollo/utils.dropunuseddefinitions": "npm:^1.1.0" - "@apollo/utils.printwithreducedwhitespace": "npm:^1.1.0" - "@apollo/utils.removealiases": "npm:1.0.0" - "@apollo/utils.sortast": "npm:^1.1.0" - "@apollo/utils.stripsensitiveliterals": "npm:^1.2.0" - peerDependencies: - graphql: 14.x || 15.x || 16.x - checksum: 10c0/c7e85ea3ba203e77646c2f5144b7200befe7e130ac64ed010c5441f898f8f7d7736bd2ccf1eeb4b4687b762c5f4c965c98b6f59649d745a8b29d7eb9d1fcc097 - languageName: node - linkType: hard - -"@apollographql/apollo-tools@npm:^0.5.3": - version: 0.5.4 - resolution: "@apollographql/apollo-tools@npm:0.5.4" - peerDependencies: - graphql: ^14.2.1 || ^15.0.0 || ^16.0.0 - checksum: 10c0/2efb5385fd2871af5e3fa15b61ddf7bb004b7dc77a29ae257cd2e3edfacb8889f75ccbb3a9419ea296e2d8979859270f6f37ff54ce024b545d7808a67a2f26cb - languageName: node - linkType: hard - -"@apollographql/graphql-playground-html@npm:1.6.29": - version: 1.6.29 - resolution: "@apollographql/graphql-playground-html@npm:1.6.29" - dependencies: - xss: "npm:^1.0.8" - checksum: 10c0/49621b9d18064ca299e16397023ad44bfd6847f65b2cfbee03c63a9bb5598a94a29cc9be5c247138e844a586e3e9c744ff82f9479daf7c160ce50a76107be2fa - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/code-frame@npm:7.24.2" - dependencies: - "@babel/highlight": "npm:^7.24.2" - picocolors: "npm:^1.0.0" - checksum: 10c0/d1d4cba89475ab6aab7a88242e1fd73b15ecb9f30c109b69752956434d10a26a52cbd37727c4eca104b6d45227bd1dfce39a6a6f4a14c9b2f07f871e968cf406 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.23.5": - version: 7.24.1 - resolution: "@babel/compat-data@npm:7.24.1" - checksum: 10c0/8a1935450345c326b14ea632174696566ef9b353bd0d6fb682456c0774342eeee7654877ced410f24a731d386fdcbf980b75083fc764964d6f816b65792af2f5 - languageName: node - linkType: hard - -"@babel/core@npm:^7.7.5": - version: 7.24.3 - resolution: "@babel/core@npm:7.24.3" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.2" - "@babel/generator": "npm:^7.24.1" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.24.1" - "@babel/parser": "npm:^7.24.1" - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.1" - "@babel/types": "npm:^7.24.0" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10c0/e6e756b6de27d0312514a005688fa1915c521ad4269a388913eff2120a546538078f8488d6d16e86f851872f263cb45a6bbae08738297afb9382600d2ac342a9 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/generator@npm:7.24.1" - dependencies: - "@babel/types": "npm:^7.24.0" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/f0eea7497657cdf68cfb4b7d181588e1498eefd1f303d73b0d8ca9b21a6db27136a6f5beb8f988b6bdcd4249870826080950450fd310951de42ecf36df274881 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helper-compilation-targets@npm:7.23.6" - dependencies: - "@babel/compat-data": "npm:^7.23.5" - "@babel/helper-validator-option": "npm:^7.23.5" - browserslist: "npm:^4.22.2" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10c0/ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-environment-visitor@npm:7.22.20" - checksum: 10c0/e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-function-name@npm:7.23.0" - dependencies: - "@babel/template": "npm:^7.22.15" - "@babel/types": "npm:^7.23.0" - checksum: 10c0/d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10c0/60a3077f756a1cd9f14eb89f0037f487d81ede2b7cfe652ea6869cd4ec4c782b0fb1de01b8494b9a2d2050e3d154d7d5ad3be24806790acfb8cbe2073bf1e208 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.22.15": - version: 7.24.3 - resolution: "@babel/helper-module-imports@npm:7.24.3" - dependencies: - "@babel/types": "npm:^7.24.0" - checksum: 10c0/052c188adcd100f5e8b6ff0c9643ddaabc58b6700d3bbbc26804141ad68375a9f97d9d173658d373d31853019e65f62610239e3295cdd58e573bdcb2fded188d - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/helper-module-transforms@npm:7.23.3" - dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-module-imports": "npm:^7.22.15" - "@babel/helper-simple-access": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/helper-validator-identifier": "npm:^7.22.20" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/211e1399d0c4993671e8e5c2b25383f08bee40004ace5404ed4065f0e9258cc85d99c1b82fd456c030ce5cfd4d8f310355b54ef35de9924eabfc3dff1331d946 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-simple-access@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10c0/f0cf81a30ba3d09a625fd50e5a9069e575c5b6719234e04ee74247057f8104beca89ed03e9217b6e9b0493434cedc18c5ecca4cea6244990836f1f893e140369 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/helper-split-export-declaration@npm:7.22.6" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10c0/d83e4b623eaa9622c267d3c83583b72f3aac567dc393dda18e559d79187961cb29ae9c57b2664137fc3d19508370b12ec6a81d28af73a50e0846819cb21c6e44 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.23.4": - version: 7.24.1 - resolution: "@babel/helper-string-parser@npm:7.24.1" - checksum: 10c0/2f9bfcf8d2f9f083785df0501dbab92770111ece2f90d120352fda6dd2a7d47db11b807d111e6f32aa1ba6d763fe2dc6603d153068d672a5d0ad33ca802632b2 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helper-validator-option@npm:7.23.5" - checksum: 10c0/af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helpers@npm:7.24.1" - dependencies: - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.1" - "@babel/types": "npm:^7.24.0" - checksum: 10c0/b3445860ae749fc664682b291f092285e949114e8336784ae29f88eb4c176279b01cc6740005a017a0389ae4b4e928d5bbbc01de7da7e400c972e3d6f792063a - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/highlight@npm:7.24.2" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.22.20" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/98ce00321daedeed33a4ed9362dc089a70375ff1b3b91228b9f05e6591d387a81a8cba68886e207861b8871efa0bc997ceabdd9c90f6cce3ee1b2f7f941b42db - languageName: node - linkType: hard - -"@babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/parser@npm:7.24.1" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/d2a8b99aa5f33182b69d5569367403a40e7c027ae3b03a1f81fd8ac9b06ceb85b31f6ee4267fb90726dc2ac99909c6bdaa9cf16c379efab73d8dfe85cee32c50 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.6.3": - version: 7.24.1 - resolution: "@babel/runtime@npm:7.24.1" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/500c6a99ddd84f37c7bc5dbc84777af47b1372b20e879941670451d55484faf18a673c5ebee9ca2b0f36208a729417873b35b1b92e76f811620f6adf7b8cb0f1 - languageName: node - linkType: hard - -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/template@npm:7.24.0" - dependencies: - "@babel/code-frame": "npm:^7.23.5" - "@babel/parser": "npm:^7.24.0" - "@babel/types": "npm:^7.24.0" - checksum: 10c0/9d3dd8d22fe1c36bc3bdef6118af1f4b030aaf6d7d2619f5da203efa818a2185d717523486c111de8d99a8649ddf4bbf6b2a7a64962d8411cf6a8fa89f010e54 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/traverse@npm:7.24.1" - dependencies: - "@babel/code-frame": "npm:^7.24.1" - "@babel/generator": "npm:^7.24.1" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.24.1" - "@babel/types": "npm:^7.24.0" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10c0/c087b918f6823776537ba246136c70e7ce0719fc05361ebcbfd16f4e6f2f6f1f8f4f9167f1d9b675f27d12074839605189cc9d689de20b89a85e7c140f23daab - languageName: node - linkType: hard - -"@babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.0, @babel/types@npm:^7.8.3": - version: 7.24.0 - resolution: "@babel/types@npm:7.24.0" - dependencies: - "@babel/helper-string-parser": "npm:^7.23.4" - "@babel/helper-validator-identifier": "npm:^7.22.20" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/777a0bb5dbe038ca4c905fdafb1cdb6bdd10fe9d63ce13eca0bd91909363cbad554a53dc1f902004b78c1dcbc742056f877f2c99eeedff647333b1fadf51235d - languageName: node - linkType: hard - -"@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0": - version: 1.6.0 - resolution: "@colors/colors@npm:1.6.0" - checksum: 10c0/9328a0778a5b0db243af54455b79a69e3fb21122d6c15ef9e9fcc94881d8d17352d8b2b2590f9bdd46fac5c2d6c1636dcfc14358a20c70e22daf89e1a759b629 - languageName: node - linkType: hard - -"@cspotcode/source-map-support@npm:^0.8.0": - version: 0.8.1 - resolution: "@cspotcode/source-map-support@npm:0.8.1" - dependencies: - "@jridgewell/trace-mapping": "npm:0.3.9" - checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 - languageName: node - linkType: hard - -"@dabh/diagnostics@npm:^2.0.2": - version: 2.0.3 - resolution: "@dabh/diagnostics@npm:2.0.3" - dependencies: - colorspace: "npm:1.1.x" - enabled: "npm:2.0.x" - kuler: "npm:^2.0.0" - checksum: 10c0/a5133df8492802465ed01f2f0a5784585241a1030c362d54a602ed1839816d6c93d71dde05cf2ddb4fd0796238c19774406bd62fa2564b637907b495f52425fe - languageName: node - linkType: hard - -"@ensdomains/address-encoder@npm:^0.1.7": - version: 0.1.9 - resolution: "@ensdomains/address-encoder@npm:0.1.9" - dependencies: - bech32: "npm:^1.1.3" - blakejs: "npm:^1.1.0" - bn.js: "npm:^4.11.8" - bs58: "npm:^4.0.1" - crypto-addr-codec: "npm:^0.1.7" - nano-base32: "npm:^1.0.1" - ripemd160: "npm:^2.0.2" - checksum: 10c0/0ffeb65446b844b7456c5ad51f42d4bf6c86ed9e0bb74da1d487c37782a79c4760fb67f51e35935fa619b468025b4b459f7319d40cc1042e565e420be55fcdce - languageName: node - linkType: hard - -"@ensdomains/ens@npm:0.4.5": - version: 0.4.5 - resolution: "@ensdomains/ens@npm:0.4.5" - dependencies: - bluebird: "npm:^3.5.2" - eth-ens-namehash: "npm:^2.0.8" - solc: "npm:^0.4.20" - testrpc: "npm:0.0.1" - web3-utils: "npm:^1.0.0-beta.31" - checksum: 10c0/15a77b5db73550546e6684cb6f8105170c9c113e3dc128ee718eabd3c2b1d13fdeb5791fa79c7b149b5b83b6e00040b7320c27796b7970fae66e8d3e5cce6561 - languageName: node - linkType: hard - -"@ensdomains/ensjs@npm:^2.0.1, @ensdomains/ensjs@npm:^2.1.0": - version: 2.1.0 - resolution: "@ensdomains/ensjs@npm:2.1.0" - dependencies: - "@babel/runtime": "npm:^7.4.4" - "@ensdomains/address-encoder": "npm:^0.1.7" - "@ensdomains/ens": "npm:0.4.5" - "@ensdomains/resolver": "npm:0.2.4" - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:^2.0.8" - ethers: "npm:^5.0.13" - js-sha3: "npm:^0.8.0" - checksum: 10c0/5349dad75ae19772a541e18a629d9d54da1ca6c787320b4d49ff00f2cb20580fb6ed3710b2a59ba93c0dee66129b363261a0b74c4a98c59c7adace502b0712b7 - languageName: node - linkType: hard - -"@ensdomains/resolver@npm:0.2.4": - version: 0.2.4 - resolution: "@ensdomains/resolver@npm:0.2.4" - checksum: 10c0/8bd21f82c3f122f56d7198cf671c08204cca2cb531fd5074fd558d625afa8a15828e92738bf80b9961575a92e4fe627208edd3f87a04c6a0fa47531c91ef0639 - languageName: node - linkType: hard - -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: "npm:^3.3.0" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 10c0/c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" - dependencies: - ajv: "npm:^6.12.4" - debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" - minimatch: "npm:^3.1.2" - strip-json-comments: "npm:^3.1.1" - checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 - languageName: node - linkType: hard - -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10c0/9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94 - languageName: node - linkType: hard - -"@ethereumjs/common@npm:2.5.0": - version: 2.5.0 - resolution: "@ethereumjs/common@npm:2.5.0" - dependencies: - crc-32: "npm:^1.2.0" - ethereumjs-util: "npm:^7.1.1" - checksum: 10c0/98a11931150ccc4d204f3c5328979cac9928cbc0f73344427dc41561287f100670db8b0296ede04542b598a58a699f4709867fb652a17ab076bab0ef14185816 - languageName: node - linkType: hard - -"@ethereumjs/common@npm:2.6.5, @ethereumjs/common@npm:^2.5.0, @ethereumjs/common@npm:^2.6.4": - version: 2.6.5 - resolution: "@ethereumjs/common@npm:2.6.5" - dependencies: - crc-32: "npm:^1.2.0" - ethereumjs-util: "npm:^7.1.5" - checksum: 10c0/065fc993e390631753e9cbc63987954338c42192d227e15a40d9a074eda9e9597916dca51970b59230c7d3b1294c5956258fe6ea29000b5555bf24fe3ff522c5 - languageName: node - linkType: hard - -"@ethereumjs/rlp@npm:^4.0.1": - version: 4.0.1 - resolution: "@ethereumjs/rlp@npm:4.0.1" - bin: - rlp: bin/rlp - checksum: 10c0/78379f288e9d88c584c2159c725c4a667a9742981d638bad760ed908263e0e36bdbd822c0a902003e0701195fd1cbde7adad621cd97fdfbf552c45e835ce022c - languageName: node - linkType: hard - -"@ethereumjs/tx@npm:3.3.2": - version: 3.3.2 - resolution: "@ethereumjs/tx@npm:3.3.2" - dependencies: - "@ethereumjs/common": "npm:^2.5.0" - ethereumjs-util: "npm:^7.1.2" - checksum: 10c0/36b38bb56e54293cc86b02cd7146c0e653235c42a765fe704e0efd9aa96c363995c201585ede798e75f974d6d123b6f775845da2c56fbce71d9d099dc03dcb16 - languageName: node - linkType: hard - -"@ethereumjs/tx@npm:3.5.2": - version: 3.5.2 - resolution: "@ethereumjs/tx@npm:3.5.2" - dependencies: - "@ethereumjs/common": "npm:^2.6.4" - ethereumjs-util: "npm:^7.1.5" - checksum: 10c0/768cbe0834eef15f4726b44f2a4c52b6180884d90e58108d5251668c7e89d58572de7375d5e63be9d599e79c09259e643837a2afe876126b09c47ac35386cc20 - languageName: node - linkType: hard - -"@ethereumjs/util@npm:^8.1.0": - version: 8.1.0 - resolution: "@ethereumjs/util@npm:8.1.0" - dependencies: - "@ethereumjs/rlp": "npm:^4.0.1" - ethereum-cryptography: "npm:^2.0.0" - micro-ftch: "npm:^0.3.1" - checksum: 10c0/4e6e0449236f66b53782bab3b387108f0ddc050835bfe1381c67a7c038fea27cb85ab38851d98b700957022f0acb6e455ca0c634249cfcce1a116bad76500160 - languageName: node - linkType: hard - -"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.0.9, @ethersproject/abi@npm:^5.1.2, @ethersproject/abi@npm:^5.6.3, @ethersproject/abi@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/abi@npm:5.7.0" - dependencies: - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: 10c0/7de51bf52ff03df2526546dacea6e74f15d4c5ef762d931552082b9600dcefd8e333599f02d7906ba89f7b7f48c45ab72cee76f397212b4f17fa9d9ff5615916 - languageName: node - linkType: hard - -"@ethersproject/abstract-provider@npm:5.7.0, @ethersproject/abstract-provider@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/abstract-provider@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/networks": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/web": "npm:^5.7.0" - checksum: 10c0/a5708e2811b90ddc53d9318ce152511a32dd4771aa2fb59dbe9e90468bb75ca6e695d958bf44d13da684dc3b6aab03f63d425ff7591332cb5d7ddaf68dff7224 - languageName: node - linkType: hard - -"@ethersproject/abstract-signer@npm:5.7.0, @ethersproject/abstract-signer@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/abstract-signer@npm:5.7.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - checksum: 10c0/e174966b3be17269a5974a3ae5eef6d15ac62ee8c300ceace26767f218f6bbf3de66f29d9a9c9ca300fa8551aab4c92e28d2cc772f5475fdeaa78d9b5be0e745 - languageName: node - linkType: hard - -"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/address@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/rlp": "npm:^5.7.0" - checksum: 10c0/db5da50abeaae8f6cf17678323e8d01cad697f9a184b0593c62b71b0faa8d7e5c2ba14da78a998d691773ed6a8eb06701f65757218e0eaaeb134e5c5f3e5a908 - languageName: node - linkType: hard - -"@ethersproject/base64@npm:5.7.0, @ethersproject/base64@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/base64@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - checksum: 10c0/4f748cd82af60ff1866db699fbf2bf057feff774ea0a30d1f03ea26426f53293ea10cc8265cda1695301da61093bedb8cc0d38887f43ed9dad96b78f19d7337e - languageName: node - linkType: hard - -"@ethersproject/basex@npm:5.7.0, @ethersproject/basex@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/basex@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - checksum: 10c0/02304de77477506ad798eb5c68077efd2531624380d770ef4a823e631a288fb680107a0f9dc4a6339b2a0b0f5b06ee77f53429afdad8f950cde0f3e40d30167d - languageName: node - linkType: hard - -"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/bignumber@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - bn.js: "npm:^5.2.1" - checksum: 10c0/14263cdc91a7884b141d9300f018f76f69839c47e95718ef7161b11d2c7563163096fee69724c5fa8ef6f536d3e60f1c605819edbc478383a2b98abcde3d37b2 - languageName: node - linkType: hard - -"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/bytes@npm:5.7.0" - dependencies: - "@ethersproject/logger": "npm:^5.7.0" - checksum: 10c0/07dd1f0341b3de584ef26c8696674ff2bb032f4e99073856fc9cd7b4c54d1d846cabe149e864be267934658c3ce799e5ea26babe01f83af0e1f06c51e5ac791f - languageName: node - linkType: hard - -"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/constants@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - checksum: 10c0/6df63ab753e152726b84595250ea722165a5744c046e317df40a6401f38556385a37c84dadf5b11ca651c4fb60f967046125369c57ac84829f6b30e69a096273 - languageName: node - linkType: hard - -"@ethersproject/contracts@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/contracts@npm:5.7.0" - dependencies: - "@ethersproject/abi": "npm:^5.7.0" - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - checksum: 10c0/97a10361dddaccfb3e9e20e24d071cfa570050adcb964d3452c5f7c9eaaddb4e145ec9cf928e14417948701b89e81d4907800e799a6083123e4d13a576842f41 - languageName: node - linkType: hard - -"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/hash@npm:5.7.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/base64": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: 10c0/1a631dae34c4cf340dde21d6940dd1715fc7ae483d576f7b8ef9e8cb1d0e30bd7e8d30d4a7d8dc531c14164602323af2c3d51eb2204af18b2e15167e70c9a5ef - languageName: node - linkType: hard - -"@ethersproject/hdnode@npm:5.7.0, @ethersproject/hdnode@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/hdnode@npm:5.7.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/basex": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/pbkdf2": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - "@ethersproject/signing-key": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/wordlists": "npm:^5.7.0" - checksum: 10c0/36d5c13fe69b1e0a18ea98537bc560d8ba166e012d63faac92522a0b5f405eb67d8848c5aca69e2470f62743aaef2ac36638d9e27fd8c68f51506eb61479d51d - languageName: node - linkType: hard - -"@ethersproject/json-wallets@npm:5.7.0, @ethersproject/json-wallets@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/json-wallets@npm:5.7.0" - dependencies: - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/hdnode": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/pbkdf2": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/random": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - aes-js: "npm:3.0.0" - scrypt-js: "npm:3.0.1" - checksum: 10c0/f1a84d19ff38d3506f453abc4702107cbc96a43c000efcd273a056371363767a06a8d746f84263b1300266eb0c329fe3b49a9b39a37aadd016433faf9e15a4bb - languageName: node - linkType: hard - -"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/keccak256@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - js-sha3: "npm:0.8.0" - checksum: 10c0/3b1a91706ff11f5ab5496840b9c36cedca27db443186d28b94847149fd16baecdc13f6fc5efb8359506392f2aba559d07e7f9c1e17a63f9d5de9f8053cfcb033 - languageName: node - linkType: hard - -"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/logger@npm:5.7.0" - checksum: 10c0/d03d460fb2d4a5e71c627b7986fb9e50e1b59a6f55e8b42a545b8b92398b961e7fd294bd9c3d8f92b35d0f6ff9d15aa14c95eab378f8ea194e943c8ace343501 - languageName: node - linkType: hard - -"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.7.0": - version: 5.7.1 - resolution: "@ethersproject/networks@npm:5.7.1" - dependencies: - "@ethersproject/logger": "npm:^5.7.0" - checksum: 10c0/9efcdce27f150459e85d74af3f72d5c32898823a99f5410e26bf26cca2d21fb14e403377314a93aea248e57fb2964e19cee2c3f7bfc586ceba4c803a8f1b75c0 - languageName: node - linkType: hard - -"@ethersproject/pbkdf2@npm:5.7.0, @ethersproject/pbkdf2@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/pbkdf2@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - checksum: 10c0/e5a29cf28b4f4ca1def94d37cfb6a9c05c896106ed64881707813de01c1e7ded613f1e95febcccda4de96aae929068831d72b9d06beef1377b5a1a13a0eb3ff5 - languageName: node - linkType: hard - -"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/properties@npm:5.7.0" - dependencies: - "@ethersproject/logger": "npm:^5.7.0" - checksum: 10c0/4fe5d36e5550b8e23a305aa236a93e8f04d891d8198eecdc8273914c761b0e198fd6f757877406ee3eb05033ec271132a3e5998c7bd7b9a187964fb4f67b1373 - languageName: node - linkType: hard - -"@ethersproject/providers@npm:5.7.2": - version: 5.7.2 - resolution: "@ethersproject/providers@npm:5.7.2" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/base64": "npm:^5.7.0" - "@ethersproject/basex": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/networks": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/random": "npm:^5.7.0" - "@ethersproject/rlp": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/web": "npm:^5.7.0" - bech32: "npm:1.1.4" - ws: "npm:7.4.6" - checksum: 10c0/4c8d19e6b31f769c24042fb2d02e483a4ee60dcbfca9e3291f0a029b24337c47d1ea719a390be856f8fd02997125819e834415e77da4fb2023369712348dae4c - languageName: node - linkType: hard - -"@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/random@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - checksum: 10c0/23e572fc55372653c22062f6a153a68c2e2d3200db734cd0d39621fbfd0ca999585bed2d5682e3ac65d87a2893048375682e49d1473d9965631ff56d2808580b - languageName: node - linkType: hard - -"@ethersproject/rlp@npm:5.7.0, @ethersproject/rlp@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/rlp@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - checksum: 10c0/bc863d21dcf7adf6a99ae75c41c4a3fb99698cfdcfc6d5d82021530f3d3551c6305bc7b6f0475ad6de6f69e91802b7e872bee48c0596d98969aefcf121c2a044 - languageName: node - linkType: hard - -"@ethersproject/sha2@npm:5.7.0, @ethersproject/sha2@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/sha2@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - hash.js: "npm:1.1.7" - checksum: 10c0/0e7f9ce6b1640817b921b9c6dd9dab8d5bf5a0ce7634d6a7d129b7366a576c2f90dcf4bcb15a0aa9310dde67028f3a44e4fcc2f26b565abcd2a0f465116ff3b1 - languageName: node - linkType: hard - -"@ethersproject/signing-key@npm:5.7.0, @ethersproject/signing-key@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/signing-key@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - bn.js: "npm:^5.2.1" - elliptic: "npm:6.5.4" - hash.js: "npm:1.1.7" - checksum: 10c0/fe2ca55bcdb6e370d81372191d4e04671234a2da872af20b03c34e6e26b97dc07c1ee67e91b673680fb13344c9d5d7eae52f1fa6117733a3d68652b778843e09 - languageName: node - linkType: hard - -"@ethersproject/solidity@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/solidity@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/sha2": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: 10c0/bedf9918911144b0ec352b8aa7fa44abf63f0b131629c625672794ee196ba7d3992b0e0d3741935ca176813da25b9bcbc81aec454652c63113bdc3a1706beac6 - languageName: node - linkType: hard - -"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/strings@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - checksum: 10c0/570d87040ccc7d94de9861f76fc2fba6c0b84c5d6104a99a5c60b8a2401df2e4f24bf9c30afa536163b10a564a109a96f02e6290b80e8f0c610426f56ad704d1 - languageName: node - linkType: hard - -"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.6.2, @ethersproject/transactions@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/transactions@npm:5.7.0" - dependencies: - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/rlp": "npm:^5.7.0" - "@ethersproject/signing-key": "npm:^5.7.0" - checksum: 10c0/aa4d51379caab35b9c468ed1692a23ae47ce0de121890b4f7093c982ee57e30bd2df0c743faed0f44936d7e59c55fffd80479f2c28ec6777b8de06bfb638c239 - languageName: node - linkType: hard - -"@ethersproject/units@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/units@npm:5.7.0" - dependencies: - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/constants": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - checksum: 10c0/4da2fdefe2a506cc9f8b408b2c8638ab35b843ec413d52713143f08501a55ff67a808897f9a91874774fb526423a0821090ba294f93e8bf4933a57af9677ac5e - languageName: node - linkType: hard - -"@ethersproject/wallet@npm:5.7.0": - version: 5.7.0 - resolution: "@ethersproject/wallet@npm:5.7.0" - dependencies: - "@ethersproject/abstract-provider": "npm:^5.7.0" - "@ethersproject/abstract-signer": "npm:^5.7.0" - "@ethersproject/address": "npm:^5.7.0" - "@ethersproject/bignumber": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/hdnode": "npm:^5.7.0" - "@ethersproject/json-wallets": "npm:^5.7.0" - "@ethersproject/keccak256": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/random": "npm:^5.7.0" - "@ethersproject/signing-key": "npm:^5.7.0" - "@ethersproject/transactions": "npm:^5.7.0" - "@ethersproject/wordlists": "npm:^5.7.0" - checksum: 10c0/f872b957db46f9de247d39a398538622b6c7a12f93d69bec5f47f9abf0701ef1edc10497924dd1c14a68109284c39a1686fa85586d89b3ee65df49002c40ba4c - languageName: node - linkType: hard - -"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.7.0": - version: 5.7.1 - resolution: "@ethersproject/web@npm:5.7.1" - dependencies: - "@ethersproject/base64": "npm:^5.7.0" - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: 10c0/c82d6745c7f133980e8dab203955260e07da22fa544ccafdd0f21c79fae127bd6ef30957319e37b1cc80cddeb04d6bfb60f291bb14a97c9093d81ce50672f453 - languageName: node - linkType: hard - -"@ethersproject/wordlists@npm:5.7.0, @ethersproject/wordlists@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/wordlists@npm:5.7.0" - dependencies: - "@ethersproject/bytes": "npm:^5.7.0" - "@ethersproject/hash": "npm:^5.7.0" - "@ethersproject/logger": "npm:^5.7.0" - "@ethersproject/properties": "npm:^5.7.0" - "@ethersproject/strings": "npm:^5.7.0" - checksum: 10c0/da4f3eca6d691ebf4f578e6b2ec3a76dedba791be558f6cf7e10cd0bfbaeab5a6753164201bb72ced745fb02b6ef7ef34edcb7e6065ce2b624c6556a461c3f70 - languageName: node - linkType: hard - -"@fastify/busboy@npm:^2.0.0": - version: 2.1.1 - resolution: "@fastify/busboy@npm:2.1.1" - checksum: 10c0/6f8027a8cba7f8f7b736718b013f5a38c0476eea67034c94a0d3c375e2b114366ad4419e6a6fa7ffc2ef9c6d3e0435d76dd584a7a1cbac23962fda7650b579e3 - languageName: node - linkType: hard - -"@graphql-tools/batch-execute@npm:8.5.1": - version: 8.5.1 - resolution: "@graphql-tools/batch-execute@npm:8.5.1" - dependencies: - "@graphql-tools/utils": "npm:8.9.0" - dataloader: "npm:2.1.0" - tslib: "npm:^2.4.0" - value-or-promise: "npm:1.0.11" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/f41d05247c6d6218e874dfbb7ffc45bcdd957e00954dd6c8a6848fde76de727250b38a71904f973688c70cd1199a4538a4272f66deee6066acdb7442798d59c1 - languageName: node - linkType: hard - -"@graphql-tools/delegate@npm:^8.4.3": - version: 8.8.1 - resolution: "@graphql-tools/delegate@npm:8.8.1" - dependencies: - "@graphql-tools/batch-execute": "npm:8.5.1" - "@graphql-tools/schema": "npm:8.5.1" - "@graphql-tools/utils": "npm:8.9.0" - dataloader: "npm:2.1.0" - tslib: "npm:~2.4.0" - value-or-promise: "npm:1.0.11" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/2cd43a18f4f0ca4bccc52ad405b894933996b1269b676632651ca54e3e9f602615f453a235556dea1c9806ac8223079a1eae8f9d5dc624de7f2a8f822c3ceab4 - languageName: node - linkType: hard - -"@graphql-tools/merge@npm:8.3.1": - version: 8.3.1 - resolution: "@graphql-tools/merge@npm:8.3.1" - dependencies: - "@graphql-tools/utils": "npm:8.9.0" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/dce29916fa6bd134947f584080ab18908b23537ec8dff74d838bf6c7be34b3e14c527d4ffd18b8f91efe6bb967f170f7393a2383035ed952f88010b60536a106 - languageName: node - linkType: hard - -"@graphql-tools/merge@npm:^8.4.1": - version: 8.4.2 - resolution: "@graphql-tools/merge@npm:8.4.2" - dependencies: - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/2df55222b48e010e683572f456cf265aabae5748c59f7c1260c66dec9794b7a076d3706f04da969b77f0a32c7ccb4551fee30125931d3fe9c98a8806aae9a3f4 - languageName: node - linkType: hard - -"@graphql-tools/mock@npm:^8.1.2": - version: 8.7.20 - resolution: "@graphql-tools/mock@npm:8.7.20" - dependencies: - "@graphql-tools/schema": "npm:^9.0.18" - "@graphql-tools/utils": "npm:^9.2.1" - fast-json-stable-stringify: "npm:^2.1.0" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/e61a14be3fad46e6ff97c9ab884273bf92eb4eb4ad80ab2491fe84bbb80018c27167d366a66b567ff7b68ae31ea0aacf0197c3e23fc6a22f4fc8dd6cd0a40338 - languageName: node - linkType: hard - -"@graphql-tools/schema@npm:8.5.1, @graphql-tools/schema@npm:^8.0.0, @graphql-tools/schema@npm:^8.3.1": - version: 8.5.1 - resolution: "@graphql-tools/schema@npm:8.5.1" - dependencies: - "@graphql-tools/merge": "npm:8.3.1" - "@graphql-tools/utils": "npm:8.9.0" - tslib: "npm:^2.4.0" - value-or-promise: "npm:1.0.11" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/06000908fc5d3143f7f70eaee82874b87df4dfdd24316e88231e71e6f62f50df2e5a4b6a063b36e98f05caac09afa17861bbc5bf1c886b3f2155b96ea15c973b - languageName: node - linkType: hard - -"@graphql-tools/schema@npm:^9.0.18": - version: 9.0.19 - resolution: "@graphql-tools/schema@npm:9.0.19" - dependencies: - "@graphql-tools/merge": "npm:^8.4.1" - "@graphql-tools/utils": "npm:^9.2.1" - tslib: "npm:^2.4.0" - value-or-promise: "npm:^1.0.12" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/42fd8ca8d3c8d60b583077c201980518482ff0cd5ed0c1f14bd9b835a2689ad41d02cbd3478f7d7dea7aec1227f7639fd5deb5e6360852a2e542b96b44bfb7a4 - languageName: node - linkType: hard - -"@graphql-tools/utils@npm:8.9.0": - version: 8.9.0 - resolution: "@graphql-tools/utils@npm:8.9.0" - dependencies: - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/dd589d970fee9ce093a545c69d6306b61af0f38358361295af1274164a87db2985a51d05ca0e0dd08a4e709f0b5c7c201e69ab0b30480fe2fa0c7a7b8310da0a - languageName: node - linkType: hard - -"@graphql-tools/utils@npm:^9.2.1": - version: 9.2.1 - resolution: "@graphql-tools/utils@npm:9.2.1" - dependencies: - "@graphql-typed-document-node/core": "npm:^3.1.1" - tslib: "npm:^2.4.0" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/37a7bd7e14d28ff1bacc007dca84bc6cef2d7d7af9a547b5dbe52fcd134afddd6d4a7b2148cfbaff5ddba91a868453d597da77bd0457fb0be15928f916901606 - languageName: node - linkType: hard - -"@graphql-typed-document-node/core@npm:^3.1.1": - version: 3.2.0 - resolution: "@graphql-typed-document-node/core@npm:3.2.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/94e9d75c1f178bbae8d874f5a9361708a3350c8def7eaeb6920f2c820e82403b7d4f55b3735856d68e145e86c85cbfe2adc444fdc25519cd51f108697e99346c - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 - languageName: node - linkType: hard - -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: "npm:^5.1.2" - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: "npm:^7.0.1" - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: "npm:^8.1.0" - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e - languageName: node - linkType: hard - -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: "npm:^5.3.1" - find-up: "npm:^4.1.0" - get-package-type: "npm:^0.1.0" - js-yaml: "npm:^3.13.1" - resolve-from: "npm:^5.0.0" - checksum: 10c0/dd2a8b094887da5a1a2339543a4933d06db2e63cbbc2e288eb6431bd832065df0c099d091b6a67436e71b7d6bf85f01ce7c15f9253b4cbebcc3b9a496165ba42 - languageName: node - linkType: hard - -"@istanbuljs/nyc-config-typescript@npm:^1.0.2": - version: 1.0.2 - resolution: "@istanbuljs/nyc-config-typescript@npm:1.0.2" - dependencies: - "@istanbuljs/schema": "npm:^0.1.2" - peerDependencies: - nyc: ">=15" - checksum: 10c0/0a8ba7e46046e263cdb4d2a91c5e843de0d7b46a7cd613ca164e6d7bf120c43e9209922b9ab3b816331d3703da66f8986cbd90639c2c558ce649bbe15ecb029a - languageName: node - linkType: hard - -"@istanbuljs/schema@npm:^0.1.2": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a - languageName: node - linkType: hard - -"@josephg/resolvable@npm:^1.0.0": - version: 1.0.1 - resolution: "@josephg/resolvable@npm:1.0.1" - checksum: 10c0/94f4ff9170728b35b56bd942473ae2fed55b41a9ef6bd6a004219c59bd246afeee43214b825558eb6ba4047c38001548197cf669025443731e09c256e88519e5 - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" - dependencies: - "@jridgewell/set-array": "npm:^1.2.1" - "@jridgewell/sourcemap-codec": "npm:^1.4.10" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.2 - resolution: "@jridgewell/resolve-uri@npm:3.1.2" - checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.2.1": - version: 1.2.1 - resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: 10c0/0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5 - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": "npm:^3.0.3" - "@jridgewell/sourcemap-codec": "npm:^1.4.10" - checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": - version: 0.3.25 - resolution: "@jridgewell/trace-mapping@npm:0.3.25" - dependencies: - "@jridgewell/resolve-uri": "npm:^3.1.0" - "@jridgewell/sourcemap-codec": "npm:^1.4.14" - checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 - languageName: node - linkType: hard - -"@metamask/eth-sig-util@npm:^4.0.0": - version: 4.0.1 - resolution: "@metamask/eth-sig-util@npm:4.0.1" - dependencies: - ethereumjs-abi: "npm:^0.6.8" - ethereumjs-util: "npm:^6.2.1" - ethjs-util: "npm:^0.1.6" - tweetnacl: "npm:^1.0.3" - tweetnacl-util: "npm:^0.15.1" - checksum: 10c0/957fa16e8f0454ad45203a8416e77181853de1c9e33697f1a1582d46f18da1cca26c803a4e08bee7091a697609fc8916f399210fd5d3d2fccc34bfd0a58715f0 - languageName: node - linkType: hard - -"@noble/curves@npm:1.2.0": - version: 1.2.0 - resolution: "@noble/curves@npm:1.2.0" - dependencies: - "@noble/hashes": "npm:1.3.2" - checksum: 10c0/0bac7d1bbfb3c2286910b02598addd33243cb97c3f36f987ecc927a4be8d7d88e0fcb12b0f0ef8a044e7307d1844dd5c49bb724bfa0a79c8ec50ba60768c97f6 - languageName: node - linkType: hard - -"@noble/curves@npm:1.3.0, @noble/curves@npm:~1.3.0": - version: 1.3.0 - resolution: "@noble/curves@npm:1.3.0" - dependencies: - "@noble/hashes": "npm:1.3.3" - checksum: 10c0/704bf8fda8e1365a9bb9e9945bd06645ef4ce85aa2fac5594abe09f19889197518152319481b89a271e0ee011787bd2ee87202441500bca7ca587a2c3ac10b01 - languageName: node - linkType: hard - -"@noble/hashes@npm:1.2.0, @noble/hashes@npm:~1.2.0": - version: 1.2.0 - resolution: "@noble/hashes@npm:1.2.0" - checksum: 10c0/8bd3edb7bb6a9068f806a9a5a208cc2144e42940a21c049d8e9a0c23db08bef5cf1cfd844a7e35489b5ab52c6fa6299352075319e7f531e0996d459c38cfe26a - languageName: node - linkType: hard - -"@noble/hashes@npm:1.3.2": - version: 1.3.2 - resolution: "@noble/hashes@npm:1.3.2" - checksum: 10c0/2482cce3bce6a596626f94ca296e21378e7a5d4c09597cbc46e65ffacc3d64c8df73111f2265444e36a3168208628258bbbaccba2ef24f65f58b2417638a20e7 - languageName: node - linkType: hard - -"@noble/hashes@npm:1.3.3, @noble/hashes@npm:~1.3.2": - version: 1.3.3 - resolution: "@noble/hashes@npm:1.3.3" - checksum: 10c0/23c020b33da4172c988e44100e33cd9f8f6250b68b43c467d3551f82070ebd9716e0d9d2347427aa3774c85934a35fa9ee6f026fca2117e3fa12db7bedae7668 - languageName: node - linkType: hard - -"@noble/secp256k1@npm:1.7.1, @noble/secp256k1@npm:~1.7.0": - version: 1.7.1 - resolution: "@noble/secp256k1@npm:1.7.1" - checksum: 10c0/48091801d39daba75520012027d0ff0b1719338d96033890cfe0d287ad75af00d82769c0194a06e7e4fbd816ae3f204f4a59c9e26f0ad16b429f7e9b5403ccd5 - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": "npm:2.0.5" - run-parallel: "npm:^1.1.9" - checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": "npm:2.1.5" - fastq: "npm:^1.6.0" - checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 - languageName: node - linkType: hard - -"@nomicfoundation/edr-darwin-arm64@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-darwin-arm64@npm:0.3.3" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@nomicfoundation/edr-darwin-x64@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-darwin-x64@npm:0.3.3" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-arm64-gnu@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-linux-arm64-gnu@npm:0.3.3" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-arm64-musl@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-linux-arm64-musl@npm:0.3.3" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-x64-gnu@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-linux-x64-gnu@npm:0.3.3" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@nomicfoundation/edr-linux-x64-musl@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-linux-x64-musl@npm:0.3.3" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@nomicfoundation/edr-win32-arm64-msvc@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-win32-arm64-msvc@npm:0.3.3" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@nomicfoundation/edr-win32-ia32-msvc@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-win32-ia32-msvc@npm:0.3.3" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@nomicfoundation/edr-win32-x64-msvc@npm:0.3.3": - version: 0.3.3 - resolution: "@nomicfoundation/edr-win32-x64-msvc@npm:0.3.3" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@nomicfoundation/edr@npm:^0.3.1": - version: 0.3.3 - resolution: "@nomicfoundation/edr@npm:0.3.3" - dependencies: - "@nomicfoundation/edr-darwin-arm64": "npm:0.3.3" - "@nomicfoundation/edr-darwin-x64": "npm:0.3.3" - "@nomicfoundation/edr-linux-arm64-gnu": "npm:0.3.3" - "@nomicfoundation/edr-linux-arm64-musl": "npm:0.3.3" - "@nomicfoundation/edr-linux-x64-gnu": "npm:0.3.3" - "@nomicfoundation/edr-linux-x64-musl": "npm:0.3.3" - "@nomicfoundation/edr-win32-arm64-msvc": "npm:0.3.3" - "@nomicfoundation/edr-win32-ia32-msvc": "npm:0.3.3" - "@nomicfoundation/edr-win32-x64-msvc": "npm:0.3.3" - dependenciesMeta: - "@nomicfoundation/edr-darwin-arm64": - optional: true - "@nomicfoundation/edr-darwin-x64": - optional: true - "@nomicfoundation/edr-linux-arm64-gnu": - optional: true - "@nomicfoundation/edr-linux-arm64-musl": - optional: true - "@nomicfoundation/edr-linux-x64-gnu": - optional: true - "@nomicfoundation/edr-linux-x64-musl": - optional: true - "@nomicfoundation/edr-win32-arm64-msvc": - optional: true - "@nomicfoundation/edr-win32-ia32-msvc": - optional: true - "@nomicfoundation/edr-win32-x64-msvc": - optional: true - checksum: 10c0/6b172f0d1be87ac158f9da254c22a45c22712c9e2df1a826abba72f7ecdace90588bfdbed0bb55b256f6c9f18b22c57fed65f1b1dd147692ac6de30882033ab7 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-common@npm:4.0.4": - version: 4.0.4 - resolution: "@nomicfoundation/ethereumjs-common@npm:4.0.4" - dependencies: - "@nomicfoundation/ethereumjs-util": "npm:9.0.4" - checksum: 10c0/efaaebe41c2a3fe8b50bf12d9d134dc7611907f6eb2118f7822eaa375c54bc71bf6f6a3b2e22c754867f2cd28d619afd892b1eaa26cf1c886e0f793bda481070 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-rlp@npm:5.0.4": - version: 5.0.4 - resolution: "@nomicfoundation/ethereumjs-rlp@npm:5.0.4" - bin: - rlp: bin/rlp.cjs - checksum: 10c0/58e276c190f5f33e12ff4a2c7fe4c3c71cb139029eddd9b46488e23e168c422bc0b55368c0b7805ca8b09e9ea6b8298cd74c63f5c2ed4b6fb447635ed7a317f7 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-tx@npm:5.0.4": - version: 5.0.4 - resolution: "@nomicfoundation/ethereumjs-tx@npm:5.0.4" - dependencies: - "@nomicfoundation/ethereumjs-common": "npm:4.0.4" - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.4" - "@nomicfoundation/ethereumjs-util": "npm:9.0.4" - ethereum-cryptography: "npm:0.1.3" - peerDependencies: - c-kzg: ^2.1.2 - peerDependenciesMeta: - c-kzg: - optional: true - checksum: 10c0/1e4ba6d7d6aa8d44a807e3332e98e8fbea70c1aa91be3b39b581c4b498554ee380eec21442d737d2b646c722da306dd1179a5e37747b285b93690aab041d52a7 - languageName: node - linkType: hard - -"@nomicfoundation/ethereumjs-util@npm:9.0.4": - version: 9.0.4 - resolution: "@nomicfoundation/ethereumjs-util@npm:9.0.4" - dependencies: - "@nomicfoundation/ethereumjs-rlp": "npm:5.0.4" - ethereum-cryptography: "npm:0.1.3" - peerDependencies: - c-kzg: ^2.1.2 - peerDependenciesMeta: - c-kzg: - optional: true - checksum: 10c0/228e8cb018ce6b487a0eb65c585d692b56bb306a26df3f6f063cdf87feea6174b005b25f2dc4547b940f76d0d6c4bcaa8ffbbcce482091168cdf3c6fe2f8b5da - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-chai-matchers@npm:^2.0.6": - version: 2.0.6 - resolution: "@nomicfoundation/hardhat-chai-matchers@npm:2.0.6" - dependencies: - "@types/chai-as-promised": "npm:^7.1.3" - chai-as-promised: "npm:^7.1.1" - deep-eql: "npm:^4.0.1" - ordinal: "npm:^1.0.3" - peerDependencies: - "@nomicfoundation/hardhat-ethers": ^3.0.0 - chai: ^4.2.0 - ethers: ^6.1.0 - hardhat: ^2.9.4 - checksum: 10c0/0d65a0b0a552391ee3b20db9ffc9559138c02bc9c9cdd30106c9b5247d5a9e9b412480772faecab210a8cade0dfcddce3b04f5d3f3371e80085d6883a917dfe5 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-ethers@npm:^3.0.5": - version: 3.0.5 - resolution: "@nomicfoundation/hardhat-ethers@npm:3.0.5" - dependencies: - debug: "npm:^4.1.1" - lodash.isequal: "npm:^4.5.0" - peerDependencies: - ethers: ^6.1.0 - hardhat: ^2.0.0 - checksum: 10c0/8253d107f956fbbfcb55b758cfd05159dcc77289bc115418626c3be32efeaced82c7dbfcb9d67ef0d9dccb6851e8588edeb228f325982ac3c61d7f605bcef009 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-network-helpers@npm:^1.0.10": - version: 1.0.10 - resolution: "@nomicfoundation/hardhat-network-helpers@npm:1.0.10" - dependencies: - ethereumjs-util: "npm:^7.1.4" - peerDependencies: - hardhat: ^2.9.5 - checksum: 10c0/ff41875b2ece46ae33d144d83e8f43fbef18c7387d069a939cdbce1581cae83f415ca3477799e26dabe5e8faea7aadee4c4b4a90460f06b5b5e5aa02f9a2e4dd - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-toolbox@npm:^4.0.0": - version: 4.0.0 - resolution: "@nomicfoundation/hardhat-toolbox@npm:4.0.0" - peerDependencies: - "@nomicfoundation/hardhat-chai-matchers": ^2.0.0 - "@nomicfoundation/hardhat-ethers": ^3.0.0 - "@nomicfoundation/hardhat-network-helpers": ^1.0.0 - "@nomicfoundation/hardhat-verify": ^2.0.0 - "@typechain/ethers-v6": ^0.5.0 - "@typechain/hardhat": ^9.0.0 - "@types/chai": ^4.2.0 - "@types/mocha": ">=9.1.0" - "@types/node": ">=16.0.0" - chai: ^4.2.0 - ethers: ^6.4.0 - hardhat: ^2.11.0 - hardhat-gas-reporter: ^1.0.8 - solidity-coverage: ^0.8.1 - ts-node: ">=8.0.0" - typechain: ^8.3.0 - typescript: ">=4.5.0" - checksum: 10c0/9de2511cee509754afd4631f5f1497160bf4d3ecea741e9deeb22a6e662e16ce7ba37cffe836d30a958f08719c0c5906decc3c73df6a5d90c248b4654c8b15d1 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-verify@npm:^2.0.5": - version: 2.0.5 - resolution: "@nomicfoundation/hardhat-verify@npm:2.0.5" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@ethersproject/address": "npm:^5.0.2" - cbor: "npm:^8.1.0" - chalk: "npm:^2.4.2" - debug: "npm:^4.1.1" - lodash.clonedeep: "npm:^4.5.0" - semver: "npm:^6.3.0" - table: "npm:^6.8.0" - undici: "npm:^5.14.0" - peerDependencies: - hardhat: ^2.0.4 - checksum: 10c0/7e708444a41b15425187c3d1552d67d376b595e5f30bf019f395fa391602bc90f50ffb3cd2a4e869001fd6244bca04f606f3957b01fef0809eb991f7380f6822 - languageName: node - linkType: hard - -"@nomicfoundation/hardhat-web3-v4@npm:^1.0.0": - version: 1.0.0 - resolution: "@nomicfoundation/hardhat-web3-v4@npm:1.0.0" - peerDependencies: - hardhat: ^2.0.0 - web3: ^4.0.1 - checksum: 10c0/8e0ee25849d37c606c8a5b4f429bef308e82e28e364d1c2a4e07e4d3b0e136d7d3e42f844a4b7775765848c30fd0a17df0aa7b10056bd42dea6487176a05d1d8 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.1" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.1" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.1" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.1" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.1" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.1": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@nomicfoundation/solidity-analyzer@npm:^0.1.0": - version: 0.1.1 - resolution: "@nomicfoundation/solidity-analyzer@npm:0.1.1" - dependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-darwin-x64": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-freebsd-x64": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "npm:0.1.1" - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "npm:0.1.1" - dependenciesMeta: - "@nomicfoundation/solidity-analyzer-darwin-arm64": - optional: true - "@nomicfoundation/solidity-analyzer-darwin-x64": - optional: true - "@nomicfoundation/solidity-analyzer-freebsd-x64": - optional: true - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": - optional: true - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": - optional: true - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": - optional: true - "@nomicfoundation/solidity-analyzer-linux-x64-musl": - optional: true - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": - optional: true - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": - optional: true - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": - optional: true - checksum: 10c0/1feee48a9506125d7736e3d1200d997cd07777f52ee6c71f7fad7d50b6705f7d3e028894968b449ca6e950991e726e9464ee5dc0c52d1066d127632be29667b4 - languageName: node - linkType: hard - -"@nomiclabs/hardhat-truffle5@npm:^2.0.7": - version: 2.0.7 - resolution: "@nomiclabs/hardhat-truffle5@npm:2.0.7" - dependencies: - "@nomiclabs/truffle-contract": "npm:^4.2.23" - "@types/chai": "npm:^4.2.0" - chai: "npm:^4.2.0" - ethereumjs-util: "npm:^7.1.4" - fs-extra: "npm:^7.0.1" - peerDependencies: - "@nomiclabs/hardhat-web3": ^2.0.0 - hardhat: ^2.6.4 - web3: ^1.0.0-beta.36 - checksum: 10c0/0ebb298314496b2f64fd117d14b01241db62be2269520b4a28eeb17958e9c1e25fb9921c0fa5db367d47526078fb45ff398f6b5349bf7e5d636853d8a1b210ae - languageName: node - linkType: hard - -"@nomiclabs/hardhat-web3@npm:^2.0.0": - version: 2.0.0 - resolution: "@nomiclabs/hardhat-web3@npm:2.0.0" - dependencies: - "@types/bignumber.js": "npm:^5.0.0" - peerDependencies: - hardhat: ^2.0.0 - web3: ^1.0.0-beta.36 - checksum: 10c0/4da5de2c065a52633607e9ed95521d2bd11839f3405c2265aad2ccbf3baa7dd282f96015ba23f651ee643e27a81ab7f94f7ed9e0eb585c2cad49278c991ca35a - languageName: node - linkType: hard - -"@nomiclabs/truffle-contract@npm:^4.2.23": - version: 4.5.10 - resolution: "@nomiclabs/truffle-contract@npm:4.5.10" - dependencies: - "@ensdomains/ensjs": "npm:^2.0.1" - "@truffle/blockchain-utils": "npm:^0.1.3" - "@truffle/contract-schema": "npm:^3.4.7" - "@truffle/debug-utils": "npm:^6.0.22" - "@truffle/error": "npm:^0.1.0" - "@truffle/interface-adapter": "npm:^0.5.16" - bignumber.js: "npm:^7.2.1" - ethereum-ens: "npm:^0.8.0" - ethers: "npm:^4.0.0-beta.1" - source-map-support: "npm:^0.5.19" - peerDependencies: - web3: ^1.2.1 - web3-core-helpers: ^1.2.1 - web3-core-promievent: ^1.2.1 - web3-eth-abi: ^1.2.1 - web3-utils: ^1.2.1 - checksum: 10c0/83b39a80b35bd5b421d7ae261f6d4bed3cb0c19d332f3105fa0527c1d9b93ca9a2ef3d58bdee84ca38e70c6caefffbc86d820bcb296f15320de190ac5dc03001 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" - dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.1" - lru-cache: "npm:^10.0.1" - socks-proxy-agent: "npm:^8.0.3" - checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.0": - version: 3.1.0 - resolution: "@npmcli/fs@npm:3.1.0" - dependencies: - semver: "npm:^7.3.5" - checksum: 10c0/162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e - languageName: node - linkType: hard - -"@openzeppelin/contracts@npm:^5.0.2": - version: 5.0.2 - resolution: "@openzeppelin/contracts@npm:5.0.2" - checksum: 10c0/d042661db7bb2f3a4b9ef30bba332e86ac20907d171f2ebfccdc9255cc69b62786fead8d6904b8148a8f26946bc7c15eead91b95f75db0c193a99d52e528663e - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd - languageName: node - linkType: hard - -"@pkgr/core@npm:^0.1.0": - version: 0.1.1 - resolution: "@pkgr/core@npm:0.1.1" - checksum: 10c0/3f7536bc7f57320ab2cf96f8973664bef624710c403357429fbf680a5c3b4843c1dbd389bb43daa6b1f6f1f007bb082f5abcb76bb2b5dc9f421647743b71d3d8 - languageName: node - linkType: hard - -"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": - version: 1.1.2 - resolution: "@protobufjs/aspromise@npm:1.1.2" - checksum: 10c0/a83343a468ff5b5ec6bff36fd788a64c839e48a07ff9f4f813564f58caf44d011cd6504ed2147bf34835bd7a7dd2107052af755961c6b098fd8902b4f6500d0f - languageName: node - linkType: hard - -"@protobufjs/base64@npm:^1.1.2": - version: 1.1.2 - resolution: "@protobufjs/base64@npm:1.1.2" - checksum: 10c0/eec925e681081af190b8ee231f9bad3101e189abbc182ff279da6b531e7dbd2a56f1f306f37a80b1be9e00aa2d271690d08dcc5f326f71c9eed8546675c8caf6 - languageName: node - linkType: hard - -"@protobufjs/codegen@npm:^2.0.4": - version: 2.0.4 - resolution: "@protobufjs/codegen@npm:2.0.4" - checksum: 10c0/26ae337c5659e41f091606d16465bbcc1df1f37cc1ed462438b1f67be0c1e28dfb2ca9f294f39100c52161aef82edf758c95d6d75650a1ddf31f7ddee1440b43 - languageName: node - linkType: hard - -"@protobufjs/eventemitter@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/eventemitter@npm:1.1.0" - checksum: 10c0/1eb0a75180e5206d1033e4138212a8c7089a3d418c6dfa5a6ce42e593a4ae2e5892c4ef7421f38092badba4040ea6a45f0928869989411001d8c1018ea9a6e70 - languageName: node - linkType: hard - -"@protobufjs/fetch@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/fetch@npm:1.1.0" - dependencies: - "@protobufjs/aspromise": "npm:^1.1.1" - "@protobufjs/inquire": "npm:^1.1.0" - checksum: 10c0/cda6a3dc2d50a182c5865b160f72077aac197046600091dbb005dd0a66db9cce3c5eaed6d470ac8ed49d7bcbeef6ee5f0bc288db5ff9a70cbd003e5909065233 - languageName: node - linkType: hard - -"@protobufjs/float@npm:^1.0.2": - version: 1.0.2 - resolution: "@protobufjs/float@npm:1.0.2" - checksum: 10c0/18f2bdede76ffcf0170708af15c9c9db6259b771e6b84c51b06df34a9c339dbbeec267d14ce0bddd20acc142b1d980d983d31434398df7f98eb0c94a0eb79069 - languageName: node - linkType: hard - -"@protobufjs/inquire@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/inquire@npm:1.1.0" - checksum: 10c0/64372482efcba1fb4d166a2664a6395fa978b557803857c9c03500e0ac1013eb4b1aacc9ed851dd5fc22f81583670b4f4431bae186f3373fedcfde863ef5921a - languageName: node - linkType: hard - -"@protobufjs/path@npm:^1.1.2": - version: 1.1.2 - resolution: "@protobufjs/path@npm:1.1.2" - checksum: 10c0/cece0a938e7f5dfd2fa03f8c14f2f1cf8b0d6e13ac7326ff4c96ea311effd5fb7ae0bba754fbf505312af2e38500250c90e68506b97c02360a43793d88a0d8b4 - languageName: node - linkType: hard - -"@protobufjs/pool@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/pool@npm:1.1.0" - checksum: 10c0/eda2718b7f222ac6e6ad36f758a92ef90d26526026a19f4f17f668f45e0306a5bd734def3f48f51f8134ae0978b6262a5c517c08b115a551756d1a3aadfcf038 - languageName: node - linkType: hard - -"@protobufjs/utf8@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/utf8@npm:1.1.0" - checksum: 10c0/a3fe31fe3fa29aa3349e2e04ee13dc170cc6af7c23d92ad49e3eeaf79b9766264544d3da824dba93b7855bd6a2982fb40032ef40693da98a136d835752beb487 - languageName: node - linkType: hard - -"@redux-saga/core@npm:^1.0.0": - version: 1.3.0 - resolution: "@redux-saga/core@npm:1.3.0" - dependencies: - "@babel/runtime": "npm:^7.6.3" - "@redux-saga/deferred": "npm:^1.2.1" - "@redux-saga/delay-p": "npm:^1.2.1" - "@redux-saga/is": "npm:^1.1.3" - "@redux-saga/symbols": "npm:^1.1.3" - "@redux-saga/types": "npm:^1.2.1" - typescript-tuple: "npm:^2.2.1" - checksum: 10c0/a2e5e4f5df3db6d7fda41c804d5dac41f8bd4dfe55980671394c2dd1d65719b4365d561734fcb8d08844c5ab0fb59d44400da31565ca7ddd60aeec3a28281aef - languageName: node - linkType: hard - -"@redux-saga/deferred@npm:^1.2.1": - version: 1.2.1 - resolution: "@redux-saga/deferred@npm:1.2.1" - checksum: 10c0/7042a36e1a799e9602395eb90fb1fa7521c0043743b13cbb9c7a13893be732ba35c0415524b99e420f5e130c103f9e565e5854e49e4d64d09a0f4bb835ba3e72 - languageName: node - linkType: hard - -"@redux-saga/delay-p@npm:^1.2.1": - version: 1.2.1 - resolution: "@redux-saga/delay-p@npm:1.2.1" - dependencies: - "@redux-saga/symbols": "npm:^1.1.3" - checksum: 10c0/27566d6b95779d046aef47225d06d8b00a9fe934fa1b713b518359df065b9f7e9512ca5f1ab7a55314664de6a3d89d69490d64e6fda229884c3678f199581f37 - languageName: node - linkType: hard - -"@redux-saga/is@npm:^1.1.3": - version: 1.1.3 - resolution: "@redux-saga/is@npm:1.1.3" - dependencies: - "@redux-saga/symbols": "npm:^1.1.3" - "@redux-saga/types": "npm:^1.2.1" - checksum: 10c0/f516755b89b4bc7a69f18765fd0be29fbe92c91b5d783c4a9baf81c8fca404c5743f2d391d90527b7d26153170d7e992c27a578f5bfb5bb5cc04c20864d9fdbb - languageName: node - linkType: hard - -"@redux-saga/symbols@npm:^1.1.3": - version: 1.1.3 - resolution: "@redux-saga/symbols@npm:1.1.3" - checksum: 10c0/71141bf8fe74420d0929f3c08e8ebfb54bda47ef4177dc46045c73de2f4b5762f176e80c573bce5ac77bc3cb39aa872e943ecbd80b9b317a571c93986c8b9f22 - languageName: node - linkType: hard - -"@redux-saga/types@npm:^1.2.1": - version: 1.2.1 - resolution: "@redux-saga/types@npm:1.2.1" - checksum: 10c0/38dc478c5e20dc52511ee122d0011fc71d26266a300ed1b66ec7863c8075aa27cc1ef1ba79dcc4aac0682912e3257ff4cddc52b9be55ee873a4e8f1a1bc7ee7c - languageName: node - linkType: hard - -"@scure/base@npm:~1.1.0, @scure/base@npm:~1.1.4": - version: 1.1.6 - resolution: "@scure/base@npm:1.1.6" - checksum: 10c0/237a46a1f45391fc57719154f14295db936a0b1562ea3e182dd42d7aca082dbb7062a28d6c49af16a7e478b12dae8a0fe678d921ea5056bcc30238d29eb05c55 - languageName: node - linkType: hard - -"@scure/bip32@npm:1.1.5": - version: 1.1.5 - resolution: "@scure/bip32@npm:1.1.5" - dependencies: - "@noble/hashes": "npm:~1.2.0" - "@noble/secp256k1": "npm:~1.7.0" - "@scure/base": "npm:~1.1.0" - checksum: 10c0/d0521f6de28278e06f2d517307b4de6c9bcb3dbdf9a5844bb57a6e4916a180e4136129ccab295c27bd1196ef77757608255afcd7cf927e03baec4479b3df74fc - languageName: node - linkType: hard - -"@scure/bip32@npm:1.3.3": - version: 1.3.3 - resolution: "@scure/bip32@npm:1.3.3" - dependencies: - "@noble/curves": "npm:~1.3.0" - "@noble/hashes": "npm:~1.3.2" - "@scure/base": "npm:~1.1.4" - checksum: 10c0/48fa04ebf0e3b56e3d086f029ae207ea753d8d8a1b3564f3c80fafea63dc3ee4edbd21e44eadb79bd4de4afffb075cbbbcb258fd5030a9680065cb524424eb83 - languageName: node - linkType: hard - -"@scure/bip39@npm:1.1.1": - version: 1.1.1 - resolution: "@scure/bip39@npm:1.1.1" - dependencies: - "@noble/hashes": "npm:~1.2.0" - "@scure/base": "npm:~1.1.0" - checksum: 10c0/821dc9d5be8362a32277390526db064860c2216a079ba51d63def9289c2b290599e93681ebbeebf0e93540799eec35784c1dfcf5167d0b280ef148e5023ce01b - languageName: node - linkType: hard - -"@scure/bip39@npm:1.2.2": - version: 1.2.2 - resolution: "@scure/bip39@npm:1.2.2" - dependencies: - "@noble/hashes": "npm:~1.3.2" - "@scure/base": "npm:~1.1.4" - checksum: 10c0/be38bc1dc10b9a763d8b02d91dc651a4f565c822486df6cb1d3cc84896c1aab3ef6acbf7b3dc7e4a981bc9366086a4d72020aa21e11a692734a750de049c887c - languageName: node - linkType: hard - -"@sentry/core@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/core@npm:5.30.0" - dependencies: - "@sentry/hub": "npm:5.30.0" - "@sentry/minimal": "npm:5.30.0" - "@sentry/types": "npm:5.30.0" - "@sentry/utils": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 10c0/6407b9c2a6a56f90c198f5714b3257df24d89d1b4ca6726bd44760d0adabc25798b69fef2c88ccea461c7e79e3c78861aaebfd51fd3cb892aee656c3f7e11801 - languageName: node - linkType: hard - -"@sentry/hub@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/hub@npm:5.30.0" - dependencies: - "@sentry/types": "npm:5.30.0" - "@sentry/utils": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 10c0/386c91d06aa44be0465fc11330d748a113e464d41cd562a9e1d222a682cbcb14e697a3e640953e7a0239997ad8a02b223a0df3d9e1d8816cb823fd3613be3e2f - languageName: node - linkType: hard - -"@sentry/minimal@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/minimal@npm:5.30.0" - dependencies: - "@sentry/hub": "npm:5.30.0" - "@sentry/types": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 10c0/34ec05503de46d01f98c94701475d5d89cc044892c86ccce30e01f62f28344eb23b718e7cf573815e46f30a4ac9da3129bed9b3d20c822938acfb40cbe72437b - languageName: node - linkType: hard - -"@sentry/node@npm:^5.18.1": - version: 5.30.0 - resolution: "@sentry/node@npm:5.30.0" - dependencies: - "@sentry/core": "npm:5.30.0" - "@sentry/hub": "npm:5.30.0" - "@sentry/tracing": "npm:5.30.0" - "@sentry/types": "npm:5.30.0" - "@sentry/utils": "npm:5.30.0" - cookie: "npm:^0.4.1" - https-proxy-agent: "npm:^5.0.0" - lru_map: "npm:^0.3.3" - tslib: "npm:^1.9.3" - checksum: 10c0/c50db7c81ace57cac17692245c2ab3c84a6149183f81d5f2dfd157eaa7b66eb4d6a727dd13a754bb129c96711389eec2944cd94126722ee1d8b11f2b627b830d - languageName: node - linkType: hard - -"@sentry/tracing@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/tracing@npm:5.30.0" - dependencies: - "@sentry/hub": "npm:5.30.0" - "@sentry/minimal": "npm:5.30.0" - "@sentry/types": "npm:5.30.0" - "@sentry/utils": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 10c0/46830265bc54a3203d7d9f0d8d9f2f7d9d2c6a977e07ccdae317fa3ea29c388b904b3bef28f7a0ba9c074845d67feab63c6d3c0ddce9aeb275b6c966253fb415 - languageName: node - linkType: hard - -"@sentry/types@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/types@npm:5.30.0" - checksum: 10c0/99c6e55c0a82c8ca95be2e9dbb35f581b29e4ff7af74b23bc62b690de4e35febfa15868184a2303480ef86babd4fea5273cf3b5ddf4a27685b841a72f13a0c88 - languageName: node - linkType: hard - -"@sentry/utils@npm:5.30.0": - version: 5.30.0 - resolution: "@sentry/utils@npm:5.30.0" - dependencies: - "@sentry/types": "npm:5.30.0" - tslib: "npm:^1.9.3" - checksum: 10c0/ca8eebfea7ac7db6d16f6c0b8a66ac62587df12a79ce9d0d8393f4d69880bb8d40d438f9810f7fb107a9880fe0d68bbf797b89cbafd113e89a0829eb06b205f8 - languageName: node - linkType: hard - -"@sindresorhus/is@npm:^4.0.0, @sindresorhus/is@npm:^4.6.0": - version: 4.6.0 - resolution: "@sindresorhus/is@npm:4.6.0" - checksum: 10c0/33b6fb1d0834ec8dd7689ddc0e2781c2bfd8b9c4e4bacbcb14111e0ae00621f2c264b8a7d36541799d74888b5dccdf422a891a5cb5a709ace26325eedc81e22e - languageName: node - linkType: hard - -"@solidity-parser/parser@npm:^0.14.0": - version: 0.14.5 - resolution: "@solidity-parser/parser@npm:0.14.5" - dependencies: - antlr4ts: "npm:^0.5.0-alpha.4" - checksum: 10c0/d5c689d8925a18e1ceb2f6449a8263915b1676117856109b7793eda8f7dafc975b6ed0d0d73fc08257903cac383484e4c8f8cf47b069621e81ba368c4ea4cf6a - languageName: node - linkType: hard - -"@solidity-parser/parser@npm:^0.18.0": - version: 0.18.0 - resolution: "@solidity-parser/parser@npm:0.18.0" - checksum: 10c0/c54b4c9ba10e1fd1cd45894040135a39b9bc527f0ac40bec732d8628b0c0c7cb7ec2b7e816b408d613ab1d71c04f9555111ccc83b6dbaed2e39ff4ef7d000e25 - languageName: node - linkType: hard - -"@szmarczak/http-timer@npm:^4.0.5": - version: 4.0.6 - resolution: "@szmarczak/http-timer@npm:4.0.6" - dependencies: - defer-to-connect: "npm:^2.0.0" - checksum: 10c0/73946918c025339db68b09abd91fa3001e87fc749c619d2e9c2003a663039d4c3cb89836c98a96598b3d47dec2481284ba85355392644911f5ecd2336536697f - languageName: node - linkType: hard - -"@szmarczak/http-timer@npm:^5.0.1": - version: 5.0.1 - resolution: "@szmarczak/http-timer@npm:5.0.1" - dependencies: - defer-to-connect: "npm:^2.0.1" - checksum: 10c0/4629d2fbb2ea67c2e9dc03af235c0991c79ebdddcbc19aed5d5732fb29ce01c13331e9b1a491584b9069bd6ecde6581dcbf871f11b7eefdebbab34de6cf2197e - languageName: node - linkType: hard - -"@truffle/abi-utils@npm:^1.0.3": - version: 1.0.3 - resolution: "@truffle/abi-utils@npm:1.0.3" - dependencies: - change-case: "npm:3.0.2" - fast-check: "npm:3.1.1" - web3-utils: "npm:1.10.0" - checksum: 10c0/d5db570d1591262add267524d751024b0832e0214c69f507054f5a4182e65a4ef7703322031a4d8d17fbb494ecd70ba499f13b70df819ac3266e7d3f2e10437f - languageName: node - linkType: hard - -"@truffle/blockchain-utils@npm:^0.1.3": - version: 0.1.9 - resolution: "@truffle/blockchain-utils@npm:0.1.9" - checksum: 10c0/af3db21555349c4c66842f0fd6447a1378d6bf792dd63343b58858b26e61b06af32c5c9ece23cc517e397361dbcff7fe369460d6569085c8329d68e181f69ff7 - languageName: node - linkType: hard - -"@truffle/code-utils@npm:^3.0.4": - version: 3.0.4 - resolution: "@truffle/code-utils@npm:3.0.4" - dependencies: - cbor: "npm:^5.2.0" - checksum: 10c0/fb56195655e5ff270f10bbd81388d527d6ebf1e2798495889d6cfa458f0c2f389732f036aea45971751e8ea9c41f48bef33ded20b38af410fb102615e98deb6c - languageName: node - linkType: hard - -"@truffle/codec@npm:^0.17.3": - version: 0.17.3 - resolution: "@truffle/codec@npm:0.17.3" - dependencies: - "@truffle/abi-utils": "npm:^1.0.3" - "@truffle/compile-common": "npm:^0.9.8" - big.js: "npm:^6.0.3" - bn.js: "npm:^5.1.3" - cbor: "npm:^5.2.0" - debug: "npm:^4.3.1" - lodash: "npm:^4.17.21" - semver: "npm:^7.5.4" - utf8: "npm:^3.0.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/2461738d7d735184c52accadc84c99e07f4281e8dd7a4813242410dc69c6d632b58aee24f9c1145c68daedc799d66b1ead76c2f5824cb305f632fd606fc79e8a - languageName: node - linkType: hard - -"@truffle/compile-common@npm:^0.9.8": - version: 0.9.8 - resolution: "@truffle/compile-common@npm:0.9.8" - dependencies: - "@truffle/error": "npm:^0.2.2" - colors: "npm:1.4.0" - checksum: 10c0/42e86acd2695abb2c9296078baa1ea08f7faa2a11a5495e77b77e4d6610b7079c2d0e73a322523d87edcf61236eb322866023d72fa5f3e4e562413aaf3eb2801 - languageName: node - linkType: hard - -"@truffle/config@npm:^1.3.61": - version: 1.3.61 - resolution: "@truffle/config@npm:1.3.61" - dependencies: - "@truffle/error": "npm:^0.2.2" - "@truffle/events": "npm:^0.1.25" - "@truffle/provider": "npm:^0.3.13" - conf: "npm:^10.1.2" - debug: "npm:^4.3.1" - find-up: "npm:^2.1.0" - lodash: "npm:^4.17.21" - original-require: "npm:^1.0.1" - checksum: 10c0/c552e43607e29a848b9e36b742113a020a1a8f79893e8eac2280697e8e7aacd800c565e35dac9bfa02df1e60d2e05a169c151eb83f4d78eee1de7b8ca41ca86f - languageName: node - linkType: hard - -"@truffle/contract-schema@npm:^3.4.7": - version: 3.4.16 - resolution: "@truffle/contract-schema@npm:3.4.16" - dependencies: - ajv: "npm:^6.10.0" - debug: "npm:^4.3.1" - checksum: 10c0/f6c57310ba923cd1846e7e3e93d9fee5c8d318a9fdd23d839cc21050eebcee4253821273b21cc55aa6414a4ecc01ed0a3fb12fa7ec074e2dc5bc7c3ba3d8a523 - languageName: node - linkType: hard - -"@truffle/dashboard-message-bus-client@npm:^0.1.12": - version: 0.1.12 - resolution: "@truffle/dashboard-message-bus-client@npm:0.1.12" - dependencies: - "@truffle/dashboard-message-bus-common": "npm:^0.1.7" - "@truffle/promise-tracker": "npm:^0.1.7" - axios: "npm:1.5.0" - debug: "npm:^4.3.1" - delay: "npm:^5.0.0" - isomorphic-ws: "npm:^4.0.1" - node-abort-controller: "npm:^3.0.1" - tiny-typed-emitter: "npm:^2.1.0" - ws: "npm:^7.2.0" - checksum: 10c0/b295a3de686b22715e13f953d684025cace8b2cb689868d5250b5ac63f5a34bd435fdb12e7534b11f82ad23f67a2b8bdd93b3018759e3a09c8600591cbe8d670 - languageName: node - linkType: hard - -"@truffle/dashboard-message-bus-common@npm:^0.1.7": - version: 0.1.7 - resolution: "@truffle/dashboard-message-bus-common@npm:0.1.7" - checksum: 10c0/44a065bfea93a789189f6dc71e59d964d8467c58cd1e0201d3413dddd87a05c3b02518a42d20651e045eb7d45955c25d6ccc4d47ade475a785a229704369a691 - languageName: node - linkType: hard - -"@truffle/db-loader@npm:^0.2.36": - version: 0.2.36 - resolution: "@truffle/db-loader@npm:0.2.36" - dependencies: - "@truffle/db": "npm:^2.0.36" - dependenciesMeta: - "@truffle/db": - optional: true - checksum: 10c0/cace5ba451bdacf134e8d55c398f72940775590b1cd53d0461d987942c21878f991291ea3b9c1a45ac69ac48d77397017374d5bf28f32c8c40793cec08509098 - languageName: node - linkType: hard - -"@truffle/db@npm:^2.0.36": - version: 2.0.36 - resolution: "@truffle/db@npm:2.0.36" - dependencies: - "@graphql-tools/delegate": "npm:^8.4.3" - "@graphql-tools/schema": "npm:^8.3.1" - "@truffle/abi-utils": "npm:^1.0.3" - "@truffle/code-utils": "npm:^3.0.4" - "@truffle/config": "npm:^1.3.61" - abstract-leveldown: "npm:^7.2.0" - apollo-server: "npm:^3.11.0" - debug: "npm:^4.3.1" - fs-extra: "npm:^9.1.0" - graphql: "npm:^15.3.0" - graphql-tag: "npm:^2.12.6" - json-stable-stringify: "npm:^1.0.1" - pascal-case: "npm:^2.0.1" - pluralize: "npm:^8.0.0" - pouchdb: "npm:7.3.0" - pouchdb-adapter-memory: "npm:^7.1.1" - pouchdb-debug: "npm:^7.1.1" - pouchdb-find: "npm:^7.0.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/8aa573fdf31d3abb207de953f42dbe19927a4193a26692d90720fafc2327176f6b16a242a06858e61c2967eb7da239556b32d8ae9b2d7c6fbd4c7b6fb629a323 - languageName: node - linkType: hard - -"@truffle/debug-utils@npm:^6.0.22": - version: 6.0.57 - resolution: "@truffle/debug-utils@npm:6.0.57" - dependencies: - "@truffle/codec": "npm:^0.17.3" - "@trufflesuite/chromafi": "npm:^3.0.0" - bn.js: "npm:^5.1.3" - chalk: "npm:^2.4.2" - debug: "npm:^4.3.1" - highlightjs-solidity: "npm:^2.0.6" - checksum: 10c0/fb6e44e03eb7f4ed0e61ccff5ffb1be653477ef6cfe65c0af2d278cb70251167cbf59bf3397447a4c1100dca628a8bc737f1bf9226f210d582e1f715b4e03116 - languageName: node - linkType: hard - -"@truffle/debugger@npm:^12.1.5": - version: 12.1.5 - resolution: "@truffle/debugger@npm:12.1.5" - dependencies: - "@ensdomains/ensjs": "npm:^2.1.0" - "@truffle/abi-utils": "npm:^1.0.3" - "@truffle/codec": "npm:^0.17.3" - "@truffle/source-map-utils": "npm:^1.3.119" - bn.js: "npm:^5.1.3" - debug: "npm:^4.3.1" - json-pointer: "npm:^0.6.1" - json-stable-stringify: "npm:^1.0.1" - lodash: "npm:^4.17.21" - redux: "npm:^3.7.2" - redux-saga: "npm:1.0.0" - reselect-tree: "npm:^1.3.7" - semver: "npm:^7.5.4" - web3: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - checksum: 10c0/2cf71ee307bb851c5b0ce0900852dcc139a7e501f6c1a93838d9082c0b392d002ea33726a7f3d7f2ece107ab1773a560345d7b3e01559402816620a915f51cb0 - languageName: node - linkType: hard - -"@truffle/error@npm:^0.1.0": - version: 0.1.1 - resolution: "@truffle/error@npm:0.1.1" - checksum: 10c0/9f23c5d704ca9ab4e3ae25138c47053121b1e25d0d9cf080ca4a1d1240fc87fe7d3198189886be9301d0cdeaa7aeddc7a06e859c38db4be09fc8c57164bf6993 - languageName: node - linkType: hard - -"@truffle/error@npm:^0.2.2": - version: 0.2.2 - resolution: "@truffle/error@npm:0.2.2" - checksum: 10c0/1e95092c96d4b3530b8610d79af7a69a0c77cbc1ce643922546d04dd011aae2dc9076e908e35986c243af533defd5c934a0a3eb4ede349297334d9645e5efcdd - languageName: node - linkType: hard - -"@truffle/events@npm:^0.1.25": - version: 0.1.25 - resolution: "@truffle/events@npm:0.1.25" - dependencies: - "@truffle/dashboard-message-bus-client": "npm:^0.1.12" - "@truffle/spinners": "npm:^0.2.5" - debug: "npm:^4.3.1" - emittery: "npm:^0.4.1" - web3-utils: "npm:1.10.0" - checksum: 10c0/465a9289bcb35805770557f64e1131ac540ff91ece18c4aacf9a105b381a05c26a8f976aa14beb11628ca21be0546821f74ec89623969e3dfeac7f0b003503d3 - languageName: node - linkType: hard - -"@truffle/interface-adapter@npm:^0.5.16, @truffle/interface-adapter@npm:^0.5.37": - version: 0.5.37 - resolution: "@truffle/interface-adapter@npm:0.5.37" - dependencies: - bn.js: "npm:^5.1.3" - ethers: "npm:^4.0.32" - web3: "npm:1.10.0" - checksum: 10c0/b9aea09b8baea150abf793ca91db0e5f9d8f55b77187a433e14c7521c672627eb54993543f4ae6127c0e2b472501514d3c1c637b7c8dc2774da8cd4dee81450b - languageName: node - linkType: hard - -"@truffle/promise-tracker@npm:^0.1.7": - version: 0.1.7 - resolution: "@truffle/promise-tracker@npm:0.1.7" - checksum: 10c0/8180da8ea81cc6b30ea604340cb91fdfdc614514afbcff910b2b03481e71b3c741ba2d03731d6b8b66c00684fd5ac566a0d9edbf152a59eec8b07667826f018f - languageName: node - linkType: hard - -"@truffle/provider@npm:^0.3.13": - version: 0.3.13 - resolution: "@truffle/provider@npm:0.3.13" - dependencies: - "@truffle/error": "npm:^0.2.2" - "@truffle/interface-adapter": "npm:^0.5.37" - debug: "npm:^4.3.1" - web3: "npm:1.10.0" - checksum: 10c0/075beb8a3cdf09962a9cf0981179b455fed3af14058a41319314a41535e4742174a8ca36023e1b08766b5e53090a2563d15d099acb3a48d678a3f8b658951648 - languageName: node - linkType: hard - -"@truffle/source-map-utils@npm:^1.3.119": - version: 1.3.119 - resolution: "@truffle/source-map-utils@npm:1.3.119" - dependencies: - "@truffle/code-utils": "npm:^3.0.4" - "@truffle/codec": "npm:^0.17.3" - debug: "npm:^4.3.1" - json-pointer: "npm:^0.6.1" - node-interval-tree: "npm:^1.3.3" - web3-utils: "npm:1.10.0" - checksum: 10c0/7221329ead689591e975da4393b3e614dd9d6679c8f1ed60b1a493c5baabd32b221dfb1abf05a17cc1738369cd4ba59c0f3f059f192a250bce68407328b0d939 - languageName: node - linkType: hard - -"@truffle/spinners@npm:^0.2.5": - version: 0.2.5 - resolution: "@truffle/spinners@npm:0.2.5" - dependencies: - "@trufflesuite/spinnies": "npm:^0.1.1" - checksum: 10c0/5acae7d0c94c5f56ed9a9cf664a34f0a1acdfb71a6e52877d7ff80d94f895d2c89853881901214cd86d6cd5395067eccdf00a25e81541a18073628fd70ee3758 - languageName: node - linkType: hard - -"@trufflesuite/bigint-buffer@npm:1.1.10": - version: 1.1.10 - resolution: "@trufflesuite/bigint-buffer@npm:1.1.10" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:4.4.0" - checksum: 10c0/5761201f32d05f1513f6591c38026ce00ff87462e26a2640e458be23fb57fa83b5fddef433220253ee3f98d0010959b7720db0a094d048d1c825978fd7a96938 - languageName: node - linkType: hard - -"@trufflesuite/chromafi@npm:^3.0.0": - version: 3.0.0 - resolution: "@trufflesuite/chromafi@npm:3.0.0" - dependencies: - camelcase: "npm:^4.1.0" - chalk: "npm:^2.3.2" - cheerio: "npm:^1.0.0-rc.2" - detect-indent: "npm:^5.0.0" - highlight.js: "npm:^10.4.1" - lodash.merge: "npm:^4.6.2" - strip-ansi: "npm:^4.0.0" - strip-indent: "npm:^2.0.0" - checksum: 10c0/2d604e8e97315036ac778acbefff73c3eb9d1cd9883f7049607be25595b6bf22494ece1d60634e763026d06625eae2e8f52f0c32f71866c25c6eab19ea79c41f - languageName: node - linkType: hard - -"@trufflesuite/spinnies@npm:^0.1.1": - version: 0.1.1 - resolution: "@trufflesuite/spinnies@npm:0.1.1" - dependencies: - chalk: "npm:^4.1.2" - cli-cursor: "npm:^3.1.0" - strip-ansi: "npm:^6.0.0" - checksum: 10c0/a0529fa0db645f15353f4dd4ce2ff402cc5a163b5a41b5e094430494f4c05aa191bdc85b21e4062fa47bd24661d1a665af8b4f29d2d453ad08ed55fc197abcdb - languageName: node - linkType: hard - -"@trufflesuite/uws-js-unofficial@npm:20.30.0-unofficial.0": - version: 20.30.0-unofficial.0 - resolution: "@trufflesuite/uws-js-unofficial@npm:20.30.0-unofficial.0" - dependencies: - bufferutil: "npm:4.0.7" - utf-8-validate: "npm:6.0.3" - ws: "npm:8.13.0" - dependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/92f6997409add8b27c9106d3b27ba7d62dc763bff3baa4940bf7db890c12f32bdf88ba163fdb52787c78ed2d4def2f19c912891045914ffc0913d409aaa3b144 - languageName: node - linkType: hard - -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node10@npm:1.0.11" - checksum: 10c0/28a0710e5d039e0de484bdf85fee883bfd3f6a8980601f4d44066b0a6bcd821d31c4e231d1117731c4e24268bd4cf2a788a6787c12fc7f8d11014c07d582783c - languageName: node - linkType: hard - -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node12@npm:1.0.11" - checksum: 10c0/dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9 - languageName: node - linkType: hard - -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.3 - resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 10c0/67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44 - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.4 - resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 10c0/05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb - languageName: node - linkType: hard - -"@typechain/ethers-v6@npm:^0.5.1": - version: 0.5.1 - resolution: "@typechain/ethers-v6@npm:0.5.1" - dependencies: - lodash: "npm:^4.17.15" - ts-essentials: "npm:^7.0.1" - peerDependencies: - ethers: 6.x - typechain: ^8.3.2 - typescript: ">=4.7.0" - checksum: 10c0/f3c80151c07e01adbf520e0854426649edb0ee540920569487dd8da7eca2fa8615710f4c0eda008e7afdf255fbb8dfdebf721a5d324a4dffeb087611d9bd64b9 - languageName: node - linkType: hard - -"@typechain/hardhat@npm:^9.1.0": - version: 9.1.0 - resolution: "@typechain/hardhat@npm:9.1.0" - dependencies: - fs-extra: "npm:^9.1.0" - peerDependencies: - "@typechain/ethers-v6": ^0.5.1 - ethers: ^6.1.0 - hardhat: ^2.9.9 - typechain: ^8.3.2 - checksum: 10c0/3a1220efefc7b02ca335696167f6c5332a33ff3fbf9f20552468566a1760f76bc88d330683e97ca6213eb9518a2a901391c31c84c0548006b72bd2ec62d4af9c - languageName: node - linkType: hard - -"@typechain/truffle-v5@npm:^8.0.7": - version: 8.0.7 - resolution: "@typechain/truffle-v5@npm:8.0.7" - dependencies: - lodash: "npm:^4.17.15" - peerDependencies: - truffle: ^5.0.0 - typechain: ^8.0.0 - web3: ^1 - web3-core: ^1 - web3-eth-contract: ^1 - web3-utils: ^1 - checksum: 10c0/840645ff81f0c986d253b67975b105f3d3609cefec296537dea05bcb87d3af7c0c959cf30947f567f567f6248901815d67c51c610f5bcbcbdacf5896b0c03dda - languageName: node - linkType: hard - -"@typechain/web3-v1@npm:^6.0.7": - version: 6.0.7 - resolution: "@typechain/web3-v1@npm:6.0.7" - dependencies: - lodash: "npm:^4.17.15" - ts-essentials: "npm:^7.0.1" - peerDependencies: - typechain: ^8.3.2 - web3: ^1 - web3-core: ^1 - web3-eth-contract: ^1 - checksum: 10c0/1eb438616485bae26216a1e316186e143158e0a25ef8776c0b9cf4e8a174647063173a4dcfff2c9bef3f12c652b230ea0ff8474ec6c2080484f942115864cf0f - languageName: node - linkType: hard - -"@types/accepts@npm:^1.3.5": - version: 1.3.7 - resolution: "@types/accepts@npm:1.3.7" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/7b21efc78b98ed57063ac31588f871f11501c080cd1201ca3743cf02ee0aee74bdb5a634183bc0987dc8dc582b26316789fd203650319ccc89a66cf88311d64f - languageName: node - linkType: hard - -"@types/bignumber.js@npm:^5.0.0": - version: 5.0.0 - resolution: "@types/bignumber.js@npm:5.0.0" - dependencies: - bignumber.js: "npm:*" - checksum: 10c0/fc8d0639b4e497712befeebcec98f1ff5cd56bd4ffe44baeb7dc90060c80adefb35cf2c6ace0b69ab094c03e5139873935fbb3c7d11d500bd627cd252685aaac - languageName: node - linkType: hard - -"@types/bn.js@npm:^4.11.3": - version: 4.11.6 - resolution: "@types/bn.js@npm:4.11.6" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/a5a19dafc106b1b2ab35c2024ca37b9d0938dced11cb1cca7d119de5a0dd5f54db525c82cb1392843fc921677452efcbbdce3aa96ecc1457d3de6e266915ebd0 - languageName: node - linkType: hard - -"@types/bn.js@npm:^5.1.0, @types/bn.js@npm:^5.1.1": - version: 5.1.5 - resolution: "@types/bn.js@npm:5.1.5" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/e9f375b43d8119ed82aed2090f83d4cda8afbb63ba13223afb02fa7550258ff90acd76d65cd7186838644048f085241cd98a3a512d8d187aa497c6039c746ac8 - languageName: node - linkType: hard - -"@types/body-parser@npm:*": - version: 1.19.5 - resolution: "@types/body-parser@npm:1.19.5" - dependencies: - "@types/connect": "npm:*" - "@types/node": "npm:*" - checksum: 10c0/aebeb200f25e8818d8cf39cd0209026750d77c9b85381cdd8deeb50913e4d18a1ebe4b74ca9b0b4d21952511eeaba5e9fbbf739b52731a2061e206ec60d568df - languageName: node - linkType: hard - -"@types/body-parser@npm:1.19.2": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" - dependencies: - "@types/connect": "npm:*" - "@types/node": "npm:*" - checksum: 10c0/c2dd533e1d4af958d656bdba7f376df68437d8dfb7e4522c88b6f3e6f827549e4be5bf0be68a5f1878accf5752ea37fba7e8a4b6dda53d0d122d77e27b69c750 - languageName: node - linkType: hard - -"@types/cacheable-request@npm:^6.0.1, @types/cacheable-request@npm:^6.0.2": - version: 6.0.3 - resolution: "@types/cacheable-request@npm:6.0.3" - dependencies: - "@types/http-cache-semantics": "npm:*" - "@types/keyv": "npm:^3.1.4" - "@types/node": "npm:*" - "@types/responselike": "npm:^1.0.0" - checksum: 10c0/10816a88e4e5b144d43c1d15a81003f86d649776c7f410c9b5e6579d0ad9d4ca71c541962fb403077388b446e41af7ae38d313e46692144985f006ac5e11fa03 - languageName: node - linkType: hard - -"@types/chai-as-promised@npm:^7.1.3": - version: 7.1.8 - resolution: "@types/chai-as-promised@npm:7.1.8" - dependencies: - "@types/chai": "npm:*" - checksum: 10c0/c0a19cffe8d3f406b2cb9ba17f5f0efe318b14f27896d807b3199cc2231c16a4b5b6c464fdf2a939214de481de58cffd46c240539d3d4ece18659277d71ccc23 - languageName: node - linkType: hard - -"@types/chai@npm:*, @types/chai@npm:^4.2.0, @types/chai@npm:^4.3.14": - version: 4.3.14 - resolution: "@types/chai@npm:4.3.14" - checksum: 10c0/7712594c1e457cb99c7227d0fe1afcbb900bbd1369494ec2d2b0d79a383057a09ab13d23d7b300287394b99995a8c017aa55e6b9a369b77910bc10310ba504af - languageName: node - linkType: hard - -"@types/concat-stream@npm:^1.6.0": - version: 1.6.1 - resolution: "@types/concat-stream@npm:1.6.1" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/838a0ec89d59a11c425b7728fdd05b17b652086a27fdf5b787778521ccf6d3133d9e9a6e6b803785b28c0a0f7a437582813e37b317ed8100870af836ad49a7a2 - languageName: node - linkType: hard - -"@types/connect@npm:*": - version: 3.4.38 - resolution: "@types/connect@npm:3.4.38" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c - languageName: node - linkType: hard - -"@types/cors@npm:2.8.12": - version: 2.8.12 - resolution: "@types/cors@npm:2.8.12" - checksum: 10c0/8a69fe7bc946421f8df5173e27c557b51ac2bf51b955bed65935d49bfe6cbe028a3428d2e7ec50ac1f82effa825d75128907e8b6079d7b3ab68cd6c579a303c8 - languageName: node - linkType: hard - -"@types/express-serve-static-core@npm:4.17.31": - version: 4.17.31 - resolution: "@types/express-serve-static-core@npm:4.17.31" - dependencies: - "@types/node": "npm:*" - "@types/qs": "npm:*" - "@types/range-parser": "npm:*" - checksum: 10c0/c24f28f77413e16e1eea765c530ee8dc4797379a44323e9788f92fabb29c2c31beab17c4e64dec8eb8166f8d2abd40e45bd8bc876e55de271a5688b603ae1162 - languageName: node - linkType: hard - -"@types/express-serve-static-core@npm:^4.17.18": - version: 4.17.43 - resolution: "@types/express-serve-static-core@npm:4.17.43" - dependencies: - "@types/node": "npm:*" - "@types/qs": "npm:*" - "@types/range-parser": "npm:*" - "@types/send": "npm:*" - checksum: 10c0/12480527eef86ad9f748d785811c88e6bb89f4a76e531cf2e18f1f4f0743e46783cf4d27a939dec96aec8770c54c060d9e697bb8544ecd202098140688c3b222 - languageName: node - linkType: hard - -"@types/express@npm:4.17.14": - version: 4.17.14 - resolution: "@types/express@npm:4.17.14" - dependencies: - "@types/body-parser": "npm:*" - "@types/express-serve-static-core": "npm:^4.17.18" - "@types/qs": "npm:*" - "@types/serve-static": "npm:*" - checksum: 10c0/616e3618dfcbafe387bf2213e1e40f77f101685f3e9efff47c66fd2da611b7578ed5f4e61e1cdb1f2a32c8f01eff4ee74f93c52ad56d45e69b7154da66b3443a - languageName: node - linkType: hard - -"@types/form-data@npm:0.0.33": - version: 0.0.33 - resolution: "@types/form-data@npm:0.0.33" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/20bd8f7491d759ce613e35612aef37b3084be43466883ce83e1261905032939bc9e51e470e61bccf6d2f08a39659c44795531bbf66af177176ab0ddbd968e155 - languageName: node - linkType: hard - -"@types/glob@npm:^7.1.1": - version: 7.2.0 - resolution: "@types/glob@npm:7.2.0" - dependencies: - "@types/minimatch": "npm:*" - "@types/node": "npm:*" - checksum: 10c0/a8eb5d5cb5c48fc58c7ca3ff1e1ddf771ee07ca5043da6e4871e6757b4472e2e73b4cfef2644c38983174a4bc728c73f8da02845c28a1212f98cabd293ecae98 - languageName: node - linkType: hard - -"@types/http-cache-semantics@npm:*": - version: 4.0.4 - resolution: "@types/http-cache-semantics@npm:4.0.4" - checksum: 10c0/51b72568b4b2863e0fe8d6ce8aad72a784b7510d72dc866215642da51d84945a9459fa89f49ec48f1e9a1752e6a78e85a4cda0ded06b1c73e727610c925f9ce6 - languageName: node - linkType: hard - -"@types/http-errors@npm:*": - version: 2.0.4 - resolution: "@types/http-errors@npm:2.0.4" - checksum: 10c0/494670a57ad4062fee6c575047ad5782506dd35a6b9ed3894cea65830a94367bd84ba302eb3dde331871f6d70ca287bfedb1b2cf658e6132cd2cbd427ab56836 - languageName: node - linkType: hard - -"@types/json-schema@npm:^7.0.12": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db - languageName: node - linkType: hard - -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac - languageName: node - linkType: hard - -"@types/keyv@npm:^3.1.4": - version: 3.1.4 - resolution: "@types/keyv@npm:3.1.4" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/ff8f54fc49621210291f815fe5b15d809fd7d032941b3180743440bd507ecdf08b9e844625fa346af568c84bf34114eb378dcdc3e921a08ba1e2a08d7e3c809c - languageName: node - linkType: hard - -"@types/long@npm:^4.0.0": - version: 4.0.2 - resolution: "@types/long@npm:4.0.2" - checksum: 10c0/42ec66ade1f72ff9d143c5a519a65efc7c1c77be7b1ac5455c530ae9acd87baba065542f8847522af2e3ace2cc999f3ad464ef86e6b7352eece34daf88f8c924 - languageName: node - linkType: hard - -"@types/lru-cache@npm:5.1.1, @types/lru-cache@npm:^5.1.0": - version: 5.1.1 - resolution: "@types/lru-cache@npm:5.1.1" - checksum: 10c0/1f17ec9b202c01a89337cc5528198a690be6b61a6688242125fbfb7fa17770e453e00e4685021abf5ae605860ca0722209faac5c254b780d0104730bb0b9e354 - languageName: node - linkType: hard - -"@types/mime@npm:*": - version: 3.0.4 - resolution: "@types/mime@npm:3.0.4" - checksum: 10c0/db478bc0f99e40f7b3e01d356a9bdf7817060808a294978111340317bcd80ca35382855578c5b60fbc84ae449674bd9bb38427b18417e1f8f19e4f72f8b242cd - languageName: node - linkType: hard - -"@types/mime@npm:^1": - version: 1.3.5 - resolution: "@types/mime@npm:1.3.5" - checksum: 10c0/c2ee31cd9b993804df33a694d5aa3fa536511a49f2e06eeab0b484fef59b4483777dbb9e42a4198a0809ffbf698081fdbca1e5c2218b82b91603dfab10a10fbc - languageName: node - linkType: hard - -"@types/minimatch@npm:*": - version: 5.1.2 - resolution: "@types/minimatch@npm:5.1.2" - checksum: 10c0/83cf1c11748891b714e129de0585af4c55dd4c2cafb1f1d5233d79246e5e1e19d1b5ad9e8db449667b3ffa2b6c80125c429dbee1054e9efb45758dbc4e118562 - languageName: node - linkType: hard - -"@types/mocha@npm:^10.0.6": - version: 10.0.6 - resolution: "@types/mocha@npm:10.0.6" - checksum: 10c0/4526c9e88388f9e1004c6d3937c5488a39908810f26b927173c58d52b43057f3895627dc06538e96706e08b88158885f869ec6311f6b58fd72bdef715f26d6c3 - languageName: node - linkType: hard - -"@types/node@npm:*, @types/node@npm:^20.12.2": - version: 20.12.2 - resolution: "@types/node@npm:20.12.2" - dependencies: - undici-types: "npm:~5.26.4" - checksum: 10c0/bb47d115a8f95aadebdd6403fee16d149d6b5568ad53bacc42df34c2d572561e36ba47b05f7f68bada43752d7369b470a90df65b646af7502dfb799a21b4fca7 - languageName: node - linkType: hard - -"@types/node@npm:18.15.13": - version: 18.15.13 - resolution: "@types/node@npm:18.15.13" - checksum: 10c0/6e5f61c559e60670a7a8fb88e31226ecc18a21be103297ca4cf9848f0a99049dae77f04b7ae677205f2af494f3701b113ba8734f4b636b355477a6534dbb8ada - languageName: node - linkType: hard - -"@types/node@npm:^10.0.3, @types/node@npm:^10.1.0": - version: 10.17.60 - resolution: "@types/node@npm:10.17.60" - checksum: 10c0/0742294912a6e79786cdee9ed77cff6ee8ff007b55d8e21170fc3e5994ad3a8101fea741898091876f8dc32b0a5ae3d64537b7176799e92da56346028d2cbcd2 - languageName: node - linkType: hard - -"@types/node@npm:^12.12.6": - version: 12.20.55 - resolution: "@types/node@npm:12.20.55" - checksum: 10c0/3b190bb0410047d489c49bbaab592d2e6630de6a50f00ba3d7d513d59401d279972a8f5a598b5bb8ddc1702f8a2f4ec57a65d93852f9c329639738e7053637d1 - languageName: node - linkType: hard - -"@types/node@npm:^8.0.0": - version: 8.10.66 - resolution: "@types/node@npm:8.10.66" - checksum: 10c0/425e0fca5bad0d6ff14336946a1e3577750dcfbb7449614786d3241ca78ff44e3beb43eace122682de1b9d8e25cf2a0456a0b3e500d78cb55cab68f892e38141 - languageName: node - linkType: hard - -"@types/pbkdf2@npm:^3.0.0": - version: 3.1.2 - resolution: "@types/pbkdf2@npm:3.1.2" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/4f60b0e3c73297f55023b993d3d543212aa7f61c8c0d6a2720f5dbe2cf38e2fe55ff295d550ac048dddbfc3d44c285cfe16126d65c613bd67a57662357e268d9 - languageName: node - linkType: hard - -"@types/prettier@npm:^2.1.1": - version: 2.7.3 - resolution: "@types/prettier@npm:2.7.3" - checksum: 10c0/0960b5c1115bb25e979009d0b44c42cf3d792accf24085e4bfce15aef5794ea042e04e70c2139a2c3387f781f18c89b5706f000ddb089e9a4a2ccb7536a2c5f0 - languageName: node - linkType: hard - -"@types/qs@npm:*, @types/qs@npm:^6.2.31": - version: 6.9.14 - resolution: "@types/qs@npm:6.9.14" - checksum: 10c0/11ad1eb7f6d7c216002789959d88acc7c43f72854fa4335f01de0df41b4c4024668dace8a37ba12270314345ede0ec6b07f93053a45e7bd4cd7318a3dcf0b6b8 - languageName: node - linkType: hard - -"@types/range-parser@npm:*": - version: 1.2.7 - resolution: "@types/range-parser@npm:1.2.7" - checksum: 10c0/361bb3e964ec5133fa40644a0b942279ed5df1949f21321d77de79f48b728d39253e5ce0408c9c17e4e0fd95ca7899da36841686393b9f7a1e209916e9381a3c - languageName: node - linkType: hard - -"@types/responselike@npm:^1.0.0": - version: 1.0.3 - resolution: "@types/responselike@npm:1.0.3" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/a58ba341cb9e7d74f71810a88862da7b2a6fa42e2a1fc0ce40498f6ea1d44382f0640117057da779f74c47039f7166bf48fad02dc876f94e005c7afa50f5e129 - languageName: node - linkType: hard - -"@types/secp256k1@npm:^4.0.1": - version: 4.0.6 - resolution: "@types/secp256k1@npm:4.0.6" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/0e391316ae30c218779583b626382a56546ddbefb65f1ff9cf5e078af8a7118f67f3e66e30914399cc6f8710c424d0d8c3f34262ffb1f429c6ad911fd0d0bc26 - languageName: node - linkType: hard - -"@types/seedrandom@npm:3.0.1": - version: 3.0.1 - resolution: "@types/seedrandom@npm:3.0.1" - checksum: 10c0/b9be192c99b25d7d5d93928e6106f1baff86a4ced33c7b9f94609c659c5d8cb657b70683c74798f83e12caf75af072d3e4f2608ab57a01c897c512fe991f6c9a - languageName: node - linkType: hard - -"@types/semver@npm:^7.5.0": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa - languageName: node - linkType: hard - -"@types/send@npm:*": - version: 0.17.4 - resolution: "@types/send@npm:0.17.4" - dependencies: - "@types/mime": "npm:^1" - "@types/node": "npm:*" - checksum: 10c0/7f17fa696cb83be0a104b04b424fdedc7eaba1c9a34b06027239aba513b398a0e2b7279778af521f516a397ced417c96960e5f50fcfce40c4bc4509fb1a5883c - languageName: node - linkType: hard - -"@types/serve-static@npm:*": - version: 1.15.5 - resolution: "@types/serve-static@npm:1.15.5" - dependencies: - "@types/http-errors": "npm:*" - "@types/mime": "npm:*" - "@types/node": "npm:*" - checksum: 10c0/811d1a2f7e74a872195e7a013bcd87a2fb1edf07eaedcb9dcfd20c1eb4bc56ad4ea0d52141c13192c91ccda7c8aeb8a530d8a7e60b9c27f5990d7e62e0fecb03 - languageName: node - linkType: hard - -"@types/triple-beam@npm:^1.3.2": - version: 1.3.5 - resolution: "@types/triple-beam@npm:1.3.5" - checksum: 10c0/d5d7f25da612f6d79266f4f1bb9c1ef8f1684e9f60abab251e1261170631062b656ba26ff22631f2760caeafd372abc41e64867cde27fba54fafb73a35b9056a - languageName: node - linkType: hard - -"@types/ws@npm:8.5.3": - version: 8.5.3 - resolution: "@types/ws@npm:8.5.3" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/af36857b804e6df615b401bacf34e9312f073ed9dbeda35be16ee3352d18a4449f27066169893166a6ec17ae51557c3adf8d232ac4a4a0226aafb3267e1f1b39 - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:^7.4.0": - version: 7.5.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.5.0" - dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:7.5.0" - "@typescript-eslint/type-utils": "npm:7.5.0" - "@typescript-eslint/utils": "npm:7.5.0" - "@typescript-eslint/visitor-keys": "npm:7.5.0" - debug: "npm:^4.3.4" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" - natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/932a7b5a09c0138ef5a0bf00f8e6039fa209d4047092ffc187de048543c21f7ce24dc14f25f4c87b6f3bbb62335fc952e259e271fde88baf793217bde6460cfa - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^7.4.0": - version: 7.5.0 - resolution: "@typescript-eslint/parser@npm:7.5.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:7.5.0" - "@typescript-eslint/types": "npm:7.5.0" - "@typescript-eslint/typescript-estree": "npm:7.5.0" - "@typescript-eslint/visitor-keys": "npm:7.5.0" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/65521202ff024e79594272fbb7e4731ecf9d2fdd2f58fc81450bfd2bca94ce9c17b0eadd7338c01701f5cf16d38b6c025ed3fc322380b1e4b5424b7484098cda - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/scope-manager@npm:7.5.0" - dependencies: - "@typescript-eslint/types": "npm:7.5.0" - "@typescript-eslint/visitor-keys": "npm:7.5.0" - checksum: 10c0/a017b151a6b39ef591f8e2e65598e005e1b4b2d5494e4b91bddb5856b3a4d57dd8a58d2bc7a140e627eb574f93a2c8fe55f1307aa264c928ffd31d9e190bc5dd - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/type-utils@npm:7.5.0" - dependencies: - "@typescript-eslint/typescript-estree": "npm:7.5.0" - "@typescript-eslint/utils": "npm:7.5.0" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/12915d4d1872638f5281e222a0d191676c478f250699c84864862e95a59e708222acefbf7ffdafc0872a007261219a3a2b1e667ff45eeafea7c4bcc5b955262c - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/types@npm:7.5.0" - checksum: 10c0/f3394f71f422dbd89f63b230f20e9769c12e47a287ff30ca03a80714e57ea21279b6f12a8ab14bafb00b59926f20a88894b2d1e72679f7ff298bae112679d4b3 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.5.0" - dependencies: - "@typescript-eslint/types": "npm:7.5.0" - "@typescript-eslint/visitor-keys": "npm:7.5.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/ea3a270c725d6be273188b86110e0393052cd64d1c54a56eb5ea405e6d3fbbe84fb3b1ce1b8496a4078ac1eefd37aedcf12be91876764f6de31d5aa5131c7bcd - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/utils@npm:7.5.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:7.5.0" - "@typescript-eslint/types": "npm:7.5.0" - "@typescript-eslint/typescript-estree": "npm:7.5.0" - semver: "npm:^7.5.4" - peerDependencies: - eslint: ^8.56.0 - checksum: 10c0/c815ed6909769648953d6963c069038f7cac0c979051b25718feb30e0d3337b9647b75b8de00ac03fe960f0cc8dc4e8a81d4aac4719090a99785e0068712bd24 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.5.0" - dependencies: - "@typescript-eslint/types": "npm:7.5.0" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/eecf02b8dd54e83738a143aca87b902af4b357028a90fd34ed7a2f40a3ae2f6a188b9ba53903f23c80e868f1fffbb039e9ddb63525438d659707cc7bfb269317 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d - languageName: node - linkType: hard - -"abbrev@npm:1": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: 10c0/3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6 - languageName: node - linkType: hard - -"abbrev@npm:1.0.x": - version: 1.0.9 - resolution: "abbrev@npm:1.0.9" - checksum: 10c0/214632e37c68f71d61d2ee920644a11c7b0cee08ddde96961b02ebe95ad86de0d56bd6762ff337bd9cf6e5c1431ce724babd28c110fce4b20d35f6fa87944d00 - languageName: node - linkType: hard - -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 - languageName: node - linkType: hard - -"abitype@npm:0.7.1": - version: 0.7.1 - resolution: "abitype@npm:0.7.1" - peerDependencies: - typescript: ">=4.9.4" - zod: ^3 >=3.19.1 - peerDependenciesMeta: - zod: - optional: true - checksum: 10c0/c95386afc8438b29d09fcb6d7bc3a457958ab0a472483a363bdb9bf9f42e1b90ab5b05a16f04b653ad0bf79f4451233fe35fc6c7a04b66cb4eba9df7d8e49f12 - languageName: node - linkType: hard - -"abort-controller@npm:3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" - dependencies: - event-target-shim: "npm:^5.0.0" - checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 - languageName: node - linkType: hard - -"abortcontroller-polyfill@npm:^1.7.3, abortcontroller-polyfill@npm:^1.7.5": - version: 1.7.5 - resolution: "abortcontroller-polyfill@npm:1.7.5" - checksum: 10c0/d7a5ab6fda4f9a54f22ddeb233a2564d2f4f857ec17be25fee21a91bb5090bee57c630c454634b5c4b93fc06bd90d592d1f2fc69f77cd28791ac0fe361feb7d2 - languageName: node - linkType: hard - -"abstract-level@npm:1.0.3": - version: 1.0.3 - resolution: "abstract-level@npm:1.0.3" - dependencies: - buffer: "npm:^6.0.3" - catering: "npm:^2.1.0" - is-buffer: "npm:^2.0.5" - level-supports: "npm:^4.0.0" - level-transcoder: "npm:^1.0.1" - module-error: "npm:^1.0.1" - queue-microtask: "npm:^1.2.3" - checksum: 10c0/ead09e2aebd45a6aa06175dbda19f08c3fbe2b3fb7637cc15f7c165969fb5ef25a04b743f7e1835fd7cb7f8757ba41a9f43f27b092ab78cab5506f250effc966 - languageName: node - linkType: hard - -"abstract-leveldown@npm:7.2.0, abstract-leveldown@npm:^7.2.0": - version: 7.2.0 - resolution: "abstract-leveldown@npm:7.2.0" - dependencies: - buffer: "npm:^6.0.3" - catering: "npm:^2.0.0" - is-buffer: "npm:^2.0.5" - level-concat-iterator: "npm:^3.0.0" - level-supports: "npm:^2.0.1" - queue-microtask: "npm:^1.2.3" - checksum: 10c0/c81765642fc2100499fadc3254470a338ba7c0ba2e597b15cd13d91f333a54619b4d5c4137765e0835817142cd23e8eb7bf01b6a217e13c492f4872c164184dc - languageName: node - linkType: hard - -"abstract-leveldown@npm:^6.2.1": - version: 6.3.0 - resolution: "abstract-leveldown@npm:6.3.0" - dependencies: - buffer: "npm:^5.5.0" - immediate: "npm:^3.2.3" - level-concat-iterator: "npm:~2.0.0" - level-supports: "npm:~1.0.0" - xtend: "npm:~4.0.0" - checksum: 10c0/441c7e6765b6c2e9a36999e2bda3f4421d09348c0e925e284d873bcbf5ecad809788c9eda416aed37fe5b6e6a9e75af6e27142d1fcba460b8757d70028e307b1 - languageName: node - linkType: hard - -"abstract-leveldown@npm:~2.7.1": - version: 2.7.2 - resolution: "abstract-leveldown@npm:2.7.2" - dependencies: - xtend: "npm:~4.0.0" - checksum: 10c0/3739af5a612e63988d5c28feb0e81fb3c510a1cece0a978313d15d43a9bd4b326be8f0e42d74815117612f549bf9e6de34f633af1d1ea0c1ccc3e495640dcca4 - languageName: node - linkType: hard - -"abstract-leveldown@npm:~6.2.1, abstract-leveldown@npm:~6.2.3": - version: 6.2.3 - resolution: "abstract-leveldown@npm:6.2.3" - dependencies: - buffer: "npm:^5.5.0" - immediate: "npm:^3.2.3" - level-concat-iterator: "npm:~2.0.0" - level-supports: "npm:~1.0.0" - xtend: "npm:~4.0.0" - checksum: 10c0/a7994531a4618a409ee016dabf132014be9a2d07a3438f835c1eb5607f77f6cf12abc437e8f5bff353b1d8dcb31628c8ae65b41e7533bf606c6f7213ab61c1d1 - languageName: node - linkType: hard - -"accepts@npm:^1.3.5, accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: "npm:~2.1.34" - negotiator: "npm:0.6.3" - checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 - languageName: node - linkType: hard - -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 - languageName: node - linkType: hard - -"acorn-walk@npm:^8.1.1": - version: 8.3.2 - resolution: "acorn-walk@npm:8.3.2" - checksum: 10c0/7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52 - languageName: node - linkType: hard - -"acorn@npm:^8.4.1, acorn@npm:^8.9.0": - version: 8.11.3 - resolution: "acorn@npm:8.11.3" - bin: - acorn: bin/acorn - checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299 - languageName: node - linkType: hard - -"adm-zip@npm:^0.4.16": - version: 0.4.16 - resolution: "adm-zip@npm:0.4.16" - checksum: 10c0/c56c6e138fd19006155fc716acae14d54e07c267ae19d78c8a8cdca04762bf20170a71a41aa8d8bad2f13b70d4f3e9a191009bafa5280e05a440ee506f871a55 - languageName: node - linkType: hard - -"aes-js@npm:3.0.0": - version: 3.0.0 - resolution: "aes-js@npm:3.0.0" - checksum: 10c0/87dd5b2363534b867db7cef8bc85a90c355460783744877b2db7c8be09740aac5750714f9e00902822f692662bda74cdf40e03fbb5214ffec75c2666666288b8 - languageName: node - linkType: hard - -"aes-js@npm:4.0.0-beta.5": - version: 4.0.0-beta.5 - resolution: "aes-js@npm:4.0.0-beta.5" - checksum: 10c0/444f4eefa1e602cbc4f2a3c644bc990f93fd982b148425fee17634da510586fc09da940dcf8ace1b2d001453c07ff042e55f7a0482b3cc9372bf1ef75479090c - languageName: node - linkType: hard - -"agent-base@npm:6": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: "npm:4" - checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 - languageName: node - linkType: hard - -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: "npm:^4.3.4" - checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: "npm:^2.0.0" - indent-string: "npm:^4.0.0" - checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 - languageName: node - linkType: hard - -"ajv-formats@npm:^2.1.1": - version: 2.1.1 - resolution: "ajv-formats@npm:2.1.1" - dependencies: - ajv: "npm:^8.0.0" - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - checksum: 10c0/e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662 - languageName: node - linkType: hard - -"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: "npm:^3.1.1" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.4.1" - uri-js: "npm:^4.2.2" - checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 - languageName: node - linkType: hard - -"ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.6.3": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: "npm:^3.1.1" - json-schema-traverse: "npm:^1.0.0" - require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.2.2" - checksum: 10c0/ac4f72adf727ee425e049bc9d8b31d4a57e1c90da8d28bcd23d60781b12fcd6fc3d68db5df16994c57b78b94eed7988f5a6b482fd376dc5b084125e20a0a622e - languageName: node - linkType: hard - -"amdefine@npm:>=0.0.4": - version: 1.0.1 - resolution: "amdefine@npm:1.0.1" - checksum: 10c0/ba8aa5d4ff5248b2ed067111e72644b36b5b7ae88d9a5a2c4223dddb3bdc9102db67291e0b414f59f12c6479ac6a365886bac72c7965e627cbc732e0962dd1ab - languageName: node - linkType: hard - -"ansi-align@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-align@npm:3.0.1" - dependencies: - string-width: "npm:^4.1.0" - checksum: 10c0/ad8b755a253a1bc8234eb341e0cec68a857ab18bf97ba2bda529e86f6e30460416523e0ec58c32e5c21f0ca470d779503244892873a5895dbd0c39c788e82467 - languageName: node - linkType: hard - -"ansi-colors@npm:4.1.1": - version: 4.1.1 - resolution: "ansi-colors@npm:4.1.1" - checksum: 10c0/6086ade4336b4250b6b25e144b83e5623bcaf654d3df0c3546ce09c9c5ff999cb6a6f00c87e802d05cf98aef79d92dc76ade2670a2493b8dcb80220bec457838 - languageName: node - linkType: hard - -"ansi-colors@npm:^4.1.1": - version: 4.1.3 - resolution: "ansi-colors@npm:4.1.3" - checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 - languageName: node - linkType: hard - -"ansi-escapes@npm:^4.3.0": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" - dependencies: - type-fest: "npm:^0.21.3" - checksum: 10c0/da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50 - languageName: node - linkType: hard - -"ansi-regex@npm:^2.0.0": - version: 2.1.1 - resolution: "ansi-regex@npm:2.1.1" - checksum: 10c0/78cebaf50bce2cb96341a7230adf28d804611da3ce6bf338efa7b72f06cc6ff648e29f80cd95e582617ba58d5fdbec38abfeed3500a98bce8381a9daec7c548b - languageName: node - linkType: hard - -"ansi-regex@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-regex@npm:3.0.1" - checksum: 10c0/d108a7498b8568caf4a46eea4f1784ab4e0dfb2e3f3938c697dee21443d622d765c958f2b7e2b9f6b9e55e2e2af0584eaa9915d51782b89a841c28e744e7a167 - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: "npm:^2.0.1" - checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.1.0": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c - languageName: node - linkType: hard - -"antlr4ts@npm:^0.5.0-alpha.4": - version: 0.5.0-dev - resolution: "antlr4ts@npm:0.5.0-dev" - dependencies: - source-map-support: "npm:^0.5.16" - checksum: 10c0/948d95d02497a5751105cc61e9931d03a9bf0566b33a28ea8f2c72484a47ec4c5148670e1a525bfbc0069b1b86ab820417ec3fad120081211ff55f542fb4a835 - languageName: node - linkType: hard - -"anymatch@npm:~3.1.2": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" - dependencies: - normalize-path: "npm:^3.0.0" - picomatch: "npm:^2.0.4" - checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac - languageName: node - linkType: hard - -"apollo-datasource@npm:^3.3.2": - version: 3.3.2 - resolution: "apollo-datasource@npm:3.3.2" - dependencies: - "@apollo/utils.keyvaluecache": "npm:^1.0.1" - apollo-server-env: "npm:^4.2.1" - checksum: 10c0/b62d2013291685d6750893dadd5723e3c01030eaacc4bd6b61c2590fce3a882fb8f5b3e1561d579dde38468475387491051202e01847ad5f3d6eb371c516a7c8 - languageName: node - linkType: hard - -"apollo-reporting-protobuf@npm:^3.4.0": - version: 3.4.0 - resolution: "apollo-reporting-protobuf@npm:3.4.0" - dependencies: - "@apollo/protobufjs": "npm:1.2.6" - checksum: 10c0/41b06a38bfc842e435eeb08ad4c2a87cb88e30f3d2c57af7d9325d09475727c7e4a321ff7e5b62114b197aaf7d1b56977d172971586314558d7d47539aea2940 - languageName: node - linkType: hard - -"apollo-server-core@npm:^3.13.0": - version: 3.13.0 - resolution: "apollo-server-core@npm:3.13.0" - dependencies: - "@apollo/utils.keyvaluecache": "npm:^1.0.1" - "@apollo/utils.logger": "npm:^1.0.0" - "@apollo/utils.usagereporting": "npm:^1.0.0" - "@apollographql/apollo-tools": "npm:^0.5.3" - "@apollographql/graphql-playground-html": "npm:1.6.29" - "@graphql-tools/mock": "npm:^8.1.2" - "@graphql-tools/schema": "npm:^8.0.0" - "@josephg/resolvable": "npm:^1.0.0" - apollo-datasource: "npm:^3.3.2" - apollo-reporting-protobuf: "npm:^3.4.0" - apollo-server-env: "npm:^4.2.1" - apollo-server-errors: "npm:^3.3.1" - apollo-server-plugin-base: "npm:^3.7.2" - apollo-server-types: "npm:^3.8.0" - async-retry: "npm:^1.2.1" - fast-json-stable-stringify: "npm:^2.1.0" - graphql-tag: "npm:^2.11.0" - loglevel: "npm:^1.6.8" - lru-cache: "npm:^6.0.0" - node-abort-controller: "npm:^3.0.1" - sha.js: "npm:^2.4.11" - uuid: "npm:^9.0.0" - whatwg-mimetype: "npm:^3.0.0" - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - checksum: 10c0/60f2265af914c56621840e8375ba1f3ec9f95c3d827b6ccecaaa69d64f970e03d617421049a0f4038de8f9748e2f8fbfd6487f4d83ca01190fc4f52fbe15fc33 - languageName: node - linkType: hard - -"apollo-server-env@npm:^4.2.1": - version: 4.2.1 - resolution: "apollo-server-env@npm:4.2.1" - dependencies: - node-fetch: "npm:^2.6.7" - checksum: 10c0/3b726b32041153f49c67844330b62e9c9516fd2b4e63f4bf0fe7aab272043b3c7485037feae75651d54b85aeb33c2a335d197724387328fa39aecd6ecb6076b0 - languageName: node - linkType: hard - -"apollo-server-errors@npm:^3.3.1": - version: 3.3.1 - resolution: "apollo-server-errors@npm:3.3.1" - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - checksum: 10c0/207c169ca08549bb3719c1c60e5db6faf43e6370e7dc3aee34b307d05a7ce6acdd64a38bc7a9e0d63fb91216d61b4ec85afdcef875ed446b39a576d212228c57 - languageName: node - linkType: hard - -"apollo-server-express@npm:^3.13.0": - version: 3.13.0 - resolution: "apollo-server-express@npm:3.13.0" - dependencies: - "@types/accepts": "npm:^1.3.5" - "@types/body-parser": "npm:1.19.2" - "@types/cors": "npm:2.8.12" - "@types/express": "npm:4.17.14" - "@types/express-serve-static-core": "npm:4.17.31" - accepts: "npm:^1.3.5" - apollo-server-core: "npm:^3.13.0" - apollo-server-types: "npm:^3.8.0" - body-parser: "npm:^1.19.0" - cors: "npm:^2.8.5" - parseurl: "npm:^1.3.3" - peerDependencies: - express: ^4.17.1 - graphql: ^15.3.0 || ^16.0.0 - checksum: 10c0/b2c741a6f78350886913b606471d86704b3015ab8ed8a3035df5652c27e0ee12e3d52f927af06546ac8f6c89f424b6773e5214dadab2bc474212e80f6b329feb - languageName: node - linkType: hard - -"apollo-server-plugin-base@npm:^3.7.2": - version: 3.7.2 - resolution: "apollo-server-plugin-base@npm:3.7.2" - dependencies: - apollo-server-types: "npm:^3.8.0" - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - checksum: 10c0/dfd56298bf1377b62a8845af1eb79f5bce759ebb3559110fc1983351ef7041e95fc915fb896075cd78de5b9e5f8f590328de904a8042f971eda5b48f41233774 - languageName: node - linkType: hard - -"apollo-server-types@npm:^3.8.0": - version: 3.8.0 - resolution: "apollo-server-types@npm:3.8.0" - dependencies: - "@apollo/utils.keyvaluecache": "npm:^1.0.1" - "@apollo/utils.logger": "npm:^1.0.0" - apollo-reporting-protobuf: "npm:^3.4.0" - apollo-server-env: "npm:^4.2.1" - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - checksum: 10c0/f6575172a67e4a289537252b4204e439c47861d70b9b23ae38aef69111f0a84e0c9ff47987ab2647233ed8a36e6fc04cbef35946cf180478fafa9abdaa421021 - languageName: node - linkType: hard - -"apollo-server@npm:^3.11.0": - version: 3.13.0 - resolution: "apollo-server@npm:3.13.0" - dependencies: - "@types/express": "npm:4.17.14" - apollo-server-core: "npm:^3.13.0" - apollo-server-express: "npm:^3.13.0" - express: "npm:^4.17.1" - peerDependencies: - graphql: ^15.3.0 || ^16.0.0 - checksum: 10c0/826ab0afb1ab2bc86ababf8ace861f920258874cfef84fb996440261b115230941dd4d3fd972b743cffdf0eb007f2566f07e8cc226b84b6a6f7f5d3675d735ca - languageName: node - linkType: hard - -"app-module-path@npm:^2.2.0": - version: 2.2.0 - resolution: "app-module-path@npm:2.2.0" - checksum: 10c0/0d6d581dcee268271af1e611934b4fed715de55c382b2610de67ba6f87d01503fc0426cff687f06210e54cd57545f7a6172e1dd192914a3709ad89c06a4c3a0b - languageName: node - linkType: hard - -"append-transform@npm:^2.0.0": - version: 2.0.0 - resolution: "append-transform@npm:2.0.0" - dependencies: - default-require-extensions: "npm:^3.0.0" - checksum: 10c0/f1505e4f4597f4eb7b3df8da898e431fc25d6cdc6c78d01c700a4fab38d835e7cbac693eade8df7b0a0944dc52a35f92b1771e440af59f1b1f8a1dadaba7d17b - languageName: node - linkType: hard - -"archy@npm:^1.0.0": - version: 1.0.0 - resolution: "archy@npm:1.0.0" - checksum: 10c0/200c849dd1c304ea9914827b0555e7e1e90982302d574153e28637db1a663c53de62bad96df42d50e8ce7fc18d05e3437d9aa8c4b383803763755f0956c7d308 - languageName: node - linkType: hard - -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a - languageName: node - linkType: hard - -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: "npm:~1.0.2" - checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e - languageName: node - linkType: hard - -"argsarray@npm:0.0.1": - version: 0.0.1 - resolution: "argsarray@npm:0.0.1" - checksum: 10c0/d282742621698b0079ae0d1830cc35355c5a9ad21b831d6b006234ba08cccad3d4215190a9ff696af39587d7a5455cde64ffe94faa7762cda20fbf8c2d530889 - languageName: node - linkType: hard - -"array-back@npm:^3.0.1, array-back@npm:^3.1.0": - version: 3.1.0 - resolution: "array-back@npm:3.1.0" - checksum: 10c0/bb1fe86aa8b39c21e73c68c7abf8b05ed939b8951a3b17527217f6a2a84e00e4cfa4fdec823081689c5e216709bf1f214a4f5feeee6726eaff83897fa1a7b8ee - languageName: node - linkType: hard - -"array-back@npm:^4.0.1, array-back@npm:^4.0.2": - version: 4.0.2 - resolution: "array-back@npm:4.0.2" - checksum: 10c0/8beb5b4c9535eab2905d4ff7d16c4d90ee5ca080d2b26b1e637434c0fcfadb3585283524aada753bd5d06bb88a5dac9e175c3a236183741d3d795a69b6678c96 - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.5" - is-array-buffer: "npm:^3.0.4" - checksum: 10c0/f5cdf54527cd18a3d2852ddf73df79efec03829e7373a8322ef5df2b4ef546fb365c19c71d6b42d641cb6bfe0f1a2f19bc0ece5b533295f86d7c3d522f228917 - languageName: node - linkType: hard - -"array-flatten@npm:1.1.1": - version: 1.1.1 - resolution: "array-flatten@npm:1.1.1" - checksum: 10c0/806966c8abb2f858b08f5324d9d18d7737480610f3bd5d3498aaae6eb5efdc501a884ba019c9b4a8f02ff67002058749d05548fd42fa8643f02c9c7f22198b91 - languageName: node - linkType: hard - -"array-includes@npm:^3.1.7": - version: 3.1.8 - resolution: "array-includes@npm:3.1.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.4" - is-string: "npm:^1.0.7" - checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370 - languageName: node - linkType: hard - -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 10c0/429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962 - languageName: node - linkType: hard - -"array-uniq@npm:1.0.3": - version: 1.0.3 - resolution: "array-uniq@npm:1.0.3" - checksum: 10c0/3acbaf9e6d5faeb1010e2db04ab171b8d265889e46c61762e502979bdc5e55656013726e9a61507de3c82d329a0dc1e8072630a3454b4f2b881cb19ba7fd8aa6 - languageName: node - linkType: hard - -"array.prototype.findlastindex@npm:^1.2.3": - version: 1.2.5 - resolution: "array.prototype.findlastindex@npm:1.2.5" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/962189487728b034f3134802b421b5f39e42ee2356d13b42d2ddb0e52057ffdcc170b9524867f4f0611a6f638f4c19b31e14606e8bcbda67799e26685b195aa3 - languageName: node - linkType: hard - -"array.prototype.flat@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - checksum: 10c0/a578ed836a786efbb6c2db0899ae80781b476200617f65a44846cb1ed8bd8b24c8821b83703375d8af639c689497b7b07277060024b9919db94ac3e10dc8a49b - languageName: node - linkType: hard - -"array.prototype.flatmap@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flatmap@npm:1.3.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - checksum: 10c0/67b3f1d602bb73713265145853128b1ad77cc0f9b833c7e1e056b323fbeac41a4ff1c9c99c7b9445903caea924d9ca2450578d9011913191aa88cc3c3a4b54f4 - languageName: node - linkType: hard - -"arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.22.3" - es-errors: "npm:^1.2.1" - get-intrinsic: "npm:^1.2.3" - is-array-buffer: "npm:^3.0.4" - is-shared-array-buffer: "npm:^1.0.2" - checksum: 10c0/d32754045bcb2294ade881d45140a5e52bda2321b9e98fa514797b7f0d252c4c5ab0d1edb34112652c62fa6a9398def568da63a4d7544672229afea283358c36 - languageName: node - linkType: hard - -"asap@npm:~2.0.6": - version: 2.0.6 - resolution: "asap@npm:2.0.6" - checksum: 10c0/c6d5e39fe1f15e4b87677460bd66b66050cd14c772269cee6688824c1410a08ab20254bb6784f9afb75af9144a9f9a7692d49547f4d19d715aeb7c0318f3136d - languageName: node - linkType: hard - -"asn1@npm:~0.2.3": - version: 0.2.6 - resolution: "asn1@npm:0.2.6" - dependencies: - safer-buffer: "npm:~2.1.0" - checksum: 10c0/00c8a06c37e548762306bcb1488388d2f76c74c36f70c803f0c081a01d3bdf26090fc088cd812afc5e56a6d49e33765d451a5f8a68ab9c2b087eba65d2e980e0 - languageName: node - linkType: hard - -"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": - version: 1.0.0 - resolution: "assert-plus@npm:1.0.0" - checksum: 10c0/b194b9d50c3a8f872ee85ab110784911e696a4d49f7ee6fc5fb63216dedbefd2c55999c70cb2eaeb4cf4a0e0338b44e9ace3627117b5bf0d42460e9132f21b91 - languageName: node - linkType: hard - -"assertion-error@npm:^1.1.0": - version: 1.1.0 - resolution: "assertion-error@npm:1.1.0" - checksum: 10c0/25456b2aa333250f01143968e02e4884a34588a8538fbbf65c91a637f1dbfb8069249133cd2f4e530f10f624d206a664e7df30207830b659e9f5298b00a4099b - languageName: node - linkType: hard - -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: 10c0/f63d439cc383db1b9c5c6080d1e240bd14dae745f15d11ec5da863e182bbeca70df6c8191cffef5deba0b566ef98834610a68be79ac6379c95eeb26e1b310e25 - languageName: node - linkType: hard - -"async-eventemitter@npm:0.2.4": - version: 0.2.4 - resolution: "async-eventemitter@npm:0.2.4" - dependencies: - async: "npm:^2.4.0" - checksum: 10c0/ce761d1837d454efb456bd2bd5b0db0e100f600d66d9a07a9f7772e0cfd5ad3029bb07385310bd1c7d65603735b755ba457a2f8ed47fb1314a6fe275dd69a322 - languageName: node - linkType: hard - -"async-limiter@npm:~1.0.0": - version: 1.0.1 - resolution: "async-limiter@npm:1.0.1" - checksum: 10c0/0693d378cfe86842a70d4c849595a0bb50dc44c11649640ca982fa90cbfc74e3cc4753b5a0847e51933f2e9c65ce8e05576e75e5e1fd963a086e673735b35969 - languageName: node - linkType: hard - -"async-retry@npm:^1.2.1": - version: 1.3.3 - resolution: "async-retry@npm:1.3.3" - dependencies: - retry: "npm:0.13.1" - checksum: 10c0/cabced4fb46f8737b95cc88dc9c0ff42656c62dc83ce0650864e891b6c155a063af08d62c446269b51256f6fbcb69a6563b80e76d0ea4a5117b0c0377b6b19d8 - languageName: node - linkType: hard - -"async@npm:1.x": - version: 1.5.2 - resolution: "async@npm:1.5.2" - checksum: 10c0/9ee84592c393aad1047d1223004317ecc65a9a3f76101e0f4614a0818eac962e666510353400a3c9ea158df540579a293f486f3578e918c5e90a0f5ed52e8aea - languageName: node - linkType: hard - -"async@npm:^2.4.0": - version: 2.6.4 - resolution: "async@npm:2.6.4" - dependencies: - lodash: "npm:^4.17.14" - checksum: 10c0/0ebb3273ef96513389520adc88e0d3c45e523d03653cc9b66f5c46f4239444294899bfd13d2b569e7dbfde7da2235c35cf5fd3ece9524f935d41bbe4efccdad0 - languageName: node - linkType: hard - -"async@npm:^3.2.3": - version: 3.2.5 - resolution: "async@npm:3.2.5" - checksum: 10c0/1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1 - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d - languageName: node - linkType: hard - -"at-least-node@npm:^1.0.0": - version: 1.0.0 - resolution: "at-least-node@npm:1.0.0" - checksum: 10c0/4c058baf6df1bc5a1697cf182e2029c58cd99975288a13f9e70068ef5d6f4e1f1fd7c4d2c3c4912eae44797d1725be9700995736deca441b39f3e66d8dee97ef - languageName: node - linkType: hard - -"atomically@npm:^1.7.0": - version: 1.7.0 - resolution: "atomically@npm:1.7.0" - checksum: 10c0/31f5efd5d69474681268557af4024f9e10223bb6b39fdedb5f2e19405186c4b76284fac9f6c43c9af75013cad6437e93b7168268f5ddb7aaf1cfc5fdb415f227 - languageName: node - linkType: hard - -"available-typed-arrays@npm:^1.0.7": - version: 1.0.7 - resolution: "available-typed-arrays@npm:1.0.7" - dependencies: - possible-typed-array-names: "npm:^1.0.0" - checksum: 10c0/d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2 - languageName: node - linkType: hard - -"aws-sign2@npm:~0.7.0": - version: 0.7.0 - resolution: "aws-sign2@npm:0.7.0" - checksum: 10c0/021d2cc5547d4d9ef1633e0332e746a6f447997758b8b68d6fb33f290986872d2bff5f0c37d5832f41a7229361f093cd81c40898d96ed153493c0fb5cd8575d2 - languageName: node - linkType: hard - -"aws4@npm:^1.8.0": - version: 1.12.0 - resolution: "aws4@npm:1.12.0" - checksum: 10c0/1e39c266f53b04daf88e112de93a6006375b386a1b7ab6197260886e39abd012aa90bdd87949c3bf9c30754846031f6d5d8ac4f8676628097c11065b5d39847a - languageName: node - linkType: hard - -"axios@npm:1.5.0": - version: 1.5.0 - resolution: "axios@npm:1.5.0" - dependencies: - follow-redirects: "npm:^1.15.0" - form-data: "npm:^4.0.0" - proxy-from-env: "npm:^1.1.0" - checksum: 10c0/a3e11e53ff10fa02defb17c82672599a5ef31f8a6f2b0ea1564a61271226a924baef3a899a03c6850bddb0e9a614acdf615e07b30f382403b5e1fc7ec2eef464 - languageName: node - linkType: hard - -"axios@npm:^1.5.1": - version: 1.6.8 - resolution: "axios@npm:1.6.8" - dependencies: - follow-redirects: "npm:^1.15.6" - form-data: "npm:^4.0.0" - proxy-from-env: "npm:^1.1.0" - checksum: 10c0/0f22da6f490335479a89878bc7d5a1419484fbb437b564a80c34888fc36759ae4f56ea28d55a191695e5ed327f0bad56e7ff60fb6770c14d1be6501505d47ab9 - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee - languageName: node - linkType: hard - -"base-x@npm:^3.0.2, base-x@npm:^3.0.8": - version: 3.0.9 - resolution: "base-x@npm:3.0.9" - dependencies: - safe-buffer: "npm:^5.0.1" - checksum: 10c0/e6bbeae30b24f748b546005affb710c5fbc8b11a83f6cd0ca999bd1ab7ad3a22e42888addc40cd145adc4edfe62fcfab4ebc91da22e4259aae441f95a77aee1a - languageName: node - linkType: hard - -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf - languageName: node - linkType: hard - -"bcrypt-pbkdf@npm:^1.0.0": - version: 1.0.2 - resolution: "bcrypt-pbkdf@npm:1.0.2" - dependencies: - tweetnacl: "npm:^0.14.3" - checksum: 10c0/ddfe85230b32df25aeebfdccfbc61d3bc493ace49c884c9c68575de1f5dcf733a5d7de9def3b0f318b786616b8d85bad50a28b1da1750c43e0012c93badcc148 - languageName: node - linkType: hard - -"bech32@npm:1.1.4, bech32@npm:^1.1.3": - version: 1.1.4 - resolution: "bech32@npm:1.1.4" - checksum: 10c0/5f62ca47b8df99ace9c0e0d8deb36a919d91bf40066700aaa9920a45f86bb10eb56d537d559416fd8703aa0fb60dddb642e58f049701e7291df678b2033e5ee5 - languageName: node - linkType: hard - -"big-integer@npm:1.6.36": - version: 1.6.36 - resolution: "big-integer@npm:1.6.36" - checksum: 10c0/6a8b1b46d903738a50479527c6fdd5ddea4ef98228e7c5f66ca04e32acb0a1f5e7793a35eb50e91c34e6453d4c94f99df4391973cd665b52923d0e2aeef6aa2f - languageName: node - linkType: hard - -"big.js@npm:^6.0.3": - version: 6.2.1 - resolution: "big.js@npm:6.2.1" - checksum: 10c0/87734c70e6c668f3bc29d84e99b8a97392debbea258d260419c847039d63251fddb8675019c751ceb54ae6fa5f796c5221c4c08526b316149b14ad78dc0d7db1 - languageName: node - linkType: hard - -"bignumber.js@npm:*, bignumber.js@npm:^9.0.0, bignumber.js@npm:^9.0.1": - version: 9.1.2 - resolution: "bignumber.js@npm:9.1.2" - checksum: 10c0/e17786545433f3110b868725c449fa9625366a6e675cd70eb39b60938d6adbd0158cb4b3ad4f306ce817165d37e63f4aa3098ba4110db1d9a3b9f66abfbaf10d - languageName: node - linkType: hard - -"bignumber.js@npm:^7.2.1": - version: 7.2.1 - resolution: "bignumber.js@npm:7.2.1" - checksum: 10c0/7e2cb10cdc1991696666b129f3b888c44a5e35bd3a5e990b2d2c934c7bc6863fb42b45fdea830484ca0d9e0b9a70d15e1d43fcd03a0e04326612b8e3ac76a0ae - languageName: node - linkType: hard - -"binary-extensions@npm:^2.0.0": - version: 2.3.0 - resolution: "binary-extensions@npm:2.3.0" - checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5 - languageName: node - linkType: hard - -"blakejs@npm:^1.1.0": - version: 1.2.1 - resolution: "blakejs@npm:1.2.1" - checksum: 10c0/c284557ce55b9c70203f59d381f1b85372ef08ee616a90162174d1291a45d3e5e809fdf9edab6e998740012538515152471dc4f1f9dbfa974ba2b9c1f7b9aad7 - languageName: node - linkType: hard - -"bluebird@npm:^3.4.7, bluebird@npm:^3.5.0, bluebird@npm:^3.5.2": - version: 3.7.2 - resolution: "bluebird@npm:3.7.2" - checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2 - languageName: node - linkType: hard - -"bn.js@npm:4.11.6": - version: 4.11.6 - resolution: "bn.js@npm:4.11.6" - checksum: 10c0/e6ee7d3f597f60722cc3361071e23ccf71d3387e166de02381f180f22d2fa79f5dbbdf9e4909e81faaf5da01c16ec6857ddff02678339ce085e2058fd0e405db - languageName: node - linkType: hard - -"bn.js@npm:^4.11.0, bn.js@npm:^4.11.6, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": - version: 4.12.0 - resolution: "bn.js@npm:4.12.0" - checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21 - languageName: node - linkType: hard - -"bn.js@npm:^5.1.2, bn.js@npm:^5.1.3, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": - version: 5.2.1 - resolution: "bn.js@npm:5.2.1" - checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa - languageName: node - linkType: hard - -"body-parser@npm:1.20.2, body-parser@npm:^1.16.0, body-parser@npm:^1.19.0": - version: 1.20.2 - resolution: "body-parser@npm:1.20.2" - dependencies: - bytes: "npm:3.1.2" - content-type: "npm:~1.0.5" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - on-finished: "npm:2.4.1" - qs: "npm:6.11.0" - raw-body: "npm:2.5.2" - type-is: "npm:~1.6.18" - unpipe: "npm:1.0.0" - checksum: 10c0/06f1438fff388a2e2354c96aa3ea8147b79bfcb1262dfcc2aae68ec13723d01d5781680657b74e9f83c808266d5baf52804032fbde2b7382b89bd8cdb273ace9 - languageName: node - linkType: hard - -"boolbase@npm:^1.0.0": - version: 1.0.0 - resolution: "boolbase@npm:1.0.0" - checksum: 10c0/e4b53deb4f2b85c52be0e21a273f2045c7b6a6ea002b0e139c744cb6f95e9ec044439a52883b0d74dedd1ff3da55ed140cfdddfed7fb0cccbed373de5dce1bcf - languageName: node - linkType: hard - -"boxen@npm:^5.1.2": - version: 5.1.2 - resolution: "boxen@npm:5.1.2" - dependencies: - ansi-align: "npm:^3.0.0" - camelcase: "npm:^6.2.0" - chalk: "npm:^4.1.0" - cli-boxes: "npm:^2.2.1" - string-width: "npm:^4.2.2" - type-fest: "npm:^0.20.2" - widest-line: "npm:^3.1.0" - wrap-ansi: "npm:^7.0.0" - checksum: 10c0/71f31c2eb3dcacd5fce524ae509e0cc90421752e0bfbd0281fd3352871d106c462a0f810c85f2fdb02f3a9fab2d7a84e9718b4999384d651b76104ebe5d2c024 - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: "npm:^1.0.0" - concat-map: "npm:0.0.1" - checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: "npm:^1.0.0" - checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f - languageName: node - linkType: hard - -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: "npm:^7.0.1" - checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 - languageName: node - linkType: hard - -"brorand@npm:^1.1.0": - version: 1.1.0 - resolution: "brorand@npm:1.1.0" - checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571 - languageName: node - linkType: hard - -"browser-stdout@npm:1.3.1": - version: 1.3.1 - resolution: "browser-stdout@npm:1.3.1" - checksum: 10c0/c40e482fd82be872b6ea7b9f7591beafbf6f5ba522fe3dade98ba1573a1c29a11101564993e4eb44e5488be8f44510af072df9a9637c739217eb155ceb639205 - languageName: node - linkType: hard - -"browserify-aes@npm:^1.2.0": - version: 1.2.0 - resolution: "browserify-aes@npm:1.2.0" - dependencies: - buffer-xor: "npm:^1.0.3" - cipher-base: "npm:^1.0.0" - create-hash: "npm:^1.1.0" - evp_bytestokey: "npm:^1.0.3" - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18 - languageName: node - linkType: hard - -"browserslist@npm:^4.22.2": - version: 4.23.0 - resolution: "browserslist@npm:4.23.0" - dependencies: - caniuse-lite: "npm:^1.0.30001587" - electron-to-chromium: "npm:^1.4.668" - node-releases: "npm:^2.0.14" - update-browserslist-db: "npm:^1.0.13" - bin: - browserslist: cli.js - checksum: 10c0/8e9cc154529062128d02a7af4d8adeead83ca1df8cd9ee65a88e2161039f3d68a4d40fea7353cab6bae4c16182dec2fdd9a1cf7dc2a2935498cee1af0e998943 - languageName: node - linkType: hard - -"bs58@npm:^4.0.0, bs58@npm:^4.0.1": - version: 4.0.1 - resolution: "bs58@npm:4.0.1" - dependencies: - base-x: "npm:^3.0.2" - checksum: 10c0/613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65 - languageName: node - linkType: hard - -"bs58check@npm:^2.1.2": - version: 2.1.2 - resolution: "bs58check@npm:2.1.2" - dependencies: - bs58: "npm:^4.0.0" - create-hash: "npm:^1.1.0" - safe-buffer: "npm:^5.1.2" - checksum: 10c0/5d33f319f0d7abbe1db786f13f4256c62a076bc8d184965444cb62ca4206b2c92bee58c93bce57150ffbbbe00c48838ac02e6f384e0da8215cac219c0556baa9 - languageName: node - linkType: hard - -"buffer-from@npm:1.1.2, buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 - languageName: node - linkType: hard - -"buffer-to-arraybuffer@npm:^0.0.5": - version: 0.0.5 - resolution: "buffer-to-arraybuffer@npm:0.0.5" - checksum: 10c0/0eea361112a67725e098796b931d931a279b8925cae906f07ed876fab4131e3a83073933a4a33b79d96251722a61c1b875b0ef1e04190734921b9e808a73978c - languageName: node - linkType: hard - -"buffer-xor@npm:^1.0.3": - version: 1.0.3 - resolution: "buffer-xor@npm:1.0.3" - checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c - languageName: node - linkType: hard - -"buffer@npm:6.0.3, buffer@npm:^6.0.3": - version: 6.0.3 - resolution: "buffer@npm:6.0.3" - dependencies: - base64-js: "npm:^1.3.1" - ieee754: "npm:^1.2.1" - checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 - languageName: node - linkType: hard - -"buffer@npm:^5.0.5, buffer@npm:^5.5.0, buffer@npm:^5.6.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: "npm:^1.3.1" - ieee754: "npm:^1.1.13" - checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e - languageName: node - linkType: hard - -"bufferutil@npm:4.0.5": - version: 4.0.5 - resolution: "bufferutil@npm:4.0.5" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10c0/307d1131dbfd01b1451585931db05bc83a5a94bb3f720f9ee2d8e1ce37d39b23251bce350b06152dba003ad4fbddc804fc94b3d5ce1f70e7871c6898ce3b4f7e - languageName: node - linkType: hard - -"bufferutil@npm:4.0.7": - version: 4.0.7 - resolution: "bufferutil@npm:4.0.7" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10c0/48d6cf98b9c227db65f0a1062b6c80e933c43dc03e0ad5f908da0e79cc87a633c215516f4d541ca9b0e09c1fb386f1bbe1fc2de913057f0201d14798d3e0c2bb - languageName: node - linkType: hard - -"bufferutil@npm:^4.0.1": - version: 4.0.8 - resolution: "bufferutil@npm:4.0.8" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10c0/36cdc5b53a38d9f61f89fdbe62029a2ebcd020599862253fefebe31566155726df9ff961f41b8c97b02b4c12b391ef97faf94e2383392654cf8f0ed68f76e47c - languageName: node - linkType: hard - -"bytes@npm:3.1.2": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e - languageName: node - linkType: hard - -"cacache@npm:^18.0.0": - version: 18.0.2 - resolution: "cacache@npm:18.0.2" - dependencies: - "@npmcli/fs": "npm:^3.1.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^10.2.2" - lru-cache: "npm:^10.0.1" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^2.0.1" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^4.0.0" - ssri: "npm:^10.0.0" - tar: "npm:^6.1.11" - unique-filename: "npm:^3.0.0" - checksum: 10c0/7992665305cc251a984f4fdbab1449d50e88c635bc43bf2785530c61d239c61b349e5734461baa461caaee65f040ab14e2d58e694f479c0810cffd181ba5eabc - languageName: node - linkType: hard - -"cacheable-lookup@npm:^5.0.3": - version: 5.0.4 - resolution: "cacheable-lookup@npm:5.0.4" - checksum: 10c0/a6547fb4954b318aa831cbdd2f7b376824bc784fb1fa67610e4147099e3074726072d9af89f12efb69121415a0e1f2918a8ddd4aafcbcf4e91fbeef4a59cd42c - languageName: node - linkType: hard - -"cacheable-lookup@npm:^6.0.4": - version: 6.1.0 - resolution: "cacheable-lookup@npm:6.1.0" - checksum: 10c0/fe922b24e9868ac65cbd3b4ccd7449063d572431471aab71cbca49a2b33839c7c888b237b0922ae6b8f4ddf25d61debe204e473195d2e77a835099b8953aeb0a - languageName: node - linkType: hard - -"cacheable-request@npm:^7.0.2": - version: 7.0.4 - resolution: "cacheable-request@npm:7.0.4" - dependencies: - clone-response: "npm:^1.0.2" - get-stream: "npm:^5.1.0" - http-cache-semantics: "npm:^4.0.0" - keyv: "npm:^4.0.0" - lowercase-keys: "npm:^2.0.0" - normalize-url: "npm:^6.0.1" - responselike: "npm:^2.0.0" - checksum: 10c0/0834a7d17ae71a177bc34eab06de112a43f9b5ad05ebe929bec983d890a7d9f2bc5f1aa8bb67ea2b65e07a3bc74bea35fa62dd36dbac52876afe36fdcf83da41 - languageName: node - linkType: hard - -"caching-transform@npm:^4.0.0": - version: 4.0.0 - resolution: "caching-transform@npm:4.0.0" - dependencies: - hasha: "npm:^5.0.0" - make-dir: "npm:^3.0.0" - package-hash: "npm:^4.0.0" - write-file-atomic: "npm:^3.0.0" - checksum: 10c0/7b33669dadfad292636578087a1aa7bcf9fbd60d6cbc67e8f288e3667397193c00bdac35bb84d34bd44fa9209405791fd3ab101c2126109e6eaaef1b899da759 - languageName: node - linkType: hard - -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" - dependencies: - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.4" - set-function-length: "npm:^1.2.1" - checksum: 10c0/a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 - languageName: node - linkType: hard - -"camel-case@npm:^3.0.0": - version: 3.0.0 - resolution: "camel-case@npm:3.0.0" - dependencies: - no-case: "npm:^2.2.0" - upper-case: "npm:^1.1.1" - checksum: 10c0/491c6bbf986b9d8355e12cca6beb719b44c2fe96e8526c09958a1b4e0dbb081a82ea59c13b5a6ccf9158ce5979cbe56a8a10d7322bfeed2d84725c6b89d8f934 - languageName: node - linkType: hard - -"camelcase@npm:^3.0.0": - version: 3.0.0 - resolution: "camelcase@npm:3.0.0" - checksum: 10c0/98871bb40b936430beca49490d325759f8d8ade32bea538ee63c20b17b326abb6bbd3e1d84daf63d9332b2fc7637f28696bf76da59180b1247051b955cb1da12 - languageName: node - linkType: hard - -"camelcase@npm:^4.1.0": - version: 4.1.0 - resolution: "camelcase@npm:4.1.0" - checksum: 10c0/54c0b6a85b54fb4e96a9d834a9d0d8f760fd608ab6752a6789042b5e1c38d3dd60f878d2c590d005046445d32d77f6e05e568a91fe8db3e282da0a1560d83058 - languageName: node - linkType: hard - -"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: 10c0/92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 - languageName: node - linkType: hard - -"camelcase@npm:^6.0.0, camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001587": - version: 1.0.30001603 - resolution: "caniuse-lite@npm:1.0.30001603" - checksum: 10c0/6564da28297a64e88302ddab0768fa72ff383213dd9c02bd113d14eeb22ba30fd00bc171bdbf4f6ff1159c138ed3b37ecc952f172d5153d6ab6118c572992374 - languageName: node - linkType: hard - -"caseless@npm:^0.12.0, caseless@npm:~0.12.0": - version: 0.12.0 - resolution: "caseless@npm:0.12.0" - checksum: 10c0/ccf64bcb6c0232cdc5b7bd91ddd06e23a4b541f138336d4725233ac538041fb2f29c2e86c3c4a7a61ef990b665348db23a047060b9414c3a6603e9fa61ad4626 - languageName: node - linkType: hard - -"catering@npm:^2.0.0, catering@npm:^2.1.0": - version: 2.1.1 - resolution: "catering@npm:2.1.1" - checksum: 10c0/a69f946f82cba85509abcb399759ed4c39d2cc9e33ba35674f242130c1b3c56673da3c3e85804db6898dfd966c395aa128ba484b31c7b906cc2faca6a581e133 - languageName: node - linkType: hard - -"cbor@npm:^5.2.0": - version: 5.2.0 - resolution: "cbor@npm:5.2.0" - dependencies: - bignumber.js: "npm:^9.0.1" - nofilter: "npm:^1.0.4" - checksum: 10c0/d39e14a05930648c6446b107aee3653e1b1ce8195dd121cb65790d9091202d8d98af0e4c17787f38bbc33fadc969ca99c94b40c144b84ce1e406a7f411c3ccf4 - languageName: node - linkType: hard - -"cbor@npm:^8.1.0": - version: 8.1.0 - resolution: "cbor@npm:8.1.0" - dependencies: - nofilter: "npm:^3.1.0" - checksum: 10c0/a836e2e7ea0efb1b9c4e5a4be906c57113d730cc42293a34072e0164ed110bb8ac035dc7dca2e3ebb641bd4b37e00fdbbf09c951aa864b3d4888a6ed8c6243f7 - languageName: node - linkType: hard - -"chai-as-promised@npm:^7.1.1": - version: 7.1.1 - resolution: "chai-as-promised@npm:7.1.1" - dependencies: - check-error: "npm:^1.0.2" - peerDependencies: - chai: ">= 2.1.2 < 5" - checksum: 10c0/e25a602c3a8cd0b97ce6b0c7ddaaf4bd8517941da9f44dc65262c5268ea463f634dc495cdef6a21eaeffdb5022b6f4c3781027b8308273b7fff089c605abf6aa - languageName: node - linkType: hard - -"chai@npm:^4.2.0, chai@npm:^4.4.1": - version: 4.4.1 - resolution: "chai@npm:4.4.1" - dependencies: - assertion-error: "npm:^1.1.0" - check-error: "npm:^1.0.3" - deep-eql: "npm:^4.1.3" - get-func-name: "npm:^2.0.2" - loupe: "npm:^2.3.6" - pathval: "npm:^1.1.1" - type-detect: "npm:^4.0.8" - checksum: 10c0/91590a8fe18bd6235dece04ccb2d5b4ecec49984b50924499bdcd7a95c02cb1fd2a689407c19bb854497bde534ef57525cfad6c7fdd2507100fd802fbc2aefbd - languageName: node - linkType: hard - -"chalk@npm:^2.3.2, chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 - languageName: node - linkType: hard - -"change-case@npm:3.0.2": - version: 3.0.2 - resolution: "change-case@npm:3.0.2" - dependencies: - camel-case: "npm:^3.0.0" - constant-case: "npm:^2.0.0" - dot-case: "npm:^2.1.0" - header-case: "npm:^1.0.0" - is-lower-case: "npm:^1.1.0" - is-upper-case: "npm:^1.1.0" - lower-case: "npm:^1.1.1" - lower-case-first: "npm:^1.0.0" - no-case: "npm:^2.3.2" - param-case: "npm:^2.1.0" - pascal-case: "npm:^2.0.0" - path-case: "npm:^2.1.0" - sentence-case: "npm:^2.1.0" - snake-case: "npm:^2.1.0" - swap-case: "npm:^1.1.0" - title-case: "npm:^2.1.0" - upper-case: "npm:^1.1.1" - upper-case-first: "npm:^1.1.0" - checksum: 10c0/c9c8aca5ce5e543e046a18ab47bf31201db253e5e851f5a01592420a53d8f71084d4487aa184359c5d0075ea93466c626ee0c7ba14390ed211464c27b6caa479 - languageName: node - linkType: hard - -"charenc@npm:>= 0.0.1": - version: 0.0.2 - resolution: "charenc@npm:0.0.2" - checksum: 10c0/a45ec39363a16799d0f9365c8dd0c78e711415113c6f14787a22462ef451f5013efae8a28f1c058f81fc01f2a6a16955f7a5fd0cd56247ce94a45349c89877d8 - languageName: node - linkType: hard - -"check-error@npm:^1.0.2, check-error@npm:^1.0.3": - version: 1.0.3 - resolution: "check-error@npm:1.0.3" - dependencies: - get-func-name: "npm:^2.0.2" - checksum: 10c0/94aa37a7315c0e8a83d0112b5bfb5a8624f7f0f81057c73e4707729cdd8077166c6aefb3d8e2b92c63ee130d4a2ff94bad46d547e12f3238cc1d78342a973841 - languageName: node - linkType: hard - -"cheerio-select@npm:^2.1.0": - version: 2.1.0 - resolution: "cheerio-select@npm:2.1.0" - dependencies: - boolbase: "npm:^1.0.0" - css-select: "npm:^5.1.0" - css-what: "npm:^6.1.0" - domelementtype: "npm:^2.3.0" - domhandler: "npm:^5.0.3" - domutils: "npm:^3.0.1" - checksum: 10c0/2242097e593919dba4aacb97d7b8275def8b9ec70b00aa1f43335456870cfc9e284eae2080bdc832ed232dabb9eefcf56c722d152da4a154813fb8814a55d282 - languageName: node - linkType: hard - -"cheerio@npm:^1.0.0-rc.2": - version: 1.0.0-rc.12 - resolution: "cheerio@npm:1.0.0-rc.12" - dependencies: - cheerio-select: "npm:^2.1.0" - dom-serializer: "npm:^2.0.0" - domhandler: "npm:^5.0.3" - domutils: "npm:^3.0.1" - htmlparser2: "npm:^8.0.1" - parse5: "npm:^7.0.0" - parse5-htmlparser2-tree-adapter: "npm:^7.0.0" - checksum: 10c0/c85d2f2461e3f024345b78e0bb16ad8e41492356210470dd1e7d5a91391da9fcf6c0a7cb48a9ba8820330153f0cedb4d0a60c7af15d96ecdb3092299b9d9c0cc - languageName: node - linkType: hard - -"chokidar@npm:3.5.3": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 10c0/1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 - languageName: node - linkType: hard - -"chokidar@npm:^3.4.0": - version: 3.6.0 - resolution: "chokidar@npm:3.6.0" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 - languageName: node - linkType: hard - -"chownr@npm:^1.1.4": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 - languageName: node - linkType: hard - -"ci-info@npm:^2.0.0": - version: 2.0.0 - resolution: "ci-info@npm:2.0.0" - checksum: 10c0/8c5fa3830a2bcee2b53c2e5018226f0141db9ec9f7b1e27a5c57db5512332cde8a0beb769bcbaf0d8775a78afbf2bb841928feca4ea6219638a5b088f9884b46 - languageName: node - linkType: hard - -"cids@npm:^0.7.1": - version: 0.7.5 - resolution: "cids@npm:0.7.5" - dependencies: - buffer: "npm:^5.5.0" - class-is: "npm:^1.1.0" - multibase: "npm:~0.6.0" - multicodec: "npm:^1.0.0" - multihashes: "npm:~0.4.15" - checksum: 10c0/8fc7a14a2c2b302e3e76051fa7936150b24c0da681438ed036390c8fbcb78df5af20a3f73a35b7fc93305c633e595691399abf44a1c33fe4834544f2737d99ae - languageName: node - linkType: hard - -"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": - version: 1.0.4 - resolution: "cipher-base@npm:1.0.4" - dependencies: - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b - languageName: node - linkType: hard - -"class-is@npm:^1.1.0": - version: 1.1.0 - resolution: "class-is@npm:1.1.0" - checksum: 10c0/07241182c379a630c1841e99cd2301f0492d8f973f111f13b4487231f7cc28a1f1166670ce2dfcab91449155e6e107379eb9d15ba140e749a11d4fcba3883f52 - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 - languageName: node - linkType: hard - -"cli-boxes@npm:^2.2.1": - version: 2.2.1 - resolution: "cli-boxes@npm:2.2.1" - checksum: 10c0/6111352edbb2f62dbc7bfd58f2d534de507afed7f189f13fa894ce5a48badd94b2aa502fda28f1d7dd5f1eb456e7d4033d09a76660013ef50c7f66e7a034f050 - languageName: node - linkType: hard - -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: "npm:^3.1.0" - checksum: 10c0/92a2f98ff9037d09be3dfe1f0d749664797fb674bf388375a2207a1203b69d41847abf16434203e0089212479e47a358b13a0222ab9fccfe8e2644a7ccebd111 - languageName: node - linkType: hard - -"cli-table3@npm:^0.5.0": - version: 0.5.1 - resolution: "cli-table3@npm:0.5.1" - dependencies: - colors: "npm:^1.1.2" - object-assign: "npm:^4.1.0" - string-width: "npm:^2.1.1" - dependenciesMeta: - colors: - optional: true - checksum: 10c0/659c40ead17539d0665aa9dea85a7650fc161939f9d8bd3842c6cf5da51dc867057d3066fe8c962dafa163da39ce2029357754aee2c8f9513ea7a0810511d1d6 - languageName: node - linkType: hard - -"cliui@npm:^3.2.0": - version: 3.2.0 - resolution: "cliui@npm:3.2.0" - dependencies: - string-width: "npm:^1.0.1" - strip-ansi: "npm:^3.0.1" - wrap-ansi: "npm:^2.0.0" - checksum: 10c0/07b121fac7fd33ff8dbf3523f0d3dca0329d4e457e57dee54502aa5f27a33cbd9e66aa3e248f0260d8a1431b65b2bad8f510cd97fb8ab6a8e0506310a92e18d5 - languageName: node - linkType: hard - -"cliui@npm:^6.0.0": - version: 6.0.0 - resolution: "cliui@npm:6.0.0" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.0" - wrap-ansi: "npm:^6.2.0" - checksum: 10c0/35229b1bb48647e882104cac374c9a18e34bbf0bace0e2cf03000326b6ca3050d6b59545d91e17bfe3705f4a0e2988787aa5cde6331bf5cbbf0164732cef6492 - languageName: node - linkType: hard - -"cliui@npm:^7.0.2": - version: 7.0.4 - resolution: "cliui@npm:7.0.4" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.0" - wrap-ansi: "npm:^7.0.0" - checksum: 10c0/6035f5daf7383470cef82b3d3db00bec70afb3423538c50394386ffbbab135e26c3689c41791f911fa71b62d13d3863c712fdd70f0fbdffd938a1e6fd09aac00 - languageName: node - linkType: hard - -"clone-buffer@npm:1.0.0": - version: 1.0.0 - resolution: "clone-buffer@npm:1.0.0" - checksum: 10c0/d813f4d12651bc4951d5e4869e2076d34ccfc3b23d0aae4e2e20e5a5e97bc7edbba84038356d222c54b25e3a83b5f45e8b637c18c6bd1794b2f1b49114122c50 - languageName: node - linkType: hard - -"clone-response@npm:^1.0.2": - version: 1.0.3 - resolution: "clone-response@npm:1.0.3" - dependencies: - mimic-response: "npm:^1.0.0" - checksum: 10c0/06a2b611824efb128810708baee3bd169ec9a1bf5976a5258cd7eb3f7db25f00166c6eee5961f075c7e38e194f373d4fdf86b8166ad5b9c7e82bbd2e333a6087 - languageName: node - linkType: hard - -"code-point-at@npm:^1.0.0": - version: 1.1.0 - resolution: "code-point-at@npm:1.1.0" - checksum: 10c0/33f6b234084e46e6e369b6f0b07949392651b4dde70fc6a592a8d3dafa08d5bb32e3981a02f31f6fc323a26bc03a4c063a9d56834848695bda7611c2417ea2e6 - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0, color-convert@npm:^1.9.3": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: "npm:~1.1.4" - checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 - languageName: node - linkType: hard - -"color-name@npm:^1.0.0, color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 - languageName: node - linkType: hard - -"color-string@npm:^1.6.0": - version: 1.9.1 - resolution: "color-string@npm:1.9.1" - dependencies: - color-name: "npm:^1.0.0" - simple-swizzle: "npm:^0.2.2" - checksum: 10c0/b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404 - languageName: node - linkType: hard - -"color@npm:^3.1.3": - version: 3.2.1 - resolution: "color@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.3" - color-string: "npm:^1.6.0" - checksum: 10c0/39345d55825884c32a88b95127d417a2c24681d8b57069413596d9fcbb721459ef9d9ec24ce3e65527b5373ce171b73e38dbcd9c830a52a6487e7f37bf00e83c - languageName: node - linkType: hard - -"colors@npm:1.4.0, colors@npm:^1.1.2": - version: 1.4.0 - resolution: "colors@npm:1.4.0" - checksum: 10c0/9af357c019da3c5a098a301cf64e3799d27549d8f185d86f79af23069e4f4303110d115da98483519331f6fb71c8568d5688fa1c6523600044fd4a54e97c4efb - languageName: node - linkType: hard - -"colorspace@npm:1.1.x": - version: 1.1.4 - resolution: "colorspace@npm:1.1.4" - dependencies: - color: "npm:^3.1.3" - text-hex: "npm:1.0.x" - checksum: 10c0/af5f91ff7f8e146b96e439ac20ed79b197210193bde721b47380a75b21751d90fa56390c773bb67c0aedd34ff85091883a437ab56861c779bd507d639ba7e123 - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: "npm:~1.0.0" - checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 - languageName: node - linkType: hard - -"command-exists@npm:^1.2.8": - version: 1.2.9 - resolution: "command-exists@npm:1.2.9" - checksum: 10c0/75040240062de46cd6cd43e6b3032a8b0494525c89d3962e280dde665103f8cc304a8b313a5aa541b91da2f5a9af75c5959dc3a77893a2726407a5e9a0234c16 - languageName: node - linkType: hard - -"command-line-args@npm:^5.1.1": - version: 5.2.1 - resolution: "command-line-args@npm:5.2.1" - dependencies: - array-back: "npm:^3.1.0" - find-replace: "npm:^3.0.0" - lodash.camelcase: "npm:^4.3.0" - typical: "npm:^4.0.0" - checksum: 10c0/a4f6a23a1e420441bd1e44dee24efd12d2e49af7efe6e21eb32fca4e843ca3d5501ddebad86a4e9d99aa626dd6dcb64c04a43695388be54e3a803dbc326cc89f - languageName: node - linkType: hard - -"command-line-usage@npm:^6.1.0": - version: 6.1.3 - resolution: "command-line-usage@npm:6.1.3" - dependencies: - array-back: "npm:^4.0.2" - chalk: "npm:^2.4.2" - table-layout: "npm:^1.0.2" - typical: "npm:^5.2.0" - checksum: 10c0/23d7577ccb6b6c004e67bb6a9a8cb77282ae7b7507ae92249a9548a39050b7602fef70f124c765000ab23b8f7e0fb7a3352419ab73ea42a2d9ea32f520cdfe9e - languageName: node - linkType: hard - -"commander@npm:3.0.2": - version: 3.0.2 - resolution: "commander@npm:3.0.2" - checksum: 10c0/8a279b4bacde68f03664086260ccb623122d2bdae6f380a41c9e06b646e830372c30a4b88261238550e0ad69d53f7af8883cb705d8237fdd22947e84913b149c - languageName: node - linkType: hard - -"commander@npm:^2.20.3": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 - languageName: node - linkType: hard - -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6 - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f - languageName: node - linkType: hard - -"concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.2": - version: 1.6.2 - resolution: "concat-stream@npm:1.6.2" - dependencies: - buffer-from: "npm:^1.0.0" - inherits: "npm:^2.0.3" - readable-stream: "npm:^2.2.2" - typedarray: "npm:^0.0.6" - checksum: 10c0/2e9864e18282946dabbccb212c5c7cec0702745e3671679eb8291812ca7fd12023f7d8cb36493942a62f770ac96a7f90009dc5c82ad69893438371720fa92617 - languageName: node - linkType: hard - -"conf@npm:^10.1.2": - version: 10.2.0 - resolution: "conf@npm:10.2.0" - dependencies: - ajv: "npm:^8.6.3" - ajv-formats: "npm:^2.1.1" - atomically: "npm:^1.7.0" - debounce-fn: "npm:^4.0.0" - dot-prop: "npm:^6.0.1" - env-paths: "npm:^2.2.1" - json-schema-typed: "npm:^7.0.3" - onetime: "npm:^5.1.2" - pkg-up: "npm:^3.1.0" - semver: "npm:^7.3.5" - checksum: 10c0/d608d8c54ba7fad368eac640e77f2ce0334ec27cfd62ac39f44e361af8af9915eaa6c2ada81fbc25c3219273d972b4868bc752e8e2116cb6e12d35df72dc25a4 - languageName: node - linkType: hard - -"constant-case@npm:^2.0.0": - version: 2.0.0 - resolution: "constant-case@npm:2.0.0" - dependencies: - snake-case: "npm:^2.1.0" - upper-case: "npm:^1.1.1" - checksum: 10c0/795142a64dd61da267e937502a1ce060abdbc42d4f68367d08f1de34fc06a1db240ac09658275122f8e171448b19a4645b023ee8229803def1a11559e80b6132 - languageName: node - linkType: hard - -"content-disposition@npm:0.5.4": - version: 0.5.4 - resolution: "content-disposition@npm:0.5.4" - dependencies: - safe-buffer: "npm:5.2.1" - checksum: 10c0/bac0316ebfeacb8f381b38285dc691c9939bf0a78b0b7c2d5758acadad242d04783cee5337ba7d12a565a19075af1b3c11c728e1e4946de73c6ff7ce45f3f1bb - languageName: node - linkType: hard - -"content-hash@npm:^2.5.2": - version: 2.5.2 - resolution: "content-hash@npm:2.5.2" - dependencies: - cids: "npm:^0.7.1" - multicodec: "npm:^0.5.5" - multihashes: "npm:^0.4.15" - checksum: 10c0/107463b574365cf0dc07711bb6fdc2b613ef631fee2245bb77f507057e91d52e8e28faf2f4c092bfff918eb7ae8eb226b75cae4320721138126ec9925a500228 - languageName: node - linkType: hard - -"content-type@npm:~1.0.4, content-type@npm:~1.0.5": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af - languageName: node - linkType: hard - -"convert-source-map@npm:^1.7.0": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b - languageName: node - linkType: hard - -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b - languageName: node - linkType: hard - -"cookie-signature@npm:1.0.6": - version: 1.0.6 - resolution: "cookie-signature@npm:1.0.6" - checksum: 10c0/b36fd0d4e3fef8456915fcf7742e58fbfcc12a17a018e0eb9501c9d5ef6893b596466f03b0564b81af29ff2538fd0aa4b9d54fe5ccbfb4c90ea50ad29fe2d221 - languageName: node - linkType: hard - -"cookie@npm:0.6.0": - version: 0.6.0 - resolution: "cookie@npm:0.6.0" - checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686 - languageName: node - linkType: hard - -"cookie@npm:^0.4.1": - version: 0.4.2 - resolution: "cookie@npm:0.4.2" - checksum: 10c0/beab41fbd7c20175e3a2799ba948c1dcc71ef69f23fe14eeeff59fc09f50c517b0f77098db87dbb4c55da802f9d86ee86cdc1cd3efd87760341551838d53fca2 - languageName: node - linkType: hard - -"core-util-is@npm:1.0.2": - version: 1.0.2 - resolution: "core-util-is@npm:1.0.2" - checksum: 10c0/980a37a93956d0de8a828ce508f9b9e3317039d68922ca79995421944146700e4aaf490a6dbfebcb1c5292a7184600c7710b957d724be1e37b8254c6bc0fe246 - languageName: node - linkType: hard - -"core-util-is@npm:~1.0.0": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9 - languageName: node - linkType: hard - -"cors@npm:^2.8.1, cors@npm:^2.8.5": - version: 2.8.5 - resolution: "cors@npm:2.8.5" - dependencies: - object-assign: "npm:^4" - vary: "npm:^1" - checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 - languageName: node - linkType: hard - -"crc-32@npm:^1.2.0, crc-32@npm:^1.2.2": - version: 1.2.2 - resolution: "crc-32@npm:1.2.2" - bin: - crc32: bin/crc32.njs - checksum: 10c0/11dcf4a2e77ee793835d49f2c028838eae58b44f50d1ff08394a610bfd817523f105d6ae4d9b5bef0aad45510f633eb23c903e9902e4409bed1ce70cb82b9bf0 - languageName: node - linkType: hard - -"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": - version: 1.2.0 - resolution: "create-hash@npm:1.2.0" - dependencies: - cipher-base: "npm:^1.0.1" - inherits: "npm:^2.0.1" - md5.js: "npm:^1.3.4" - ripemd160: "npm:^2.0.1" - sha.js: "npm:^2.4.0" - checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915 - languageName: node - linkType: hard - -"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": - version: 1.1.7 - resolution: "create-hmac@npm:1.1.7" - dependencies: - cipher-base: "npm:^1.0.3" - create-hash: "npm:^1.1.0" - inherits: "npm:^2.0.1" - ripemd160: "npm:^2.0.0" - safe-buffer: "npm:^5.0.1" - sha.js: "npm:^2.4.8" - checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835 - languageName: node - linkType: hard - -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 - languageName: node - linkType: hard - -"cross-fetch@npm:^3.1.4": - version: 3.1.8 - resolution: "cross-fetch@npm:3.1.8" - dependencies: - node-fetch: "npm:^2.6.12" - checksum: 10c0/4c5e022ffe6abdf380faa6e2373c0c4ed7ef75e105c95c972b6f627c3f083170b6886f19fb488a7fa93971f4f69dcc890f122b0d97f0bf5f41ca1d9a8f58c8af - languageName: node - linkType: hard - -"cross-fetch@npm:^4.0.0": - version: 4.0.0 - resolution: "cross-fetch@npm:4.0.0" - dependencies: - node-fetch: "npm:^2.6.12" - checksum: 10c0/386727dc4c6b044746086aced959ff21101abb85c43df5e1d151547ccb6f338f86dec3f28b9dbddfa8ff5b9ec8662ed2263ad4607a93b2dc354fb7fe3bbb898a - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: "npm:^3.1.0" - shebang-command: "npm:^2.0.0" - which: "npm:^2.0.1" - checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 - languageName: node - linkType: hard - -"crypt@npm:>= 0.0.1": - version: 0.0.2 - resolution: "crypt@npm:0.0.2" - checksum: 10c0/adbf263441dd801665d5425f044647533f39f4612544071b1471962209d235042fb703c27eea2795c7c53e1dfc242405173003f83cf4f4761a633d11f9653f18 - languageName: node - linkType: hard - -"crypto-addr-codec@npm:^0.1.7": - version: 0.1.8 - resolution: "crypto-addr-codec@npm:0.1.8" - dependencies: - base-x: "npm:^3.0.8" - big-integer: "npm:1.6.36" - blakejs: "npm:^1.1.0" - bs58: "npm:^4.0.1" - ripemd160-min: "npm:0.0.6" - safe-buffer: "npm:^5.2.0" - sha3: "npm:^2.1.1" - checksum: 10c0/c043a29dae14b5639cf336265c807cda654d3ca7f306c8cd32949c35a6ac8a78ecf48409a026c9e2b7f0672f2917fd1d99fee8e666e788dc65569e7c22fd51dd - languageName: node - linkType: hard - -"css-select@npm:^5.1.0": - version: 5.1.0 - resolution: "css-select@npm:5.1.0" - dependencies: - boolbase: "npm:^1.0.0" - css-what: "npm:^6.1.0" - domhandler: "npm:^5.0.2" - domutils: "npm:^3.0.1" - nth-check: "npm:^2.0.1" - checksum: 10c0/551c60dba5b54054741032c1793b5734f6ba45e23ae9e82761a3c0ed1acbb8cfedfa443aaba3a3c1a54cac12b456d2012a09d2cd5f0e82e430454c1b9d84d500 - languageName: node - linkType: hard - -"css-what@npm:^6.1.0": - version: 6.1.0 - resolution: "css-what@npm:6.1.0" - checksum: 10c0/a09f5a6b14ba8dcf57ae9a59474722e80f20406c53a61e9aedb0eedc693b135113ffe2983f4efc4b5065ae639442e9ae88df24941ef159c218b231011d733746 - languageName: node - linkType: hard - -"cssfilter@npm:0.0.10": - version: 0.0.10 - resolution: "cssfilter@npm:0.0.10" - checksum: 10c0/478a227a616fb6e9bb338eb95f690df141b86231ec737cbea574484f31a09a51db894b4921afc4987459dae08d584355fd689ff2a7a7c7a74de4bb4c072ce553 - languageName: node - linkType: hard - -"d@npm:1, d@npm:^1.0.1, d@npm:^1.0.2": - version: 1.0.2 - resolution: "d@npm:1.0.2" - dependencies: - es5-ext: "npm:^0.10.64" - type: "npm:^2.7.2" - checksum: 10c0/3e6ede10cd3b77586c47da48423b62bed161bf1a48bdbcc94d87263522e22f5dfb0e678a6dba5323fdc14c5d8612b7f7eb9e7d9e37b2e2d67a7bf9f116dabe5a - languageName: node - linkType: hard - -"dashdash@npm:^1.12.0": - version: 1.14.1 - resolution: "dashdash@npm:1.14.1" - dependencies: - assert-plus: "npm:^1.0.0" - checksum: 10c0/64589a15c5bd01fa41ff7007e0f2c6552c5ef2028075daa16b188a3721f4ba001841bf306dfc2eee6e2e6e7f76b38f5f17fb21fa847504192290ffa9e150118a - languageName: node - linkType: hard - -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583 - languageName: node - linkType: hard - -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2 - languageName: node - linkType: hard - -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f - languageName: node - linkType: hard - -"dataloader@npm:2.1.0": - version: 2.1.0 - resolution: "dataloader@npm:2.1.0" - checksum: 10c0/91749b97c6cf218874aecc57116defbe28eb5dd102a2a6e292e084939f725d123dd49c186796069492a77eb105ff2aabae9c8b144cf82f92c1f673eb1abff7da - languageName: node - linkType: hard - -"death@npm:^1.1.0": - version: 1.1.0 - resolution: "death@npm:1.1.0" - checksum: 10c0/4cf8ec37728b99cd18566e605b4c967eedaeeb1533a3003cb88cbc69e6fe1787393b21bfa8c26045222f4e7dd75044eaf6b4c566b67da84ecb81717a7e3ca391 - languageName: node - linkType: hard - -"debounce-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "debounce-fn@npm:4.0.0" - dependencies: - mimic-fn: "npm:^3.0.0" - checksum: 10c0/bcbd8eb253bdb6ee2f32759c95973c62bc479e74efbe1a44e17acfb0ea7d4bcbe615bf7e34aab80247ac08669c1ab72f7da0f384ceb7f15c18333d31d9030384 - languageName: node - linkType: hard - -"debug@npm:2.6.9, debug@npm:^2.2.0": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589 - languageName: node - linkType: hard - -"debug@npm:3.1.0": - version: 3.1.0 - resolution: "debug@npm:3.1.0" - dependencies: - ms: "npm:2.0.0" - checksum: 10c0/5bff34a352d7b2eaa31886eeaf2ee534b5461ec0548315b2f9f80bd1d2533cab7df1fa52e130ce27bc31c3945fbffb0fc72baacdceb274b95ce853db89254ea4 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: "npm:2.1.2" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 - languageName: node - linkType: hard - -"debug@npm:^3.1.0, debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: "npm:^2.1.1" - checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a - languageName: node - linkType: hard - -"decamelize@npm:^1.1.1, decamelize@npm:^1.2.0": - version: 1.2.0 - resolution: "decamelize@npm:1.2.0" - checksum: 10c0/85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2 - languageName: node - linkType: hard - -"decamelize@npm:^4.0.0": - version: 4.0.0 - resolution: "decamelize@npm:4.0.0" - checksum: 10c0/e06da03fc05333e8cd2778c1487da67ffbea5b84e03ca80449519b8fa61f888714bbc6f459ea963d5641b4aa98832130eb5cd193d90ae9f0a27eee14be8e278d - languageName: node - linkType: hard - -"decode-uri-component@npm:^0.2.0": - version: 0.2.2 - resolution: "decode-uri-component@npm:0.2.2" - checksum: 10c0/1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31 - languageName: node - linkType: hard - -"decompress-response@npm:^3.3.0": - version: 3.3.0 - resolution: "decompress-response@npm:3.3.0" - dependencies: - mimic-response: "npm:^1.0.0" - checksum: 10c0/5ffaf1d744277fd51c68c94ddc3081cd011b10b7de06637cccc6ecba137d45304a09ba1a776dee1c47fccc60b4a056c4bc74468eeea798ff1f1fca0024b45c9d - languageName: node - linkType: hard - -"decompress-response@npm:^6.0.0": - version: 6.0.0 - resolution: "decompress-response@npm:6.0.0" - dependencies: - mimic-response: "npm:^3.1.0" - checksum: 10c0/bd89d23141b96d80577e70c54fb226b2f40e74a6817652b80a116d7befb8758261ad073a8895648a29cc0a5947021ab66705cb542fa9c143c82022b27c5b175e - languageName: node - linkType: hard - -"deep-eql@npm:^4.0.1, deep-eql@npm:^4.1.3": - version: 4.1.3 - resolution: "deep-eql@npm:4.1.3" - dependencies: - type-detect: "npm:^4.0.0" - checksum: 10c0/ff34e8605d8253e1bf9fe48056e02c6f347b81d9b5df1c6650a1b0f6f847b4a86453b16dc226b34f853ef14b626e85d04e081b022e20b00cd7d54f079ce9bbdd - languageName: node - linkType: hard - -"deep-extend@npm:~0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 10c0/1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566 - languageName: node - linkType: hard - -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c - languageName: node - linkType: hard - -"default-require-extensions@npm:^3.0.0": - version: 3.0.1 - resolution: "default-require-extensions@npm:3.0.1" - dependencies: - strip-bom: "npm:^4.0.0" - checksum: 10c0/5ca376cb527d9474336ad76dd302d06367a7163379dda26558258de26f85861e696d0b7bb19ee3c6b8456bb7c95cdc0e4e4d45c2aa487e61b2d3b60d80c10648 - languageName: node - linkType: hard - -"defer-to-connect@npm:^2.0.0, defer-to-connect@npm:^2.0.1": - version: 2.0.1 - resolution: "defer-to-connect@npm:2.0.1" - checksum: 10c0/625ce28e1b5ad10cf77057b9a6a727bf84780c17660f6644dab61dd34c23de3001f03cedc401f7d30a4ed9965c2e8a7336e220a329146f2cf85d4eddea429782 - languageName: node - linkType: hard - -"deferred-leveldown@npm:~5.3.0": - version: 5.3.0 - resolution: "deferred-leveldown@npm:5.3.0" - dependencies: - abstract-leveldown: "npm:~6.2.1" - inherits: "npm:^2.0.3" - checksum: 10c0/b1021314bfd5875b10e4c8c69429a69d37affc79df53aedf3c18a4bcd7460619220fa6b1bc309bcd85851c2c9c2b4da6cb03127abc08b715ff56da8aeae6b74f - languageName: node - linkType: hard - -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": - version: 1.1.4 - resolution: "define-data-property@npm:1.1.4" - dependencies: - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - gopd: "npm:^1.0.1" - checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": - version: 1.2.1 - resolution: "define-properties@npm:1.2.1" - dependencies: - define-data-property: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.0" - object-keys: "npm:^1.1.1" - checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 - languageName: node - linkType: hard - -"delay@npm:^5.0.0": - version: 5.0.0 - resolution: "delay@npm:5.0.0" - checksum: 10c0/01cdc4cd0cd35fb622518a3df848e67e09763a38e7cdada2232b6fda9ddda72eddcf74f0e24211200fbe718434f2335f2a2633875a6c96037fefa6de42896ad7 - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 - languageName: node - linkType: hard - -"depd@npm:2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: 10c0/58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c - languageName: node - linkType: hard - -"destroy@npm:1.2.0": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 - languageName: node - linkType: hard - -"detect-indent@npm:^5.0.0": - version: 5.0.0 - resolution: "detect-indent@npm:5.0.0" - checksum: 10c0/58d985dd5b4d5e5aad6fe7d8ecc74538fa92c807c894794b8505569e45651bf01a38755b65d9d3d17e512239a26d3131837cbef43cf4226968d5abf175bbcc9d - languageName: node - linkType: hard - -"diff@npm:5.0.0": - version: 5.0.0 - resolution: "diff@npm:5.0.0" - checksum: 10c0/08c5904779bbababcd31f1707657b1ad57f8a9b65e6f88d3fb501d09a965d5f8d73066898a7d3f35981f9e4101892c61d99175d421f3b759533213c253d91134 - languageName: node - linkType: hard - -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 - languageName: node - linkType: hard - -"difflib@npm:^0.2.4": - version: 0.2.4 - resolution: "difflib@npm:0.2.4" - dependencies: - heap: "npm:>= 0.2.0" - checksum: 10c0/4b151f1f6d378b0837ef28f4706d89d05b78f1093253b06c975c621f7ef8b048978588baf9e8f284c64b133d0abb08303b0789519cc91e5180d420cb3bb99c05 - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: "npm:^4.0.0" - checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c - languageName: node - linkType: hard - -"doctrine@npm:^2.1.0": - version: 2.1.0 - resolution: "doctrine@npm:2.1.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10c0/b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac - languageName: node - linkType: hard - -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 - languageName: node - linkType: hard - -"dom-serializer@npm:^2.0.0": - version: 2.0.0 - resolution: "dom-serializer@npm:2.0.0" - dependencies: - domelementtype: "npm:^2.3.0" - domhandler: "npm:^5.0.2" - entities: "npm:^4.2.0" - checksum: 10c0/d5ae2b7110ca3746b3643d3ef60ef823f5f078667baf530cec096433f1627ec4b6fa8c072f09d079d7cda915fd2c7bc1b7b935681e9b09e591e1e15f4040b8e2 - languageName: node - linkType: hard - -"dom-walk@npm:^0.1.0": - version: 0.1.2 - resolution: "dom-walk@npm:0.1.2" - checksum: 10c0/4d2ad9062a9423d890f8577aa202b597a6b85f9489bdde656b9443901b8b322b289655c3affefc58ec2e41931e0828dfee0a1d2db6829a607d76def5901fc5a9 - languageName: node - linkType: hard - -"domelementtype@npm:^2.3.0": - version: 2.3.0 - resolution: "domelementtype@npm:2.3.0" - checksum: 10c0/686f5a9ef0fff078c1412c05db73a0dce096190036f33e400a07e2a4518e9f56b1e324f5c576a0a747ef0e75b5d985c040b0d51945ce780c0dd3c625a18cd8c9 - languageName: node - linkType: hard - -"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": - version: 5.0.3 - resolution: "domhandler@npm:5.0.3" - dependencies: - domelementtype: "npm:^2.3.0" - checksum: 10c0/bba1e5932b3e196ad6862286d76adc89a0dbf0c773e5ced1eb01f9af930c50093a084eff14b8de5ea60b895c56a04d5de8bbc4930c5543d029091916770b2d2a - languageName: node - linkType: hard - -"domutils@npm:^3.0.1": - version: 3.1.0 - resolution: "domutils@npm:3.1.0" - dependencies: - dom-serializer: "npm:^2.0.0" - domelementtype: "npm:^2.3.0" - domhandler: "npm:^5.0.3" - checksum: 10c0/342d64cf4d07b8a0573fb51e0a6312a88fb520c7fefd751870bf72fa5fc0f2e0cb9a3958a573610b1d608c6e2a69b8e9b4b40f0bfb8f87a71bce4f180cca1887 - languageName: node - linkType: hard - -"dot-case@npm:^2.1.0": - version: 2.1.1 - resolution: "dot-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - checksum: 10c0/6859ba3bfe3106388c05eba9bec709856bbc9917d2c081aed5d268a2afc73b03bc062ea19925e29bdd482f6a8c032ae7a7d73f75c12d4159978e809b9418f7ef - languageName: node - linkType: hard - -"dot-prop@npm:^6.0.1": - version: 6.0.1 - resolution: "dot-prop@npm:6.0.1" - dependencies: - is-obj: "npm:^2.0.0" - checksum: 10c0/30e51ec6408978a6951b21e7bc4938aad01a86f2fdf779efe52330205c6bb8a8ea12f35925c2029d6dc9d1df22f916f32f828ce1e9b259b1371c580541c22b5a - languageName: node - linkType: hard - -"dotenv@npm:^16.4.5": - version: 16.4.5 - resolution: "dotenv@npm:16.4.5" - checksum: 10c0/48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f - languageName: node - linkType: hard - -"double-ended-queue@npm:2.1.0-0": - version: 2.1.0-0 - resolution: "double-ended-queue@npm:2.1.0-0" - checksum: 10c0/9a412a556b3646e1a4667eaf201b1b8c210926a5ca943c819df7dfa7622cb1636c7ec4de388b48248d44cca799071ea05ca2bd76048d3f7671324ce84e58722f - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 - languageName: node - linkType: hard - -"ecc-jsbn@npm:~0.1.1": - version: 0.1.2 - resolution: "ecc-jsbn@npm:0.1.2" - dependencies: - jsbn: "npm:~0.1.0" - safer-buffer: "npm:^2.1.0" - checksum: 10c0/6cf168bae1e2dad2e46561d9af9cbabfbf5ff592176ad4e9f0f41eaaf5fe5e10bb58147fe0a804de62b1ee9dad42c28810c88d652b21b6013c47ba8efa274ca1 - languageName: node - linkType: hard - -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 10c0/b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7 - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.668": - version: 1.4.723 - resolution: "electron-to-chromium@npm:1.4.723" - checksum: 10c0/336131ee6433df3f7f453aca872ef218ac8aed3bd1a4e3426ba940683157ece6ab5bf059c92d42d223f9a46b5137904167aa1c4525511fcfdb3b3df24b80575a - languageName: node - linkType: hard - -"elliptic@npm:6.5.4": - version: 6.5.4 - resolution: "elliptic@npm:6.5.4" - dependencies: - bn.js: "npm:^4.11.9" - brorand: "npm:^1.1.0" - hash.js: "npm:^1.0.0" - hmac-drbg: "npm:^1.0.1" - inherits: "npm:^2.0.4" - minimalistic-assert: "npm:^1.0.1" - minimalistic-crypto-utils: "npm:^1.0.1" - checksum: 10c0/5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2 - languageName: node - linkType: hard - -"elliptic@npm:^6.4.0, elliptic@npm:^6.5.2, elliptic@npm:^6.5.4": - version: 6.5.5 - resolution: "elliptic@npm:6.5.5" - dependencies: - bn.js: "npm:^4.11.9" - brorand: "npm:^1.1.0" - hash.js: "npm:^1.0.0" - hmac-drbg: "npm:^1.0.1" - inherits: "npm:^2.0.4" - minimalistic-assert: "npm:^1.0.1" - minimalistic-crypto-utils: "npm:^1.0.1" - checksum: 10c0/3e591e93783a1b66f234ebf5bd3a8a9a8e063a75073a35a671e03e3b25253b6e33ac121f7efe9b8808890fffb17b40596cc19d01e6e8d1fa13b9a56ff65597c8 - languageName: node - linkType: hard - -"emittery@npm:0.10.0": - version: 0.10.0 - resolution: "emittery@npm:0.10.0" - checksum: 10c0/c2ad40e5bab53094070f7cb9d1b9a26fbbba6ab4b952cf5f33b8f64032356767c80c5aec2523aa7e44940c1cdb4f125d06a9cffd489a9be65103bb8a16ce173b - languageName: node - linkType: hard - -"emittery@npm:^0.4.1": - version: 0.4.1 - resolution: "emittery@npm:0.4.1" - checksum: 10c0/9301d8e328c1e3684d03306979e55eb5e1312bdf81dcacd72c563e9188067bc6d5c49c60d99354cf2820026c520c6330094f11c27ad2c34e0e0d96e57f95b881 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 - languageName: node - linkType: hard - -"enabled@npm:2.0.x": - version: 2.0.0 - resolution: "enabled@npm:2.0.0" - checksum: 10c0/3b2c2af9bc7f8b9e291610f2dde4a75cf6ee52a68f4dd585482fbdf9a55d65388940e024e56d40bb03e05ef6671f5f53021fa8b72a20e954d7066ec28166713f - languageName: node - linkType: hard - -"encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: 10c0/f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec - languageName: node - linkType: hard - -"encoding-down@npm:^6.3.0": - version: 6.3.0 - resolution: "encoding-down@npm:6.3.0" - dependencies: - abstract-leveldown: "npm:^6.2.1" - inherits: "npm:^2.0.3" - level-codec: "npm:^9.0.0" - level-errors: "npm:^2.0.0" - checksum: 10c0/f7e92149863863c11e04d71ceb71baa1772270dc9ef15cbdbb155fed0a7d31c823682e043af3100f96ce8ab2e0a70a2464c1fa4902d4dce9a0584498f40d07bf - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 - languageName: node - linkType: hard - -"end-of-stream@npm:^1.1.0": - version: 1.4.4 - resolution: "end-of-stream@npm:1.4.4" - dependencies: - once: "npm:^1.4.0" - checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 - languageName: node - linkType: hard - -"end-stream@npm:~0.1.0": - version: 0.1.0 - resolution: "end-stream@npm:0.1.0" - dependencies: - write-stream: "npm:~0.4.3" - checksum: 10c0/947e52851d5a7bd005e7776507958ee1d9bb3a71a31412961226608333137819e50a18a1fe0cd418de50a7ab07bd5257dcf1807746bb1811d2a2acc8eb645071 - languageName: node - linkType: hard - -"enquirer@npm:^2.3.0": - version: 2.4.1 - resolution: "enquirer@npm:2.4.1" - dependencies: - ansi-colors: "npm:^4.1.1" - strip-ansi: "npm:^6.0.1" - checksum: 10c0/43850479d7a51d36a9c924b518dcdc6373b5a8ae3401097d336b7b7e258324749d0ad37a1fcaa5706f04799baa05585cd7af19ebdf7667673e7694435fcea918 - languageName: node - linkType: hard - -"entities@npm:^4.2.0, entities@npm:^4.4.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 - languageName: node - linkType: hard - -"errno@npm:~0.1.1": - version: 0.1.8 - resolution: "errno@npm:0.1.8" - dependencies: - prr: "npm:~1.0.1" - bin: - errno: cli.js - checksum: 10c0/83758951967ec57bf00b5f5b7dc797e6d65a6171e57ea57adcf1bd1a0b477fd9b5b35fae5be1ff18f4090ed156bce1db749fe7e317aac19d485a5d150f6a4936 - languageName: node - linkType: hard - -"error-ex@npm:^1.2.0": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: "npm:^0.2.1" - checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce - languageName: node - linkType: hard - -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2": - version: 1.23.3 - resolution: "es-abstract@npm:1.23.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - arraybuffer.prototype.slice: "npm:^1.0.3" - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - data-view-buffer: "npm:^1.0.1" - data-view-byte-length: "npm:^1.0.1" - data-view-byte-offset: "npm:^1.0.0" - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-set-tostringtag: "npm:^2.0.3" - es-to-primitive: "npm:^1.2.1" - function.prototype.name: "npm:^1.1.6" - get-intrinsic: "npm:^1.2.4" - get-symbol-description: "npm:^1.0.2" - globalthis: "npm:^1.0.3" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.0.3" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.2" - internal-slot: "npm:^1.0.7" - is-array-buffer: "npm:^3.0.4" - is-callable: "npm:^1.2.7" - is-data-view: "npm:^1.0.1" - is-negative-zero: "npm:^2.0.3" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.3" - is-string: "npm:^1.0.7" - is-typed-array: "npm:^1.1.13" - is-weakref: "npm:^1.0.2" - object-inspect: "npm:^1.13.1" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.5" - regexp.prototype.flags: "npm:^1.5.2" - safe-array-concat: "npm:^1.1.2" - safe-regex-test: "npm:^1.0.3" - string.prototype.trim: "npm:^1.2.9" - string.prototype.trimend: "npm:^1.0.8" - string.prototype.trimstart: "npm:^1.0.8" - typed-array-buffer: "npm:^1.0.2" - typed-array-byte-length: "npm:^1.0.1" - typed-array-byte-offset: "npm:^1.0.2" - typed-array-length: "npm:^1.0.6" - unbox-primitive: "npm:^1.0.2" - which-typed-array: "npm:^1.1.15" - checksum: 10c0/d27e9afafb225c6924bee9971a7f25f20c314f2d6cb93a63cada4ac11dcf42040896a6c22e5fb8f2a10767055ed4ddf400be3b1eb12297d281726de470b75666 - languageName: node - linkType: hard - -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" - dependencies: - get-intrinsic: "npm:^1.2.4" - checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4 - languageName: node - linkType: hard - -"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": - version: 1.3.0 - resolution: "es-errors@npm:1.3.0" - checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 - languageName: node - linkType: hard - -"es-object-atoms@npm:^1.0.0": - version: 1.0.0 - resolution: "es-object-atoms@npm:1.0.0" - dependencies: - es-errors: "npm:^1.3.0" - checksum: 10c0/1fed3d102eb27ab8d983337bb7c8b159dd2a1e63ff833ec54eea1311c96d5b08223b433060ba240541ca8adba9eee6b0a60cdbf2f80634b784febc9cc8b687b4 - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.0.3": - version: 2.0.3 - resolution: "es-set-tostringtag@npm:2.0.3" - dependencies: - get-intrinsic: "npm:^1.2.4" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.1" - checksum: 10c0/f22aff1585eb33569c326323f0b0d175844a1f11618b86e193b386f8be0ea9474cfbe46df39c45d959f7aa8f6c06985dc51dd6bce5401645ec5a74c4ceaa836a - languageName: node - linkType: hard - -"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" - dependencies: - hasown: "npm:^2.0.0" - checksum: 10c0/f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783 - languageName: node - linkType: hard - -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" - dependencies: - is-callable: "npm:^1.1.4" - is-date-object: "npm:^1.0.1" - is-symbol: "npm:^1.0.2" - checksum: 10c0/0886572b8dc075cb10e50c0af62a03d03a68e1e69c388bd4f10c0649ee41b1fbb24840a1b7e590b393011b5cdbe0144b776da316762653685432df37d6de60f1 - languageName: node - linkType: hard - -"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50, es5-ext@npm:^0.10.62, es5-ext@npm:^0.10.64, es5-ext@npm:~0.10.14": - version: 0.10.64 - resolution: "es5-ext@npm:0.10.64" - dependencies: - es6-iterator: "npm:^2.0.3" - es6-symbol: "npm:^3.1.3" - esniff: "npm:^2.0.1" - next-tick: "npm:^1.1.0" - checksum: 10c0/4459b6ae216f3c615db086e02437bdfde851515a101577fd61b19f9b3c1ad924bab4d197981eb7f0ccb915f643f2fc10ff76b97a680e96cbb572d15a27acd9a3 - languageName: node - linkType: hard - -"es6-error@npm:^4.0.1": - version: 4.1.1 - resolution: "es6-error@npm:4.1.1" - checksum: 10c0/357663fb1e845c047d548c3d30f86e005db71e122678f4184ced0693f634688c3f3ef2d7de7d4af732f734de01f528b05954e270f06aa7d133679fb9fe6600ef - languageName: node - linkType: hard - -"es6-iterator@npm:^2.0.3": - version: 2.0.3 - resolution: "es6-iterator@npm:2.0.3" - dependencies: - d: "npm:1" - es5-ext: "npm:^0.10.35" - es6-symbol: "npm:^3.1.1" - checksum: 10c0/91f20b799dba28fb05bf623c31857fc1524a0f1c444903beccaf8929ad196c8c9ded233e5ac7214fc63a92b3f25b64b7f2737fcca8b1f92d2d96cf3ac902f5d8 - languageName: node - linkType: hard - -"es6-promise@npm:^4.2.8": - version: 4.2.8 - resolution: "es6-promise@npm:4.2.8" - checksum: 10c0/2373d9c5e9a93bdd9f9ed32ff5cb6dd3dd785368d1c21e9bbbfd07d16345b3774ae260f2bd24c8f836a6903f432b4151e7816a7fa8891ccb4e1a55a028ec42c3 - languageName: node - linkType: hard - -"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": - version: 3.1.4 - resolution: "es6-symbol@npm:3.1.4" - dependencies: - d: "npm:^1.0.2" - ext: "npm:^1.7.0" - checksum: 10c0/777bf3388db5d7919e09a0fd175aa5b8a62385b17cb2227b7a137680cba62b4d9f6193319a102642aa23d5840d38a62e4784f19cfa5be4a2210a3f0e9b23d15d - languageName: node - linkType: hard - -"escalade@npm:^3.1.1": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 - languageName: node - linkType: hard - -"escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 - languageName: node - linkType: hard - -"escape-string-regexp@npm:4.0.0, escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 - languageName: node - linkType: hard - -"escodegen@npm:1.8.x": - version: 1.8.1 - resolution: "escodegen@npm:1.8.1" - dependencies: - esprima: "npm:^2.7.1" - estraverse: "npm:^1.9.1" - esutils: "npm:^2.0.2" - optionator: "npm:^0.8.1" - source-map: "npm:~0.2.0" - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: ./bin/escodegen.js - esgenerate: ./bin/esgenerate.js - checksum: 10c0/ac19704975bb22e20f04d0da8b4586c11e302fd9fb48bbf945c5b9c0fd01dc85ed25975b6eaba733047e9cc7e57a4bb95c39820843d1f8f55daf88be02398d8f - languageName: node - linkType: hard - -"eslint-config-prettier@npm:^9.1.0": - version: 9.1.0 - resolution: "eslint-config-prettier@npm:9.1.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 10c0/6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d - languageName: node - linkType: hard - -"eslint-import-resolver-node@npm:^0.3.9": - version: 0.3.9 - resolution: "eslint-import-resolver-node@npm:0.3.9" - dependencies: - debug: "npm:^3.2.7" - is-core-module: "npm:^2.13.0" - resolve: "npm:^1.22.4" - checksum: 10c0/0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61 - languageName: node - linkType: hard - -"eslint-module-utils@npm:^2.8.0": - version: 2.8.1 - resolution: "eslint-module-utils@npm:2.8.1" - dependencies: - debug: "npm:^3.2.7" - peerDependenciesMeta: - eslint: - optional: true - checksum: 10c0/1aeeb97bf4b688d28de136ee57c824480c37691b40fa825c711a4caf85954e94b99c06ac639d7f1f6c1d69223bd21bcb991155b3e589488e958d5b83dfd0f882 - languageName: node - linkType: hard - -"eslint-plugin-import@npm:^2.29.1": - version: 2.29.1 - resolution: "eslint-plugin-import@npm:2.29.1" - dependencies: - array-includes: "npm:^3.1.7" - array.prototype.findlastindex: "npm:^1.2.3" - array.prototype.flat: "npm:^1.3.2" - array.prototype.flatmap: "npm:^1.3.2" - debug: "npm:^3.2.7" - doctrine: "npm:^2.1.0" - eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.8.0" - hasown: "npm:^2.0.0" - is-core-module: "npm:^2.13.1" - is-glob: "npm:^4.0.3" - minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.7" - object.groupby: "npm:^1.0.1" - object.values: "npm:^1.1.7" - semver: "npm:^6.3.1" - tsconfig-paths: "npm:^3.15.0" - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 10c0/5f35dfbf4e8e67f741f396987de9504ad125c49f4144508a93282b4ea0127e052bde65ab6def1f31b6ace6d5d430be698333f75bdd7dca3bc14226c92a083196 - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^5.1.3": - version: 5.1.3 - resolution: "eslint-plugin-prettier@npm:5.1.3" - dependencies: - prettier-linter-helpers: "npm:^1.0.0" - synckit: "npm:^0.8.6" - peerDependencies: - "@types/eslint": ">=8.0.0" - eslint: ">=8.0.0" - eslint-config-prettier: "*" - prettier: ">=3.0.0" - peerDependenciesMeta: - "@types/eslint": - optional: true - eslint-config-prettier: - optional: true - checksum: 10c0/f45d5fc1fcfec6b0cf038a7a65ddd10a25df4fe3f9e1f6b7f0d5100e66f046a26a2492e69ee765dddf461b93c114cf2e1eb18d4970aafa6f385448985c136e09 - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 - languageName: node - linkType: hard - -"eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" - "@humanwhocodes/module-importer": "npm:^1.0.1" - "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" - ajv: "npm:^6.12.4" - chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" - debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" - escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - esquery: "npm:^1.4.2" - esutils: "npm:^2.0.2" - fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" - find-up: "npm:^5.0.0" - glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - imurmurhash: "npm:^0.1.4" - is-glob: "npm:^4.0.0" - is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - levn: "npm:^0.4.1" - lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.9.3" - strip-ansi: "npm:^6.0.1" - text-table: "npm:^0.2.0" - bin: - eslint: bin/eslint.js - checksum: 10c0/00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529 - languageName: node - linkType: hard - -"esniff@npm:^2.0.1": - version: 2.0.1 - resolution: "esniff@npm:2.0.1" - dependencies: - d: "npm:^1.0.1" - es5-ext: "npm:^0.10.62" - event-emitter: "npm:^0.3.5" - type: "npm:^2.7.2" - checksum: 10c0/7efd8d44ac20e5db8cb0ca77eb65eca60628b2d0f3a1030bcb05e71cc40e6e2935c47b87dba3c733db12925aa5b897f8e0e7a567a2c274206f184da676ea2e65 - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: "npm:^8.9.0" - acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 - languageName: node - linkType: hard - -"esprima@npm:2.7.x, esprima@npm:^2.7.1": - version: 2.7.3 - resolution: "esprima@npm:2.7.3" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: 10c0/6e1e99f280eed2ecd521ae28217c5f7c7a03fd0a1ac913bffd4a4ba278caf32cb8d9fc01e41d4b4bc904617282873dea297d60e1f93ea20156f29994c348a04f - languageName: node - linkType: hard - -"esprima@npm:^4.0.0": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" - dependencies: - estraverse: "npm:^5.1.0" - checksum: 10c0/a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: "npm:^5.2.0" - checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 - languageName: node - linkType: hard - -"estraverse@npm:^1.9.1": - version: 1.9.3 - resolution: "estraverse@npm:1.9.3" - checksum: 10c0/2477bab0c5cdc7534162fbb16b25282c49f434875227937726692ed105762403e9830324cc97c3ea8bf332fe91122ea321f4d4292aaf50db7a90d857e169719e - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 - languageName: node - linkType: hard - -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 - languageName: node - linkType: hard - -"etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 10c0/12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 - languageName: node - linkType: hard - -"eth-ens-namehash@npm:2.0.8, eth-ens-namehash@npm:^2.0.0, eth-ens-namehash@npm:^2.0.8": - version: 2.0.8 - resolution: "eth-ens-namehash@npm:2.0.8" - dependencies: - idna-uts46-hx: "npm:^2.3.1" - js-sha3: "npm:^0.5.7" - checksum: 10c0/b0b60e5bdc8b0fc5a5cdf6011d221f1fdae8a2ac80775fec3f2d61db62470e57a6fcd7455fc8b2af532c86e0946d6611077ae3e30c7afd331f686e3cd7cc0977 - languageName: node - linkType: hard - -"eth-gas-reporter@npm:^0.2.25": - version: 0.2.27 - resolution: "eth-gas-reporter@npm:0.2.27" - dependencies: - "@solidity-parser/parser": "npm:^0.14.0" - axios: "npm:^1.5.1" - cli-table3: "npm:^0.5.0" - colors: "npm:1.4.0" - ethereum-cryptography: "npm:^1.0.3" - ethers: "npm:^5.7.2" - fs-readdir-recursive: "npm:^1.1.0" - lodash: "npm:^4.17.14" - markdown-table: "npm:^1.1.3" - mocha: "npm:^10.2.0" - req-cwd: "npm:^2.0.0" - sha1: "npm:^1.1.1" - sync-request: "npm:^6.0.0" - peerDependencies: - "@codechecks/client": ^0.1.0 - peerDependenciesMeta: - "@codechecks/client": - optional: true - checksum: 10c0/62a7b8ea41d82731fe91a7741eb2362f08d55e0fece1c12e69effe1684933999961d97d1011037a54063fda20c33a61ef143f04b7ccef36c3002f40975b0415f - languageName: node - linkType: hard - -"eth-lib@npm:0.2.8": - version: 0.2.8 - resolution: "eth-lib@npm:0.2.8" - dependencies: - bn.js: "npm:^4.11.6" - elliptic: "npm:^6.4.0" - xhr-request-promise: "npm:^0.1.2" - checksum: 10c0/5c4fc31acc0f690f5dffcbaa6130faed55f1395dc1b367cb5899e69baa5b21296889d1c24523e05a97815222ded297381f1cbac96bb8cdeec2a85dbd6cb2fa20 - languageName: node - linkType: hard - -"eth-lib@npm:^0.1.26": - version: 0.1.29 - resolution: "eth-lib@npm:0.1.29" - dependencies: - bn.js: "npm:^4.11.6" - elliptic: "npm:^6.4.0" - nano-json-stream-parser: "npm:^0.1.2" - servify: "npm:^0.1.12" - ws: "npm:^3.0.0" - xhr-request-promise: "npm:^0.1.2" - checksum: 10c0/8759dffa412dce728620413d5a9d063b175c33bded2a5749f48b4433b1751fbb0cf03c7dbe7081e77eb805c613a5e1aea6a3b11669128202150622d6cb98c37d - languageName: node - linkType: hard - -"ethereum-bloom-filters@npm:^1.0.6": - version: 1.0.10 - resolution: "ethereum-bloom-filters@npm:1.0.10" - dependencies: - js-sha3: "npm:^0.8.0" - checksum: 10c0/ae70b0b0b6d83beece65638a634818f0bd1d00d7a4447e17b83797f4d8db4c49491b57119c5ed081c008fb766bb8f230f3603187fd6649d58a8cf3b9aa91549c - languageName: node - linkType: hard - -"ethereum-cryptography@npm:0.1.3, ethereum-cryptography@npm:^0.1.3": - version: 0.1.3 - resolution: "ethereum-cryptography@npm:0.1.3" - dependencies: - "@types/pbkdf2": "npm:^3.0.0" - "@types/secp256k1": "npm:^4.0.1" - blakejs: "npm:^1.1.0" - browserify-aes: "npm:^1.2.0" - bs58check: "npm:^2.1.2" - create-hash: "npm:^1.2.0" - create-hmac: "npm:^1.1.7" - hash.js: "npm:^1.1.7" - keccak: "npm:^3.0.0" - pbkdf2: "npm:^3.0.17" - randombytes: "npm:^2.1.0" - safe-buffer: "npm:^5.1.2" - scrypt-js: "npm:^3.0.0" - secp256k1: "npm:^4.0.1" - setimmediate: "npm:^1.0.5" - checksum: 10c0/aa36e11fca9d67d67c96e02a98b33bae2e1add20bd11af43feb7f28cdafe0cd3bdbae3bfecc7f2d9ec8f504b10a1c8f7590f5f7fe236560fd8083dd321ad7144 - languageName: node - linkType: hard - -"ethereum-cryptography@npm:^1.0.3": - version: 1.2.0 - resolution: "ethereum-cryptography@npm:1.2.0" - dependencies: - "@noble/hashes": "npm:1.2.0" - "@noble/secp256k1": "npm:1.7.1" - "@scure/bip32": "npm:1.1.5" - "@scure/bip39": "npm:1.1.1" - checksum: 10c0/93e486a4a8b266dc2f274b69252e751345ef47551163371939b01231afb7b519133e2572b5975bb9cb4cc77ac54ccd36002c7c759a72488abeeaf216e4d55b46 - languageName: node - linkType: hard - -"ethereum-cryptography@npm:^2.0.0, ethereum-cryptography@npm:^2.1.2": - version: 2.1.3 - resolution: "ethereum-cryptography@npm:2.1.3" - dependencies: - "@noble/curves": "npm:1.3.0" - "@noble/hashes": "npm:1.3.3" - "@scure/bip32": "npm:1.3.3" - "@scure/bip39": "npm:1.2.2" - checksum: 10c0/a2f25ad5ffa44b4364b1540a57969ee6f1dd820aa08a446f40f31203fef54a09442a6c099e70e7c1485922f6391c4c45b90f2c401e04d88ac9cc4611b05e606f - languageName: node - linkType: hard - -"ethereum-ens@npm:^0.8.0": - version: 0.8.0 - resolution: "ethereum-ens@npm:0.8.0" - dependencies: - bluebird: "npm:^3.4.7" - eth-ens-namehash: "npm:^2.0.0" - js-sha3: "npm:^0.5.7" - pako: "npm:^1.0.4" - underscore: "npm:^1.8.3" - web3: "npm:^1.0.0-beta.34" - checksum: 10c0/a4dc5db9ca2cf9cfc88af9c5240e64ea46fab0d37e82563c870f25401da5292ca7e4baf5a57a229a898911872a72b8921f9e34536a8f72b8a755c87e007a0dc2 - languageName: node - linkType: hard - -"ethereumjs-abi@npm:^0.6.8": - version: 0.6.8 - resolution: "ethereumjs-abi@npm:0.6.8" - dependencies: - bn.js: "npm:^4.11.8" - ethereumjs-util: "npm:^6.0.0" - checksum: 10c0/a7ff1917625e3c812cb3bca6c1231fc0ece282cc7d202d60545a9c31cd379fd751bfed5ff78dae4279cb1ba4d0e8967f9fdd4f135a334a38dbf04e7afd0c4bcf - languageName: node - linkType: hard - -"ethereumjs-util@npm:^6.0.0, ethereumjs-util@npm:^6.2.1": - version: 6.2.1 - resolution: "ethereumjs-util@npm:6.2.1" - dependencies: - "@types/bn.js": "npm:^4.11.3" - bn.js: "npm:^4.11.0" - create-hash: "npm:^1.1.2" - elliptic: "npm:^6.5.2" - ethereum-cryptography: "npm:^0.1.3" - ethjs-util: "npm:0.1.6" - rlp: "npm:^2.2.3" - checksum: 10c0/64aa7e6d591a0b890eb147c5d81f80a6456e87b3056e6bbafb54dff63f6ae9e646406763e8bd546c3b0b0162d027aecb3844873e894681826b03e0298f57e7a4 - languageName: node - linkType: hard - -"ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.1, ethereumjs-util@npm:^7.1.2, ethereumjs-util@npm:^7.1.4, ethereumjs-util@npm:^7.1.5": - version: 7.1.5 - resolution: "ethereumjs-util@npm:7.1.5" - dependencies: - "@types/bn.js": "npm:^5.1.0" - bn.js: "npm:^5.1.2" - create-hash: "npm:^1.1.2" - ethereum-cryptography: "npm:^0.1.3" - rlp: "npm:^2.2.4" - checksum: 10c0/8b9487f35ecaa078bf9af6858eba6855fc61c73cc2b90c8c37486fcf94faf4fc1c5cda9758e6769f9ef2658daedaf2c18b366312ac461f8c8a122b392e3041eb - languageName: node - linkType: hard - -"ethers@npm:^4.0.0-beta.1, ethers@npm:^4.0.32": - version: 4.0.49 - resolution: "ethers@npm:4.0.49" - dependencies: - aes-js: "npm:3.0.0" - bn.js: "npm:^4.11.9" - elliptic: "npm:6.5.4" - hash.js: "npm:1.1.3" - js-sha3: "npm:0.5.7" - scrypt-js: "npm:2.0.4" - setimmediate: "npm:1.0.4" - uuid: "npm:2.0.1" - xmlhttprequest: "npm:1.8.0" - checksum: 10c0/c2d6e659faca917469f95c1384db6717ad56fd386183b220907ab4fd31c7b8f649ec5975679245a482c9cfb63f2f796c014d465a0538cc2525b0f7b701753002 - languageName: node - linkType: hard - -"ethers@npm:^5.0.13, ethers@npm:^5.7.2": - version: 5.7.2 - resolution: "ethers@npm:5.7.2" - dependencies: - "@ethersproject/abi": "npm:5.7.0" - "@ethersproject/abstract-provider": "npm:5.7.0" - "@ethersproject/abstract-signer": "npm:5.7.0" - "@ethersproject/address": "npm:5.7.0" - "@ethersproject/base64": "npm:5.7.0" - "@ethersproject/basex": "npm:5.7.0" - "@ethersproject/bignumber": "npm:5.7.0" - "@ethersproject/bytes": "npm:5.7.0" - "@ethersproject/constants": "npm:5.7.0" - "@ethersproject/contracts": "npm:5.7.0" - "@ethersproject/hash": "npm:5.7.0" - "@ethersproject/hdnode": "npm:5.7.0" - "@ethersproject/json-wallets": "npm:5.7.0" - "@ethersproject/keccak256": "npm:5.7.0" - "@ethersproject/logger": "npm:5.7.0" - "@ethersproject/networks": "npm:5.7.1" - "@ethersproject/pbkdf2": "npm:5.7.0" - "@ethersproject/properties": "npm:5.7.0" - "@ethersproject/providers": "npm:5.7.2" - "@ethersproject/random": "npm:5.7.0" - "@ethersproject/rlp": "npm:5.7.0" - "@ethersproject/sha2": "npm:5.7.0" - "@ethersproject/signing-key": "npm:5.7.0" - "@ethersproject/solidity": "npm:5.7.0" - "@ethersproject/strings": "npm:5.7.0" - "@ethersproject/transactions": "npm:5.7.0" - "@ethersproject/units": "npm:5.7.0" - "@ethersproject/wallet": "npm:5.7.0" - "@ethersproject/web": "npm:5.7.1" - "@ethersproject/wordlists": "npm:5.7.0" - checksum: 10c0/90629a4cdb88cde7a7694f5610a83eb00d7fbbaea687446b15631397988f591c554dd68dfa752ddf00aabefd6285e5b298be44187e960f5e4962684e10b39962 - languageName: node - linkType: hard - -"ethers@npm:^6.11.1": - version: 6.11.1 - resolution: "ethers@npm:6.11.1" - dependencies: - "@adraffy/ens-normalize": "npm:1.10.1" - "@noble/curves": "npm:1.2.0" - "@noble/hashes": "npm:1.3.2" - "@types/node": "npm:18.15.13" - aes-js: "npm:4.0.0-beta.5" - tslib: "npm:2.4.0" - ws: "npm:8.5.0" - checksum: 10c0/97a920e0244ba6cd1622b58a448c87f26dad20bad242777abb2e583d045bf7752218477bd7367ba6518c2a5e2b16030afff15e87b705526d0ea667498c27ac89 - languageName: node - linkType: hard - -"ethjs-unit@npm:0.1.6": - version: 0.1.6 - resolution: "ethjs-unit@npm:0.1.6" - dependencies: - bn.js: "npm:4.11.6" - number-to-bn: "npm:1.7.0" - checksum: 10c0/0115ddeb4bc932026b9cd259f6eb020a45b38be62e3786526b70e4c5fb0254184bf6e8b7b3f0c8bb80d4d596a73893e386c02221faf203895db7cb9c29b37188 - languageName: node - linkType: hard - -"ethjs-util@npm:0.1.6, ethjs-util@npm:^0.1.6": - version: 0.1.6 - resolution: "ethjs-util@npm:0.1.6" - dependencies: - is-hex-prefixed: "npm:1.0.0" - strip-hex-prefix: "npm:1.0.0" - checksum: 10c0/9b4d6268705fd0620e73a56d2fa7b8a7c6b9770b2cf7f8ffe3a9c46b8bd1c5a08fff3d1181bb18cf85cf12b6fdbb6dca6d9aff6506005f3f565e742f026e6339 - languageName: node - linkType: hard - -"event-emitter@npm:^0.3.5": - version: 0.3.5 - resolution: "event-emitter@npm:0.3.5" - dependencies: - d: "npm:1" - es5-ext: "npm:~0.10.14" - checksum: 10c0/75082fa8ffb3929766d0f0a063bfd6046bd2a80bea2666ebaa0cfd6f4a9116be6647c15667bea77222afc12f5b4071b68d393cf39fdaa0e8e81eda006160aff0 - languageName: node - linkType: hard - -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b - languageName: node - linkType: hard - -"eventemitter3@npm:4.0.4": - version: 4.0.4 - resolution: "eventemitter3@npm:4.0.4" - checksum: 10c0/2a7e5c4f605e7d0ab96addcf0d98cddfadb242ea6e3504dc5c91b6b0aa411df086d8de8a8b75978d117573d106929c8d0cb94b089e7768dfb0de4e6bf07be73d - languageName: node - linkType: hard - -"eventemitter3@npm:^5.0.1": - version: 5.0.1 - resolution: "eventemitter3@npm:5.0.1" - checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 - languageName: node - linkType: hard - -"evp_bytestokey@npm:^1.0.3": - version: 1.0.3 - resolution: "evp_bytestokey@npm:1.0.3" - dependencies: - md5.js: "npm:^1.3.4" - node-gyp: "npm:latest" - safe-buffer: "npm:^5.1.1" - checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99 - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 - languageName: node - linkType: hard - -"express@npm:^4.14.0, express@npm:^4.17.1": - version: 4.19.2 - resolution: "express@npm:4.19.2" - dependencies: - accepts: "npm:~1.3.8" - array-flatten: "npm:1.1.1" - body-parser: "npm:1.20.2" - content-disposition: "npm:0.5.4" - content-type: "npm:~1.0.4" - cookie: "npm:0.6.0" - cookie-signature: "npm:1.0.6" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - finalhandler: "npm:1.2.0" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - merge-descriptors: "npm:1.0.1" - methods: "npm:~1.1.2" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.7" - proxy-addr: "npm:~2.0.7" - qs: "npm:6.11.0" - range-parser: "npm:~1.2.1" - safe-buffer: "npm:5.2.1" - send: "npm:0.18.0" - serve-static: "npm:1.15.0" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - type-is: "npm:~1.6.18" - utils-merge: "npm:1.0.1" - vary: "npm:~1.1.2" - checksum: 10c0/e82e2662ea9971c1407aea9fc3c16d6b963e55e3830cd0ef5e00b533feda8b770af4e3be630488ef8a752d7c75c4fcefb15892868eeaafe7353cb9e3e269fdcb - languageName: node - linkType: hard - -"ext@npm:^1.7.0": - version: 1.7.0 - resolution: "ext@npm:1.7.0" - dependencies: - type: "npm:^2.7.2" - checksum: 10c0/a8e5f34e12214e9eee3a4af3b5c9d05ba048f28996450975b369fc86e5d0ef13b6df0615f892f5396a9c65d616213c25ec5b0ad17ef42eac4a500512a19da6c7 - languageName: node - linkType: hard - -"extend@npm:~3.0.2": - version: 3.0.2 - resolution: "extend@npm:3.0.2" - checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 - languageName: node - linkType: hard - -"extsprintf@npm:1.3.0": - version: 1.3.0 - resolution: "extsprintf@npm:1.3.0" - checksum: 10c0/f75114a8388f0cbce68e277b6495dc3930db4dde1611072e4a140c24e204affd77320d004b947a132e9a3b97b8253017b2b62dce661975fb0adced707abf1ab5 - languageName: node - linkType: hard - -"extsprintf@npm:^1.2.0": - version: 1.4.1 - resolution: "extsprintf@npm:1.4.1" - checksum: 10c0/e10e2769985d0e9b6c7199b053a9957589d02e84de42832c295798cb422a025e6d4a92e0259c1fb4d07090f5bfde6b55fd9f880ac5855bd61d775f8ab75a7ab0 - languageName: node - linkType: hard - -"fast-check@npm:3.1.1": - version: 3.1.1 - resolution: "fast-check@npm:3.1.1" - dependencies: - pure-rand: "npm:^5.0.1" - checksum: 10c0/90804b41e296102de5e0648c880655b6a51d7b8623c12681120fde16fab8bf4ff72b3d0db32e738d89d322614c8547207d9931a4093425d134fe9f9c4acf117e - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 - languageName: node - linkType: hard - -"fast-diff@npm:^1.1.2": - version: 1.3.0 - resolution: "fast-diff@npm:1.3.0" - checksum: 10c0/5c19af237edb5d5effda008c891a18a585f74bf12953be57923f17a3a4d0979565fc64dbc73b9e20926b9d895f5b690c618cbb969af0cf022e3222471220ad29 - languageName: node - linkType: hard - -"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.9": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" - dependencies: - reusify: "npm:^1.0.4" - checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 - languageName: node - linkType: hard - -"fecha@npm:^4.2.0": - version: 4.2.3 - resolution: "fecha@npm:4.2.3" - checksum: 10c0/0e895965959cf6a22bb7b00f0bf546f2783836310f510ddf63f463e1518d4c96dec61ab33fdfd8e79a71b4856a7c865478ce2ee8498d560fe125947703c9b1cf - languageName: node - linkType: hard - -"fetch-cookie@npm:0.11.0": - version: 0.11.0 - resolution: "fetch-cookie@npm:0.11.0" - dependencies: - tough-cookie: "npm:^2.3.3 || ^3.0.1 || ^4.0.0" - checksum: 10c0/61ba257fdf37ada9c07aea80c7f64331061e3657118213be303f194f897cf68741c387ab66855a39dd946b46da8f45c860cf8e2ef9e4d568a6cdf1fa505c3970 - languageName: node - linkType: hard - -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: "npm:^3.0.4" - checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f - languageName: node - linkType: hard - -"finalhandler@npm:1.2.0": - version: 1.2.0 - resolution: "finalhandler@npm:1.2.0" - dependencies: - debug: "npm:2.6.9" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - statuses: "npm:2.0.1" - unpipe: "npm:~1.0.0" - checksum: 10c0/64b7e5ff2ad1fcb14931cd012651631b721ce657da24aedb5650ddde9378bf8e95daa451da43398123f5de161a81e79ff5affe4f9f2a6d2df4a813d6d3e254b7 - languageName: node - linkType: hard - -"find-cache-dir@npm:^3.2.0": - version: 3.3.2 - resolution: "find-cache-dir@npm:3.3.2" - dependencies: - commondir: "npm:^1.0.1" - make-dir: "npm:^3.0.2" - pkg-dir: "npm:^4.1.0" - checksum: 10c0/92747cda42bff47a0266b06014610981cfbb71f55d60f2c8216bc3108c83d9745507fb0b14ecf6ab71112bed29cd6fb1a137ee7436179ea36e11287e3159e587 - languageName: node - linkType: hard - -"find-replace@npm:^3.0.0": - version: 3.0.0 - resolution: "find-replace@npm:3.0.0" - dependencies: - array-back: "npm:^3.0.1" - checksum: 10c0/fcd1bf7960388c8193c2861bcdc760c18ac14edb4bde062a961915d9a25727b2e8aabf0229e90cc09c753fd557e5a3e5ae61e49cadbe727be89a9e8e49ce7668 - languageName: node - linkType: hard - -"find-up@npm:5.0.0, find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" - dependencies: - locate-path: "npm:^6.0.0" - path-exists: "npm:^4.0.0" - checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a - languageName: node - linkType: hard - -"find-up@npm:^1.0.0": - version: 1.1.2 - resolution: "find-up@npm:1.1.2" - dependencies: - path-exists: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - checksum: 10c0/51e35c62d9b7efe82d7d5cce966bfe10c2eaa78c769333f8114627e3a8a4a4f50747f5f50bff50b1094cbc6527776f0d3b9ff74d3561ef714a5290a17c80c2bc - languageName: node - linkType: hard - -"find-up@npm:^2.1.0": - version: 2.1.0 - resolution: "find-up@npm:2.1.0" - dependencies: - locate-path: "npm:^2.0.0" - checksum: 10c0/c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840 - languageName: node - linkType: hard - -"find-up@npm:^3.0.0": - version: 3.0.0 - resolution: "find-up@npm:3.0.0" - dependencies: - locate-path: "npm:^3.0.0" - checksum: 10c0/2c2e7d0a26db858e2f624f39038c74739e38306dee42b45f404f770db357947be9d0d587f1cac72d20c114deb38aa57316e879eb0a78b17b46da7dab0a3bd6e3 - languageName: node - linkType: hard - -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: "npm:^5.0.0" - path-exists: "npm:^4.0.0" - checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 - languageName: node - linkType: hard - -"flare-fast-updates-client@workspace:.": - version: 0.0.0-use.local - resolution: "flare-fast-updates-client@workspace:." - dependencies: - "@istanbuljs/nyc-config-typescript": "npm:^1.0.2" - "@nomicfoundation/hardhat-chai-matchers": "npm:^2.0.6" - "@nomicfoundation/hardhat-ethers": "npm:^3.0.5" - "@nomicfoundation/hardhat-network-helpers": "npm:^1.0.10" - "@nomicfoundation/hardhat-toolbox": "npm:^4.0.0" - "@nomicfoundation/hardhat-verify": "npm:^2.0.5" - "@nomicfoundation/hardhat-web3-v4": "npm:^1.0.0" - "@nomiclabs/hardhat-truffle5": "npm:^2.0.7" - "@nomiclabs/hardhat-web3": "npm:^2.0.0" - "@openzeppelin/contracts": "npm:^5.0.2" - "@typechain/ethers-v6": "npm:^0.5.1" - "@typechain/hardhat": "npm:^9.1.0" - "@typechain/truffle-v5": "npm:^8.0.7" - "@typechain/web3-v1": "npm:^6.0.7" - "@types/chai": "npm:^4.3.14" - "@types/mocha": "npm:^10.0.6" - "@types/node": "npm:^20.12.2" - "@typescript-eslint/eslint-plugin": "npm:^7.4.0" - "@typescript-eslint/parser": "npm:^7.4.0" - chai: "npm:^4.4.1" - dotenv: "npm:^16.4.5" - eslint: "npm:^8.57.0" - eslint-config-prettier: "npm:^9.1.0" - eslint-plugin-import: "npm:^2.29.1" - eslint-plugin-prettier: "npm:^5.1.3" - ethers: "npm:^6.11.1" - hardhat: "npm:^2.22.2" - hardhat-gas-reporter: "npm:^1.0.10" - nyc: "npm:^15.1.0" - prettier: "npm:^3.2.5" - solidity-coverage: "npm:^0.8.11" - truffle: "npm:^5.11.5" - ts-node: "npm:^10.9.2" - typechain: "npm:^8.3.2" - typescript: "npm:^5.4.3" - web3: "npm:^4.7.0" - web3-core: "npm:^1.0.0" - web3-eth-contract: "npm:^1.0.0" - web3-utils: "npm:^1.0.0" - winston: "npm:^3.13.0" - languageName: unknown - linkType: soft - -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 - languageName: node - linkType: hard - -"flat@npm:^5.0.2": - version: 5.0.2 - resolution: "flat@npm:5.0.2" - bin: - flat: cli.js - checksum: 10c0/f178b13482f0cd80c7fede05f4d10585b1f2fdebf26e12edc138e32d3150c6ea6482b7f12813a1091143bad52bb6d3596bca51a162257a21163c0ff438baa5fe - languageName: node - linkType: hard - -"flatted@npm:^3.2.9": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf - languageName: node - linkType: hard - -"fn.name@npm:1.x.x": - version: 1.1.0 - resolution: "fn.name@npm:1.1.0" - checksum: 10c0/8ad62aa2d4f0b2a76d09dba36cfec61c540c13a0fd72e5d94164e430f987a7ce6a743112bbeb14877c810ef500d1f73d7f56e76d029d2e3413f20d79e3460a9a - languageName: node - linkType: hard - -"follow-redirects@npm:^1.12.1, follow-redirects@npm:^1.15.0, follow-redirects@npm:^1.15.6": - version: 1.15.6 - resolution: "follow-redirects@npm:1.15.6" - peerDependenciesMeta: - debug: - optional: true - checksum: 10c0/9ff767f0d7be6aa6870c82ac79cf0368cd73e01bbc00e9eb1c2a16fbb198ec105e3c9b6628bb98e9f3ac66fe29a957b9645bcb9a490bb7aa0d35f908b6b85071 - languageName: node - linkType: hard - -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" - dependencies: - is-callable: "npm:^1.1.3" - checksum: 10c0/22330d8a2db728dbf003ec9182c2d421fbcd2969b02b4f97ec288721cda63eb28f2c08585ddccd0f77cb2930af8d958005c9e72f47141dc51816127a118f39aa - languageName: node - linkType: hard - -"foreach@npm:^2.0.4": - version: 2.0.6 - resolution: "foreach@npm:2.0.6" - checksum: 10c0/dc79f83997ac986dadbc95b4035ce8b86699fb654eb85446b0ad779fe69d567fc9894075e460243ca8bc20adb8fd178ad203aef66dc3c620ac78b18a4cb7059c - languageName: node - linkType: hard - -"foreground-child@npm:^2.0.0": - version: 2.0.0 - resolution: "foreground-child@npm:2.0.0" - dependencies: - cross-spawn: "npm:^7.0.0" - signal-exit: "npm:^3.0.2" - checksum: 10c0/6719982783a448162f9a01500757fb2053bc5dcd4d67c7cd30739b38ccc01b39f84e408c30989d1d8774519c021c0498e2450ab127690fb09d7f2568fd94ffcc - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" - dependencies: - cross-spawn: "npm:^7.0.0" - signal-exit: "npm:^4.0.1" - checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 - languageName: node - linkType: hard - -"forever-agent@npm:~0.6.1": - version: 0.6.1 - resolution: "forever-agent@npm:0.6.1" - checksum: 10c0/364f7f5f7d93ab661455351ce116a67877b66f59aca199559a999bd39e3cfadbfbfacc10415a915255e2210b30c23febe9aec3ca16bf2d1ff11c935a1000e24c - languageName: node - linkType: hard - -"form-data-encoder@npm:1.7.1": - version: 1.7.1 - resolution: "form-data-encoder@npm:1.7.1" - checksum: 10c0/15383b6f328450489d1b5fdf7afc3f3b9a0f40dd7fdbc395128b8088867b62b5048fbcfbcd84d464a95dd1a592ebec73c9571b8eb1b47d27776e90168038cbe9 - languageName: node - linkType: hard - -"form-data@npm:^2.2.0": - version: 2.5.1 - resolution: "form-data@npm:2.5.1" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.6" - mime-types: "npm:^2.1.12" - checksum: 10c0/7e8fb913b84a7ac04074781a18d0f94735bbe82815ff35348803331f6480956ff0035db5bcf15826edee09fe01e665cfac664678f1526646a6374ee13f960e56 - languageName: node - linkType: hard - -"form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - mime-types: "npm:^2.1.12" - checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e - languageName: node - linkType: hard - -"form-data@npm:~2.3.2": - version: 2.3.3 - resolution: "form-data@npm:2.3.3" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.6" - mime-types: "npm:^2.1.12" - checksum: 10c0/706ef1e5649286b6a61e5bb87993a9842807fd8f149cd2548ee807ea4fb882247bdf7f6e64ac4720029c0cd5c80343de0e22eee1dc9e9882e12db9cc7bc016a4 - languageName: node - linkType: hard - -"forwarded@npm:0.2.0": - version: 0.2.0 - resolution: "forwarded@npm:0.2.0" - checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33 - languageName: node - linkType: hard - -"fp-ts@npm:1.19.3": - version: 1.19.3 - resolution: "fp-ts@npm:1.19.3" - checksum: 10c0/a016cfc98ad5e61564ab2d53a5379bbb8254642b66df13ced47e8c1d8d507abf4588d8bb43530198dfe1907211d8bae8f112cab52ba0ac6ab055da9168a6e260 - languageName: node - linkType: hard - -"fp-ts@npm:^1.0.0": - version: 1.19.5 - resolution: "fp-ts@npm:1.19.5" - checksum: 10c0/2a330fa1779561307740c26a7255fdffeb1ca2d0c7448d4dc094b477b772b0c8f7da1dfc88569b6f13f6958169b63b5df7361e514535b46b2e215bbf03a3722d - languageName: node - linkType: hard - -"fresh@npm:0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a - languageName: node - linkType: hard - -"fromentries@npm:^1.2.0": - version: 1.3.2 - resolution: "fromentries@npm:1.3.2" - checksum: 10c0/63938819a86e39f490b0caa1f6b38b8ad04f41ccd2a1c144eb48a21f76e4dbc074bc62e97abb053c7c1f541ecc70cf0b8aaa98eed3fe02206db9b6f9bb9a6a47 - languageName: node - linkType: hard - -"fs-extra@npm:^0.30.0": - version: 0.30.0 - resolution: "fs-extra@npm:0.30.0" - dependencies: - graceful-fs: "npm:^4.1.2" - jsonfile: "npm:^2.1.0" - klaw: "npm:^1.0.0" - path-is-absolute: "npm:^1.0.0" - rimraf: "npm:^2.2.8" - checksum: 10c0/24f3c966018c7bf436bf38ca3a126f1d95bf0f82598302195c4f0c8887767f045dae308f92c53a39cead74631dabbc30fcf1c71dbe96f1f0148f6de8edd114bc - languageName: node - linkType: hard - -"fs-extra@npm:^4.0.2": - version: 4.0.3 - resolution: "fs-extra@npm:4.0.3" - dependencies: - graceful-fs: "npm:^4.1.2" - jsonfile: "npm:^4.0.0" - universalify: "npm:^0.1.0" - checksum: 10c0/b34344de77adaccb294e6dc116e8b247ae0a4da45b79749814893549e6f15e3baace2998db06a966a9f8d5a39b6b2d8e51543bd0a565a8927c37d6373dfd20b9 - languageName: node - linkType: hard - -"fs-extra@npm:^7.0.0, fs-extra@npm:^7.0.1": - version: 7.0.1 - resolution: "fs-extra@npm:7.0.1" - dependencies: - graceful-fs: "npm:^4.1.2" - jsonfile: "npm:^4.0.0" - universalify: "npm:^0.1.0" - checksum: 10c0/1943bb2150007e3739921b8d13d4109abdc3cc481e53b97b7ea7f77eda1c3c642e27ae49eac3af074e3496ea02fde30f411ef410c760c70a38b92e656e5da784 - languageName: node - linkType: hard - -"fs-extra@npm:^8.1.0": - version: 8.1.0 - resolution: "fs-extra@npm:8.1.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^4.0.0" - universalify: "npm:^0.1.0" - checksum: 10c0/259f7b814d9e50d686899550c4f9ded85c46c643f7fe19be69504888e007fcbc08f306fae8ec495b8b998635e997c9e3e175ff2eeed230524ef1c1684cc96423 - languageName: node - linkType: hard - -"fs-extra@npm:^9.1.0": - version: 9.1.0 - resolution: "fs-extra@npm:9.1.0" - dependencies: - at-least-node: "npm:^1.0.0" - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 - languageName: node - linkType: hard - -"fs-minipass@npm:^1.2.7": - version: 1.2.7 - resolution: "fs-minipass@npm:1.2.7" - dependencies: - minipass: "npm:^2.6.0" - checksum: 10c0/c8259ce8caab360f16b8c3774fd09dd1d5240d6f3f78fd8efa0a215b5f40edfa90e7b5b5ddc2335a4c50885e29d5983f9fe6ac3ac19320e6917a21dbb9f05c64 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 - languageName: node - linkType: hard - -"fs-readdir-recursive@npm:^1.1.0": - version: 1.1.0 - resolution: "fs-readdir-recursive@npm:1.1.0" - checksum: 10c0/7e190393952143e674b6d1ad4abcafa1b5d3e337fcc21b0cb051079a7140a54617a7df193d562ef9faf21bd7b2148a38601b3d5c16261fa76f278d88dc69989c - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 - languageName: node - linkType: hard - -"fsevents@npm:~2.3.2": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: "npm:latest" - checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: "npm:latest" - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 - languageName: node - linkType: hard - -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - functions-have-names: "npm:^1.2.3" - checksum: 10c0/9eae11294905b62cb16874adb4fc687927cda3162285e0ad9612e6a1d04934005d46907362ea9cdb7428edce05a2f2c3dabc3b2d21e9fd343e9bb278230ad94b - languageName: node - linkType: hard - -"functional-red-black-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "functional-red-black-tree@npm:1.0.1" - checksum: 10c0/5959eed0375803d9924f47688479bb017e0c6816a0e5ac151e22ba6bfe1d12c41de2f339188885e0aa8eeea2072dad509d8e4448467e816bde0a2ca86a0670d3 - languageName: node - linkType: hard - -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: 10c0/33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca - languageName: node - linkType: hard - -"ganache@npm:7.9.1": - version: 7.9.1 - resolution: "ganache@npm:7.9.1" - dependencies: - "@trufflesuite/bigint-buffer": "npm:1.1.10" - "@trufflesuite/uws-js-unofficial": "npm:20.30.0-unofficial.0" - "@types/bn.js": "npm:^5.1.0" - "@types/lru-cache": "npm:5.1.1" - "@types/seedrandom": "npm:3.0.1" - abstract-level: "npm:1.0.3" - abstract-leveldown: "npm:7.2.0" - async-eventemitter: "npm:0.2.4" - bufferutil: "npm:4.0.5" - emittery: "npm:0.10.0" - keccak: "npm:3.0.2" - leveldown: "npm:6.1.0" - secp256k1: "npm:4.0.3" - utf-8-validate: "npm:5.0.7" - dependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - bin: - ganache: dist/node/cli.js - ganache-cli: dist/node/cli.js - checksum: 10c0/111b3d588c6e9f08cf04572b3a54e7ebfa79046259412da7a675d19eb28f66715e597f60cdac1a35eafa64404bbcb21f931835a7f7dccbc8017bad82c33035d8 - languageName: node - linkType: hard - -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 - languageName: node - linkType: hard - -"get-caller-file@npm:^1.0.1": - version: 1.0.3 - resolution: "get-caller-file@npm:1.0.3" - checksum: 10c0/763dcee2de8ff60ae7e13a4bad8306205a2fbe108e555686344ddd9ef211b8bebfe459d3a739669257014c59e7cc1e7a44003c21af805c1214673e6a45f06c51 - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde - languageName: node - linkType: hard - -"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": - version: 2.0.2 - resolution: "get-func-name@npm:2.0.2" - checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" - dependencies: - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - has-proto: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.0" - checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7 - languageName: node - linkType: hard - -"get-package-type@npm:^0.1.0": - version: 0.1.0 - resolution: "get-package-type@npm:0.1.0" - checksum: 10c0/e34cdf447fdf1902a1f6d5af737eaadf606d2ee3518287abde8910e04159368c268568174b2e71102b87b26c2020486f126bfca9c4fb1ceb986ff99b52ecd1be - languageName: node - linkType: hard - -"get-port@npm:^3.1.0": - version: 3.2.0 - resolution: "get-port@npm:3.2.0" - checksum: 10c0/1b6c3fe89074be3753d9ddf3d67126ea351ab9890537fe53fefebc2912d1d66fdc112451bbc76d33ae5ceb6ca70be2a91017944e3ee8fb0814ac9b295bf2a5b8 - languageName: node - linkType: hard - -"get-stream@npm:^5.1.0": - version: 5.2.0 - resolution: "get-stream@npm:5.2.0" - dependencies: - pump: "npm:^3.0.0" - checksum: 10c0/43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.1": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 - languageName: node - linkType: hard - -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.5" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" - checksum: 10c0/867be6d63f5e0eb026cb3b0ef695ec9ecf9310febb041072d2e142f260bd91ced9eeb426b3af98791d1064e324e653424afa6fd1af17dee373bea48ae03162bc - languageName: node - linkType: hard - -"getpass@npm:^0.1.1": - version: 0.1.7 - resolution: "getpass@npm:0.1.7" - dependencies: - assert-plus: "npm:^1.0.0" - checksum: 10c0/c13f8530ecf16fc509f3fa5cd8dd2129ffa5d0c7ccdf5728b6022d52954c2d24be3706b4cdf15333eec52f1fbb43feb70a01dabc639d1d10071e371da8aaa52f - languageName: node - linkType: hard - -"ghost-testrpc@npm:^0.0.2": - version: 0.0.2 - resolution: "ghost-testrpc@npm:0.0.2" - dependencies: - chalk: "npm:^2.4.2" - node-emoji: "npm:^1.10.0" - bin: - testrpc-sc: ./index.js - checksum: 10c0/604efc022dfccda3da38ba5726ea52e5156c232814de440193ed7543dd1bb6a3899942df56ca8943c32fec2692abd9b62eb0fe381c7718b0941b3eb301c75b77 - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: "npm:^4.0.1" - checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: "npm:^4.0.3" - checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 - languageName: node - linkType: hard - -"glob@npm:7.1.7": - version: 7.1.7 - resolution: "glob@npm:7.1.7" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10c0/173245e6f9ccf904309eb7ef4a44a11f3bf68e9e341dff5a28b5db0dd7123b7506daf41497f3437a0710f57198187b758c2351eeaabce4d16935e956920da6a4 - languageName: node - linkType: hard - -"glob@npm:7.2.0": - version: 7.2.0 - resolution: "glob@npm:7.2.0" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10c0/478b40e38be5a3d514e64950e1e07e0ac120585add6a37c98d0ed24d72d9127d734d2a125786073c8deb687096e84ae82b641c441a869ada3a9cc91b68978632 - languageName: node - linkType: hard - -"glob@npm:8.1.0": - version: 8.1.0 - resolution: "glob@npm:8.1.0" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^5.0.1" - once: "npm:^1.3.0" - checksum: 10c0/cb0b5cab17a59c57299376abe5646c7070f8acb89df5595b492dba3bfb43d301a46c01e5695f01154e6553168207cb60d4eaf07d3be4bc3eb9b0457c5c561d0f - languageName: node - linkType: hard - -"glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.3.12 - resolution: "glob@npm:10.3.12" - dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^2.3.6" - minimatch: "npm:^9.0.1" - minipass: "npm:^7.0.4" - path-scurry: "npm:^1.10.2" - bin: - glob: dist/esm/bin.mjs - checksum: 10c0/f60cefdc1cf3f958b2bb5823e1b233727f04916d489dc4641d76914f016e6704421e06a83cbb68b0cb1cb9382298b7a88075b844ad2127fc9727ea22b18b0711 - languageName: node - linkType: hard - -"glob@npm:^5.0.15": - version: 5.0.15 - resolution: "glob@npm:5.0.15" - dependencies: - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:2 || 3" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10c0/ed17b34406bedceb334a1df3502774a089ce822db07585ad2a6851d6040531540ce07407d7da5f0e0bded238114ea50302902f025e551499108076e635fcd9b1 - languageName: node - linkType: hard - -"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.1.1" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe - languageName: node - linkType: hard - -"global-modules@npm:^2.0.0": - version: 2.0.0 - resolution: "global-modules@npm:2.0.0" - dependencies: - global-prefix: "npm:^3.0.0" - checksum: 10c0/43b770fe24aa6028f4b9770ea583a47f39750be15cf6e2578f851e4ccc9e4fa674b8541928c0b09c21461ca0763f0d36e4068cec86c914b07fd6e388e66ba5b9 - languageName: node - linkType: hard - -"global-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "global-prefix@npm:3.0.0" - dependencies: - ini: "npm:^1.3.5" - kind-of: "npm:^6.0.2" - which: "npm:^1.3.1" - checksum: 10c0/510f489fb68d1cc7060f276541709a0ee6d41356ef852de48f7906c648ac223082a1cc8fce86725ca6c0e032bcdc1189ae77b4744a624b29c34a9d0ece498269 - languageName: node - linkType: hard - -"global@npm:~4.4.0": - version: 4.4.0 - resolution: "global@npm:4.4.0" - dependencies: - min-document: "npm:^2.19.0" - process: "npm:^0.11.10" - checksum: 10c0/4a467aec6602c00a7c5685f310574ab04e289ad7f894f0f01c9c5763562b82f4b92d1e381ce6c5bbb12173e2a9f759c1b63dda6370cfb199970267e14d90aa91 - languageName: node - linkType: hard - -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 - languageName: node - linkType: hard - -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd - languageName: node - linkType: hard - -"globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" - dependencies: - define-properties: "npm:^1.1.3" - checksum: 10c0/0db6e9af102a5254630351557ac15e6909bc7459d3e3f6b001e59fe784c96d31108818f032d9095739355a88467459e6488ff16584ee6250cd8c27dec05af4b0 - languageName: node - linkType: hard - -"globby@npm:^10.0.1": - version: 10.0.2 - resolution: "globby@npm:10.0.2" - dependencies: - "@types/glob": "npm:^7.1.1" - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.0.3" - glob: "npm:^7.1.3" - ignore: "npm:^5.1.1" - merge2: "npm:^1.2.3" - slash: "npm:^3.0.0" - checksum: 10c0/9c610ad47117b9dfbc5b0c6c2408c3b72f89c1b9f91ee14c4dc794794e35768ee0920e2a403b688cfa749f48617c6ba3f3a52df07677ed73d602d4349b68c810 - languageName: node - linkType: hard - -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.2.9" - ignore: "npm:^5.2.0" - merge2: "npm:^1.4.1" - slash: "npm:^3.0.0" - checksum: 10c0/b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189 - languageName: node - linkType: hard - -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: "npm:^1.1.3" - checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63 - languageName: node - linkType: hard - -"got@npm:12.1.0": - version: 12.1.0 - resolution: "got@npm:12.1.0" - dependencies: - "@sindresorhus/is": "npm:^4.6.0" - "@szmarczak/http-timer": "npm:^5.0.1" - "@types/cacheable-request": "npm:^6.0.2" - "@types/responselike": "npm:^1.0.0" - cacheable-lookup: "npm:^6.0.4" - cacheable-request: "npm:^7.0.2" - decompress-response: "npm:^6.0.0" - form-data-encoder: "npm:1.7.1" - get-stream: "npm:^6.0.1" - http2-wrapper: "npm:^2.1.10" - lowercase-keys: "npm:^3.0.0" - p-cancelable: "npm:^3.0.0" - responselike: "npm:^2.0.0" - checksum: 10c0/eb410ac82cbd6d3ae28889300dce81c5f74b953f83351405dde38c29a5bc7c7f95afd5ade133b3c6dba84bbca85be71eb87b9d060c6998c0df4a32aa909192d5 - languageName: node - linkType: hard - -"got@npm:^11.8.5": - version: 11.8.6 - resolution: "got@npm:11.8.6" - dependencies: - "@sindresorhus/is": "npm:^4.0.0" - "@szmarczak/http-timer": "npm:^4.0.5" - "@types/cacheable-request": "npm:^6.0.1" - "@types/responselike": "npm:^1.0.0" - cacheable-lookup: "npm:^5.0.3" - cacheable-request: "npm:^7.0.2" - decompress-response: "npm:^6.0.0" - http2-wrapper: "npm:^1.0.0-beta.5.2" - lowercase-keys: "npm:^2.0.0" - p-cancelable: "npm:^2.0.0" - responselike: "npm:^2.0.0" - checksum: 10c0/754dd44877e5cf6183f1e989ff01c648d9a4719e357457bd4c78943911168881f1cfb7b2cb15d885e2105b3ad313adb8f017a67265dd7ade771afdb261ee8cb1 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 - languageName: node - linkType: hard - -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: 10c0/e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31 - languageName: node - linkType: hard - -"graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.6": - version: 2.12.6 - resolution: "graphql-tag@npm:2.12.6" - dependencies: - tslib: "npm:^2.1.0" - peerDependencies: - graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 10c0/7763a72011bda454ed8ff1a0d82325f43ca6478e4ce4ab8b7910c4c651dd00db553132171c04d80af5d5aebf1ef6a8a9fd53ccfa33b90ddc00aa3d4be6114419 - languageName: node - linkType: hard - -"graphql@npm:^15.3.0": - version: 15.8.0 - resolution: "graphql@npm:15.8.0" - checksum: 10c0/30cc09b77170a9d1ed68e4c017ec8c5265f69501c96e4f34f8f6613f39a886c96dd9853eac925f212566ed651736334c8fe24ceae6c44e8d7625c95c3009a801 - languageName: node - linkType: hard - -"handlebars@npm:^4.0.1": - version: 4.7.8 - resolution: "handlebars@npm:4.7.8" - dependencies: - minimist: "npm:^1.2.5" - neo-async: "npm:^2.6.2" - source-map: "npm:^0.6.1" - uglify-js: "npm:^3.1.4" - wordwrap: "npm:^1.0.0" - dependenciesMeta: - uglify-js: - optional: true - bin: - handlebars: bin/handlebars - checksum: 10c0/7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d - languageName: node - linkType: hard - -"har-schema@npm:^2.0.0": - version: 2.0.0 - resolution: "har-schema@npm:2.0.0" - checksum: 10c0/3856cb76152658e0002b9c2b45b4360bb26b3e832c823caed8fcf39a01096030bf09fa5685c0f7b0f2cb3ecba6e9dce17edaf28b64a423d6201092e6be56e592 - languageName: node - linkType: hard - -"har-validator@npm:~5.1.3": - version: 5.1.5 - resolution: "har-validator@npm:5.1.5" - dependencies: - ajv: "npm:^6.12.3" - har-schema: "npm:^2.0.0" - checksum: 10c0/f1d606eb1021839e3a905be5ef7cca81c2256a6be0748efb8fefc14312214f9e6c15d7f2eaf37514104071207d84f627b68bb9f6178703da4e06fbd1a0649a5e - languageName: node - linkType: hard - -"hardhat-gas-reporter@npm:^1.0.10": - version: 1.0.10 - resolution: "hardhat-gas-reporter@npm:1.0.10" - dependencies: - array-uniq: "npm:1.0.3" - eth-gas-reporter: "npm:^0.2.25" - sha1: "npm:^1.1.1" - peerDependencies: - hardhat: ^2.0.2 - checksum: 10c0/3711ea331bcbbff4d37057cb3de47a9127011e3ee128c2254a68f3b7f12ab2133965cbcfa3a7ce1bba8461f3b1bda1b175c4814a048c8b06b3ad450001d119d8 - languageName: node - linkType: hard - -"hardhat@npm:^2.22.2": - version: 2.22.2 - resolution: "hardhat@npm:2.22.2" - dependencies: - "@ethersproject/abi": "npm:^5.1.2" - "@metamask/eth-sig-util": "npm:^4.0.0" - "@nomicfoundation/edr": "npm:^0.3.1" - "@nomicfoundation/ethereumjs-common": "npm:4.0.4" - "@nomicfoundation/ethereumjs-tx": "npm:5.0.4" - "@nomicfoundation/ethereumjs-util": "npm:9.0.4" - "@nomicfoundation/solidity-analyzer": "npm:^0.1.0" - "@sentry/node": "npm:^5.18.1" - "@types/bn.js": "npm:^5.1.0" - "@types/lru-cache": "npm:^5.1.0" - adm-zip: "npm:^0.4.16" - aggregate-error: "npm:^3.0.0" - ansi-escapes: "npm:^4.3.0" - boxen: "npm:^5.1.2" - chalk: "npm:^2.4.2" - chokidar: "npm:^3.4.0" - ci-info: "npm:^2.0.0" - debug: "npm:^4.1.1" - enquirer: "npm:^2.3.0" - env-paths: "npm:^2.2.0" - ethereum-cryptography: "npm:^1.0.3" - ethereumjs-abi: "npm:^0.6.8" - find-up: "npm:^2.1.0" - fp-ts: "npm:1.19.3" - fs-extra: "npm:^7.0.1" - glob: "npm:7.2.0" - immutable: "npm:^4.0.0-rc.12" - io-ts: "npm:1.10.4" - keccak: "npm:^3.0.2" - lodash: "npm:^4.17.11" - mnemonist: "npm:^0.38.0" - mocha: "npm:^10.0.0" - p-map: "npm:^4.0.0" - raw-body: "npm:^2.4.1" - resolve: "npm:1.17.0" - semver: "npm:^6.3.0" - solc: "npm:0.7.3" - source-map-support: "npm:^0.5.13" - stacktrace-parser: "npm:^0.1.10" - tsort: "npm:0.0.1" - undici: "npm:^5.14.0" - uuid: "npm:^8.3.2" - ws: "npm:^7.4.6" - peerDependencies: - ts-node: "*" - typescript: "*" - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - bin: - hardhat: internal/cli/bootstrap.js - checksum: 10c0/ccff92f6064246f1cee46e70aed3bbf4dc4ce1069f88e38c8619d7c3c55f894f78fbd2abe860dcdae952da809f3a7908daaf8c0570d12865c268a1bc2fa37e81 - languageName: node - linkType: hard - -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 10c0/724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b - languageName: node - linkType: hard - -"has-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "has-flag@npm:1.0.0" - checksum: 10c0/d0ad4bebbbc005edccfa1e2c0600c89375be5663d23f49a129e0f817187405748b0b515abfc5b3c209c92692e39bb0481c83c0ee4df69433d6ffd0242183100b - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 - languageName: node - linkType: hard - -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": - version: 1.0.2 - resolution: "has-property-descriptors@npm:1.0.2" - dependencies: - es-define-property: "npm:^1.0.0" - checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 - languageName: node - linkType: hard - -"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": - version: 1.0.3 - resolution: "has-proto@npm:1.0.3" - checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205 - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3 - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" - dependencies: - has-symbols: "npm:^1.0.3" - checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c - languageName: node - linkType: hard - -"hash-base@npm:^3.0.0": - version: 3.1.0 - resolution: "hash-base@npm:3.1.0" - dependencies: - inherits: "npm:^2.0.4" - readable-stream: "npm:^3.6.0" - safe-buffer: "npm:^5.2.0" - checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0 - languageName: node - linkType: hard - -"hash.js@npm:1.1.3": - version: 1.1.3 - resolution: "hash.js@npm:1.1.3" - dependencies: - inherits: "npm:^2.0.3" - minimalistic-assert: "npm:^1.0.0" - checksum: 10c0/f085a856c31d51556f6153edcd4bb1c01a9d22e5882a7b9bae4e813c4abfad012d060b8fde1b993e353d6af1cf82b094599b65348cb529ca19a4b80ab32efded - languageName: node - linkType: hard - -"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": - version: 1.1.7 - resolution: "hash.js@npm:1.1.7" - dependencies: - inherits: "npm:^2.0.3" - minimalistic-assert: "npm:^1.0.1" - checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4 - languageName: node - linkType: hard - -"hasha@npm:^5.0.0": - version: 5.2.2 - resolution: "hasha@npm:5.2.2" - dependencies: - is-stream: "npm:^2.0.0" - type-fest: "npm:^0.8.0" - checksum: 10c0/9d10d4e665a37beea6e18ba3a0c0399a05b26e505c5ff2fe9115b64fedb3ca95f68c89cf15b08ee4d09fd3064b5e1bfc8e8247353c7aa6b7388471d0f86dca74 - languageName: node - linkType: hard - -"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 - languageName: node - linkType: hard - -"he@npm:1.2.0": - version: 1.2.0 - resolution: "he@npm:1.2.0" - bin: - he: bin/he - checksum: 10c0/a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17 - languageName: node - linkType: hard - -"header-case@npm:^1.0.0": - version: 1.0.1 - resolution: "header-case@npm:1.0.1" - dependencies: - no-case: "npm:^2.2.0" - upper-case: "npm:^1.1.3" - checksum: 10c0/973b81b3fba82140cf8cdc819edb32edd5959ff61ff42128c5f54e56f7454bb8f61c0197180c38cde84a4be1dddbc780e1413d5e1602c96caf0195d863e6bd03 - languageName: node - linkType: hard - -"heap@npm:>= 0.2.0": - version: 0.2.7 - resolution: "heap@npm:0.2.7" - checksum: 10c0/341c5d51ae13dc8346c371a8a69c57c972fcb9a3233090d3dd5ba29d483d6b5b4e75492443cbfeacd46608bb30e6680f646ffb7a6205900221735587d07a79b6 - languageName: node - linkType: hard - -"highlight.js@npm:^10.4.1": - version: 10.7.3 - resolution: "highlight.js@npm:10.7.3" - checksum: 10c0/073837eaf816922427a9005c56c42ad8786473dc042332dfe7901aa065e92bc3d94ebf704975257526482066abb2c8677cc0326559bb8621e046c21c5991c434 - languageName: node - linkType: hard - -"highlightjs-solidity@npm:^2.0.6": - version: 2.0.6 - resolution: "highlightjs-solidity@npm:2.0.6" - checksum: 10c0/6e3089845afc5a508d42c71a62931be5464ba9012415a9426c2dc5c6f0f6cc395c253c3e3dd243feac09a42191ed36f6b6a2077c9cdd9d41fecac37b0a186f7b - languageName: node - linkType: hard - -"hmac-drbg@npm:^1.0.1": - version: 1.0.1 - resolution: "hmac-drbg@npm:1.0.1" - dependencies: - hash.js: "npm:^1.0.3" - minimalistic-assert: "npm:^1.0.0" - minimalistic-crypto-utils: "npm:^1.0.1" - checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d - languageName: node - linkType: hard - -"hosted-git-info@npm:^2.1.4": - version: 2.8.9 - resolution: "hosted-git-info@npm:2.8.9" - checksum: 10c0/317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70 - languageName: node - linkType: hard - -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: 10c0/208e8a12de1a6569edbb14544f4567e6ce8ecc30b9394fcaa4e7bb1e60c12a7c9a1ed27e31290817157e8626f3a4f29e76c8747030822eb84a6abb15c255f0a0 - languageName: node - linkType: hard - -"htmlparser2@npm:^8.0.1": - version: 8.0.2 - resolution: "htmlparser2@npm:8.0.2" - dependencies: - domelementtype: "npm:^2.3.0" - domhandler: "npm:^5.0.3" - domutils: "npm:^3.0.1" - entities: "npm:^4.4.0" - checksum: 10c0/609cca85886d0bf2c9a5db8c6926a89f3764596877492e2caa7a25a789af4065bc6ee2cdc81807fe6b1d03a87bf8a373b5a754528a4cc05146b713c20575aab4 - languageName: node - linkType: hard - -"http-basic@npm:^8.1.1": - version: 8.1.3 - resolution: "http-basic@npm:8.1.3" - dependencies: - caseless: "npm:^0.12.0" - concat-stream: "npm:^1.6.2" - http-response-object: "npm:^3.0.1" - parse-cache-control: "npm:^1.0.1" - checksum: 10c0/dbc67b943067db7f43d1dd94539f874e6b78614227491c0a5c0acb9b0490467a4ec97247da21eb198f8968a5dc4089160165cb0103045cadb9b47bb844739752 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc - languageName: node - linkType: hard - -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 - languageName: node - linkType: hard - -"http-https@npm:^1.0.0": - version: 1.0.0 - resolution: "http-https@npm:1.0.0" - checksum: 10c0/ffdec0da28627110d1dd9fbe3f9d0b61b1876c3c856d460c532b69fc0536adba0e032cd7acafad82fcb970ae9c5b34ae8340ef17aa422124b56c27f4da8fc74a - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: "npm:^7.1.0" - debug: "npm:^4.3.4" - checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 - languageName: node - linkType: hard - -"http-response-object@npm:^3.0.1": - version: 3.0.2 - resolution: "http-response-object@npm:3.0.2" - dependencies: - "@types/node": "npm:^10.0.3" - checksum: 10c0/f161db99184087798563cb14c48a67eebe9405668a5ed2341faf85d3079a2c00262431df8e0ccbe274dc6415b6729179f12b09f875d13ad33d83401e4b1ed22e - languageName: node - linkType: hard - -"http-signature@npm:~1.2.0": - version: 1.2.0 - resolution: "http-signature@npm:1.2.0" - dependencies: - assert-plus: "npm:^1.0.0" - jsprim: "npm:^1.2.2" - sshpk: "npm:^1.7.0" - checksum: 10c0/582f7af7f354429e1fb19b3bbb9d35520843c69bb30a25b88ca3c5c2c10715f20ae7924e20cffbed220b1d3a726ef4fe8ccc48568d5744db87be9a79887d6733 - languageName: node - linkType: hard - -"http2-wrapper@npm:^1.0.0-beta.5.2": - version: 1.0.3 - resolution: "http2-wrapper@npm:1.0.3" - dependencies: - quick-lru: "npm:^5.1.1" - resolve-alpn: "npm:^1.0.0" - checksum: 10c0/6a9b72a033e9812e1476b9d776ce2f387bc94bc46c88aea0d5dab6bd47d0a539b8178830e77054dd26d1142c866d515a28a4dc7c3ff4232c88ff2ebe4f5d12d1 - languageName: node - linkType: hard - -"http2-wrapper@npm:^2.1.10": - version: 2.2.1 - resolution: "http2-wrapper@npm:2.2.1" - dependencies: - quick-lru: "npm:^5.1.1" - resolve-alpn: "npm:^1.2.0" - checksum: 10c0/7207201d3c6e53e72e510c9b8912e4f3e468d3ecc0cf3bf52682f2aac9cd99358b896d1da4467380adc151cf97c412bedc59dc13dae90c523f42053a7449eedb - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.0": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: "npm:6" - debug: "npm:4" - checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.4 - resolution: "https-proxy-agent@npm:7.0.4" - dependencies: - agent-base: "npm:^7.0.2" - debug: "npm:4" - checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b - languageName: node - linkType: hard - -"iconv-lite@npm:0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3" - checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 - languageName: node - linkType: hard - -"idna-uts46-hx@npm:^2.3.1": - version: 2.3.1 - resolution: "idna-uts46-hx@npm:2.3.1" - dependencies: - punycode: "npm:2.1.0" - checksum: 10c0/e38d4684ca64449560bda9efc84554c7802a0a732a73c9eb89b561d970c26e431b1975264860c98c921da2126726ebd8ae8752099e9ea55914d0b5abcc950121 - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb - languageName: node - linkType: hard - -"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.3.1 - resolution: "ignore@npm:5.3.1" - checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd - languageName: node - linkType: hard - -"immediate@npm:3.3.0, immediate@npm:^3.2.3": - version: 3.3.0 - resolution: "immediate@npm:3.3.0" - checksum: 10c0/40eab095d5944ad79af054700beee97000271fde8743720932d8eb41ccbf2cb8c855ff95b128cf9a7fec523a4f11ee2e392b9f2fa6456b055b1160f1b4ad3e3b - languageName: node - linkType: hard - -"immutable@npm:^4.0.0-rc.12": - version: 4.3.5 - resolution: "immutable@npm:4.3.5" - checksum: 10c0/63d2d7908241a955d18c7822fd2215b6e89ff5a1a33cc72cd475b013cbbdef7a705aa5170a51ce9f84a57f62fdddfaa34e7b5a14b33d8a43c65cc6a881d6e894 - languageName: node - linkType: hard - -"import-fresh@npm:^3.2.1": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: "npm:^1.0.0" - resolve-from: "npm:^4.0.0" - checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: "npm:^1.3.0" - wrappy: "npm:1" - checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 - languageName: node - linkType: hard - -"ini@npm:^1.3.5": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a - languageName: node - linkType: hard - -"internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" - dependencies: - es-errors: "npm:^1.3.0" - hasown: "npm:^2.0.0" - side-channel: "npm:^1.0.4" - checksum: 10c0/f8b294a4e6ea3855fc59551bbf35f2b832cf01fd5e6e2a97f5c201a071cc09b49048f856e484b67a6c721da5e55736c5b6ddafaf19e2dbeb4a3ff1821680de6c - languageName: node - linkType: hard - -"interpret@npm:^1.0.0": - version: 1.4.0 - resolution: "interpret@npm:1.4.0" - checksum: 10c0/08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450 - languageName: node - linkType: hard - -"invert-kv@npm:^1.0.0": - version: 1.0.0 - resolution: "invert-kv@npm:1.0.0" - checksum: 10c0/9ccef12ada8494c56175cc0380b4cea18b6c0a368436f324a30e43a332db90bdfb83cd3a7987b71df359cdf931ce45b7daf35b677da56658565d61068e4bc20b - languageName: node - linkType: hard - -"io-ts@npm:1.10.4": - version: 1.10.4 - resolution: "io-ts@npm:1.10.4" - dependencies: - fp-ts: "npm:^1.0.0" - checksum: 10c0/9370988a7e17fc23c194115808168ccd1ccf7b7ebe92c39c1cc2fd91c1dc641552a5428bb04fe28c01c826fa4f230e856eb4f7d27c774a1400af3fecf2936ab5 - languageName: node - linkType: hard - -"ip-address@npm:^9.0.5": - version: 9.0.5 - resolution: "ip-address@npm:9.0.5" - dependencies: - jsbn: "npm:1.1.0" - sprintf-js: "npm:^1.1.3" - checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc - languageName: node - linkType: hard - -"ipaddr.js@npm:1.9.1": - version: 1.9.1 - resolution: "ipaddr.js@npm:1.9.1" - checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a - languageName: node - linkType: hard - -"is-arguments@npm:^1.0.4": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/5ff1f341ee4475350adfc14b2328b38962564b7c2076be2f5bac7bd9b61779efba99b9f844a7b82ba7654adccf8e8eb19d1bb0cc6d1c1a085e498f6793d4328f - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.1" - checksum: 10c0/42a49d006cc6130bc5424eae113e948c146f31f9d24460fc0958f855d9d810e6fd2e4519bf19aab75179af9c298ea6092459d8cafdec523cd19e529b26eab860 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.3.1": - version: 0.3.2 - resolution: "is-arrayish@npm:0.3.2" - checksum: 10c0/f59b43dc1d129edb6f0e282595e56477f98c40278a2acdc8b0a5c57097c9eff8fe55470493df5775478cf32a4dc8eaf6d3a749f07ceee5bc263a78b2434f6a54 - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: "npm:^1.0.1" - checksum: 10c0/eb9c88e418a0d195ca545aff2b715c9903d9b0a5033bc5922fec600eb0c3d7b1ee7f882dbf2e0d5a6e694e42391be3683e4368737bd3c4a77f8ac293e7773696 - languageName: node - linkType: hard - -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: "npm:^2.0.0" - checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/6090587f8a8a8534c0f816da868bc94f32810f08807aa72fa7e79f7e11c466d281486ffe7a788178809c2aa71fe3e700b167fe80dd96dad68026bfff8ebf39f7 - languageName: node - linkType: hard - -"is-buffer@npm:^2.0.5": - version: 2.0.5 - resolution: "is-buffer@npm:2.0.5" - checksum: 10c0/e603f6fced83cf94c53399cff3bda1a9f08e391b872b64a73793b0928be3e5f047f2bcece230edb7632eaea2acdbfcb56c23b33d8a20c820023b230f1485679a - languageName: node - linkType: hard - -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": - version: 2.13.1 - resolution: "is-core-module@npm:2.13.1" - dependencies: - hasown: "npm:^2.0.0" - checksum: 10c0/2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518 - languageName: node - linkType: hard - -"is-data-view@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-view@npm:1.0.1" - dependencies: - is-typed-array: "npm:^1.1.13" - checksum: 10c0/a3e6ec84efe303da859107aed9b970e018e2bee7ffcb48e2f8096921a493608134240e672a2072577e5f23a729846241d9634806e8a0e51d9129c56d5f65442d - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.1": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/eed21e5dcc619c48ccef804dfc83a739dbb2abee6ca202838ee1bd5f760fe8d8a93444f0d49012ad19bb7c006186e2884a1b92f6e1c056da7fd23d0a9ad5992e - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^1.0.0": - version: 1.0.0 - resolution: "is-fullwidth-code-point@npm:1.0.0" - dependencies: - number-is-nan: "npm:^1.0.0" - checksum: 10c0/12acfcf16142f2d431bf6af25d68569d3198e81b9799b4ae41058247aafcc666b0127d64384ea28e67a746372611fcbe9b802f69175287aba466da3eddd5ba0f - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^2.0.0": - version: 2.0.0 - resolution: "is-fullwidth-code-point@npm:2.0.0" - checksum: 10c0/e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc - languageName: node - linkType: hard - -"is-function@npm:^1.0.1": - version: 1.0.2 - resolution: "is-function@npm:1.0.2" - checksum: 10c0/c55289042a0e828a773f1245e2652e0c029efacc78ebe03e61787746fda74e2c41006cd908f20b53c36e45f9e75464475a4b2d68b17f4c7b9f8018bcaec42f9e - languageName: node - linkType: hard - -"is-generator-function@npm:^1.0.7": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/df03514df01a6098945b5a0cfa1abff715807c8e72f57c49a0686ad54b3b74d394e2d8714e6f709a71eb00c9630d48e73ca1796c1ccc84ac95092c1fecc0d98b - languageName: node - linkType: hard - -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: "npm:^2.1.1" - checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a - languageName: node - linkType: hard - -"is-hex-prefixed@npm:1.0.0": - version: 1.0.0 - resolution: "is-hex-prefixed@npm:1.0.0" - checksum: 10c0/767fa481020ae654ab085ca24c63c518705ff36fdfbfc732292dc69092c6f8fdc551f6ce8c5f6ae704b0a19294e6f62be1b4b9859f0e1ac76e3b1b0733599d94 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d - languageName: node - linkType: hard - -"is-lower-case@npm:^1.1.0": - version: 1.1.3 - resolution: "is-lower-case@npm:1.1.3" - dependencies: - lower-case: "npm:^1.1.0" - checksum: 10c0/af174cfdd50e4ab997bd4aeaf96d5b1841490a721c62a9ab07b14dfb63885134065683d5027f53e2f76180ff972a3c9a0155815e715c37815757a6bd67d4459e - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/aad266da1e530f1804a2b7bd2e874b4869f71c98590b3964f9d06cc9869b18f8d1f4778f838ecd2a11011bce20aeecb53cb269ba916209b79c24580416b74b1b - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 - languageName: node - linkType: hard - -"is-obj@npm:^2.0.0": - version: 2.0.0 - resolution: "is-obj@npm:2.0.0" - checksum: 10c0/85044ed7ba8bd169e2c2af3a178cacb92a97aa75de9569d02efef7f443a824b5e153eba72b9ae3aca6f8ce81955271aa2dc7da67a8b720575d3e38104208cb4e - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 - languageName: node - linkType: hard - -"is-plain-obj@npm:^2.1.0": - version: 2.1.0 - resolution: "is-plain-obj@npm:2.1.0" - checksum: 10c0/e5c9814cdaa627a9ad0a0964ded0e0491bfd9ace405c49a5d63c88b30a162f1512c069d5b80997893c4d0181eadc3fed02b4ab4b81059aba5620bfcdfdeb9c53 - languageName: node - linkType: hard - -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/bb72aae604a69eafd4a82a93002058c416ace8cde95873589a97fc5dac96a6c6c78a9977d487b7b95426a8f5073969124dd228f043f9f604f041f32fcc465fc1 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - checksum: 10c0/adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7 - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 - languageName: node - linkType: hard - -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/905f805cbc6eedfa678aaa103ab7f626aac9ebbdc8737abb5243acaa61d9820f8edc5819106b8fcd1839e33db21de9f0116ae20de380c8382d16dc2a601921f6 - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: "npm:^1.0.2" - checksum: 10c0/9381dd015f7c8906154dbcbf93fad769de16b4b961edc94f88d26eb8c555935caa23af88bda0c93a18e65560f6d7cca0fd5a3f8a8e1df6f1abbb9bead4502ef7 - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" - dependencies: - which-typed-array: "npm:^1.1.14" - checksum: 10c0/fa5cb97d4a80e52c2cc8ed3778e39f175a1a2ae4ddf3adae3187d69586a1fd57cfa0b095db31f66aa90331e9e3da79184cea9c6abdcd1abc722dc3c3edd51cca - languageName: node - linkType: hard - -"is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 10c0/4c096275ba041a17a13cca33ac21c16bc4fd2d7d7eb94525e7cd2c2f2c1a3ab956e37622290642501ff4310601e413b675cf399ad6db49855527d2163b3eeeec - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: 10c0/00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 - languageName: node - linkType: hard - -"is-upper-case@npm:^1.1.0": - version: 1.1.2 - resolution: "is-upper-case@npm:1.1.2" - dependencies: - upper-case: "npm:^1.1.0" - checksum: 10c0/81b8defdee0e0de7310446ac717422c586c4d013c2a517c5fcf8b119349aa2798be56fa213169b0de3936cb00e796a383683c2504d221596ae09a0eb282a5b25 - languageName: node - linkType: hard - -"is-utf8@npm:^0.2.0": - version: 0.2.1 - resolution: "is-utf8@npm:0.2.1" - checksum: 10c0/3ed45e5b4ddfa04ed7e32c63d29c61b980ecd6df74698f45978b8c17a54034943bcbffb6ae243202e799682a66f90fef526f465dd39438745e9fe70794c1ef09 - languageName: node - linkType: hard - -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - checksum: 10c0/1545c5d172cb690c392f2136c23eec07d8d78a7f57d0e41f10078aa4f5daf5d7f57b6513a67514ab4f073275ad00c9822fc8935e00229d0a2089e1c02685d4b1 - languageName: node - linkType: hard - -"is-windows@npm:^1.0.2": - version: 1.0.2 - resolution: "is-windows@npm:1.0.2" - checksum: 10c0/b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5 - languageName: node - linkType: hard - -"isarray@npm:0.0.1": - version: 0.0.1 - resolution: "isarray@npm:0.0.1" - checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311 - languageName: node - linkType: hard - -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: 10c0/4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd - languageName: node - linkType: hard - -"isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 - languageName: node - linkType: hard - -"isomorphic-ws@npm:^4.0.1": - version: 4.0.1 - resolution: "isomorphic-ws@npm:4.0.1" - peerDependencies: - ws: "*" - checksum: 10c0/7cb90dc2f0eb409825558982fb15d7c1d757a88595efbab879592f9d2b63820d6bbfb5571ab8abe36c715946e165a413a99f6aafd9f40ab1f514d73487bc9996 - languageName: node - linkType: hard - -"isomorphic-ws@npm:^5.0.0": - version: 5.0.0 - resolution: "isomorphic-ws@npm:5.0.0" - peerDependencies: - ws: "*" - checksum: 10c0/a058ac8b5e6efe9e46252cb0bc67fd325005d7216451d1a51238bc62d7da8486f828ef017df54ddf742e0fffcbe4b1bcc2a66cc115b027ed0180334cd18df252 - languageName: node - linkType: hard - -"isstream@npm:~0.1.2": - version: 0.1.2 - resolution: "isstream@npm:0.1.2" - checksum: 10c0/a6686a878735ca0a48e0d674dd6d8ad31aedfaf70f07920da16ceadc7577b46d67179a60b313f2e6860cb097a2c2eb3cbd0b89e921ae89199a59a17c3273d66f - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.2 - resolution: "istanbul-lib-coverage@npm:3.2.2" - checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b - languageName: node - linkType: hard - -"istanbul-lib-hook@npm:^3.0.0": - version: 3.0.0 - resolution: "istanbul-lib-hook@npm:3.0.0" - dependencies: - append-transform: "npm:^2.0.0" - checksum: 10c0/0029bdbc4ae82c2a5a0b48a2f4ba074de72601a5d27505493c9be83d4c7952039ad787d2f6d1321710b75a05059c4335a0eb7c8857ca82e7e6d19f8d88d03b46 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^4.0.0": - version: 4.0.3 - resolution: "istanbul-lib-instrument@npm:4.0.3" - dependencies: - "@babel/core": "npm:^7.7.5" - "@istanbuljs/schema": "npm:^0.1.2" - istanbul-lib-coverage: "npm:^3.0.0" - semver: "npm:^6.3.0" - checksum: 10c0/7f1005566a912e33e847576b2c1072d48a7c556810a54d912f3e2f0bd966171e68b30c40b0c1ce6ee9b8864de422d0c10e2d0dfd2d25b48723950cc78cd437c2 - languageName: node - linkType: hard - -"istanbul-lib-processinfo@npm:^2.0.2": - version: 2.0.3 - resolution: "istanbul-lib-processinfo@npm:2.0.3" - dependencies: - archy: "npm:^1.0.0" - cross-spawn: "npm:^7.0.3" - istanbul-lib-coverage: "npm:^3.2.0" - p-map: "npm:^3.0.0" - rimraf: "npm:^3.0.0" - uuid: "npm:^8.3.2" - checksum: 10c0/ffd0f9b1c8e266e980580f83e65397caeace3958e4b4326b4479dcb0e41a450698387b96b4d4823e63b7c4a403f72e6e30d9e788ddcf153edb422a9d6f64a998 - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.1 - resolution: "istanbul-lib-report@npm:3.0.1" - dependencies: - istanbul-lib-coverage: "npm:^3.0.0" - make-dir: "npm:^4.0.0" - supports-color: "npm:^7.1.0" - checksum: 10c0/84323afb14392de8b6a5714bd7e9af845cfbd56cfe71ed276cda2f5f1201aea673c7111901227ee33e68e4364e288d73861eb2ed48f6679d1e69a43b6d9b3ba7 - languageName: node - linkType: hard - -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: "npm:^4.1.1" - istanbul-lib-coverage: "npm:^3.0.0" - source-map: "npm:^0.6.1" - checksum: 10c0/19e4cc405016f2c906dff271a76715b3e881fa9faeb3f09a86cb99b8512b3a5ed19cadfe0b54c17ca0e54c1142c9c6de9330d65506e35873994e06634eebeb66 - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.0.2": - version: 3.1.7 - resolution: "istanbul-reports@npm:3.1.7" - dependencies: - html-escaper: "npm:^2.0.0" - istanbul-lib-report: "npm:^3.0.0" - checksum: 10c0/a379fadf9cf8dc5dfe25568115721d4a7eb82fbd50b005a6672aff9c6989b20cc9312d7865814e0859cd8df58cbf664482e1d3604be0afde1f7fc3ccc1394a51 - languageName: node - linkType: hard - -"jackspeak@npm:^2.3.6": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" - dependencies: - "@isaacs/cliui": "npm:^8.0.2" - "@pkgjs/parseargs": "npm:^0.11.0" - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 10c0/f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 - languageName: node - linkType: hard - -"js-sha3@npm:0.5.7, js-sha3@npm:^0.5.7": - version: 0.5.7 - resolution: "js-sha3@npm:0.5.7" - checksum: 10c0/17b17d557f9d594ed36ba6c8cdc234bedd7b74ce4baf171e23a1f16b9a89b1527ae160e4eb1b836520acf5919b00732a22183fb00b7808702c36f646c1e9e973 - languageName: node - linkType: hard - -"js-sha3@npm:0.8.0, js-sha3@npm:^0.8.0": - version: 0.8.0 - resolution: "js-sha3@npm:0.8.0" - checksum: 10c0/43a21dc7967c871bd2c46cb1c2ae97441a97169f324e509f382d43330d8f75cf2c96dba7c806ab08a425765a9c847efdd4bffbac2d99c3a4f3de6c0218f40533 - languageName: node - linkType: hard - -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed - languageName: node - linkType: hard - -"js-yaml@npm:3.x, js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: "npm:^1.0.7" - esprima: "npm:^4.0.0" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b - languageName: node - linkType: hard - -"js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: "npm:^2.0.1" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f - languageName: node - linkType: hard - -"jsbn@npm:1.1.0": - version: 1.1.0 - resolution: "jsbn@npm:1.1.0" - checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 - languageName: node - linkType: hard - -"jsbn@npm:~0.1.0": - version: 0.1.1 - resolution: "jsbn@npm:0.1.1" - checksum: 10c0/e046e05c59ff880ee4ef68902dbdcb6d2f3c5d60c357d4d68647dc23add556c31c0e5f41bdb7e69e793dd63468bd9e085da3636341048ef577b18f5b713877c0 - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 - languageName: node - linkType: hard - -"json-pointer@npm:^0.6.1": - version: 0.6.2 - resolution: "json-pointer@npm:0.6.2" - dependencies: - foreach: "npm:^2.0.4" - checksum: 10c0/47f6103032c0340b3392cb650e0ec817f785eccb553407da13fae85bc535483c9b359d7e756de4ed73130172c28d2b02f8beb53a700a98b12e72c7bf70e734b7 - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce - languageName: node - linkType: hard - -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 10c0/71e30015d7f3d6dc1c316d6298047c8ef98a06d31ad064919976583eb61e1018a60a0067338f0f79cabc00d84af3fcc489bd48ce8a46ea165d9541ba17fb30c6 - languageName: node - linkType: hard - -"json-schema-typed@npm:^7.0.3": - version: 7.0.3 - resolution: "json-schema-typed@npm:7.0.3" - checksum: 10c0/b4a6d984dd91f9aba72df8768c5ced99e789b8e17b55ee24afb3a687ce55b70a7b3f4360cac67939e1ff98e136ca26f3aa530635c13ef371ae5edc48b69a65f6 - languageName: node - linkType: hard - -"json-schema@npm:0.4.0": - version: 0.4.0 - resolution: "json-schema@npm:0.4.0" - checksum: 10c0/d4a637ec1d83544857c1c163232f3da46912e971d5bf054ba44fdb88f07d8d359a462b4aec46f2745efbc57053365608d88bc1d7b1729f7b4fc3369765639ed3 - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 - languageName: node - linkType: hard - -"json-stable-stringify@npm:^1.0.1": - version: 1.1.1 - resolution: "json-stable-stringify@npm:1.1.1" - dependencies: - call-bind: "npm:^1.0.5" - isarray: "npm:^2.0.5" - jsonify: "npm:^0.0.1" - object-keys: "npm:^1.1.1" - checksum: 10c0/3801e3eeccbd030afb970f54bea690a079cfea7d9ed206a1b17ca9367f4b7772c764bf77a48f03e56b50e5f7ee7d11c52339fe20d8d7ccead003e4ca69e4cfde - languageName: node - linkType: hard - -"json-stringify-safe@npm:~5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 - languageName: node - linkType: hard - -"json5@npm:^1.0.2": - version: 1.0.2 - resolution: "json5@npm:1.0.2" - dependencies: - minimist: "npm:^1.2.0" - bin: - json5: lib/cli.js - checksum: 10c0/9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f - languageName: node - linkType: hard - -"json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c - languageName: node - linkType: hard - -"jsonfile@npm:^2.1.0": - version: 2.4.0 - resolution: "jsonfile@npm:2.4.0" - dependencies: - graceful-fs: "npm:^4.1.6" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 10c0/02ad746d9490686519b3369bc9572694076eb982e1b4982c5ad9b91bc3c0ad30d10c866bb26b7a87f0c4025a80222cd2962cb57083b5a6a475a9031eab8c8962 - languageName: node - linkType: hard - -"jsonfile@npm:^4.0.0": - version: 4.0.0 - resolution: "jsonfile@npm:4.0.0" - dependencies: - graceful-fs: "npm:^4.1.6" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 10c0/7dc94b628d57a66b71fb1b79510d460d662eb975b5f876d723f81549c2e9cd316d58a2ddf742b2b93a4fa6b17b2accaf1a738a0e2ea114bdfb13a32e5377e480 - languageName: node - linkType: hard - -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: "npm:^4.1.6" - universalify: "npm:^2.0.0" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 - languageName: node - linkType: hard - -"jsonify@npm:^0.0.1": - version: 0.0.1 - resolution: "jsonify@npm:0.0.1" - checksum: 10c0/7f5499cdd59a0967ed35bda48b7cec43d850bbc8fb955cdd3a1717bb0efadbe300724d5646de765bb7a99fc1c3ab06eb80d93503c6faaf99b4ff50a3326692f6 - languageName: node - linkType: hard - -"jsonschema@npm:^1.2.4": - version: 1.4.1 - resolution: "jsonschema@npm:1.4.1" - checksum: 10c0/c3422d3fc7d33ff7234a806ffa909bb6fb5d1cd664bea229c64a1785dc04cbccd5fc76cf547c6ab6dd7881dbcaf3540a6a9f925a5956c61a9cd3e23a3c1796ef - languageName: node - linkType: hard - -"jsprim@npm:^1.2.2": - version: 1.4.2 - resolution: "jsprim@npm:1.4.2" - dependencies: - assert-plus: "npm:1.0.0" - extsprintf: "npm:1.3.0" - json-schema: "npm:0.4.0" - verror: "npm:1.10.0" - checksum: 10c0/5e4bca99e90727c2040eb4c2190d0ef1fe51798ed5714e87b841d304526190d960f9772acc7108fa1416b61e1122bcd60e4460c91793dce0835df5852aab55af - languageName: node - linkType: hard - -"keccak@npm:3.0.2": - version: 3.0.2 - resolution: "keccak@npm:3.0.2" - dependencies: - node-addon-api: "npm:^2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.2.0" - readable-stream: "npm:^3.6.0" - checksum: 10c0/f1673e0f9bab4eb8a5bd232227916c592716d3b961e14e6ab3fabcf703c896c83fdbcd230f7b4a44f076d50fb0931ec1b093a98e4b0e74680b56be123a4a93f6 - languageName: node - linkType: hard - -"keccak@npm:^3.0.0, keccak@npm:^3.0.2": - version: 3.0.4 - resolution: "keccak@npm:3.0.4" - dependencies: - node-addon-api: "npm:^2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.2.0" - readable-stream: "npm:^3.6.0" - checksum: 10c0/153525c1c1f770beadb8f8897dec2f1d2dcbee11d063fe5f61957a5b236bfd3d2a111ae2727e443aa6a848df5edb98b9ef237c78d56df49087b0ca8a232ca9cd - languageName: node - linkType: hard - -"keyv@npm:^4.0.0, keyv@npm:^4.5.3": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" - dependencies: - json-buffer: "npm:3.0.1" - checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e - languageName: node - linkType: hard - -"kind-of@npm:^6.0.2": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 10c0/61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4 - languageName: node - linkType: hard - -"klaw@npm:^1.0.0": - version: 1.3.1 - resolution: "klaw@npm:1.3.1" - dependencies: - graceful-fs: "npm:^4.1.9" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 10c0/da994768b02b3843cc994c99bad3cf1c8c67716beb4dd2834133c919e9e9ee788669fbe27d88ab0ad9a3991349c28280afccbde01c2318229b662dd7a05e4728 - languageName: node - linkType: hard - -"kuler@npm:^2.0.0": - version: 2.0.0 - resolution: "kuler@npm:2.0.0" - checksum: 10c0/0a4e99d92ca373f8f74d1dc37931909c4d0d82aebc94cf2ba265771160fc12c8df34eaaac80805efbda367e2795cb1f1dd4c3d404b6b1cf38aec94035b503d2d - languageName: node - linkType: hard - -"lcid@npm:^1.0.0": - version: 1.0.0 - resolution: "lcid@npm:1.0.0" - dependencies: - invert-kv: "npm:^1.0.0" - checksum: 10c0/87fb32196c3c80458778f34f71c042e114f3134a3c86c0d60ee9c94f0750e467d7ca0c005a5224ffd9d49a6e449b5e5c31e1544f1827765a0ba8747298f5980e - languageName: node - linkType: hard - -"level-codec@npm:9.0.2, level-codec@npm:^9.0.0": - version: 9.0.2 - resolution: "level-codec@npm:9.0.2" - dependencies: - buffer: "npm:^5.6.0" - checksum: 10c0/38a7eb8beed37969ad93160251d5be8e667d4ea0ee199d5e72e61739e552987a71acaa2daa1d2dbc7541f0cfb64e2bd8b50c3d8757cfa41468d8631aa45cc0eb - languageName: node - linkType: hard - -"level-concat-iterator@npm:^3.0.0": - version: 3.1.0 - resolution: "level-concat-iterator@npm:3.1.0" - dependencies: - catering: "npm:^2.1.0" - checksum: 10c0/7bb1b8e991a179de2fecfd38d2c34544a139e1228cb730f3024ef11dcbd514cc89be30b02a2a81ef4e16b0c1553f604378f67302ea23868d98f055f9fa241ae4 - languageName: node - linkType: hard - -"level-concat-iterator@npm:~2.0.0": - version: 2.0.1 - resolution: "level-concat-iterator@npm:2.0.1" - checksum: 10c0/b0a55ec63137b159fdb69204fbac02f33fbfbaa61563db21121300f6da6a35dd4654dc872df6ca1067c0ca4f98074ccbb59c28044d0043600a940a506c3d4a71 - languageName: node - linkType: hard - -"level-errors@npm:^2.0.0, level-errors@npm:~2.0.0": - version: 2.0.1 - resolution: "level-errors@npm:2.0.1" - dependencies: - errno: "npm:~0.1.1" - checksum: 10c0/9e664afb98febe22e6ccde063be85e2b6e472414325bea87f0b2288bec589ef97658028f8654dc4716a06cda15c205e910b6cf5eb3906ed3ca06ea84d370002f - languageName: node - linkType: hard - -"level-iterator-stream@npm:~4.0.0": - version: 4.0.2 - resolution: "level-iterator-stream@npm:4.0.2" - dependencies: - inherits: "npm:^2.0.4" - readable-stream: "npm:^3.4.0" - xtend: "npm:^4.0.2" - checksum: 10c0/29994d5449428c246dc7d983220ca333ddaaa9e0fe9a664bb23750693db6cff4be62e8e31b6e8a0e1057c09a94580b965206c048701f96c3e8e97720a3c1e7c8 - languageName: node - linkType: hard - -"level-js@npm:^5.0.0": - version: 5.0.2 - resolution: "level-js@npm:5.0.2" - dependencies: - abstract-leveldown: "npm:~6.2.3" - buffer: "npm:^5.5.0" - inherits: "npm:^2.0.3" - ltgt: "npm:^2.1.2" - checksum: 10c0/2f5ccc96541ee9191bb9f8fd970918ade426d3dbb68e0414267a3c204d04952ef72651be241d40579dcb178948c14be5c36758da99df76a04a31d6227949f8a6 - languageName: node - linkType: hard - -"level-packager@npm:^5.1.0": - version: 5.1.1 - resolution: "level-packager@npm:5.1.1" - dependencies: - encoding-down: "npm:^6.3.0" - levelup: "npm:^4.3.2" - checksum: 10c0/dc3ad1d3bc1fc85154ab85ac8220ffc7ff4da7b2be725c53ea8716780a2ef37d392c7dffae769a0419341f19febe78d86da998981b4ba3be673db1cb95051e95 - languageName: node - linkType: hard - -"level-supports@npm:^2.0.1": - version: 2.1.0 - resolution: "level-supports@npm:2.1.0" - checksum: 10c0/60481dd403234c64e2c01ed2aafdc75250ddd49d770f75ebef3f92a2a5b2271bf774858bfd8c47cfae3955855f9ff9dd536683d6cffb7c085cd0e57245c4c039 - languageName: node - linkType: hard - -"level-supports@npm:^4.0.0": - version: 4.0.1 - resolution: "level-supports@npm:4.0.1" - checksum: 10c0/a94aa591786845d17c9c62ad075ae33e0fce5be714baa6e16305ed14e2d3638d09e724247fa3f63951e36de57ffd168d63e159e79d03944ee648054b8c7c1684 - languageName: node - linkType: hard - -"level-supports@npm:~1.0.0": - version: 1.0.1 - resolution: "level-supports@npm:1.0.1" - dependencies: - xtend: "npm:^4.0.2" - checksum: 10c0/6e8eb2be4c2c55e04e71dff831421a81d95df571e0004b6e6e0cee8421e792e22b3ab94ecaa925dc626164f442185b2e2bfb5d52b257d1639f8f9da8714c8335 - languageName: node - linkType: hard - -"level-transcoder@npm:^1.0.1": - version: 1.0.1 - resolution: "level-transcoder@npm:1.0.1" - dependencies: - buffer: "npm:^6.0.3" - module-error: "npm:^1.0.1" - checksum: 10c0/25936330676325f22c5143aff5c7fe3f1db156db99f9efb07a2642045c2c6ee565fcbfccbadc0600b3abf8bbe595632cacc3dd334009214069d1857daa57987e - languageName: node - linkType: hard - -"level-write-stream@npm:1.0.0": - version: 1.0.0 - resolution: "level-write-stream@npm:1.0.0" - dependencies: - end-stream: "npm:~0.1.0" - checksum: 10c0/ff7d9c07d760aa2f6cc8c2d41ff5c6358dede99d1f275cb180c673e4825e169f0a3f3895f50e6cad6d9af324f7376b30f1ba685d4525838746707f1b569a53a5 - languageName: node - linkType: hard - -"level@npm:6.0.1": - version: 6.0.1 - resolution: "level@npm:6.0.1" - dependencies: - level-js: "npm:^5.0.0" - level-packager: "npm:^5.1.0" - leveldown: "npm:^5.4.0" - checksum: 10c0/275068a7c58e6fd3eb53be2eeaf90d6ba6d566904591b68fe10022affc16b28575a2ccf580f384d38ea64c116b2c8046e517a34a0c3b5da12c635a4732eccf6d - languageName: node - linkType: hard - -"leveldown@npm:5.6.0, leveldown@npm:^5.4.0": - version: 5.6.0 - resolution: "leveldown@npm:5.6.0" - dependencies: - abstract-leveldown: "npm:~6.2.1" - napi-macros: "npm:~2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:~4.1.0" - checksum: 10c0/d5c4569aca5a856da4012ecaf507a7ba3e28ef18bde000a1826bf7a485357ddd18ea9ea335e94b9f12274d19b9b7d28d3268ac330f2e96d0067115edf8dc3396 - languageName: node - linkType: hard - -"leveldown@npm:6.1.0": - version: 6.1.0 - resolution: "leveldown@npm:6.1.0" - dependencies: - abstract-leveldown: "npm:^7.2.0" - napi-macros: "npm:~2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10c0/5af0a9596baf44187a5cce5095d78b7c085d8c5a94d652ed42e7a40c60f057135d17b52ae473f9719c674e93db3941831406206f469c4e9f62987ceed92c33e1 - languageName: node - linkType: hard - -"levelup@npm:4.4.0, levelup@npm:^4.3.2": - version: 4.4.0 - resolution: "levelup@npm:4.4.0" - dependencies: - deferred-leveldown: "npm:~5.3.0" - level-errors: "npm:~2.0.0" - level-iterator-stream: "npm:~4.0.0" - level-supports: "npm:~1.0.0" - xtend: "npm:~4.0.0" - checksum: 10c0/e67eeb72cf10face92f73527b63ea0754bc3ab7ced76f8bf909fb51db1a2e687e2206415807c2de6862902eb00046e5bf34d64d587e3892d4cb89db687c2a957 - languageName: node - linkType: hard - -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: "npm:^1.2.1" - type-check: "npm:~0.4.0" - checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e - languageName: node - linkType: hard - -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: "npm:~1.1.2" - type-check: "npm:~0.3.2" - checksum: 10c0/e440df9de4233da0b389cd55bd61f0f6aaff766400bebbccd1231b81801f6dbc1d816c676ebe8d70566394b749fa624b1ed1c68070e9c94999f0bdecc64cb676 - languageName: node - linkType: hard - -"load-json-file@npm:^1.0.0": - version: 1.1.0 - resolution: "load-json-file@npm:1.1.0" - dependencies: - graceful-fs: "npm:^4.1.2" - parse-json: "npm:^2.2.0" - pify: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - strip-bom: "npm:^2.0.0" - checksum: 10c0/2a5344c2d88643735a938fdca8582c0504e1c290577faa74f56b9cc187fa443832709a15f36e5771f779ec0878215a03abc8faf97ec57bb86092ceb7e0caef22 - languageName: node - linkType: hard - -"locate-path@npm:^2.0.0": - version: 2.0.0 - resolution: "locate-path@npm:2.0.0" - dependencies: - p-locate: "npm:^2.0.0" - path-exists: "npm:^3.0.0" - checksum: 10c0/24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133 - languageName: node - linkType: hard - -"locate-path@npm:^3.0.0": - version: 3.0.0 - resolution: "locate-path@npm:3.0.0" - dependencies: - p-locate: "npm:^3.0.0" - path-exists: "npm:^3.0.0" - checksum: 10c0/3db394b7829a7fe2f4fbdd25d3c4689b85f003c318c5da4052c7e56eed697da8f1bce5294f685c69ff76e32cba7a33629d94396976f6d05fb7f4c755c5e2ae8b - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: "npm:^4.1.0" - checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 - languageName: node - linkType: hard - -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" - dependencies: - p-locate: "npm:^5.0.0" - checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 - languageName: node - linkType: hard - -"lodash-es@npm:^4.2.1": - version: 4.17.21 - resolution: "lodash-es@npm:4.17.21" - checksum: 10c0/fb407355f7e6cd523a9383e76e6b455321f0f153a6c9625e21a8827d10c54c2a2341bd2ae8d034358b60e07325e1330c14c224ff582d04612a46a4f0479ff2f2 - languageName: node - linkType: hard - -"lodash.assign@npm:^4.0.3, lodash.assign@npm:^4.0.6": - version: 4.2.0 - resolution: "lodash.assign@npm:4.2.0" - checksum: 10c0/77e9a28edcb41655e5f5b4b07ec55a5f9bbd6f020f64474acd66c94ce256ed26451f59e5eb421fc4e5ea79d3939a2e2b3a6abeaa0da47bfd1ccd64dfb21f89a0 - languageName: node - linkType: hard - -"lodash.camelcase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.camelcase@npm:4.3.0" - checksum: 10c0/fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432 - languageName: node - linkType: hard - -"lodash.clonedeep@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.clonedeep@npm:4.5.0" - checksum: 10c0/2caf0e4808f319d761d2939ee0642fa6867a4bbf2cfce43276698828380756b99d4c4fa226d881655e6ac298dd453fe12a5ec8ba49861777759494c534936985 - languageName: node - linkType: hard - -"lodash.flattendeep@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.flattendeep@npm:4.4.0" - checksum: 10c0/83cb80754b921fb4ed2c222b91a82b2524f3bdc60c3ae91e00688bd4bf1bcc28b8a2cc250e11fdc1b6da3a2de09e57008e13f15a209cafdd4f9163d047f97544 - languageName: node - linkType: hard - -"lodash.isequal@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.isequal@npm:4.5.0" - checksum: 10c0/dfdb2356db19631a4b445d5f37868a095e2402292d59539a987f134a8778c62a2810c2452d11ae9e6dcac71fc9de40a6fedcb20e2952a15b431ad8b29e50e28f - languageName: node - linkType: hard - -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 - languageName: node - linkType: hard - -"lodash.sortby@npm:^4.7.0": - version: 4.7.0 - resolution: "lodash.sortby@npm:4.7.0" - checksum: 10c0/fc48fb54ff7669f33bb32997cab9460757ee99fafaf72400b261c3e10fde21538e47d8cfcbe6a25a31bcb5b7b727c27d52626386fc2de24eb059a6d64a89cdf5 - languageName: node - linkType: hard - -"lodash.truncate@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.truncate@npm:4.4.2" - checksum: 10c0/4e870d54e8a6c86c8687e057cec4069d2e941446ccab7f40b4d9555fa5872d917d0b6aa73bece7765500a3123f1723bcdba9ae881b679ef120bba9e1a0b0ed70 - languageName: node - linkType: hard - -"lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.2.1": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c - languageName: node - linkType: hard - -"log-symbols@npm:4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: "npm:^4.1.0" - is-unicode-supported: "npm:^0.1.0" - checksum: 10c0/67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 - languageName: node - linkType: hard - -"logform@npm:^2.3.2, logform@npm:^2.4.0": - version: 2.6.0 - resolution: "logform@npm:2.6.0" - dependencies: - "@colors/colors": "npm:1.6.0" - "@types/triple-beam": "npm:^1.3.2" - fecha: "npm:^4.2.0" - ms: "npm:^2.1.1" - safe-stable-stringify: "npm:^2.3.1" - triple-beam: "npm:^1.3.0" - checksum: 10c0/6e02f8617a03155b2fce451bacf777a2c01da16d32c4c745b3ec85be6c3f2602f2a4953a8bd096441cb4c42c447b52318541d6b6bc335dce903cb9ad77a1749f - languageName: node - linkType: hard - -"loglevel@npm:^1.6.8": - version: 1.9.1 - resolution: "loglevel@npm:1.9.1" - checksum: 10c0/152f0501cea367cf998c844a38b19f0b5af555756ad7d8650214a1f8c6a5b045e31b8cf5dae27d28339a061624ce3f618aadb333aed386cac041d6ddc5101a39 - languageName: node - linkType: hard - -"long@npm:^4.0.0": - version: 4.0.0 - resolution: "long@npm:4.0.0" - checksum: 10c0/50a6417d15b06104dbe4e3d4a667c39b137f130a9108ea8752b352a4cfae047531a3ac351c181792f3f8768fe17cca6b0f406674a541a86fb638aaac560d83ed - languageName: node - linkType: hard - -"loose-envify@npm:^1.1.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: "npm:^3.0.0 || ^4.0.0" - bin: - loose-envify: cli.js - checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e - languageName: node - linkType: hard - -"loupe@npm:^2.3.6": - version: 2.3.7 - resolution: "loupe@npm:2.3.7" - dependencies: - get-func-name: "npm:^2.0.1" - checksum: 10c0/71a781c8fc21527b99ed1062043f1f2bb30bdaf54fa4cf92463427e1718bc6567af2988300bc243c1f276e4f0876f29e3cbf7b58106fdc186915687456ce5bf4 - languageName: node - linkType: hard - -"lower-case-first@npm:^1.0.0": - version: 1.0.2 - resolution: "lower-case-first@npm:1.0.2" - dependencies: - lower-case: "npm:^1.1.2" - checksum: 10c0/e0689a82df329db44e28b0dd53ccace09a8a4918fc86aa6c08b091ec31bc5f3496a0b07cf7e81be065335bea996f7aa0fbe0163a3e6f019b0480a5f20a79e871 - languageName: node - linkType: hard - -"lower-case@npm:^1.1.0, lower-case@npm:^1.1.1, lower-case@npm:^1.1.2": - version: 1.1.4 - resolution: "lower-case@npm:1.1.4" - checksum: 10c0/2153ae5490d655a63addc8e7d2f848c6c94803b342ed2d177f75e8073e9fbb50a733d1432c82e1cb8425fa6eae14b2877bf5bbdcb93ab93bb982fb5c3962c57b - languageName: node - linkType: hard - -"lowercase-keys@npm:^2.0.0": - version: 2.0.0 - resolution: "lowercase-keys@npm:2.0.0" - checksum: 10c0/f82a2b3568910509da4b7906362efa40f5b54ea14c2584778ddb313226f9cbf21020a5db35f9b9a0e95847a9b781d548601f31793d736b22a2b8ae8eb9ab1082 - languageName: node - linkType: hard - -"lowercase-keys@npm:^3.0.0": - version: 3.0.0 - resolution: "lowercase-keys@npm:3.0.0" - checksum: 10c0/ef62b9fa5690ab0a6e4ef40c94efce68e3ed124f583cc3be38b26ff871da0178a28b9a84ce0c209653bb25ca135520ab87fea7cd411a54ac4899cb2f30501430 - languageName: node - linkType: hard - -"lru-cache@npm:7.10.1 - 7.13.1": - version: 7.13.1 - resolution: "lru-cache@npm:7.13.1" - checksum: 10c0/72034557cdb0d2ae32e5c1db928ee32b6d2b3a3e7b5aae2860f4f4c7272fefd4ebc5292a9df1dde10d07a78517836c49d84d8b101df13c100343bba80839c6cf - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.2.0 - resolution: "lru-cache@npm:10.2.0" - checksum: 10c0/c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee - languageName: node - linkType: hard - -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: "npm:^3.0.2" - checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 - languageName: node - linkType: hard - -"lru_map@npm:^0.3.3": - version: 0.3.3 - resolution: "lru_map@npm:0.3.3" - checksum: 10c0/d861f14a142a4a74ebf8d3ad57f2e768a5b820db4100ae53eed1a64eb6350912332e6ebc87cb7415ad6d0cd8f3ce6d20beab9a5e6042ccb5996ea0067a220448 - languageName: node - linkType: hard - -"ltgt@npm:2.2.1, ltgt@npm:^2.1.2, ltgt@npm:~2.2.0": - version: 2.2.1 - resolution: "ltgt@npm:2.2.1" - checksum: 10c0/60fdad732c3aa6acf37e927a5ef58c0d1776192321d55faa1f8775c134c27fbf20ef8ec542fb7f7f33033f79c2a2df75cac39b43e274b32e9d95400154cd41f3 - languageName: node - linkType: hard - -"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2": - version: 3.1.0 - resolution: "make-dir@npm:3.1.0" - dependencies: - semver: "npm:^6.0.0" - checksum: 10c0/56aaafefc49c2dfef02c5c95f9b196c4eb6988040cf2c712185c7fe5c99b4091591a7fc4d4eafaaefa70ff763a26f6ab8c3ff60b9e75ea19876f49b18667ecaa - languageName: node - linkType: hard - -"make-dir@npm:^4.0.0": - version: 4.0.0 - resolution: "make-dir@npm:4.0.0" - dependencies: - semver: "npm:^7.5.3" - checksum: 10c0/69b98a6c0b8e5c4fe9acb61608a9fbcfca1756d910f51e5dbe7a9e5cfb74fca9b8a0c8a0ffdf1294a740826c1ab4871d5bf3f62f72a3049e5eac6541ddffed68 - languageName: node - linkType: hard - -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f - languageName: node - linkType: hard - -"make-fetch-happen@npm:^13.0.0": - version: 13.0.0 - resolution: "make-fetch-happen@npm:13.0.0" - dependencies: - "@npmcli/agent": "npm:^2.0.0" - cacache: "npm:^18.0.0" - http-cache-semantics: "npm:^4.1.1" - is-lambda: "npm:^1.0.1" - minipass: "npm:^7.0.2" - minipass-fetch: "npm:^3.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - promise-retry: "npm:^2.0.1" - ssri: "npm:^10.0.0" - checksum: 10c0/43b9f6dcbc6fe8b8604cb6396957c3698857a15ba4dbc38284f7f0e61f248300585ef1eb8cc62df54e9c724af977e45b5cdfd88320ef7f53e45070ed3488da55 - languageName: node - linkType: hard - -"markdown-table@npm:^1.1.3": - version: 1.1.3 - resolution: "markdown-table@npm:1.1.3" - checksum: 10c0/aea6eb998900449d938ce46819630492792dd26ac9737f8b506f98baf88c98b7cc1e69c33b72959e0f8578fc0a4b4b44d740daf2db9d8e92ccf3c3522f749fda - languageName: node - linkType: hard - -"md5.js@npm:^1.3.4": - version: 1.3.5 - resolution: "md5.js@npm:1.3.5" - dependencies: - hash-base: "npm:^3.0.0" - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.1.2" - checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5 - languageName: node - linkType: hard - -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: 10c0/d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928 - languageName: node - linkType: hard - -"memdown@npm:1.4.1": - version: 1.4.1 - resolution: "memdown@npm:1.4.1" - dependencies: - abstract-leveldown: "npm:~2.7.1" - functional-red-black-tree: "npm:^1.0.1" - immediate: "npm:^3.2.3" - inherits: "npm:~2.0.1" - ltgt: "npm:~2.2.0" - safe-buffer: "npm:~5.1.1" - checksum: 10c0/046e69fc5da9242ae281e901df75e22ba01b2c9de4f6bbc6c89ab3da1b5d8408fbe81e54f92b273b217678eed0363e7165746df4772258cb0e588884459ebac6 - languageName: node - linkType: hard - -"memorystream@npm:^0.3.1": - version: 0.3.1 - resolution: "memorystream@npm:0.3.1" - checksum: 10c0/4bd164657711d9747ff5edb0508b2944414da3464b7fe21ac5c67cf35bba975c4b446a0124bd0f9a8be54cfc18faf92e92bd77563a20328b1ccf2ff04e9f39b9 - languageName: node - linkType: hard - -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 10c0/b67d07bd44cfc45cebdec349bb6e1f7b077ee2fd5beb15d1f7af073849208cb6f144fe403e29a36571baf3f4e86469ac39acf13c318381e958e186b2766f54ec - languageName: node - linkType: hard - -"merge2@npm:^1.2.3, merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb - languageName: node - linkType: hard - -"methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: 10c0/bdf7cc72ff0a33e3eede03708c08983c4d7a173f91348b4b1e4f47d4cdbf734433ad971e7d1e8c77247d9e5cd8adb81ea4c67b0a2db526b758b2233d7814b8b2 - languageName: node - linkType: hard - -"micro-ftch@npm:^0.3.1": - version: 0.3.1 - resolution: "micro-ftch@npm:0.3.1" - checksum: 10c0/b87d35a52aded13cf2daca8d4eaa84e218722b6f83c75ddd77d74f32cc62e699a672e338e1ee19ceae0de91d19cc24dcc1a7c7d78c81f51042fe55f01b196ed3 - languageName: node - linkType: hard - -"micromatch@npm:^4.0.4": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: "npm:^3.0.2" - picomatch: "npm:^2.3.1" - checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.16, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 - languageName: node - linkType: hard - -"mime@npm:1.6.0": - version: 1.6.0 - resolution: "mime@npm:1.6.0" - bin: - mime: cli.js - checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 - languageName: node - linkType: hard - -"mimic-fn@npm:^3.0.0": - version: 3.1.0 - resolution: "mimic-fn@npm:3.1.0" - checksum: 10c0/a07cdd8ed6490c2dff5b11f889b245d9556b80f5a653a552a651d17cff5a2d156e632d235106c2369f00cccef4071704589574cf3601bc1b1400a1f620dff067 - languageName: node - linkType: hard - -"mimic-response@npm:^1.0.0": - version: 1.0.1 - resolution: "mimic-response@npm:1.0.1" - checksum: 10c0/c5381a5eae997f1c3b5e90ca7f209ed58c3615caeee850e85329c598f0c000ae7bec40196580eef1781c60c709f47258131dab237cad8786f8f56750594f27fa - languageName: node - linkType: hard - -"mimic-response@npm:^3.1.0": - version: 3.1.0 - resolution: "mimic-response@npm:3.1.0" - checksum: 10c0/0d6f07ce6e03e9e4445bee655202153bdb8a98d67ee8dc965ac140900d7a2688343e6b4c9a72cfc9ef2f7944dfd76eef4ab2482eb7b293a68b84916bac735362 - languageName: node - linkType: hard - -"min-document@npm:^2.19.0": - version: 2.19.0 - resolution: "min-document@npm:2.19.0" - dependencies: - dom-walk: "npm:^0.1.0" - checksum: 10c0/783724da716fc73a51c171865d7b29bf2b855518573f82ef61c40d214f6898d7b91b5c5419e4d22693cdb78d4615873ebc3b37d7639d3dd00ca283e5a07c7af9 - languageName: node - linkType: hard - -"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": - version: 1.0.1 - resolution: "minimalistic-assert@npm:1.0.1" - checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd - languageName: node - linkType: hard - -"minimalistic-crypto-utils@npm:^1.0.1": - version: 1.0.1 - resolution: "minimalistic-crypto-utils@npm:1.0.1" - checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8 - languageName: node - linkType: hard - -"minimatch@npm:2 || 3, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: "npm:^1.1.7" - checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 - languageName: node - linkType: hard - -"minimatch@npm:5.0.1": - version: 5.0.1 - resolution: "minimatch@npm:5.0.1" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/baa60fc5839205f13d6c266d8ad4d160ae37c33f66b130b5640acac66deff84b934ac6307f5dc5e4b30362c51284817c12df7c9746ffb600b9009c581e0b1634 - languageName: node - linkType: hard - -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac - languageName: node - linkType: hard - -"minimatch@npm:^5.0.1": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 - languageName: node - linkType: hard - -"minimatch@npm:^9.0.1": - version: 9.0.4 - resolution: "minimatch@npm:9.0.4" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414 - languageName: node - linkType: hard - -"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": - version: 1.2.8 - resolution: "minimist@npm:1.2.8" - checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e - languageName: node - linkType: hard - -"minipass-fetch@npm:^3.0.0": - version: 3.0.4 - resolution: "minipass-fetch@npm:3.0.4" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^7.0.3" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^2.1.2" - dependenciesMeta: - encoding: - optional: true - checksum: 10c0/1b63c1f3313e88eeac4689f1b71c9f086598db9a189400e3ee960c32ed89e06737fa23976c9305c2d57464fb3fcdc12749d3378805c9d6176f5569b0d0ee8a75 - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb - languageName: node - linkType: hard - -"minipass@npm:^2.6.0, minipass@npm:^2.9.0": - version: 2.9.0 - resolution: "minipass@npm:2.9.0" - dependencies: - safe-buffer: "npm:^5.1.2" - yallist: "npm:^3.0.0" - checksum: 10c0/307d8765ac3db9fcd6b486367e6f6c3e460f3a3e198d95d6c0005a2d95804c40c72959261cdebde3c8237cda0b03d4c01975e4581fe11abcf201f5005caafd2a - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c - languageName: node - linkType: hard - -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4": - version: 7.0.4 - resolution: "minipass@npm:7.0.4" - checksum: 10c0/6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 - languageName: node - linkType: hard - -"minizlib@npm:^1.3.3": - version: 1.3.3 - resolution: "minizlib@npm:1.3.3" - dependencies: - minipass: "npm:^2.9.0" - checksum: 10c0/79798032bbaa6594fa517e5b7ff9977951984fc9548a421b28d3fb0add8ed7e98a33e41e262af53b944f9d860c1e00fc778b477ef692e7b38b1ba12b390ffb17 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: "npm:^3.0.0" - yallist: "npm:^4.0.0" - checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 - languageName: node - linkType: hard - -"mkdirp-promise@npm:^5.0.1": - version: 5.0.1 - resolution: "mkdirp-promise@npm:5.0.1" - dependencies: - mkdirp: "npm:*" - checksum: 10c0/c99007908866d65ebaa1fd7f0b0d090e577ac92f6cc5cb98b91a68a461fd9b973412447fb00be3bb2346f5535126667f1e27964abf390f2c1cd077e4fdb59e08 - languageName: node - linkType: hard - -"mkdirp@npm:*": - version: 3.0.1 - resolution: "mkdirp@npm:3.0.1" - bin: - mkdirp: dist/cjs/src/bin.js - checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d - languageName: node - linkType: hard - -"mkdirp@npm:0.5.x, mkdirp@npm:^0.5.5": - version: 0.5.6 - resolution: "mkdirp@npm:0.5.6" - dependencies: - minimist: "npm:^1.2.6" - bin: - mkdirp: bin/cmd.js - checksum: 10c0/e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf - languageName: node - linkType: hard - -"mnemonist@npm:^0.38.0": - version: 0.38.5 - resolution: "mnemonist@npm:0.38.5" - dependencies: - obliterator: "npm:^2.0.0" - checksum: 10c0/a73a2718f88cd12c3b108ecc530619a1b0f2783d479c7f98e7367375102cc3a28811bab384e17eb731553dc8d7ee9d60283d694a9f676af5f306104e75027d4f - languageName: node - linkType: hard - -"mocha@npm:10.1.0": - version: 10.1.0 - resolution: "mocha@npm:10.1.0" - dependencies: - ansi-colors: "npm:4.1.1" - browser-stdout: "npm:1.3.1" - chokidar: "npm:3.5.3" - debug: "npm:4.3.4" - diff: "npm:5.0.0" - escape-string-regexp: "npm:4.0.0" - find-up: "npm:5.0.0" - glob: "npm:7.2.0" - he: "npm:1.2.0" - js-yaml: "npm:4.1.0" - log-symbols: "npm:4.1.0" - minimatch: "npm:5.0.1" - ms: "npm:2.1.3" - nanoid: "npm:3.3.3" - serialize-javascript: "npm:6.0.0" - strip-json-comments: "npm:3.1.1" - supports-color: "npm:8.1.1" - workerpool: "npm:6.2.1" - yargs: "npm:16.2.0" - yargs-parser: "npm:20.2.4" - yargs-unparser: "npm:2.0.0" - bin: - _mocha: bin/_mocha - mocha: bin/mocha.js - checksum: 10c0/a5b84d1e5018afbedfb60cceb7983257e9ca0b0959a9097bd88b1b928908db020188ac029e6fb59bfbf7ad29b79d182172e49acc4db6a437eea0ddfa870c4e83 - languageName: node - linkType: hard - -"mocha@npm:^10.0.0, mocha@npm:^10.2.0": - version: 10.4.0 - resolution: "mocha@npm:10.4.0" - dependencies: - ansi-colors: "npm:4.1.1" - browser-stdout: "npm:1.3.1" - chokidar: "npm:3.5.3" - debug: "npm:4.3.4" - diff: "npm:5.0.0" - escape-string-regexp: "npm:4.0.0" - find-up: "npm:5.0.0" - glob: "npm:8.1.0" - he: "npm:1.2.0" - js-yaml: "npm:4.1.0" - log-symbols: "npm:4.1.0" - minimatch: "npm:5.0.1" - ms: "npm:2.1.3" - serialize-javascript: "npm:6.0.0" - strip-json-comments: "npm:3.1.1" - supports-color: "npm:8.1.1" - workerpool: "npm:6.2.1" - yargs: "npm:16.2.0" - yargs-parser: "npm:20.2.4" - yargs-unparser: "npm:2.0.0" - bin: - _mocha: bin/_mocha - mocha: bin/mocha.js - checksum: 10c0/e572e9d8c164e98f64de7e9498608de042fd841c6a7441f456a5e216e9aed2299e2c568d9dc27f2be2de06521e6b2d1dd774ab58a243b1c7697d14aec2f0f7f7 - languageName: node - linkType: hard - -"mock-fs@npm:^4.1.0": - version: 4.14.0 - resolution: "mock-fs@npm:4.14.0" - checksum: 10c0/a23bc2ce74f2a01d02053fb20aecc2ea359e62580cd15b5e1029b55929802e2770bbd683ccdc5c1eabb5cecbf452196bb81a0ef61c4629dc819023e10d8303c6 - languageName: node - linkType: hard - -"module-error@npm:^1.0.1": - version: 1.0.2 - resolution: "module-error@npm:1.0.2" - checksum: 10c0/584a43a1bb2720c6c6c771e257a308af4f042a17c17b1472a2c855130a1ad93ba516a82ae7ac2ce2d03062e521cc53c03ec0ce153795d895312d7747fb3bb99b - languageName: node - linkType: hard - -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc - languageName: node - linkType: hard - -"ms@npm:2.1.3, ms@npm:^2.1.1": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 - languageName: node - linkType: hard - -"multibase@npm:^0.7.0": - version: 0.7.0 - resolution: "multibase@npm:0.7.0" - dependencies: - base-x: "npm:^3.0.8" - buffer: "npm:^5.5.0" - checksum: 10c0/59f0ccda12b33d358d91c13b99f565a58b06629dd558d8e07ee919bb7c7ba90c823f72b84c011b7e9abe50e55d72e75c7289e9c6d630babf2b757cdf138ad01a - languageName: node - linkType: hard - -"multibase@npm:~0.6.0": - version: 0.6.1 - resolution: "multibase@npm:0.6.1" - dependencies: - base-x: "npm:^3.0.8" - buffer: "npm:^5.5.0" - checksum: 10c0/305b6b77da15735d0c3104751b1d7af637812efeb78ebc7f77df385bed401217a2bbc4b6f113518a5c4b89df85e28e8f8186b31ad4cda913c8da09d46b489083 - languageName: node - linkType: hard - -"multicodec@npm:^0.5.5": - version: 0.5.7 - resolution: "multicodec@npm:0.5.7" - dependencies: - varint: "npm:^5.0.0" - checksum: 10c0/449afa52a3e4cc3fdd164e9035d6e876c72365fec5cae212af56c9564345172b284272396adf8197ad5476941c76852021b505fd1190e2471628f1cf1b5f2e68 - languageName: node - linkType: hard - -"multicodec@npm:^1.0.0": - version: 1.0.4 - resolution: "multicodec@npm:1.0.4" - dependencies: - buffer: "npm:^5.6.0" - varint: "npm:^5.0.0" - checksum: 10c0/b64516ec9cbea770748aa502fe3f69e1199c220954766bf271ed2fcbcc8916d844bd82f590285490486bf533ea437a9ac402a8dcd18124954c536e6568d948cf - languageName: node - linkType: hard - -"multihashes@npm:^0.4.15, multihashes@npm:~0.4.15": - version: 0.4.21 - resolution: "multihashes@npm:0.4.21" - dependencies: - buffer: "npm:^5.5.0" - multibase: "npm:^0.7.0" - varint: "npm:^5.0.0" - checksum: 10c0/7138eed5566775ff4966ffe55201e3bdd64c949256c71f3d290dc4f41a75d27d4a81755b58048ecfd8a252cfd3f7181976973ea6245d09a7ea992afc8dc77d9d - languageName: node - linkType: hard - -"nano-base32@npm:^1.0.1": - version: 1.0.1 - resolution: "nano-base32@npm:1.0.1" - checksum: 10c0/1807f86227782a391107d166eb6d265923937f8e4ee8a9642ff5af27a68d540f6a1284bba0cebe2baba0bf6e332eea5c85bca6d3da67429c22e318970a41b7e0 - languageName: node - linkType: hard - -"nano-json-stream-parser@npm:^0.1.2": - version: 0.1.2 - resolution: "nano-json-stream-parser@npm:0.1.2" - checksum: 10c0/c42df4cf2922a0b9771a6927df85bb10de01009ea0ea3d354eb3cd7f59d50cbe1350ebdfc78c0fb3dcb71adcdea2c4e3452e0210db8875b0d03f61210151a9a7 - languageName: node - linkType: hard - -"nanoid@npm:3.3.3": - version: 3.3.3 - resolution: "nanoid@npm:3.3.3" - bin: - nanoid: bin/nanoid.cjs - checksum: 10c0/d7ab68893cdb92dd2152d505e56571d571c65b71a9815f9dfb3c9a8cbf943fe43c9777d9a95a3b81ef01e442fec8409a84375c08f90a5753610a9f22672d953a - languageName: node - linkType: hard - -"napi-macros@npm:~2.0.0": - version: 2.0.0 - resolution: "napi-macros@npm:2.0.0" - checksum: 10c0/583ef5084b43e49a12488cdcd4c5142f11e114e249b359161579b64f06776ed523c209d96e4ee2689e2e824c92445d0f529d817cc153f7cec549210296ec4be6 - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 - languageName: node - linkType: hard - -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 - languageName: node - linkType: hard - -"neo-async@npm:^2.6.2": - version: 2.6.2 - resolution: "neo-async@npm:2.6.2" - checksum: 10c0/c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d - languageName: node - linkType: hard - -"next-tick@npm:^1.1.0": - version: 1.1.0 - resolution: "next-tick@npm:1.1.0" - checksum: 10c0/3ba80dd805fcb336b4f52e010992f3e6175869c8d88bf4ff0a81d5d66e6049f89993463b28211613e58a6b7fe93ff5ccbba0da18d4fa574b96289e8f0b577f28 - languageName: node - linkType: hard - -"no-case@npm:^2.2.0, no-case@npm:^2.3.2": - version: 2.3.2 - resolution: "no-case@npm:2.3.2" - dependencies: - lower-case: "npm:^1.1.1" - checksum: 10c0/63f306e83c18efa0bb37f1c23a25baf4ccf5ebaec70b482fa04d4c5bf8bbb8bcc9a8fbcd818af828ab69f2b602153daf81ec26e448b2bda2d704b8d0c7eec8fa - languageName: node - linkType: hard - -"node-abort-controller@npm:^3.0.1": - version: 3.1.1 - resolution: "node-abort-controller@npm:3.1.1" - checksum: 10c0/f7ad0e7a8e33809d4f3a0d1d65036a711c39e9d23e0319d80ebe076b9a3b4432b4d6b86a7fab65521de3f6872ffed36fc35d1327487c48eb88c517803403eda3 - languageName: node - linkType: hard - -"node-addon-api@npm:^2.0.0": - version: 2.0.2 - resolution: "node-addon-api@npm:2.0.2" - dependencies: - node-gyp: "npm:latest" - checksum: 10c0/ade6c097ba829fa4aee1ca340117bb7f8f29fdae7b777e343a9d5cbd548481d1f0894b7b907d23ce615c70d932e8f96154caed95c3fa935cfe8cf87546510f64 - languageName: node - linkType: hard - -"node-emoji@npm:^1.10.0": - version: 1.11.0 - resolution: "node-emoji@npm:1.11.0" - dependencies: - lodash: "npm:^4.17.21" - checksum: 10c0/5dac6502dbef087092d041fcc2686d8be61168593b3a9baf964d62652f55a3a9c2277f171b81cccb851ccef33f2d070f45e633fab1fda3264f8e1ae9041c673f - languageName: node - linkType: hard - -"node-fetch@npm:2.6.7": - version: 2.6.7 - resolution: "node-fetch@npm:2.6.7" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 10c0/fcae80f5ac52fbf5012f5e19df2bd3915e67d3b3ad51cb5942943df2238d32ba15890fecabd0e166876a9f98a581ab50f3f10eb942b09405c49ef8da36b826c7 - languageName: node - linkType: hard - -"node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7": - version: 2.7.0 - resolution: "node-fetch@npm:2.7.0" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 - languageName: node - linkType: hard - -"node-gyp-build@npm:4.4.0": - version: 4.4.0 - resolution: "node-gyp-build@npm:4.4.0" - bin: - node-gyp-build: bin.js - node-gyp-build-optional: optional.js - node-gyp-build-test: build-test.js - checksum: 10c0/11bbec933352004c6a754c9d2e3ac7ad02a09750cd06800fdcfdf111638bd897767ab94b7ed386ceaa155bb195ca8404037d7e79c2cbe7e9cd38ec74e5f5b5d2 - languageName: node - linkType: hard - -"node-gyp-build@npm:^4.2.0, node-gyp-build@npm:^4.3.0": - version: 4.8.0 - resolution: "node-gyp-build@npm:4.8.0" - bin: - node-gyp-build: bin.js - node-gyp-build-optional: optional.js - node-gyp-build-test: build-test.js - checksum: 10c0/85324be16f81f0235cbbc42e3eceaeb1b5ab94c8d8f5236755e1435b4908338c65a4e75f66ee343cbcb44ddf9b52a428755bec16dcd983295be4458d95c8e1ad - languageName: node - linkType: hard - -"node-gyp-build@npm:~4.1.0": - version: 4.1.1 - resolution: "node-gyp-build@npm:4.1.1" - bin: - node-gyp-build: ./bin.js - node-gyp-build-optional: ./optional.js - node-gyp-build-test: ./build-test.js - checksum: 10c0/8c652daa855612c9ed8aa95dca5e7dc34d72f3849ef415412aef261e44956c0d73ba197401be5c605a709e47fbaa80c76bb31ce29c6bba4f829efbaf457b4698 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 10.1.0 - resolution: "node-gyp@npm:10.1.0" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - glob: "npm:^10.3.10" - graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^13.0.0" - nopt: "npm:^7.0.0" - proc-log: "npm:^3.0.0" - semver: "npm:^7.3.5" - tar: "npm:^6.1.2" - which: "npm:^4.0.0" - bin: - node-gyp: bin/node-gyp.js - checksum: 10c0/9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c - languageName: node - linkType: hard - -"node-interval-tree@npm:^1.3.3": - version: 1.3.3 - resolution: "node-interval-tree@npm:1.3.3" - dependencies: - shallowequal: "npm:^1.0.2" - checksum: 10c0/81af3ba623465e93a0ff8f488f60c53f9aeeac151fb5b657af4e0e9a751818cc27aadf44110e082e28a56ca0929f49045378f72c9dba4d754b137859cb3bd4ba - languageName: node - linkType: hard - -"node-preload@npm:^0.2.1": - version: 0.2.1 - resolution: "node-preload@npm:0.2.1" - dependencies: - process-on-spawn: "npm:^1.0.0" - checksum: 10c0/7ae3def896626701e2a27b0c8119e0234089db4317b8c16bb8c44bee9abb82c0e38d57e6317d480970f5a2510e44185af81d3ea85be1a78311701f66f912e9e4 - languageName: node - linkType: hard - -"node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 10c0/199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 - languageName: node - linkType: hard - -"nofilter@npm:^1.0.4": - version: 1.0.4 - resolution: "nofilter@npm:1.0.4" - checksum: 10c0/fcee4ed627e18c8d66dda5afca79607e569e6997c08bd12dfb8a1578fe2674a1de7761b36ae207d6a10c545f27e236aae18f0c2b33e0ef8971507bda419793b7 - languageName: node - linkType: hard - -"nofilter@npm:^3.1.0": - version: 3.1.0 - resolution: "nofilter@npm:3.1.0" - checksum: 10c0/92459f3864a067b347032263f0b536223cbfc98153913b5dce350cb39c8470bc1813366e41993f22c33cc6400c0f392aa324a4b51e24c22040635c1cdb046499 - languageName: node - linkType: hard - -"nopt@npm:3.x": - version: 3.0.6 - resolution: "nopt@npm:3.0.6" - dependencies: - abbrev: "npm:1" - bin: - nopt: ./bin/nopt.js - checksum: 10c0/f4414223c392dd215910942268d9bdc101ab876400f2c0626b88b718254f5c730dbab5eda58519dc4ea05b681ed8f09c147570ed273ade7fc07757e2e4f12c3d - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.0 - resolution: "nopt@npm:7.2.0" - dependencies: - abbrev: "npm:^2.0.0" - bin: - nopt: bin/nopt.js - checksum: 10c0/9bd7198df6f16eb29ff16892c77bcf7f0cc41f9fb5c26280ac0def2cf8cf319f3b821b3af83eba0e74c85807cc430a16efe0db58fe6ae1f41e69519f585b6aff - languageName: node - linkType: hard - -"normalize-package-data@npm:^2.3.2": - version: 2.5.0 - resolution: "normalize-package-data@npm:2.5.0" - dependencies: - hosted-git-info: "npm:^2.1.4" - resolve: "npm:^1.10.0" - semver: "npm:2 || 3 || 4 || 5" - validate-npm-package-license: "npm:^3.0.1" - checksum: 10c0/357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504 - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 - languageName: node - linkType: hard - -"normalize-url@npm:^6.0.1": - version: 6.1.0 - resolution: "normalize-url@npm:6.1.0" - checksum: 10c0/95d948f9bdd2cfde91aa786d1816ae40f8262946e13700bf6628105994fe0ff361662c20af3961161c38a119dc977adeb41fc0b41b1745eb77edaaf9cb22db23 - languageName: node - linkType: hard - -"nth-check@npm:^2.0.1": - version: 2.1.1 - resolution: "nth-check@npm:2.1.1" - dependencies: - boolbase: "npm:^1.0.0" - checksum: 10c0/5fee7ff309727763689cfad844d979aedd2204a817fbaaf0e1603794a7c20db28548d7b024692f953557df6ce4a0ee4ae46cd8ebd9b36cfb300b9226b567c479 - languageName: node - linkType: hard - -"number-is-nan@npm:^1.0.0": - version: 1.0.1 - resolution: "number-is-nan@npm:1.0.1" - checksum: 10c0/cb97149006acc5cd512c13c1838223abdf202e76ddfa059c5e8e7507aff2c3a78cd19057516885a2f6f5b576543dc4f7b6f3c997cc7df53ae26c260855466df5 - languageName: node - linkType: hard - -"number-to-bn@npm:1.7.0": - version: 1.7.0 - resolution: "number-to-bn@npm:1.7.0" - dependencies: - bn.js: "npm:4.11.6" - strip-hex-prefix: "npm:1.0.0" - checksum: 10c0/83d1540173c4fc60ef4e91e88ed17f2c38418c8e5e62f469d62404527efba48d9c40f364da5c5e6857234a6c1154ff32b3642d80f873ba6cb8d2dd05fb6bc303 - languageName: node - linkType: hard - -"nyc@npm:^15.1.0": - version: 15.1.0 - resolution: "nyc@npm:15.1.0" - dependencies: - "@istanbuljs/load-nyc-config": "npm:^1.0.0" - "@istanbuljs/schema": "npm:^0.1.2" - caching-transform: "npm:^4.0.0" - convert-source-map: "npm:^1.7.0" - decamelize: "npm:^1.2.0" - find-cache-dir: "npm:^3.2.0" - find-up: "npm:^4.1.0" - foreground-child: "npm:^2.0.0" - get-package-type: "npm:^0.1.0" - glob: "npm:^7.1.6" - istanbul-lib-coverage: "npm:^3.0.0" - istanbul-lib-hook: "npm:^3.0.0" - istanbul-lib-instrument: "npm:^4.0.0" - istanbul-lib-processinfo: "npm:^2.0.2" - istanbul-lib-report: "npm:^3.0.0" - istanbul-lib-source-maps: "npm:^4.0.0" - istanbul-reports: "npm:^3.0.2" - make-dir: "npm:^3.0.0" - node-preload: "npm:^0.2.1" - p-map: "npm:^3.0.0" - process-on-spawn: "npm:^1.0.0" - resolve-from: "npm:^5.0.0" - rimraf: "npm:^3.0.0" - signal-exit: "npm:^3.0.2" - spawn-wrap: "npm:^2.0.0" - test-exclude: "npm:^6.0.0" - yargs: "npm:^15.0.2" - bin: - nyc: bin/nyc.js - checksum: 10c0/ad0da0627b465f9e88f45105416774a04a033096115bcce8de8952fae25b6e3f3b6441ce81a484b7cd1b79c792aee271f68f57cefe9bb6d062720e61f2feed2c - languageName: node - linkType: hard - -"oauth-sign@npm:~0.9.0": - version: 0.9.0 - resolution: "oauth-sign@npm:0.9.0" - checksum: 10c0/fc92a516f6ddbb2699089a2748b04f55c47b6ead55a77cd3a2cbbce5f7af86164cb9425f9ae19acfd066f1ad7d3a96a67b8928c6ea946426f6d6c29e448497c2 - languageName: node - linkType: hard - -"object-assign@npm:^4, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 - languageName: node - linkType: hard - -"object-inspect@npm:^1.13.1": - version: 1.13.1 - resolution: "object-inspect@npm:1.13.1" - checksum: 10c0/fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d - languageName: node - linkType: hard - -"object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d - languageName: node - linkType: hard - -"object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" - dependencies: - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - has-symbols: "npm:^1.0.3" - object-keys: "npm:^1.1.1" - checksum: 10c0/60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469 - languageName: node - linkType: hard - -"object.fromentries@npm:^2.0.7": - version: 2.0.8 - resolution: "object.fromentries@npm:2.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b - languageName: node - linkType: hard - -"object.groupby@npm:^1.0.1": - version: 1.0.3 - resolution: "object.groupby@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - checksum: 10c0/60d0455c85c736fbfeda0217d1a77525956f76f7b2495edeca9e9bbf8168a45783199e77b894d30638837c654d0cc410e0e02cbfcf445bc8de71c3da1ede6a9c - languageName: node - linkType: hard - -"object.values@npm:^1.1.7": - version: 1.2.0 - resolution: "object.values@npm:1.2.0" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/15809dc40fd6c5529501324fec5ff08570b7d70fb5ebbe8e2b3901afec35cf2b3dc484d1210c6c642cd3e7e0a5e18dd1d6850115337fef46bdae14ab0cb18ac3 - languageName: node - linkType: hard - -"obliterator@npm:^2.0.0": - version: 2.0.4 - resolution: "obliterator@npm:2.0.4" - checksum: 10c0/ff2c10d4de7d62cd1d588b4d18dfc42f246c9e3a259f60d5716f7f88e5b3a3f79856b3207db96ec9a836a01d0958a21c15afa62a3f4e73a1e0b75f2c2f6bab40 - languageName: node - linkType: hard - -"oboe@npm:2.1.5": - version: 2.1.5 - resolution: "oboe@npm:2.1.5" - dependencies: - http-https: "npm:^1.0.0" - checksum: 10c0/98e0b37d26a592e36a2a1ffef6f8d30d81046f9577535d380e8cf05e3f25cf239bc28c19a98512b41b31efdf3d6cf5be2375f395aa69b1bd2e85f6e12e4c22f9 - languageName: node - linkType: hard - -"on-finished@npm:2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" - dependencies: - ee-first: "npm:1.1.1" - checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 - languageName: node - linkType: hard - -"once@npm:1.x, once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: "npm:1" - checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 - languageName: node - linkType: hard - -"one-time@npm:^1.0.0": - version: 1.0.0 - resolution: "one-time@npm:1.0.0" - dependencies: - fn.name: "npm:1.x.x" - checksum: 10c0/6e4887b331edbb954f4e915831cbec0a7b9956c36f4feb5f6de98c448ac02ff881fd8d9b55a6b1b55030af184c6b648f340a76eb211812f4ad8c9b4b8692fdaa - languageName: node - linkType: hard - -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: "npm:^2.1.0" - checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f - languageName: node - linkType: hard - -"optionator@npm:^0.8.1": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: "npm:~0.1.3" - fast-levenshtein: "npm:~2.0.6" - levn: "npm:~0.3.0" - prelude-ls: "npm:~1.1.2" - type-check: "npm:~0.3.2" - word-wrap: "npm:~1.2.3" - checksum: 10c0/ad7000ea661792b3ec5f8f86aac28895850988926f483b5f308f59f4607dfbe24c05df2d049532ee227c040081f39401a268cf7bbf3301512f74c4d760dc6dd8 - languageName: node - linkType: hard - -"optionator@npm:^0.9.3": - version: 0.9.3 - resolution: "optionator@npm:0.9.3" - dependencies: - "@aashutoshrathi/word-wrap": "npm:^1.2.3" - deep-is: "npm:^0.1.3" - fast-levenshtein: "npm:^2.0.6" - levn: "npm:^0.4.1" - prelude-ls: "npm:^1.2.1" - type-check: "npm:^0.4.0" - checksum: 10c0/66fba794d425b5be51353035cf3167ce6cfa049059cbb93229b819167687e0f48d2bc4603fcb21b091c99acb516aae1083624675b15c4765b2e4693a085e959c - languageName: node - linkType: hard - -"ordinal@npm:^1.0.3": - version: 1.0.3 - resolution: "ordinal@npm:1.0.3" - checksum: 10c0/faa276fc1b1660477fd5c8749323c9715ae4f482c21fb8e67e57d1eb57845ba1b902796ecdcf6405325a8c3b042360970f5dc3b7f8cc7d79e0b2a756ab09174d - languageName: node - linkType: hard - -"original-require@npm:^1.0.1": - version: 1.0.1 - resolution: "original-require@npm:1.0.1" - checksum: 10c0/a97e043e30dd57271c397d2cd3316f078ccde76cb5850453847c2ceed0c81d9ce4bde719b55ea4c308f3a4b8904803fa57d7f7e93d0c8a8e6e434ba6a2f57d7d - languageName: node - linkType: hard - -"os-locale@npm:^1.4.0": - version: 1.4.0 - resolution: "os-locale@npm:1.4.0" - dependencies: - lcid: "npm:^1.0.0" - checksum: 10c0/302173159d562000ddf982ed75c493a0d861e91372c9e1b13aab21590ff2e1ba264a41995b29be8dc5278a6127ffcd2ad5591779e8164a570fc5fa6c0787b057 - languageName: node - linkType: hard - -"os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: 10c0/f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990 - languageName: node - linkType: hard - -"p-cancelable@npm:^2.0.0": - version: 2.1.1 - resolution: "p-cancelable@npm:2.1.1" - checksum: 10c0/8c6dc1f8dd4154fd8b96a10e55a3a832684c4365fb9108056d89e79fbf21a2465027c04a59d0d797b5ffe10b54a61a32043af287d5c4860f1e996cbdbc847f01 - languageName: node - linkType: hard - -"p-cancelable@npm:^3.0.0": - version: 3.0.0 - resolution: "p-cancelable@npm:3.0.0" - checksum: 10c0/948fd4f8e87b956d9afc2c6c7392de9113dac817cb1cecf4143f7a3d4c57ab5673614a80be3aba91ceec5e4b69fd8c869852d7e8048bc3d9273c4c36ce14b9aa - languageName: node - linkType: hard - -"p-limit@npm:^1.1.0": - version: 1.3.0 - resolution: "p-limit@npm:1.3.0" - dependencies: - p-try: "npm:^1.0.0" - checksum: 10c0/5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee - languageName: node - linkType: hard - -"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: "npm:^2.0.0" - checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 - languageName: node - linkType: hard - -"p-limit@npm:^3.0.2": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: "npm:^0.1.0" - checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a - languageName: node - linkType: hard - -"p-locate@npm:^2.0.0": - version: 2.0.0 - resolution: "p-locate@npm:2.0.0" - dependencies: - p-limit: "npm:^1.1.0" - checksum: 10c0/82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67 - languageName: node - linkType: hard - -"p-locate@npm:^3.0.0": - version: 3.0.0 - resolution: "p-locate@npm:3.0.0" - dependencies: - p-limit: "npm:^2.0.0" - checksum: 10c0/7b7f06f718f19e989ce6280ed4396fb3c34dabdee0df948376483032f9d5ec22fdf7077ec942143a75827bb85b11da72016497fc10dac1106c837ed593969ee8 - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: "npm:^2.2.0" - checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 - languageName: node - linkType: hard - -"p-locate@npm:^5.0.0": - version: 5.0.0 - resolution: "p-locate@npm:5.0.0" - dependencies: - p-limit: "npm:^3.0.2" - checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a - languageName: node - linkType: hard - -"p-map@npm:^3.0.0": - version: 3.0.0 - resolution: "p-map@npm:3.0.0" - dependencies: - aggregate-error: "npm:^3.0.0" - checksum: 10c0/297930737e52412ad9f5787c52774ad6496fad9a8be5f047e75fd0a3dc61930d8f7a9b2bbe1c4d1404e54324228a4f69721da2538208dadaa4ef4c81773c9f20 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: "npm:^3.0.0" - checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 - languageName: node - linkType: hard - -"p-try@npm:^1.0.0": - version: 1.0.0 - resolution: "p-try@npm:1.0.0" - checksum: 10c0/757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f - languageName: node - linkType: hard - -"package-hash@npm:^4.0.0": - version: 4.0.0 - resolution: "package-hash@npm:4.0.0" - dependencies: - graceful-fs: "npm:^4.1.15" - hasha: "npm:^5.0.0" - lodash.flattendeep: "npm:^4.4.0" - release-zalgo: "npm:^1.0.0" - checksum: 10c0/2108b685fd5b2a32323aeed5caf2afef8c5fcf680527b09c7e2eaa05cf04b09a7c586860319097fc589ad028a3d94b2da68e8ab1935249aa95e8162ffd622729 - languageName: node - linkType: hard - -"pako@npm:^1.0.4": - version: 1.0.11 - resolution: "pako@npm:1.0.11" - checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe - languageName: node - linkType: hard - -"param-case@npm:^2.1.0": - version: 2.1.1 - resolution: "param-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - checksum: 10c0/8ea1b8472fd51d5f50b28d1d754899713805d05f2241e9b8c4acafa2c500b3f47457a3b4932ab75220f14d2c69180bb7338b78a45576e2b4d90da1e6f0285833 - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: "npm:^3.0.0" - checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 - languageName: node - linkType: hard - -"parse-cache-control@npm:^1.0.1": - version: 1.0.1 - resolution: "parse-cache-control@npm:1.0.1" - checksum: 10c0/330a0d9e3a22a7b0f6e8a973c0b9f51275642ee28544cd0d546420273946d555d20a5c7b49fca24d68d2e698bae0186f0f41f48d62133d3153c32454db05f2df - languageName: node - linkType: hard - -"parse-headers@npm:^2.0.0": - version: 2.0.5 - resolution: "parse-headers@npm:2.0.5" - checksum: 10c0/950d75034f46be8b77c491754aefa61b32954e675200d9247ec60b2acaf85c0cc053c44e44b35feed9034a34cc696a5b6fda693b5a0b23daf3294959dd216124 - languageName: node - linkType: hard - -"parse-json@npm:^2.2.0": - version: 2.2.0 - resolution: "parse-json@npm:2.2.0" - dependencies: - error-ex: "npm:^1.2.0" - checksum: 10c0/7a90132aa76016f518a3d5d746a21b3f1ad0f97a68436ed71b6f995b67c7151141f5464eea0c16c59aec9b7756519a0e3007a8f98cf3714632d509ec07736df6 - languageName: node - linkType: hard - -"parse5-htmlparser2-tree-adapter@npm:^7.0.0": - version: 7.0.0 - resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0" - dependencies: - domhandler: "npm:^5.0.2" - parse5: "npm:^7.0.0" - checksum: 10c0/e820cacb8486e6f7ede403327d18480df086d70e32ede2f6654d8c3a8b4b8dc4a4d5c21c03c18a92ba2466c513b93ca63be4a138dd73cd0995f384eb3b9edf11 - languageName: node - linkType: hard - -"parse5@npm:^7.0.0": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" - dependencies: - entities: "npm:^4.4.0" - checksum: 10c0/297d7af8224f4b5cb7f6617ecdae98eeaed7f8cbd78956c42785e230505d5a4f07cef352af10d3006fa5c1544b76b57784d3a22d861ae071bbc460c649482bf4 - languageName: node - linkType: hard - -"parseurl@npm:^1.3.3, parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 - languageName: node - linkType: hard - -"pascal-case@npm:^2.0.0, pascal-case@npm:^2.0.1": - version: 2.0.1 - resolution: "pascal-case@npm:2.0.1" - dependencies: - camel-case: "npm:^3.0.0" - upper-case-first: "npm:^1.1.0" - checksum: 10c0/84420c1ceeee36eebe7a6975926f50500563f2c664160b952ff78774af85696d06d52a0fbfeb28c063ee37da6c83665d2518a4fefc9c66996226cabb04a1319e - languageName: node - linkType: hard - -"path-case@npm:^2.1.0": - version: 2.1.1 - resolution: "path-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - checksum: 10c0/ea74c24b55cbc2a9d766415e79f53d48a4227cecd0259a00dc4392df6195f68055de164f90c27a3b2056c1977a28a99b2916b66bade0cbf6cf18a8045e76c922 - languageName: node - linkType: hard - -"path-exists@npm:^2.0.0": - version: 2.1.0 - resolution: "path-exists@npm:2.1.0" - dependencies: - pinkie-promise: "npm:^2.0.0" - checksum: 10c0/87352f1601c085d5a6eb202f60e5c016c1b790bd0bc09398af446ed3f5c4510b4531ff99cf8acac2d91868886e792927b4292f768b35a83dce12588fb7cbb46e - languageName: node - linkType: hard - -"path-exists@npm:^3.0.0": - version: 3.0.0 - resolution: "path-exists@npm:3.0.0" - checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167 - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 - languageName: node - linkType: hard - -"path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c - languageName: node - linkType: hard - -"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 - languageName: node - linkType: hard - -"path-scurry@npm:^1.10.2": - version: 1.10.2 - resolution: "path-scurry@npm:1.10.2" - dependencies: - lru-cache: "npm:^10.2.0" - minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - checksum: 10c0/d723777fbf9627f201e64656680f66ebd940957eebacf780e6cce1c2919c29c116678b2d7dbf8821b3a2caa758d125f4444005ccec886a25c8f324504e48e601 - languageName: node - linkType: hard - -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 10c0/50a1ddb1af41a9e68bd67ca8e331a705899d16fb720a1ea3a41e310480948387daf603abb14d7b0826c58f10146d49050a1291ba6a82b78a382d1c02c0b8f905 - languageName: node - linkType: hard - -"path-type@npm:^1.0.0": - version: 1.1.0 - resolution: "path-type@npm:1.1.0" - dependencies: - graceful-fs: "npm:^4.1.2" - pify: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - checksum: 10c0/2b8c348cb52bbc0c0568afa10a0a5d8f6233adfe5ae75feb56064f6aed6324ab74185c61c2545f4e52ca08acdc76005f615da4e127ed6eecb866002cf491f350 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c - languageName: node - linkType: hard - -"pathval@npm:^1.1.1": - version: 1.1.1 - resolution: "pathval@npm:1.1.1" - checksum: 10c0/f63e1bc1b33593cdf094ed6ff5c49c1c0dc5dc20a646ca9725cc7fe7cd9995002d51d5685b9b2ec6814342935748b711bafa840f84c0bb04e38ff40a335c94dc - languageName: node - linkType: hard - -"pbkdf2@npm:^3.0.17": - version: 3.1.2 - resolution: "pbkdf2@npm:3.1.2" - dependencies: - create-hash: "npm:^1.1.2" - create-hmac: "npm:^1.1.4" - ripemd160: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - sha.js: "npm:^2.4.8" - checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd - languageName: node - linkType: hard - -"performance-now@npm:^2.1.0": - version: 2.1.0 - resolution: "performance-now@npm:2.1.0" - checksum: 10c0/22c54de06f269e29f640e0e075207af57de5052a3d15e360c09b9a8663f393f6f45902006c1e71aa8a5a1cdfb1a47fe268826f8496d6425c362f00f5bc3e85d9 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be - languageName: node - linkType: hard - -"pify@npm:^2.0.0": - version: 2.3.0 - resolution: "pify@npm:2.3.0" - checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc - languageName: node - linkType: hard - -"pify@npm:^4.0.1": - version: 4.0.1 - resolution: "pify@npm:4.0.1" - checksum: 10c0/6f9d404b0d47a965437403c9b90eca8bb2536407f03de165940e62e72c8c8b75adda5516c6b9b23675a5877cc0bcac6bdfb0ef0e39414cd2476d5495da40e7cf - languageName: node - linkType: hard - -"pinkie-promise@npm:^2.0.0": - version: 2.0.1 - resolution: "pinkie-promise@npm:2.0.1" - dependencies: - pinkie: "npm:^2.0.0" - checksum: 10c0/11b5e5ce2b090c573f8fad7b517cbca1bb9a247587306f05ae71aef6f9b2cd2b923c304aa9663c2409cfde27b367286179f1379bc4ec18a3fbf2bb0d473b160a - languageName: node - linkType: hard - -"pinkie@npm:^2.0.0": - version: 2.0.4 - resolution: "pinkie@npm:2.0.4" - checksum: 10c0/25228b08b5597da42dc384221aa0ce56ee0fbf32965db12ba838e2a9ca0193c2f0609c45551ee077ccd2060bf109137fdb185b00c6d7e0ed7e35006d20fdcbc6 - languageName: node - linkType: hard - -"pkg-dir@npm:^4.1.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: "npm:^4.0.0" - checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 - languageName: node - linkType: hard - -"pkg-up@npm:^3.1.0": - version: 3.1.0 - resolution: "pkg-up@npm:3.1.0" - dependencies: - find-up: "npm:^3.0.0" - checksum: 10c0/ecb60e1f8e1f611c0bdf1a0b6a474d6dfb51185567dc6f29cdef37c8d480ecba5362e006606bb290519bbb6f49526c403fabea93c3090c20368d98bb90c999ab - languageName: node - linkType: hard - -"pluralize@npm:^8.0.0": - version: 8.0.0 - resolution: "pluralize@npm:8.0.0" - checksum: 10c0/2044cfc34b2e8c88b73379ea4a36fc577db04f651c2909041b054c981cd863dd5373ebd030123ab058d194ae615d3a97cfdac653991e499d10caf592e8b3dc33 - languageName: node - linkType: hard - -"possible-typed-array-names@npm:^1.0.0": - version: 1.0.0 - resolution: "possible-typed-array-names@npm:1.0.0" - checksum: 10c0/d9aa22d31f4f7680e20269db76791b41c3a32c01a373e25f8a4813b4d45f7456bfc2b6d68f752dc4aab0e0bb0721cb3d76fb678c9101cb7a16316664bc2c73fd - languageName: node - linkType: hard - -"pouchdb-abstract-mapreduce@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-abstract-mapreduce@npm:7.3.1" - dependencies: - pouchdb-binary-utils: "npm:7.3.1" - pouchdb-collate: "npm:7.3.1" - pouchdb-collections: "npm:7.3.1" - pouchdb-errors: "npm:7.3.1" - pouchdb-fetch: "npm:7.3.1" - pouchdb-mapreduce-utils: "npm:7.3.1" - pouchdb-md5: "npm:7.3.1" - pouchdb-utils: "npm:7.3.1" - checksum: 10c0/0ab73c1d94dab66b2517028ebeb4be2355089e5695facff43db7c2131cab4e3cdb3c8f2a1f0857f16dfe261a5a37ed83e82651bffb373c8749440f05cf1a48a5 - languageName: node - linkType: hard - -"pouchdb-adapter-leveldb-core@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-adapter-leveldb-core@npm:7.3.1" - dependencies: - argsarray: "npm:0.0.1" - buffer-from: "npm:1.1.2" - double-ended-queue: "npm:2.1.0-0" - levelup: "npm:4.4.0" - pouchdb-adapter-utils: "npm:7.3.1" - pouchdb-binary-utils: "npm:7.3.1" - pouchdb-collections: "npm:7.3.1" - pouchdb-errors: "npm:7.3.1" - pouchdb-json: "npm:7.3.1" - pouchdb-md5: "npm:7.3.1" - pouchdb-merge: "npm:7.3.1" - pouchdb-utils: "npm:7.3.1" - sublevel-pouchdb: "npm:7.3.1" - through2: "npm:3.0.2" - checksum: 10c0/13142f2c61ad6ec16e42ff29fb2097fb89d063621f1c3d5d812b92646078f455188779127f3e469201d03beb60cff7f64bdc0942e8dde1cbb1f127972741a926 - languageName: node - linkType: hard - -"pouchdb-adapter-memory@npm:^7.1.1": - version: 7.3.1 - resolution: "pouchdb-adapter-memory@npm:7.3.1" - dependencies: - memdown: "npm:1.4.1" - pouchdb-adapter-leveldb-core: "npm:7.3.1" - pouchdb-utils: "npm:7.3.1" - checksum: 10c0/b92ff70e1c52753ef864fbf528a80b48c295cb6f97441de87383e3bda8da9bbbbacd27de596ee7fa59ee2188700f7083c558f1344ab2648c9bdb61626f65966d - languageName: node - linkType: hard - -"pouchdb-adapter-utils@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-adapter-utils@npm:7.3.1" - dependencies: - pouchdb-binary-utils: "npm:7.3.1" - pouchdb-collections: "npm:7.3.1" - pouchdb-errors: "npm:7.3.1" - pouchdb-md5: "npm:7.3.1" - pouchdb-merge: "npm:7.3.1" - pouchdb-utils: "npm:7.3.1" - checksum: 10c0/c1d183e9e2e34b033fba8958f10c5b4f0fbf1e00a43eb5fa77042f65c11ba52a8c2886f9d1dfd892e1858cea515a68a03541fad37abaa9cb9337f394216456f2 - languageName: node - linkType: hard - -"pouchdb-binary-utils@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-binary-utils@npm:7.3.1" - dependencies: - buffer-from: "npm:1.1.2" - checksum: 10c0/e756e62acc09e453fbbcc95ed5ff90a3d00b9771e3c46c1639d6e0df99842403656cbf377cb6f4f179c6e31887a5f6dc9ed2069dec7a806fa469d7bc7fc2148f - languageName: node - linkType: hard - -"pouchdb-collate@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-collate@npm:7.3.1" - checksum: 10c0/01ebfa10c1aedeba40604ece099de44e25d2595f1b7b5f91d1db10424e4811adb696315d144953e17e5724cbb1703ab9a488bcf426a2daba8ab324164155d735 - languageName: node - linkType: hard - -"pouchdb-collections@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-collections@npm:7.3.1" - checksum: 10c0/1885477760768bb8f899e4e044ff10506ec4c91df0d03e1dd67811de1f493dcc76924ac7e7931a8af54ca770242f695cbed08f2ee19f3250e22faddc48231f93 - languageName: node - linkType: hard - -"pouchdb-debug@npm:^7.1.1": - version: 7.2.1 - resolution: "pouchdb-debug@npm:7.2.1" - dependencies: - debug: "npm:3.1.0" - checksum: 10c0/8b6a06b6c43783e9752784ea0b7a0b493a1fd3383584f9ee5e850c7478863bcf6bdda5931e0ff8a2bda30cca5d87af0d99a30007fd4da1d648f82eafe6221a01 - languageName: node - linkType: hard - -"pouchdb-errors@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-errors@npm:7.3.1" - dependencies: - inherits: "npm:2.0.4" - checksum: 10c0/40768bccad9c540c4cab159cdf0bc32f332b6303ac0a6a77638d7745b2e91ca0ce836a9acdf8aa6540afa1eca4fc350c6e9f6548f1a7741d17642ca995cd9526 - languageName: node - linkType: hard - -"pouchdb-fetch@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-fetch@npm:7.3.1" - dependencies: - abort-controller: "npm:3.0.0" - fetch-cookie: "npm:0.11.0" - node-fetch: "npm:2.6.7" - checksum: 10c0/1fb25f486c8de2251650356c88427281f7905155c7c98365a0a4778376282c2cb09eda85e26e75b203e53ce1847dd7f95a8dbea1a036ed7731840f851333ac37 - languageName: node - linkType: hard - -"pouchdb-find@npm:^7.0.0": - version: 7.3.1 - resolution: "pouchdb-find@npm:7.3.1" - dependencies: - pouchdb-abstract-mapreduce: "npm:7.3.1" - pouchdb-collate: "npm:7.3.1" - pouchdb-errors: "npm:7.3.1" - pouchdb-fetch: "npm:7.3.1" - pouchdb-md5: "npm:7.3.1" - pouchdb-selector-core: "npm:7.3.1" - pouchdb-utils: "npm:7.3.1" - checksum: 10c0/f5a2802ec321bca98dce1d4140556b91039908cc46928b2dd9b2255bdf9ee42d92fbdb2ed80fc615a075e83bcaf87bb24d267969703c56ceb4468925424d541c - languageName: node - linkType: hard - -"pouchdb-json@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-json@npm:7.3.1" - dependencies: - vuvuzela: "npm:1.0.3" - checksum: 10c0/1a0ef446d24ea07f7128e6e75b21fde5aaad370f9e7e0a926a3ba50e460954d24cb867f1437696626e5b8cf2f2fc9b93849433c96d1c5f614da03cbf78d16bd7 - languageName: node - linkType: hard - -"pouchdb-mapreduce-utils@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-mapreduce-utils@npm:7.3.1" - dependencies: - argsarray: "npm:0.0.1" - inherits: "npm:2.0.4" - pouchdb-collections: "npm:7.3.1" - pouchdb-utils: "npm:7.3.1" - checksum: 10c0/b7393cb967ce2270da5ae490c4c9428835531c7f42390a3853d366a1544a264dc86df84fdefd9d6e8daffd0451d08f2d252a6648780858a79ff8848ce6417a4c - languageName: node - linkType: hard - -"pouchdb-md5@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-md5@npm:7.3.1" - dependencies: - pouchdb-binary-utils: "npm:7.3.1" - spark-md5: "npm:3.0.2" - checksum: 10c0/a3c80b2432921d3bdee8a1a9b5ba3b4c0bb416347e556a121c7e7faac81a2623d24fd04c4cc68e3a5e119fa4bfb46935f4d96d3af9c07fa186fbac824695ea04 - languageName: node - linkType: hard - -"pouchdb-merge@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-merge@npm:7.3.1" - checksum: 10c0/49432b6f6a1c98edb2c31f6a73f1b1ea420e79b46bab7e04c682ad429a22e33762c5c88b5d8904988b2321775130f6e15c7c2d8f88932597f06785530f22dbfa - languageName: node - linkType: hard - -"pouchdb-selector-core@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-selector-core@npm:7.3.1" - dependencies: - pouchdb-collate: "npm:7.3.1" - pouchdb-utils: "npm:7.3.1" - checksum: 10c0/00f8102451a778a2624ac45069ae3b6029aaf072b34cf33bdaf210542f6f67f7d3ecee9dfff8aa11228a853baea4015fcb64e062ff16d9115979bff6b0c41166 - languageName: node - linkType: hard - -"pouchdb-utils@npm:7.3.1": - version: 7.3.1 - resolution: "pouchdb-utils@npm:7.3.1" - dependencies: - argsarray: "npm:0.0.1" - clone-buffer: "npm:1.0.0" - immediate: "npm:3.3.0" - inherits: "npm:2.0.4" - pouchdb-collections: "npm:7.3.1" - pouchdb-errors: "npm:7.3.1" - pouchdb-md5: "npm:7.3.1" - uuid: "npm:8.3.2" - checksum: 10c0/b90bd7c87a1c2614e24dd24cd22cfe13d9fd280a8d73baa46c8f64cdbf857687a231d8af129c2e2d3047589ac79e5619788c984067102e3c30f8491029a3b6ce - languageName: node - linkType: hard - -"pouchdb@npm:7.3.0": - version: 7.3.0 - resolution: "pouchdb@npm:7.3.0" - dependencies: - abort-controller: "npm:3.0.0" - argsarray: "npm:0.0.1" - buffer-from: "npm:1.1.2" - clone-buffer: "npm:1.0.0" - double-ended-queue: "npm:2.1.0-0" - fetch-cookie: "npm:0.11.0" - immediate: "npm:3.3.0" - inherits: "npm:2.0.4" - level: "npm:6.0.1" - level-codec: "npm:9.0.2" - level-write-stream: "npm:1.0.0" - leveldown: "npm:5.6.0" - levelup: "npm:4.4.0" - ltgt: "npm:2.2.1" - node-fetch: "npm:2.6.7" - readable-stream: "npm:1.1.14" - spark-md5: "npm:3.0.2" - through2: "npm:3.0.2" - uuid: "npm:8.3.2" - vuvuzela: "npm:1.0.3" - checksum: 10c0/2f745f277b2ebc62cd4022fb6ba902d1bffbd6171120268e5e61ea7752c10e3ffb0069593feeb89f07a32c05a95aa7f0a8c7e65fd3f7d0e0a1a3081d176008e7 - languageName: node - linkType: hard - -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd - languageName: node - linkType: hard - -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: 10c0/7284270064f74e0bb7f04eb9bff7be677e4146417e599ccc9c1200f0f640f8b11e592d94eb1b18f7aa9518031913bb42bea9c86af07ba69902864e61005d6f18 - languageName: node - linkType: hard - -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" - dependencies: - fast-diff: "npm:^1.1.2" - checksum: 10c0/81e0027d731b7b3697ccd2129470ed9913ecb111e4ec175a12f0fcfab0096516373bf0af2fef132af50cafb0a905b74ff57996d615f59512bb9ac7378fcc64ab - languageName: node - linkType: hard - -"prettier@npm:^2.3.1": - version: 2.8.8 - resolution: "prettier@npm:2.8.8" - bin: - prettier: bin-prettier.js - checksum: 10c0/463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a - languageName: node - linkType: hard - -"prettier@npm:^3.2.5": - version: 3.2.5 - resolution: "prettier@npm:3.2.5" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6 - languageName: node - linkType: hard - -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: 10c0/f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc - languageName: node - linkType: hard - -"process-nextick-args@npm:~2.0.0": - version: 2.0.1 - resolution: "process-nextick-args@npm:2.0.1" - checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367 - languageName: node - linkType: hard - -"process-on-spawn@npm:^1.0.0": - version: 1.0.0 - resolution: "process-on-spawn@npm:1.0.0" - dependencies: - fromentries: "npm:^1.2.0" - checksum: 10c0/8abd43199b17e61740faec4523fbebb2b2ec990ae096d3051096788128364beb09472decef78dbad70a267e207345aa3a4b595364fefd89e954a509177bdc02b - languageName: node - linkType: hard - -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 - languageName: node - linkType: hard - -"promise@npm:^8.0.0": - version: 8.3.0 - resolution: "promise@npm:8.3.0" - dependencies: - asap: "npm:~2.0.6" - checksum: 10c0/6fccae27a10bcce7442daf090279968086edd2e3f6cebe054b71816403e2526553edf510d13088a4d0f14d7dfa9b9dfb188cab72d6f942e186a4353b6a29c8bf - languageName: node - linkType: hard - -"proxy-addr@npm:~2.0.7": - version: 2.0.7 - resolution: "proxy-addr@npm:2.0.7" - dependencies: - forwarded: "npm:0.2.0" - ipaddr.js: "npm:1.9.1" - checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210 - languageName: node - linkType: hard - -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b - languageName: node - linkType: hard - -"prr@npm:~1.0.1": - version: 1.0.1 - resolution: "prr@npm:1.0.1" - checksum: 10c0/5b9272c602e4f4472a215e58daff88f802923b84bc39c8860376bb1c0e42aaf18c25d69ad974bd06ec6db6f544b783edecd5502cd3d184748d99080d68e4be5f - languageName: node - linkType: hard - -"psl@npm:^1.1.28, psl@npm:^1.1.33": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 10c0/6a3f805fdab9442f44de4ba23880c4eba26b20c8e8e0830eff1cb31007f6825dace61d17203c58bfe36946842140c97a1ba7f67bc63ca2d88a7ee052b65d97ab - languageName: node - linkType: hard - -"pump@npm:^3.0.0": - version: 3.0.0 - resolution: "pump@npm:3.0.0" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: 10c0/bbdeda4f747cdf47db97428f3a135728669e56a0ae5f354a9ac5b74556556f5446a46f720a8f14ca2ece5be9b4d5d23c346db02b555f46739934cc6c093a5478 - languageName: node - linkType: hard - -"punycode@npm:2.1.0": - version: 2.1.0 - resolution: "punycode@npm:2.1.0" - checksum: 10c0/f427b54c0ce23da3eb07ef02f3f158a280bd0182cac7e409016390d2632d161fc759f99a2619e9f6dcdd9ea00e8640de844ffaffd9f9deb479494c3494ef5cfb - languageName: node - linkType: hard - -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 - languageName: node - linkType: hard - -"pure-rand@npm:^5.0.1": - version: 5.0.5 - resolution: "pure-rand@npm:5.0.5" - checksum: 10c0/5cfc04bb011ea217fa9b2254d17d84b803b9bc9afdb98003ba325d49a629d4021ac87af5e9136aeba3dc70db2fbc4a233305bedef86d3aff627e975da4489588 - languageName: node - linkType: hard - -"qs@npm:6.11.0": - version: 6.11.0 - resolution: "qs@npm:6.11.0" - dependencies: - side-channel: "npm:^1.0.4" - checksum: 10c0/4e4875e4d7c7c31c233d07a448e7e4650f456178b9dd3766b7cfa13158fdb24ecb8c4f059fa91e820dc6ab9f2d243721d071c9c0378892dcdad86e9e9a27c68f - languageName: node - linkType: hard - -"qs@npm:^6.4.0": - version: 6.12.0 - resolution: "qs@npm:6.12.0" - dependencies: - side-channel: "npm:^1.0.6" - checksum: 10c0/e165a77ac5f3ca60c15c5f3d51b321ddec7aa438804436b29d160117bc6fb7bf7dab94abd0c7d7c0785890d3a75ae41e1d6346e158aaf1540c6fe53a31f11675 - languageName: node - linkType: hard - -"qs@npm:~6.5.2": - version: 6.5.3 - resolution: "qs@npm:6.5.3" - checksum: 10c0/6631d4f2fa9d315e480662646745a4aa3a708817fbffe2cbdacec8ab9be130f92740c66191770fe9b704bc5fa9c1cc1f6596f55ad132fef7bd3ad1582f199eb0 - languageName: node - linkType: hard - -"query-string@npm:^5.0.1": - version: 5.1.1 - resolution: "query-string@npm:5.1.1" - dependencies: - decode-uri-component: "npm:^0.2.0" - object-assign: "npm:^4.1.0" - strict-uri-encode: "npm:^1.0.0" - checksum: 10c0/25adf37fe9a5b749da55ef91192d190163c44283826b425fa86eeb1fa567cf500a32afc2c602d4f661839d86ca49c2f8d49433b3c1b44b9129a37a5d3da55f89 - languageName: node - linkType: hard - -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 10c0/3258bc3dbdf322ff2663619afe5947c7926a6ef5fb78ad7d384602974c467fadfc8272af44f5eb8cddd0d011aae8fabf3a929a8eee4b86edcc0a21e6bd10f9aa - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2, queue-microtask@npm:^1.2.3": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 - languageName: node - linkType: hard - -"quick-lru@npm:^5.1.1": - version: 5.1.1 - resolution: "quick-lru@npm:5.1.1" - checksum: 10c0/a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da - languageName: node - linkType: hard - -"randombytes@npm:^2.1.0": - version: 2.1.0 - resolution: "randombytes@npm:2.1.0" - dependencies: - safe-buffer: "npm:^5.1.0" - checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3 - languageName: node - linkType: hard - -"range-parser@npm:~1.2.1": - version: 1.2.1 - resolution: "range-parser@npm:1.2.1" - checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 - languageName: node - linkType: hard - -"raw-body@npm:2.5.2, raw-body@npm:^2.4.1": - version: 2.5.2 - resolution: "raw-body@npm:2.5.2" - dependencies: - bytes: "npm:3.1.2" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - unpipe: "npm:1.0.0" - checksum: 10c0/b201c4b66049369a60e766318caff5cb3cc5a900efd89bdac431463822d976ad0670912c931fdbdcf5543207daf6f6833bca57aa116e1661d2ea91e12ca692c4 - languageName: node - linkType: hard - -"read-pkg-up@npm:^1.0.1": - version: 1.0.1 - resolution: "read-pkg-up@npm:1.0.1" - dependencies: - find-up: "npm:^1.0.0" - read-pkg: "npm:^1.0.0" - checksum: 10c0/36c4fc8bd73edf77a4eeb497b6e43010819ea4aef64cbf8e393439fac303398751c5a299feab84e179a74507e3a1416e1ed033a888b1dac3463bf46d1765f7ac - languageName: node - linkType: hard - -"read-pkg@npm:^1.0.0": - version: 1.1.0 - resolution: "read-pkg@npm:1.1.0" - dependencies: - load-json-file: "npm:^1.0.0" - normalize-package-data: "npm:^2.3.2" - path-type: "npm:^1.0.0" - checksum: 10c0/51fce9f7066787dc7688ea7014324cedeb9f38daa7dace4f1147d526f22354a07189ef728710bc97e27fcf5ed3a03b68ad8b60afb4251984640b6f09c180d572 - languageName: node - linkType: hard - -"readable-stream@npm:1.1.14": - version: 1.1.14 - resolution: "readable-stream@npm:1.1.14" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.1" - isarray: "npm:0.0.1" - string_decoder: "npm:~0.10.x" - checksum: 10c0/b7f41b16b305103d598e3c8964fa30d52d6e0b5d9fdad567588964521691c24b279c7a8bb71f11927c3613acf355bac72d8396885a43d50425b2caafd49bc83d - languageName: node - linkType: hard - -"readable-stream@npm:2 || 3, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: "npm:^2.0.3" - string_decoder: "npm:^1.1.1" - util-deprecate: "npm:^1.0.1" - checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 - languageName: node - linkType: hard - -"readable-stream@npm:^2.2.2": - version: 2.3.8 - resolution: "readable-stream@npm:2.3.8" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.3" - isarray: "npm:~1.0.0" - process-nextick-args: "npm:~2.0.0" - safe-buffer: "npm:~5.1.1" - string_decoder: "npm:~1.1.1" - util-deprecate: "npm:~1.0.1" - checksum: 10c0/7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa - languageName: node - linkType: hard - -"readable-stream@npm:~0.0.2": - version: 0.0.4 - resolution: "readable-stream@npm:0.0.4" - checksum: 10c0/213fa73153aeae3dabbbd228ed10bdab6eb4818634df63b5ce8d4badb453c0eed6caa669de967aaad66d817f073c908273145180840f465abaf858a5d00b60fb - languageName: node - linkType: hard - -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: "npm:^2.2.1" - checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b - languageName: node - linkType: hard - -"rechoir@npm:^0.6.2": - version: 0.6.2 - resolution: "rechoir@npm:0.6.2" - dependencies: - resolve: "npm:^1.1.6" - checksum: 10c0/22c4bb32f4934a9468468b608417194f7e3ceba9a508512125b16082c64f161915a28467562368eeb15dc16058eb5b7c13a20b9eb29ff9927d1ebb3b5aa83e84 - languageName: node - linkType: hard - -"recursive-readdir@npm:^2.2.2": - version: 2.2.3 - resolution: "recursive-readdir@npm:2.2.3" - dependencies: - minimatch: "npm:^3.0.5" - checksum: 10c0/d0238f137b03af9cd645e1e0b40ae78b6cda13846e3ca57f626fcb58a66c79ae018a10e926b13b3a460f1285acc946a4e512ea8daa2e35df4b76a105709930d1 - languageName: node - linkType: hard - -"reduce-flatten@npm:^2.0.0": - version: 2.0.0 - resolution: "reduce-flatten@npm:2.0.0" - checksum: 10c0/9275064535bc070a787824c835a4f18394942f8a78f08e69fb500920124ce1c46a287c8d9e565a7ffad8104875a6feda14efa8e951e8e4585370b8ff007b0abd - languageName: node - linkType: hard - -"redux-saga@npm:1.0.0": - version: 1.0.0 - resolution: "redux-saga@npm:1.0.0" - dependencies: - "@redux-saga/core": "npm:^1.0.0" - checksum: 10c0/d979eabe7434adc6556914515e3a5a00cc81697bf641b4d5e435520622a37954a387a932d2686e40bb59df71744f9b1cbc878174d23e2bb11b1efea9137760f3 - languageName: node - linkType: hard - -"redux@npm:^3.7.2": - version: 3.7.2 - resolution: "redux@npm:3.7.2" - dependencies: - lodash: "npm:^4.2.1" - lodash-es: "npm:^4.2.1" - loose-envify: "npm:^1.1.0" - symbol-observable: "npm:^1.0.3" - checksum: 10c0/544456f95734de33326637b370894addb57d9de2524edf36a20e4a326d0a36a0e223979d027545c5aa8a8d7a2859363981f63d1146401b72df0d16f373dd09cb - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" - dependencies: - call-bind: "npm:^1.0.6" - define-properties: "npm:^1.2.1" - es-errors: "npm:^1.3.0" - set-function-name: "npm:^2.0.1" - checksum: 10c0/0f3fc4f580d9c349f8b560b012725eb9c002f36daa0041b3fbf6f4238cb05932191a4d7d5db3b5e2caa336d5150ad0402ed2be81f711f9308fe7e1a9bf9bd552 - languageName: node - linkType: hard - -"release-zalgo@npm:^1.0.0": - version: 1.0.0 - resolution: "release-zalgo@npm:1.0.0" - dependencies: - es6-error: "npm:^4.0.1" - checksum: 10c0/9e161feb073f9e3aa714bb077d67592c34ee578f5b9cff8e2d492423fe2002d5b1e6d11ffcd5c564b9a0ee9435f25569567b658a82b9af931e7ac1313925628a - languageName: node - linkType: hard - -"req-cwd@npm:^2.0.0": - version: 2.0.0 - resolution: "req-cwd@npm:2.0.0" - dependencies: - req-from: "npm:^2.0.0" - checksum: 10c0/9cefc80353594b07d1a31d7ee4e4b5c7252f054f0fda7d5caf038c1cb5aa4b322acb422de7e18533734e8557f5769c2318f3ee9256e2e4f4e359b9b776c7ed1a - languageName: node - linkType: hard - -"req-from@npm:^2.0.0": - version: 2.0.0 - resolution: "req-from@npm:2.0.0" - dependencies: - resolve-from: "npm:^3.0.0" - checksum: 10c0/84aa6b4f7291675d9443ac156139841c7c1ae7eccf080f3b344972d6470170b0c32682656c560763b330d00e133196bcfdb1fcb4c5031f59ecbe80dea4dd1c82 - languageName: node - linkType: hard - -"request@npm:^2.79.0": - version: 2.88.2 - resolution: "request@npm:2.88.2" - dependencies: - aws-sign2: "npm:~0.7.0" - aws4: "npm:^1.8.0" - caseless: "npm:~0.12.0" - combined-stream: "npm:~1.0.6" - extend: "npm:~3.0.2" - forever-agent: "npm:~0.6.1" - form-data: "npm:~2.3.2" - har-validator: "npm:~5.1.3" - http-signature: "npm:~1.2.0" - is-typedarray: "npm:~1.0.0" - isstream: "npm:~0.1.2" - json-stringify-safe: "npm:~5.0.1" - mime-types: "npm:~2.1.19" - oauth-sign: "npm:~0.9.0" - performance-now: "npm:^2.1.0" - qs: "npm:~6.5.2" - safe-buffer: "npm:^5.1.2" - tough-cookie: "npm:~2.5.0" - tunnel-agent: "npm:^0.6.0" - uuid: "npm:^3.3.2" - checksum: 10c0/0ec66e7af1391e51ad231de3b1c6c6aef3ebd0a238aa50d4191c7a792dcdb14920eea8d570c702dc5682f276fe569d176f9b8ebc6031a3cf4a630a691a431a63 - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 - languageName: node - linkType: hard - -"require-from-string@npm:^1.1.0": - version: 1.2.1 - resolution: "require-from-string@npm:1.2.1" - checksum: 10c0/29b4802dbeb78c76a589fe3d5bbe3b836624a38358d024e1855a882d91218d10fe353f9c0d265deda944b0f3f789244d6813ca748c9d846fbe69734319ffe0b5 - languageName: node - linkType: hard - -"require-from-string@npm:^2.0.0, require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 - languageName: node - linkType: hard - -"require-main-filename@npm:^1.0.1": - version: 1.0.1 - resolution: "require-main-filename@npm:1.0.1" - checksum: 10c0/1ab87efb72a0e223a667154e92f29ca753fd42eb87f22db142b91c86d134e29ecf18af929111ccd255fd340b57d84a9d39489498d8dfd5136b300ded30a5f0b6 - languageName: node - linkType: hard - -"require-main-filename@npm:^2.0.0": - version: 2.0.0 - resolution: "require-main-filename@npm:2.0.0" - checksum: 10c0/db91467d9ead311b4111cbd73a4e67fa7820daed2989a32f7023785a2659008c6d119752d9c4ac011ae07e537eb86523adff99804c5fdb39cd3a017f9b401bb6 - languageName: node - linkType: hard - -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: 10c0/b2bfdd09db16c082c4326e573a82c0771daaf7b53b9ce8ad60ea46aa6e30aaf475fe9b164800b89f93b748d2c234d8abff945d2551ba47bf5698e04cd7713267 - languageName: node - linkType: hard - -"reselect-tree@npm:^1.3.7": - version: 1.3.7 - resolution: "reselect-tree@npm:1.3.7" - dependencies: - debug: "npm:^3.1.0" - json-pointer: "npm:^0.6.1" - reselect: "npm:^4.0.0" - checksum: 10c0/69a7c2804cd358e4b722f278199f28f1965b2c4aa16d530198a13a656b4371e2bd866ae346a86f4d221f79323f18220300dcb4d026b3341852b12812571319ed - languageName: node - linkType: hard - -"reselect@npm:^4.0.0": - version: 4.1.8 - resolution: "reselect@npm:4.1.8" - checksum: 10c0/06a305a504affcbb67dd0561ddc8306b35796199c7e15b38934c80606938a021eadcf68cfd58e7bb5e17786601c37602a3362a4665c7bf0a96c1041ceee9d0b7 - languageName: node - linkType: hard - -"resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": - version: 1.2.1 - resolution: "resolve-alpn@npm:1.2.1" - checksum: 10c0/b70b29c1843bc39781ef946c8cd4482e6d425976599c0f9c138cec8209e4e0736161bf39319b01676a847000085dfdaf63583c6fb4427bf751a10635bd2aa0c4 - languageName: node - linkType: hard - -"resolve-from@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-from@npm:3.0.0" - checksum: 10c0/24affcf8e81f4c62f0dcabc774afe0e19c1f38e34e43daac0ddb409d79435fc3037f612b0cc129178b8c220442c3babd673e88e870d27215c99454566e770ebc - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 - languageName: node - linkType: hard - -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 - languageName: node - linkType: hard - -"resolve@npm:1.1.x": - version: 1.1.7 - resolution: "resolve@npm:1.1.7" - checksum: 10c0/f66dcad51854fca283fa68e9c11445c2117d7963b9ced6c43171784987df3bed6fb16c4af2bf6f07c02ace94a4f4ebe158d13780b6e14d60944478c860208245 - languageName: node - linkType: hard - -"resolve@npm:1.17.0": - version: 1.17.0 - resolution: "resolve@npm:1.17.0" - dependencies: - path-parse: "npm:^1.0.6" - checksum: 10c0/4e6c76cc1a7b08bff637b092ce035d7901465067915605bc5a23ac0c10fe42ec205fc209d5d5f7a5f27f37ce71d687def7f656bbb003631cd46a8374f55ec73d - languageName: node - linkType: hard - -"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.22.4": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A1.1.x#optional!builtin": - version: 1.1.7 - resolution: "resolve@patch:resolve@npm%3A1.1.7#optional!builtin::version=1.1.7&hash=3bafbf" - checksum: 10c0/f4f1471423d600a10944785222fa7250237ed8c98aa6b1e1f4dc0bb3dbfbcafcaac69a2ed23cd1f6f485ed23e7c939894ac1978284e4163754fade8a05358823 - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A1.17.0#optional!builtin": - version: 1.17.0 - resolution: "resolve@patch:resolve@npm%3A1.17.0#optional!builtin::version=1.17.0&hash=c3c19d" - dependencies: - path-parse: "npm:^1.0.6" - checksum: 10c0/e072e52be3c3dbfd086761115db4a5136753e7aefc0e665e66e7307ddcd9d6b740274516055c74aee44921625e95993f03570450aa310b8d73b1c9daa056c4cd - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 - languageName: node - linkType: hard - -"responselike@npm:^2.0.0": - version: 2.0.1 - resolution: "responselike@npm:2.0.1" - dependencies: - lowercase-keys: "npm:^2.0.0" - checksum: 10c0/360b6deb5f101a9f8a4174f7837c523c3ec78b7ca8a7c1d45a1062b303659308a23757e318b1e91ed8684ad1205721142dd664d94771cd63499353fd4ee732b5 - languageName: node - linkType: hard - -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 10c0/8051a371d6aa67ff21625fa94e2357bd81ffdc96267f3fb0fc4aaf4534028343836548ef34c240ffa8c25b280ca35eb36be00b3cb2133fa4f51896d7e73c6b4f - languageName: node - linkType: hard - -"retry@npm:0.13.1": - version: 0.13.1 - resolution: "retry@npm:0.13.1" - checksum: 10c0/9ae822ee19db2163497e074ea919780b1efa00431d197c7afdb950e42bf109196774b92a49fc9821f0b8b328a98eea6017410bfc5e8a0fc19c85c6d11adb3772 - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 - languageName: node - linkType: hard - -"rimraf@npm:^2.2.8": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: ./bin.js - checksum: 10c0/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40 - languageName: node - linkType: hard - -"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: bin.js - checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 - languageName: node - linkType: hard - -"ripemd160-min@npm:0.0.6": - version: 0.0.6 - resolution: "ripemd160-min@npm:0.0.6" - checksum: 10c0/3f08e50f74bc1ffa2a112166556d9a7534c0fed295592fc5e000ed4ed435054181a04926c5eed8a4485b791cde8372828022b2086d5c031837db79bfb508bdaa - languageName: node - linkType: hard - -"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1, ripemd160@npm:^2.0.2": - version: 2.0.2 - resolution: "ripemd160@npm:2.0.2" - dependencies: - hash-base: "npm:^3.0.0" - inherits: "npm:^2.0.1" - checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a - languageName: node - linkType: hard - -"rlp@npm:^2.2.3, rlp@npm:^2.2.4": - version: 2.2.7 - resolution: "rlp@npm:2.2.7" - dependencies: - bn.js: "npm:^5.2.0" - bin: - rlp: bin/rlp - checksum: 10c0/166c449f4bc794d47f8e337bf0ffbcfdb26c33109030aac4b6e5a33a91fa85783f2290addeb7b3c89d6d9b90c8276e719494d193129bed0a60a2d4a6fd658277 - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 - languageName: node - linkType: hard - -"safe-array-concat@npm:^1.1.2": - version: 1.1.2 - resolution: "safe-array-concat@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.7" - get-intrinsic: "npm:^1.2.4" - has-symbols: "npm:^1.0.3" - isarray: "npm:^2.0.5" - checksum: 10c0/12f9fdb01c8585e199a347eacc3bae7b5164ae805cdc8c6707199dbad5b9e30001a50a43c4ee24dc9ea32dbb7279397850e9208a7e217f4d8b1cf5d90129dec9 - languageName: node - linkType: hard - -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 - languageName: node - linkType: hard - -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-regex: "npm:^1.1.4" - checksum: 10c0/900bf7c98dc58f08d8523b7012b468e4eb757afa624f198902c0643d7008ba777b0bdc35810ba0b758671ce887617295fb742b3f3968991b178ceca54cb07603 - languageName: node - linkType: hard - -"safe-stable-stringify@npm:^2.3.1": - version: 2.4.3 - resolution: "safe-stable-stringify@npm:2.4.3" - checksum: 10c0/81dede06b8f2ae794efd868b1e281e3c9000e57b39801c6c162267eb9efda17bd7a9eafa7379e1f1cacd528d4ced7c80d7460ad26f62ada7c9e01dec61b2e768 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 - languageName: node - linkType: hard - -"sc-istanbul@npm:^0.4.5": - version: 0.4.6 - resolution: "sc-istanbul@npm:0.4.6" - dependencies: - abbrev: "npm:1.0.x" - async: "npm:1.x" - escodegen: "npm:1.8.x" - esprima: "npm:2.7.x" - glob: "npm:^5.0.15" - handlebars: "npm:^4.0.1" - js-yaml: "npm:3.x" - mkdirp: "npm:0.5.x" - nopt: "npm:3.x" - once: "npm:1.x" - resolve: "npm:1.1.x" - supports-color: "npm:^3.1.0" - which: "npm:^1.1.1" - wordwrap: "npm:^1.0.0" - bin: - istanbul: lib/cli.js - checksum: 10c0/3eba8f6b7ba423fb03fdd67e72b0a71c71aa1dbd117692f3225003320dd45adf03cd32dd1739bd347aa58c690ca8f719fd8ae70cefe0fc06433fac4725668942 - languageName: node - linkType: hard - -"scrypt-js@npm:2.0.4": - version: 2.0.4 - resolution: "scrypt-js@npm:2.0.4" - checksum: 10c0/dc6df482f9befa395b577ea40c5cebe96df8fc5f376d23871c50800eacbec1b0d6a49a03f35e9d4405ceb96f43b8047a8f3f99ce7cda0c727cfc754d9e7060f8 - languageName: node - linkType: hard - -"scrypt-js@npm:3.0.1, scrypt-js@npm:^3.0.0, scrypt-js@npm:^3.0.1": - version: 3.0.1 - resolution: "scrypt-js@npm:3.0.1" - checksum: 10c0/e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10 - languageName: node - linkType: hard - -"secp256k1@npm:4.0.3, secp256k1@npm:^4.0.1": - version: 4.0.3 - resolution: "secp256k1@npm:4.0.3" - dependencies: - elliptic: "npm:^6.5.4" - node-addon-api: "npm:^2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.2.0" - checksum: 10c0/de0a0e525a6f8eb2daf199b338f0797dbfe5392874285a145bb005a72cabacb9d42c0197d0de129a1a0f6094d2cc4504d1f87acb6a8bbfb7770d4293f252c401 - languageName: node - linkType: hard - -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.5.0": - version: 5.7.2 - resolution: "semver@npm:5.7.2" - bin: - semver: bin/semver - checksum: 10c0/e4cf10f86f168db772ae95d86ba65b3fd6c5967c94d97c708ccb463b778c2ee53b914cd7167620950fc07faf5a564e6efe903836639e512a1aa15fbc9667fa25 - languageName: node - linkType: hard - -"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d - languageName: node - linkType: hard - -"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: "npm:^6.0.0" - bin: - semver: bin/semver.js - checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53 - languageName: node - linkType: hard - -"send@npm:0.18.0": - version: 0.18.0 - resolution: "send@npm:0.18.0" - dependencies: - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:2.4.1" - range-parser: "npm:~1.2.1" - statuses: "npm:2.0.1" - checksum: 10c0/0eb134d6a51fc13bbcb976a1f4214ea1e33f242fae046efc311e80aff66c7a43603e26a79d9d06670283a13000e51be6e0a2cb80ff0942eaf9f1cd30b7ae736a - languageName: node - linkType: hard - -"sentence-case@npm:^2.1.0": - version: 2.1.1 - resolution: "sentence-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - upper-case-first: "npm:^1.1.2" - checksum: 10c0/3572fe33dd5df4156bc2e5f46a8f7642906234c448484016d5fbb8c7214bdd1f5f01d1791a7b2b1a4f5a99e6e43141d22aa097c0fdcfe41214fd56a85f1ee7f6 - languageName: node - linkType: hard - -"serialize-javascript@npm:6.0.0": - version: 6.0.0 - resolution: "serialize-javascript@npm:6.0.0" - dependencies: - randombytes: "npm:^2.1.0" - checksum: 10c0/73104922ef0a919064346eea21caab99de1a019a1f5fb54a7daa7fcabc39e83b387a2a363e52a889598c3b1bcf507c4b2a7b26df76e991a310657af20eea2e7c - languageName: node - linkType: hard - -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" - dependencies: - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - parseurl: "npm:~1.3.3" - send: "npm:0.18.0" - checksum: 10c0/fa9f0e21a540a28f301258dfe1e57bb4f81cd460d28f0e973860477dd4acef946a1f41748b5bd41c73b621bea2029569c935faa38578fd34cd42a9b4947088ba - languageName: node - linkType: hard - -"servify@npm:^0.1.12": - version: 0.1.12 - resolution: "servify@npm:0.1.12" - dependencies: - body-parser: "npm:^1.16.0" - cors: "npm:^2.8.1" - express: "npm:^4.14.0" - request: "npm:^2.79.0" - xhr: "npm:^2.3.3" - checksum: 10c0/2a7af8ba9f79022325c1f1bfbcb02051c1e02252928c55028173d1ecbc5db49faebf3e8a865515b89cfd1e53eee7c2e5a9c47c264caaf98964708e5372b407c0 - languageName: node - linkType: hard - -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454 - languageName: node - linkType: hard - -"set-function-length@npm:^1.2.1": - version: 1.2.2 - resolution: "set-function-length@npm:1.2.2" - dependencies: - define-data-property: "npm:^1.1.4" - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.4" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.2" - checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c - languageName: node - linkType: hard - -"set-function-name@npm:^2.0.1": - version: 2.0.2 - resolution: "set-function-name@npm:2.0.2" - dependencies: - define-data-property: "npm:^1.1.4" - es-errors: "npm:^1.3.0" - functions-have-names: "npm:^1.2.3" - has-property-descriptors: "npm:^1.0.2" - checksum: 10c0/fce59f90696c450a8523e754abb305e2b8c73586452619c2bad5f7bf38c7b6b4651895c9db895679c5bef9554339cf3ef1c329b66ece3eda7255785fbe299316 - languageName: node - linkType: hard - -"setimmediate@npm:1.0.4": - version: 1.0.4 - resolution: "setimmediate@npm:1.0.4" - checksum: 10c0/78d1098320ac16a5500fc683491665333e16a6a99103c52d0550f0b31b680c6967d405b3d2b6284d99645c373e0d2ed7d2305c924f12de911a74ffb6c2c3eabe - languageName: node - linkType: hard - -"setimmediate@npm:^1.0.5": - version: 1.0.5 - resolution: "setimmediate@npm:1.0.5" - checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49 - languageName: node - linkType: hard - -"setprototypeof@npm:1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: 10c0/68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc - languageName: node - linkType: hard - -"sha.js@npm:^2.4.0, sha.js@npm:^2.4.11, sha.js@npm:^2.4.8": - version: 2.4.11 - resolution: "sha.js@npm:2.4.11" - dependencies: - inherits: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - bin: - sha.js: ./bin.js - checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5 - languageName: node - linkType: hard - -"sha1@npm:^1.1.1": - version: 1.1.1 - resolution: "sha1@npm:1.1.1" - dependencies: - charenc: "npm:>= 0.0.1" - crypt: "npm:>= 0.0.1" - checksum: 10c0/1bb36c89c112c741c265cca66712f883ae01d5c55b71aec80635fe2ad5d0c976a1a8a994dda774ae9f93b2da99fd111238758a8bf985adc400bd86f0e4452865 - languageName: node - linkType: hard - -"sha3@npm:^2.1.1": - version: 2.1.4 - resolution: "sha3@npm:2.1.4" - dependencies: - buffer: "npm:6.0.3" - checksum: 10c0/d3c1542e30977c421957e87ceca699931dfca3f61e9f25d407efb3fd0dfdfa3eb274342bd905b46d4d862eeb741dd168c9a43a36b068436d63b818471be33e94 - languageName: node - linkType: hard - -"shallowequal@npm:^1.0.2": - version: 1.1.0 - resolution: "shallowequal@npm:1.1.0" - checksum: 10c0/b926efb51cd0f47aa9bc061add788a4a650550bbe50647962113a4579b60af2abe7b62f9b02314acc6f97151d4cf87033a2b15fc20852fae306d1a095215396c - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: "npm:^3.0.0" - checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 - languageName: node - linkType: hard - -"shelljs@npm:^0.8.3": - version: 0.8.5 - resolution: "shelljs@npm:0.8.5" - dependencies: - glob: "npm:^7.0.0" - interpret: "npm:^1.0.0" - rechoir: "npm:^0.6.2" - bin: - shjs: bin/shjs - checksum: 10c0/feb25289a12e4bcd04c40ddfab51aff98a3729f5c2602d5b1a1b95f6819ec7804ac8147ebd8d9a85dfab69d501bcf92d7acef03247320f51c1552cec8d8e2382 - languageName: node - linkType: hard - -"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": - version: 1.0.6 - resolution: "side-channel@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" - object-inspect: "npm:^1.13.1" - checksum: 10c0/d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 - languageName: node - linkType: hard - -"simple-concat@npm:^1.0.0": - version: 1.0.1 - resolution: "simple-concat@npm:1.0.1" - checksum: 10c0/62f7508e674414008910b5397c1811941d457dfa0db4fd5aa7fa0409eb02c3609608dfcd7508cace75b3a0bf67a2a77990711e32cd213d2c76f4fd12ee86d776 - languageName: node - linkType: hard - -"simple-get@npm:^2.7.0": - version: 2.8.2 - resolution: "simple-get@npm:2.8.2" - dependencies: - decompress-response: "npm:^3.3.0" - once: "npm:^1.3.1" - simple-concat: "npm:^1.0.0" - checksum: 10c0/12747f008848e573a3d09c88d15fae37d4a359d1ef56a0bed36713952b1d236a3829cd77e862816cf32c7779f6800a0c4076ba7f71fe3684127eaccffb831aba - languageName: node - linkType: hard - -"simple-swizzle@npm:^0.2.2": - version: 0.2.2 - resolution: "simple-swizzle@npm:0.2.2" - dependencies: - is-arrayish: "npm:^0.3.1" - checksum: 10c0/df5e4662a8c750bdba69af4e8263c5d96fe4cd0f9fe4bdfa3cbdeb45d2e869dff640beaaeb1ef0e99db4d8d2ec92f85508c269f50c972174851bc1ae5bd64308 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b - languageName: node - linkType: hard - -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - astral-regex: "npm:^2.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - checksum: 10c0/6c25678db1270d4793e0327620f1e0f9f5bea4630123f51e9e399191bc52c87d6e6de53ed33538609e5eacbd1fab769fae00f3705d08d029f02102a540648918 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 - languageName: node - linkType: hard - -"snake-case@npm:^2.1.0": - version: 2.1.0 - resolution: "snake-case@npm:2.1.0" - dependencies: - no-case: "npm:^2.2.0" - checksum: 10c0/fd8b21537263d4e64cadd62da0cb5fd96c95f8685ee8e290c912b79950385dbb9eccf7216a913d96db5efc4ade426badae5e3e35b69ea1f10cbb0b4898a38236 - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.3": - version: 8.0.3 - resolution: "socks-proxy-agent@npm:8.0.3" - dependencies: - agent-base: "npm:^7.1.1" - debug: "npm:^4.3.4" - socks: "npm:^2.7.1" - checksum: 10c0/4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d - languageName: node - linkType: hard - -"socks@npm:^2.7.1": - version: 2.8.1 - resolution: "socks@npm:2.8.1" - dependencies: - ip-address: "npm:^9.0.5" - smart-buffer: "npm:^4.2.0" - checksum: 10c0/ac77b515c260473cc7c4452f09b20939e22510ce3ae48385c516d1d5784374d5cc75be3cb18ff66cc985a7f4f2ef8fef84e984c5ec70aad58355ed59241f40a8 - languageName: node - linkType: hard - -"solc@npm:0.7.3": - version: 0.7.3 - resolution: "solc@npm:0.7.3" - dependencies: - command-exists: "npm:^1.2.8" - commander: "npm:3.0.2" - follow-redirects: "npm:^1.12.1" - fs-extra: "npm:^0.30.0" - js-sha3: "npm:0.8.0" - memorystream: "npm:^0.3.1" - require-from-string: "npm:^2.0.0" - semver: "npm:^5.5.0" - tmp: "npm:0.0.33" - bin: - solcjs: solcjs - checksum: 10c0/28405adfba1f55603dc5b674630383bfbdbfab2d36deba2ff0a90c46cbc346bcabf0ed6175e12ae3c0b751ef082d0405ab42dcc24f88603a446e097a925d7425 - languageName: node - linkType: hard - -"solc@npm:^0.4.20": - version: 0.4.26 - resolution: "solc@npm:0.4.26" - dependencies: - fs-extra: "npm:^0.30.0" - memorystream: "npm:^0.3.1" - require-from-string: "npm:^1.1.0" - semver: "npm:^5.3.0" - yargs: "npm:^4.7.1" - bin: - solcjs: solcjs - checksum: 10c0/6de113c966491d02b08bb5845a4a46989903af98ab2a99f7250d9385ecd939733d9514e91577e987443b7706f1d50b5317059f131e07fa940cdee0134733eac3 - languageName: node - linkType: hard - -"solidity-coverage@npm:^0.8.11": - version: 0.8.11 - resolution: "solidity-coverage@npm:0.8.11" - dependencies: - "@ethersproject/abi": "npm:^5.0.9" - "@solidity-parser/parser": "npm:^0.18.0" - chalk: "npm:^2.4.2" - death: "npm:^1.1.0" - difflib: "npm:^0.2.4" - fs-extra: "npm:^8.1.0" - ghost-testrpc: "npm:^0.0.2" - global-modules: "npm:^2.0.0" - globby: "npm:^10.0.1" - jsonschema: "npm:^1.2.4" - lodash: "npm:^4.17.15" - mocha: "npm:^10.2.0" - node-emoji: "npm:^1.10.0" - pify: "npm:^4.0.1" - recursive-readdir: "npm:^2.2.2" - sc-istanbul: "npm:^0.4.5" - semver: "npm:^7.3.4" - shelljs: "npm:^0.8.3" - web3-utils: "npm:^1.3.6" - peerDependencies: - hardhat: ^2.11.0 - bin: - solidity-coverage: plugins/bin.js - checksum: 10c0/de26a3bdece5b36005fcf84b4c4e9e0affc2822d69c823d925f439876c3d5c7b1fc83d447745c6aae994ad0e5c02f4c031d4d9b2d5613184d9286116857e6437 - languageName: node - linkType: hard - -"source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.19": - version: 0.5.21 - resolution: "source-map-support@npm:0.5.21" - dependencies: - buffer-from: "npm:^1.0.0" - source-map: "npm:^0.6.0" - checksum: 10c0/9ee09942f415e0f721d6daad3917ec1516af746a8120bba7bb56278707a37f1eb8642bde456e98454b8a885023af81a16e646869975f06afc1a711fb90484e7d - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 - languageName: node - linkType: hard - -"source-map@npm:~0.2.0": - version: 0.2.0 - resolution: "source-map@npm:0.2.0" - dependencies: - amdefine: "npm:>=0.0.4" - checksum: 10c0/24ac0df484721203e7c98faaa2a56cc73d7e8b8468a03459dd98e09b84421056c456dbfea1bf4f292142c3b88c160574f648cbc83e8fe772cf0b3342f0bba68d - languageName: node - linkType: hard - -"spark-md5@npm:3.0.2": - version: 3.0.2 - resolution: "spark-md5@npm:3.0.2" - checksum: 10c0/3fd11735eac5e7d60d6006d99ac0a055f148a89e9baf5f0b51ac103022dec30556b44190b37f6737ca50f81e8e50dc13e724f9edf6290c412ff5ab2101ce7780 - languageName: node - linkType: hard - -"spawn-wrap@npm:^2.0.0": - version: 2.0.0 - resolution: "spawn-wrap@npm:2.0.0" - dependencies: - foreground-child: "npm:^2.0.0" - is-windows: "npm:^1.0.2" - make-dir: "npm:^3.0.0" - rimraf: "npm:^3.0.0" - signal-exit: "npm:^3.0.2" - which: "npm:^2.0.1" - checksum: 10c0/0d30001391eedbd588722be74506d3e60582557e754fe3deb3f84f2c84ddca0d72d8132f16502cf312bacb8952cc7abe833d6f45b4e80c8baea3fa56c5554d3d - languageName: node - linkType: hard - -"spdx-correct@npm:^3.0.0": - version: 3.2.0 - resolution: "spdx-correct@npm:3.2.0" - dependencies: - spdx-expression-parse: "npm:^3.0.0" - spdx-license-ids: "npm:^3.0.0" - checksum: 10c0/49208f008618b9119208b0dadc9208a3a55053f4fd6a0ae8116861bd22696fc50f4142a35ebfdb389e05ccf2de8ad142573fefc9e26f670522d899f7b2fe7386 - languageName: node - linkType: hard - -"spdx-exceptions@npm:^2.1.0": - version: 2.5.0 - resolution: "spdx-exceptions@npm:2.5.0" - checksum: 10c0/37217b7762ee0ea0d8b7d0c29fd48b7e4dfb94096b109d6255b589c561f57da93bf4e328c0290046115961b9209a8051ad9f525e48d433082fc79f496a4ea940 - languageName: node - linkType: hard - -"spdx-expression-parse@npm:^3.0.0": - version: 3.0.1 - resolution: "spdx-expression-parse@npm:3.0.1" - dependencies: - spdx-exceptions: "npm:^2.1.0" - spdx-license-ids: "npm:^3.0.0" - checksum: 10c0/6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171 - languageName: node - linkType: hard - -"spdx-license-ids@npm:^3.0.0": - version: 3.0.17 - resolution: "spdx-license-ids@npm:3.0.17" - checksum: 10c0/ddf9477b5afc70f1a7d3bf91f0b8e8a1c1b0fa65d2d9a8b5c991b1a2ba91b693d8b9749700119d5ce7f3fbf307ac421087ff43d321db472605e98a5804f80eac - languageName: node - linkType: hard - -"sprintf-js@npm:^1.1.3": - version: 1.1.3 - resolution: "sprintf-js@npm:1.1.3" - checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec - languageName: node - linkType: hard - -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb - languageName: node - linkType: hard - -"sshpk@npm:^1.7.0": - version: 1.18.0 - resolution: "sshpk@npm:1.18.0" - dependencies: - asn1: "npm:~0.2.3" - assert-plus: "npm:^1.0.0" - bcrypt-pbkdf: "npm:^1.0.0" - dashdash: "npm:^1.12.0" - ecc-jsbn: "npm:~0.1.1" - getpass: "npm:^0.1.1" - jsbn: "npm:~0.1.0" - safer-buffer: "npm:^2.0.2" - tweetnacl: "npm:~0.14.0" - bin: - sshpk-conv: bin/sshpk-conv - sshpk-sign: bin/sshpk-sign - sshpk-verify: bin/sshpk-verify - checksum: 10c0/e516e34fa981cfceef45fd2e947772cc70dbd57523e5c608e2cd73752ba7f8a99a04df7c3ed751588e8d91956b6f16531590b35d3489980d1c54c38bebcd41b1 - languageName: node - linkType: hard - -"ssri@npm:^10.0.0": - version: 10.0.5 - resolution: "ssri@npm:10.0.5" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/b091f2ae92474183c7ac5ed3f9811457e1df23df7a7e70c9476eaa9a0c4a0c8fc190fb45acefbf023ca9ee864dd6754237a697dc52a0fb182afe65d8e77443d8 - languageName: node - linkType: hard - -"stack-trace@npm:0.0.x": - version: 0.0.10 - resolution: "stack-trace@npm:0.0.10" - checksum: 10c0/9ff3dabfad4049b635a85456f927a075c9d0c210e3ea336412d18220b2a86cbb9b13ec46d6c37b70a302a4ea4d49e30e5d4944dd60ae784073f1cde778ac8f4b - languageName: node - linkType: hard - -"stacktrace-parser@npm:^0.1.10": - version: 0.1.10 - resolution: "stacktrace-parser@npm:0.1.10" - dependencies: - type-fest: "npm:^0.7.1" - checksum: 10c0/f9c9cd55b0642a546e5f0516a87124fc496dcc2c082b96b156ed094c51e423314795cd1839cd4c59026349cf392d3414f54fc42165255602728588a58a9f72d3 - languageName: node - linkType: hard - -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 - languageName: node - linkType: hard - -"strict-uri-encode@npm:^1.0.0": - version: 1.1.0 - resolution: "strict-uri-encode@npm:1.1.0" - checksum: 10c0/eb8a4109ba2588239787389313ba58ec49e043d4c64a1d44716defe5821a68ae49abe0cdefed9946ca9fc2a4af7ecf321da92422b0a67258ec0a3638b053ae62 - languageName: node - linkType: hard - -"string-format@npm:^2.0.0": - version: 2.0.0 - resolution: "string-format@npm:2.0.0" - checksum: 10c0/7bca13ba9f942f635c74d637da5e9e375435cbd428f35eeef28c3a30f81d4e63b95ff2c6cca907d897dd3951bbf52e03e3b945a0e9681358e33bd67222436538 - languageName: node - linkType: hard - -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: "npm:^8.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - strip-ansi: "npm:^6.0.1" - checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b - languageName: node - linkType: hard - -"string-width@npm:^1.0.1": - version: 1.0.2 - resolution: "string-width@npm:1.0.2" - dependencies: - code-point-at: "npm:^1.0.0" - is-fullwidth-code-point: "npm:^1.0.0" - strip-ansi: "npm:^3.0.0" - checksum: 10c0/c558438baed23a9ab9370bb6a939acbdb2b2ffc517838d651aad0f5b2b674fb85d460d9b1d0b6a4c210dffd09e3235222d89a5bd4c0c1587f78b2bb7bc00c65e - languageName: node - linkType: hard - -"string-width@npm:^2.1.1": - version: 2.1.1 - resolution: "string-width@npm:2.1.1" - dependencies: - is-fullwidth-code-point: "npm:^2.0.0" - strip-ansi: "npm:^4.0.0" - checksum: 10c0/e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610 - languageName: node - linkType: hard - -"string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: "npm:^0.2.0" - emoji-regex: "npm:^9.2.2" - strip-ansi: "npm:^7.0.1" - checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca - languageName: node - linkType: hard - -"string.prototype.trim@npm:^1.2.9": - version: 1.2.9 - resolution: "string.prototype.trim@npm:1.2.9" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.0" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/dcef1a0fb61d255778155006b372dff8cc6c4394bc39869117e4241f41a2c52899c0d263ffc7738a1f9e61488c490b05c0427faa15151efad721e1a9fb2663c2 - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimend@npm:1.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/0a0b54c17c070551b38e756ae271865ac6cc5f60dabf2e7e343cceae7d9b02e1a1120a824e090e79da1b041a74464e8477e2da43e2775c85392be30a6f60963c - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimstart@npm:1.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366 - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: "npm:~5.2.0" - checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d - languageName: node - linkType: hard - -"string_decoder@npm:~0.10.x": - version: 0.10.31 - resolution: "string_decoder@npm:0.10.31" - checksum: 10c0/1c628d78f974aa7539c496029f48e7019acc32487fc695464f9d6bdfec98edd7d933a06b3216bc2016918f6e75074c611d84430a53cb0e43071597d6c1ac5e25 - languageName: node - linkType: hard - -"string_decoder@npm:~1.1.1": - version: 1.1.1 - resolution: "string_decoder@npm:1.1.1" - dependencies: - safe-buffer: "npm:~5.1.0" - checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: "npm:^5.0.1" - checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 - languageName: node - linkType: hard - -"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1": - version: 3.0.1 - resolution: "strip-ansi@npm:3.0.1" - dependencies: - ansi-regex: "npm:^2.0.0" - checksum: 10c0/f6e7fbe8e700105dccf7102eae20e4f03477537c74b286fd22cfc970f139002ed6f0d9c10d0e21aa9ed9245e0fa3c9275930e8795c5b947da136e4ecb644a70f - languageName: node - linkType: hard - -"strip-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-ansi@npm:4.0.0" - dependencies: - ansi-regex: "npm:^3.0.0" - checksum: 10c0/d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" - dependencies: - ansi-regex: "npm:^6.0.1" - checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 - languageName: node - linkType: hard - -"strip-bom@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-bom@npm:2.0.0" - dependencies: - is-utf8: "npm:^0.2.0" - checksum: 10c0/4fcbb248af1d5c1f2d710022b7d60245077e7942079bfb7ef3fc8c1ae78d61e96278525ba46719b15ab12fced5c7603777105bc898695339d7c97c64d300ed0b - languageName: node - linkType: hard - -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 - languageName: node - linkType: hard - -"strip-bom@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-bom@npm:4.0.0" - checksum: 10c0/26abad1172d6bc48985ab9a5f96c21e440f6e7e476686de49be813b5a59b3566dccb5c525b831ec54fe348283b47f3ffb8e080bc3f965fde12e84df23f6bb7ef - languageName: node - linkType: hard - -"strip-hex-prefix@npm:1.0.0": - version: 1.0.0 - resolution: "strip-hex-prefix@npm:1.0.0" - dependencies: - is-hex-prefixed: "npm:1.0.0" - checksum: 10c0/ec9a48c334c2ba4afff2e8efebb42c3ab5439f0e1ec2b8525e184eabef7fecade7aee444af802b1be55d2df6da5b58c55166c32f8461cc7559b401137ad51851 - languageName: node - linkType: hard - -"strip-indent@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-indent@npm:2.0.0" - checksum: 10c0/d88dbef5d2aaa3eb622a9011151b2543b886c581366003ad2bd8c168b419dfbf83f28dcb8962b670ab71a818895d998479b0eac08fba99ee0267b600d11bd764 - languageName: node - linkType: hard - -"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd - languageName: node - linkType: hard - -"sublevel-pouchdb@npm:7.3.1": - version: 7.3.1 - resolution: "sublevel-pouchdb@npm:7.3.1" - dependencies: - inherits: "npm:2.0.4" - level-codec: "npm:9.0.2" - ltgt: "npm:2.2.1" - readable-stream: "npm:1.1.14" - checksum: 10c0/b85b020bb83c144cd9742bd592690d950b46e2afff92da47dc6996f2dd06a11f7a3c748d985be71f9d92ff51c73439ce29e2eedf831f8b953a9c0493708c6cab - languageName: node - linkType: hard - -"supports-color@npm:8.1.1": - version: 8.1.1 - resolution: "supports-color@npm:8.1.1" - dependencies: - has-flag: "npm:^4.0.0" - checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 - languageName: node - linkType: hard - -"supports-color@npm:^3.1.0": - version: 3.2.3 - resolution: "supports-color@npm:3.2.3" - dependencies: - has-flag: "npm:^1.0.0" - checksum: 10c0/d39a57dbd75c3b5740654f8ec16aaf7203b8d12b8a51314507bed590c9081120805f105b4ce741db13105e6f842ac09700e4bd665b9ffc46eb0b34ba54720bd3 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 - languageName: node - linkType: hard - -"supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: "npm:^4.0.0" - checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 - languageName: node - linkType: hard - -"swap-case@npm:^1.1.0": - version: 1.1.2 - resolution: "swap-case@npm:1.1.2" - dependencies: - lower-case: "npm:^1.1.1" - upper-case: "npm:^1.1.1" - checksum: 10c0/0fb57c2427cec53c85cab0dd85f243b8b84b68e039eb550c50e01340cfa43a62e5276e04d088e9066b89073f781b258eeb97bf2c22d6232e005feeca2a11d6bc - languageName: node - linkType: hard - -"swarm-js@npm:^0.1.40": - version: 0.1.42 - resolution: "swarm-js@npm:0.1.42" - dependencies: - bluebird: "npm:^3.5.0" - buffer: "npm:^5.0.5" - eth-lib: "npm:^0.1.26" - fs-extra: "npm:^4.0.2" - got: "npm:^11.8.5" - mime-types: "npm:^2.1.16" - mkdirp-promise: "npm:^5.0.1" - mock-fs: "npm:^4.1.0" - setimmediate: "npm:^1.0.5" - tar: "npm:^4.0.2" - xhr-request: "npm:^1.0.1" - checksum: 10c0/c951cc122f7c4e9c16fb2dd6328ef037fb313b727e70f903396f29a16b1c4a58f09d41772593c6bbde8c9070276212d7b3357ccb5c216b4eabaffb2460c6fa9a - languageName: node - linkType: hard - -"symbol-observable@npm:^1.0.3": - version: 1.2.0 - resolution: "symbol-observable@npm:1.2.0" - checksum: 10c0/009fee50798ef80ed4b8195048288f108b03de162db07493f2e1fd993b33fafa72d659e832b584da5a2427daa78e5a738fb2a9ab027ee9454252e0bedbcd1fdc - languageName: node - linkType: hard - -"sync-request@npm:^6.0.0": - version: 6.1.0 - resolution: "sync-request@npm:6.1.0" - dependencies: - http-response-object: "npm:^3.0.1" - sync-rpc: "npm:^1.2.1" - then-request: "npm:^6.0.0" - checksum: 10c0/02b31c5d543933ce8cc2cdfa7dd7b278e2645eb54299d56f3bc9c778de3130301370f25d54ecc3f6b8b2c7bfb034daabd2b866e0c18badbde26404513212c1f5 - languageName: node - linkType: hard - -"sync-rpc@npm:^1.2.1": - version: 1.3.6 - resolution: "sync-rpc@npm:1.3.6" - dependencies: - get-port: "npm:^3.1.0" - checksum: 10c0/2abaa0e6482fe8b72e29af1f7d5f484fac5a8ea0132969bf370f59b044c4f2eb109f95b222cb06e037f89b42b374a2918e5f90aff5fb7cf3e146d8088c56f6db - languageName: node - linkType: hard - -"synckit@npm:^0.8.6": - version: 0.8.8 - resolution: "synckit@npm:0.8.8" - dependencies: - "@pkgr/core": "npm:^0.1.0" - tslib: "npm:^2.6.2" - checksum: 10c0/c3d3aa8e284f3f84f2f868b960c9f49239b364e35f6d20825a448449a3e9c8f49fe36cdd5196b30615682f007830d46f2ea354003954c7336723cb821e4b6519 - languageName: node - linkType: hard - -"table-layout@npm:^1.0.2": - version: 1.0.2 - resolution: "table-layout@npm:1.0.2" - dependencies: - array-back: "npm:^4.0.1" - deep-extend: "npm:~0.6.0" - typical: "npm:^5.2.0" - wordwrapjs: "npm:^4.0.0" - checksum: 10c0/c1d16d5ba2199571606ff574a5c91cff77f14e8477746e191e7dfd294da03e61af4e8004f1f6f783da9582e1365f38d3c469980428998750d558bf29462cc6c3 - languageName: node - linkType: hard - -"table@npm:^6.8.0": - version: 6.8.2 - resolution: "table@npm:6.8.2" - dependencies: - ajv: "npm:^8.0.1" - lodash.truncate: "npm:^4.4.2" - slice-ansi: "npm:^4.0.0" - string-width: "npm:^4.2.3" - strip-ansi: "npm:^6.0.1" - checksum: 10c0/f8b348af38ee34e419d8ce7306ba00671ce6f20e861ccff22555f491ba264e8416086063ce278a8d81abfa8d23b736ec2cca7ac4029b5472f63daa4b4688b803 - languageName: node - linkType: hard - -"tar@npm:^4.0.2": - version: 4.4.19 - resolution: "tar@npm:4.4.19" - dependencies: - chownr: "npm:^1.1.4" - fs-minipass: "npm:^1.2.7" - minipass: "npm:^2.9.0" - minizlib: "npm:^1.3.3" - mkdirp: "npm:^0.5.5" - safe-buffer: "npm:^5.2.1" - yallist: "npm:^3.1.1" - checksum: 10c0/1a32a68feabd55e040f399f75fed37c35fd76202bb60e393986312cdee0175ff0dfd1aec9cc04ad2ade8a252d2a08c7d191fda877ce23f14a3da954d91d301d7 - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.2.1 - resolution: "tar@npm:6.2.1" - dependencies: - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.0.0" - minipass: "npm:^5.0.0" - minizlib: "npm:^2.1.1" - mkdirp: "npm:^1.0.3" - yallist: "npm:^4.0.0" - checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 - languageName: node - linkType: hard - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": "npm:^0.1.2" - glob: "npm:^7.1.4" - minimatch: "npm:^3.0.4" - checksum: 10c0/019d33d81adff3f9f1bfcff18125fb2d3c65564f437d9be539270ee74b994986abb8260c7c2ce90e8f30162178b09dbbce33c6389273afac4f36069c48521f57 - languageName: node - linkType: hard - -"testrpc@npm:0.0.1": - version: 0.0.1 - resolution: "testrpc@npm:0.0.1" - checksum: 10c0/567acfb2f993a0f3b9a88431f1dc575b582218236cd876f3c7e38d689b5195d4a8e153ac8c8cffb09ef6379e8f0e465a574ce3484dfaf8e3551bb63626d8ab94 - languageName: node - linkType: hard - -"text-hex@npm:1.0.x": - version: 1.0.0 - resolution: "text-hex@npm:1.0.0" - checksum: 10c0/57d8d320d92c79d7c03ffb8339b825bb9637c2cbccf14304309f51d8950015c44464b6fd1b6820a3d4821241c68825634f09f5a2d9d501e84f7c6fd14376860d - languageName: node - linkType: hard - -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c - languageName: node - linkType: hard - -"then-request@npm:^6.0.0": - version: 6.0.2 - resolution: "then-request@npm:6.0.2" - dependencies: - "@types/concat-stream": "npm:^1.6.0" - "@types/form-data": "npm:0.0.33" - "@types/node": "npm:^8.0.0" - "@types/qs": "npm:^6.2.31" - caseless: "npm:~0.12.0" - concat-stream: "npm:^1.6.0" - form-data: "npm:^2.2.0" - http-basic: "npm:^8.1.1" - http-response-object: "npm:^3.0.1" - promise: "npm:^8.0.0" - qs: "npm:^6.4.0" - checksum: 10c0/9d2998c3470d6aa5b49993612be40627c57a89534cff5bbcc1d57f18457c14675cf3f59310816a1f85fdd40fa66feb64c63c5b76fb2163221f57223609c47949 - languageName: node - linkType: hard - -"through2@npm:3.0.2": - version: 3.0.2 - resolution: "through2@npm:3.0.2" - dependencies: - inherits: "npm:^2.0.4" - readable-stream: "npm:2 || 3" - checksum: 10c0/8ea17efa2ce5b78ef5c52d08e29d0dbdad9c321c2add5192bba3434cae25b2319bf9cdac1c54c3bfbd721438a30565ca6f3f19eb79f62341dafc5a12429d2ccc - languageName: node - linkType: hard - -"timed-out@npm:^4.0.1": - version: 4.0.1 - resolution: "timed-out@npm:4.0.1" - checksum: 10c0/86f03ffce5b80c5a066e02e59e411d3fbbfcf242b19290ba76817b4180abd1b85558489586b6022b798fb1cf26fc644c0ce0efb9c271d67ec83fada4b9542a56 - languageName: node - linkType: hard - -"tiny-typed-emitter@npm:^2.1.0": - version: 2.1.0 - resolution: "tiny-typed-emitter@npm:2.1.0" - checksum: 10c0/522bed4c579ee7ee16548540cb693a3d098b137496110f5a74bff970b54187e6b7343a359b703e33f77c5b4b90ec6cebc0d0ec3dbdf1bd418723c5c3ce36d8a2 - languageName: node - linkType: hard - -"title-case@npm:^2.1.0": - version: 2.1.1 - resolution: "title-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - upper-case: "npm:^1.0.3" - checksum: 10c0/7b4e51036af10d99c48fac9eee8c6f59f92c1c6cc56fc1f790c7727f5eb139c7ebf7a22381626855ce74b6534f36041e91922469dbe086e67d0d71e7e8e40fc3 - languageName: node - linkType: hard - -"tmp@npm:0.0.33": - version: 0.0.33 - resolution: "tmp@npm:0.0.33" - dependencies: - os-tmpdir: "npm:~1.0.2" - checksum: 10c0/69863947b8c29cabad43fe0ce65cec5bb4b481d15d4b4b21e036b060b3edbf3bc7a5541de1bacb437bb3f7c4538f669752627fdf9b4aaf034cebd172ba373408 - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: "npm:^7.0.0" - checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 - languageName: node - linkType: hard - -"toidentifier@npm:1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 - languageName: node - linkType: hard - -"tough-cookie@npm:^2.3.3 || ^3.0.1 || ^4.0.0": - version: 4.1.3 - resolution: "tough-cookie@npm:4.1.3" - dependencies: - psl: "npm:^1.1.33" - punycode: "npm:^2.1.1" - universalify: "npm:^0.2.0" - url-parse: "npm:^1.5.3" - checksum: 10c0/4fc0433a0cba370d57c4b240f30440c848906dee3180bb6e85033143c2726d322e7e4614abb51d42d111ebec119c4876ed8d7247d4113563033eebbc1739c831 - languageName: node - linkType: hard - -"tough-cookie@npm:~2.5.0": - version: 2.5.0 - resolution: "tough-cookie@npm:2.5.0" - dependencies: - psl: "npm:^1.1.28" - punycode: "npm:^2.1.1" - checksum: 10c0/e1cadfb24d40d64ca16de05fa8192bc097b66aeeb2704199b055ff12f450e4f30c927ce250f53d01f39baad18e1c11d66f65e545c5c6269de4c366fafa4c0543 - languageName: node - linkType: hard - -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 - languageName: node - linkType: hard - -"triple-beam@npm:^1.3.0": - version: 1.4.1 - resolution: "triple-beam@npm:1.4.1" - checksum: 10c0/4bf1db71e14fe3ff1c3adbe3c302f1fdb553b74d7591a37323a7badb32dc8e9c290738996cbb64f8b10dc5a3833645b5d8c26221aaaaa12e50d1251c9aba2fea - languageName: node - linkType: hard - -"truffle@npm:^5.11.5": - version: 5.11.5 - resolution: "truffle@npm:5.11.5" - dependencies: - "@truffle/db": "npm:^2.0.36" - "@truffle/db-loader": "npm:^0.2.36" - "@truffle/debugger": "npm:^12.1.5" - app-module-path: "npm:^2.2.0" - ganache: "npm:7.9.1" - mocha: "npm:10.1.0" - original-require: "npm:^1.0.1" - dependenciesMeta: - "@truffle/db": - optional: true - bin: - truffle: build/cli.bundled.js - checksum: 10c0/e8bab2e73d98d3e20799ad26b78fadc7fdd04b9c3e2dcf782d9d0e1d1f2ccf52b4564a57773972c680a177d448f81eae64edef0007bc5152df34d679d1327756 - languageName: node - linkType: hard - -"ts-api-utils@npm:^1.0.1": - version: 1.3.0 - resolution: "ts-api-utils@npm:1.3.0" - peerDependencies: - typescript: ">=4.2.0" - checksum: 10c0/f54a0ba9ed56ce66baea90a3fa087a484002e807f28a8ccb2d070c75e76bde64bd0f6dce98b3802834156306050871b67eec325cb4e918015a360a3f0868c77c - languageName: node - linkType: hard - -"ts-command-line-args@npm:^2.2.0": - version: 2.5.1 - resolution: "ts-command-line-args@npm:2.5.1" - dependencies: - chalk: "npm:^4.1.0" - command-line-args: "npm:^5.1.1" - command-line-usage: "npm:^6.1.0" - string-format: "npm:^2.0.0" - bin: - write-markdown: dist/write-markdown.js - checksum: 10c0/affb43fd4e17b496b6fd195888c7a80e6d7fe54f121501926bb2376f2167c238f7fa8f2e2d98bf2498ff883240d9f914e3558701807f40dca882616a8fd763b1 - languageName: node - linkType: hard - -"ts-essentials@npm:^7.0.1": - version: 7.0.3 - resolution: "ts-essentials@npm:7.0.3" - peerDependencies: - typescript: ">=3.7.0" - checksum: 10c0/ea1919534ec6ce4ca4d9cb0ff1ab8e053509237da8d4298762ab3bfba4e78ca5649a599ce78a5c7c2624f3a7a971f62b265b7b0c3c881336e4fa6acaf6f37544 - languageName: node - linkType: hard - -"ts-node@npm:^10.9.2": - version: 10.9.2 - resolution: "ts-node@npm:10.9.2" - dependencies: - "@cspotcode/source-map-support": "npm:^0.8.0" - "@tsconfig/node10": "npm:^1.0.7" - "@tsconfig/node12": "npm:^1.0.7" - "@tsconfig/node14": "npm:^1.0.0" - "@tsconfig/node16": "npm:^1.0.2" - acorn: "npm:^8.4.1" - acorn-walk: "npm:^8.1.1" - arg: "npm:^4.1.0" - create-require: "npm:^1.1.0" - diff: "npm:^4.0.1" - make-error: "npm:^1.1.1" - v8-compile-cache-lib: "npm:^3.0.1" - yn: "npm:3.1.1" - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 10c0/5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2 - languageName: node - linkType: hard - -"tsconfig-paths@npm:^3.15.0": - version: 3.15.0 - resolution: "tsconfig-paths@npm:3.15.0" - dependencies: - "@types/json5": "npm:^0.0.29" - json5: "npm:^1.0.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 10c0/5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5 - languageName: node - linkType: hard - -"tslib@npm:2.4.0": - version: 2.4.0 - resolution: "tslib@npm:2.4.0" - checksum: 10c0/eb19bda3ae545b03caea6a244b34593468e23d53b26bf8649fbc20fce43e9b21a71127fd6d2b9662c0fe48ee6ff668ead48fd00d3b88b2b716b1c12edae25b5d - languageName: node - linkType: hard - -"tslib@npm:^1.9.3": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2 - languageName: node - linkType: hard - -"tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb - languageName: node - linkType: hard - -"tslib@npm:~2.4.0": - version: 2.4.1 - resolution: "tslib@npm:2.4.1" - checksum: 10c0/9ac0e4fd1033861f0b4f0d848dc3009ebcc3aa4757a06e8602a2d8a7aed252810e3540e54e70709f06c0f95311faa8584f769bcbede48aff785eb7e4d399b9ec - languageName: node - linkType: hard - -"tsort@npm:0.0.1": - version: 0.0.1 - resolution: "tsort@npm:0.0.1" - checksum: 10c0/ea3d034ab341dd9282c972710496e98539408d77f1cd476ad0551a9731f40586b65ab917b39745f902bf32037a3161eee3821405f6ab15bcd2ce4cc0a52d1da6 - languageName: node - linkType: hard - -"tunnel-agent@npm:^0.6.0": - version: 0.6.0 - resolution: "tunnel-agent@npm:0.6.0" - dependencies: - safe-buffer: "npm:^5.0.1" - checksum: 10c0/4c7a1b813e7beae66fdbf567a65ec6d46313643753d0beefb3c7973d66fcec3a1e7f39759f0a0b4465883499c6dc8b0750ab8b287399af2e583823e40410a17a - languageName: node - linkType: hard - -"tweetnacl-util@npm:^0.15.1": - version: 0.15.1 - resolution: "tweetnacl-util@npm:0.15.1" - checksum: 10c0/796fad76238e40e853dff79516406a27b41549bfd6fabf4ba89d87ca31acf232122f825daf955db8c8573cc98190d7a6d39ece9ed8ae0163370878c310650a80 - languageName: node - linkType: hard - -"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": - version: 0.14.5 - resolution: "tweetnacl@npm:0.14.5" - checksum: 10c0/4612772653512c7bc19e61923fbf42903f5e0389ec76a4a1f17195859d114671ea4aa3b734c2029ce7e1fa7e5cc8b80580f67b071ecf0b46b5636d030a0102a2 - languageName: node - linkType: hard - -"tweetnacl@npm:^1.0.3": - version: 1.0.3 - resolution: "tweetnacl@npm:1.0.3" - checksum: 10c0/069d9df51e8ad4a89fbe6f9806c68e06c65be3c7d42f0701cc43dba5f0d6064686b238bbff206c5addef8854e3ce00c643bff59432ea2f2c639feab0ee1a93f9 - languageName: node - linkType: hard - -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: "npm:^1.2.1" - checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 - languageName: node - linkType: hard - -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: "npm:~1.1.2" - checksum: 10c0/776217116b2b4e50e368c7ee0c22c0a85e982881c16965b90d52f216bc296d6a52ef74f9202d22158caacc092a7645b0b8d5fe529a96e3fe35d0fb393966c875 - languageName: node - linkType: hard - -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 - languageName: node - linkType: hard - -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: 10c0/902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8 - languageName: node - linkType: hard - -"type-fest@npm:^0.7.1": - version: 0.7.1 - resolution: "type-fest@npm:0.7.1" - checksum: 10c0/ce6b5ef806a76bf08d0daa78d65e61f24d9a0380bd1f1df36ffb61f84d14a0985c3a921923cf4b97831278cb6fa9bf1b89c751df09407e0510b14e8c081e4e0f - languageName: node - linkType: hard - -"type-fest@npm:^0.8.0": - version: 0.8.1 - resolution: "type-fest@npm:0.8.1" - checksum: 10c0/dffbb99329da2aa840f506d376c863bd55f5636f4741ad6e65e82f5ce47e6914108f44f340a0b74009b0cb5d09d6752ae83203e53e98b1192cf80ecee5651636 - languageName: node - linkType: hard - -"type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: "npm:0.3.0" - mime-types: "npm:~2.1.24" - checksum: 10c0/a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d - languageName: node - linkType: hard - -"type@npm:^2.7.2": - version: 2.7.2 - resolution: "type@npm:2.7.2" - checksum: 10c0/84c2382788fe24e0bc3d64c0c181820048f672b0f06316aa9c7bdb373f8a09f8b5404f4e856bc4539fb931f2f08f2adc4c53f6c08c9c0314505d70c29a1289e1 - languageName: node - linkType: hard - -"typechain@npm:^8.3.2": - version: 8.3.2 - resolution: "typechain@npm:8.3.2" - dependencies: - "@types/prettier": "npm:^2.1.1" - debug: "npm:^4.3.1" - fs-extra: "npm:^7.0.0" - glob: "npm:7.1.7" - js-sha3: "npm:^0.8.0" - lodash: "npm:^4.17.15" - mkdirp: "npm:^1.0.4" - prettier: "npm:^2.3.1" - ts-command-line-args: "npm:^2.2.0" - ts-essentials: "npm:^7.0.1" - peerDependencies: - typescript: ">=4.3.0" - bin: - typechain: dist/cli/cli.js - checksum: 10c0/1ea660cc7c699c6ac68da67b76454eb4e9395c54666d924ca67f983ae8eb5b5e7dab0a576beb55dbfad75ea784a3f68cb1ca019d332293b7291731c156ead5b5 - languageName: node - linkType: hard - -"typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - is-typed-array: "npm:^1.1.13" - checksum: 10c0/9e043eb38e1b4df4ddf9dde1aa64919ae8bb909571c1cc4490ba777d55d23a0c74c7d73afcdd29ec98616d91bb3ae0f705fad4421ea147e1daf9528200b562da - languageName: node - linkType: hard - -"typed-array-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - checksum: 10c0/fcebeffb2436c9f355e91bd19e2368273b88c11d1acc0948a2a306792f1ab672bce4cfe524ab9f51a0505c9d7cd1c98eff4235c4f6bfef6a198f6cfc4ff3d4f3 - languageName: node - linkType: hard - -"typed-array-byte-offset@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-byte-offset@npm:1.0.2" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - checksum: 10c0/d2628bc739732072e39269389a758025f75339de2ed40c4f91357023c5512d237f255b633e3106c461ced41907c1bf9a533c7e8578066b0163690ca8bc61b22f - languageName: node - linkType: hard - -"typed-array-length@npm:^1.0.6": - version: 1.0.6 - resolution: "typed-array-length@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - possible-typed-array-names: "npm:^1.0.0" - checksum: 10c0/74253d7dc488eb28b6b2711cf31f5a9dcefc9c41b0681fd1c178ed0a1681b4468581a3626d39cd4df7aee3d3927ab62be06aa9ca74e5baf81827f61641445b77 - languageName: node - linkType: hard - -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: "npm:^1.0.0" - checksum: 10c0/4ac5b7a93d604edabf3ac58d3a2f7e07487e9f6e98195a080e81dbffdc4127817f470f219d794a843b87052cedef102b53ac9b539855380b8c2172054b7d5027 - languageName: node - linkType: hard - -"typedarray@npm:^0.0.6": - version: 0.0.6 - resolution: "typedarray@npm:0.0.6" - checksum: 10c0/6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412 - languageName: node - linkType: hard - -"typescript-compare@npm:^0.0.2": - version: 0.0.2 - resolution: "typescript-compare@npm:0.0.2" - dependencies: - typescript-logic: "npm:^0.0.0" - checksum: 10c0/8ac842798875fef83fa1b592de85d9ba546f72ff5554b995ee2a46e0e91c92f25e7b83780f308c85609dda9cbb5d027164479b772935d7a20b2d97e44e241ed5 - languageName: node - linkType: hard - -"typescript-logic@npm:^0.0.0": - version: 0.0.0 - resolution: "typescript-logic@npm:0.0.0" - checksum: 10c0/c40adbbc5debb02ede2041ef7e0165c611620ddd1257d2df237bd77eb14cc47b975218c5d842b6a9eaeebe37a6ff5bcff576a90117f32dfd60dabb7b4cd86928 - languageName: node - linkType: hard - -"typescript-tuple@npm:^2.2.1": - version: 2.2.1 - resolution: "typescript-tuple@npm:2.2.1" - dependencies: - typescript-compare: "npm:^0.0.2" - checksum: 10c0/415f6b975b14437b3b55fc843a5aa9f4f6804e72a0197003882b668d52b632dfddbbde91da4b946ea877a658d5805a9fd8e761640cafd07838eee8f17195e20e - languageName: node - linkType: hard - -"typescript@npm:^5.4.3": - version: 5.4.3 - resolution: "typescript@npm:5.4.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/22443a8760c3668e256c0b34b6b45c359ef6cecc10c42558806177a7d500ab1a7d7aac1f976d712e26989ddf6731d2fbdd3212b7c73290a45127c1c43ba2005a - languageName: node - linkType: hard - -"typescript@patch:typescript@npm%3A^5.4.3#optional!builtin": - version: 5.4.3 - resolution: "typescript@patch:typescript@npm%3A5.4.3#optional!builtin::version=5.4.3&hash=5adc0c" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/6e51f8b7e6ec55b897b9e56b67e864fe8f44e30f4a14357aad5dc0f7432db2f01efc0522df0b6c36d361c51f2dc3dcac5c832efd96a404cfabf884e915d38828 - languageName: node - linkType: hard - -"typical@npm:^4.0.0": - version: 4.0.0 - resolution: "typical@npm:4.0.0" - checksum: 10c0/f300b198fb9fe743859b75ec761d53c382723dc178bbce4957d9cb754f2878a44ce17dc0b6a5156c52be1065449271f63754ba594dac225b80ce3aa39f9241ed - languageName: node - linkType: hard - -"typical@npm:^5.2.0": - version: 5.2.0 - resolution: "typical@npm:5.2.0" - checksum: 10c0/1cceaa20d4b77a02ab8eccfe4a20500729431aecc1e1b7dc70c0e726e7966efdca3bf0b4bee285555b751647e37818fd99154ea73f74b5c29adc95d3c13f5973 - languageName: node - linkType: hard - -"uglify-js@npm:^3.1.4": - version: 3.17.4 - resolution: "uglify-js@npm:3.17.4" - bin: - uglifyjs: bin/uglifyjs - checksum: 10c0/8b7fcdca69deb284fed7d2025b73eb747ce37f9aca6af53422844f46427152d5440601b6e2a033e77856a2f0591e4167153d5a21b68674ad11f662034ec13ced - languageName: node - linkType: hard - -"ultron@npm:~1.1.0": - version: 1.1.1 - resolution: "ultron@npm:1.1.1" - checksum: 10c0/527d7f687012898e3af8d646936ecba776a7099ef8d3d983f9b3ccd5e84e266af0f714d859be15090b55b93f331bb95e5798bce555d9bb08e2f4bf2faac16517 - languageName: node - linkType: hard - -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - has-bigints: "npm:^1.0.2" - has-symbols: "npm:^1.0.3" - which-boxed-primitive: "npm:^1.0.2" - checksum: 10c0/81ca2e81134167cc8f75fa79fbcc8a94379d6c61de67090986a2273850989dd3bae8440c163121b77434b68263e34787a675cbdcb34bb2f764c6b9c843a11b66 - languageName: node - linkType: hard - -"underscore@npm:^1.8.3": - version: 1.13.6 - resolution: "underscore@npm:1.13.6" - checksum: 10c0/5f57047f47273044c045fddeb8b141dafa703aa487afd84b319c2495de2e685cecd0b74abec098292320d518b267c0c4598e45aa47d4c3628d0d4020966ba521 - languageName: node - linkType: hard - -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 - languageName: node - linkType: hard - -"undici@npm:^5.14.0": - version: 5.28.3 - resolution: "undici@npm:5.28.3" - dependencies: - "@fastify/busboy": "npm:^2.0.0" - checksum: 10c0/3c559ae50ef3104b7085251445dda6f4de871553b9e290845649d2f80b06c0c9cfcdf741b0029c6b20d36c82e6a74dc815b139fa9a26757d70728074ca6d6f5c - languageName: node - linkType: hard - -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: "npm:^4.0.0" - checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 - languageName: node - linkType: hard - -"universalify@npm:^0.1.0": - version: 0.1.2 - resolution: "universalify@npm:0.1.2" - checksum: 10c0/e70e0339f6b36f34c9816f6bf9662372bd241714dc77508d231d08386d94f2c4aa1ba1318614f92015f40d45aae1b9075cd30bd490efbe39387b60a76ca3f045 - languageName: node - linkType: hard - -"universalify@npm:^0.2.0": - version: 0.2.0 - resolution: "universalify@npm:0.2.0" - checksum: 10c0/cedbe4d4ca3967edf24c0800cfc161c5a15e240dac28e3ce575c689abc11f2c81ccc6532c8752af3b40f9120fb5e454abecd359e164f4f6aa44c29cd37e194fe - languageName: node - linkType: hard - -"universalify@npm:^2.0.0": - version: 2.0.1 - resolution: "universalify@npm:2.0.1" - checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a - languageName: node - linkType: hard - -"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": - version: 1.0.0 - resolution: "unpipe@npm:1.0.0" - checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.0.13": - version: 1.0.13 - resolution: "update-browserslist-db@npm:1.0.13" - dependencies: - escalade: "npm:^3.1.1" - picocolors: "npm:^1.0.0" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 10c0/e52b8b521c78ce1e0c775f356cd16a9c22c70d25f3e01180839c407a5dc787fb05a13f67560cbaf316770d26fa99f78f1acd711b1b54a4f35d4820d4ea7136e6 - languageName: node - linkType: hard - -"upper-case-first@npm:^1.1.0, upper-case-first@npm:^1.1.2": - version: 1.1.2 - resolution: "upper-case-first@npm:1.1.2" - dependencies: - upper-case: "npm:^1.1.1" - checksum: 10c0/db3aff30538ed53c35b91a68faf46119d35ceb8800fec373ad781cbfc487f10ccd4d60609e4188e85d20ea3ec9db9a2392fa6372c334f1d1107cbde0bcb5edfe - languageName: node - linkType: hard - -"upper-case@npm:^1.0.3, upper-case@npm:^1.1.0, upper-case@npm:^1.1.1, upper-case@npm:^1.1.3": - version: 1.1.3 - resolution: "upper-case@npm:1.1.3" - checksum: 10c0/3e4d3a90519915bb591db84d72610392518806d8287b8f7541d87642d30388f42b2def1ed2f687e5792ee025e8f7e17d3a0dcbd5b3b59e306ceb1f3b8121ef54 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: "npm:^2.1.0" - checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c - languageName: node - linkType: hard - -"url-parse@npm:^1.5.3": - version: 1.5.10 - resolution: "url-parse@npm:1.5.10" - dependencies: - querystringify: "npm:^2.1.1" - requires-port: "npm:^1.0.0" - checksum: 10c0/bd5aa9389f896974beb851c112f63b466505a04b4807cea2e5a3b7092f6fbb75316f0491ea84e44f66fed55f1b440df5195d7e3a8203f64fcefa19d182f5be87 - languageName: node - linkType: hard - -"url-set-query@npm:^1.0.0": - version: 1.0.0 - resolution: "url-set-query@npm:1.0.0" - checksum: 10c0/88f52b16b213598763aafe1128f0b48d080d6b63b4f735c01b87effe4e21c463ba6df5c075499bc03c6af1357728b287d629c3d15b4a895c0c87dad8913fccef - languageName: node - linkType: hard - -"utf-8-validate@npm:5.0.7": - version: 5.0.7 - resolution: "utf-8-validate@npm:5.0.7" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10c0/1f343467b4509a37e4d8b06be527b78869a7a950fe039f24fad9bc5951208730227789c1f22665988124762e05a2080056a6cd68ba6bec5988c16ee30bfa9737 - languageName: node - linkType: hard - -"utf-8-validate@npm:6.0.3": - version: 6.0.3 - resolution: "utf-8-validate@npm:6.0.3" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10c0/2ca08b07f4070540b33ff15f3f0632fa30baaee8a766fff993be47b4829b4fb30fd36fdf1270336324d03f65e0936c4608ee719d862230d75311751dcfe27a83 - languageName: node - linkType: hard - -"utf-8-validate@npm:^5.0.2": - version: 5.0.10 - resolution: "utf-8-validate@npm:5.0.10" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10c0/23cd6adc29e6901aa37ff97ce4b81be9238d0023c5e217515b34792f3c3edb01470c3bd6b264096dd73d0b01a1690b57468de3a24167dd83004ff71c51cc025f - languageName: node - linkType: hard - -"utf8@npm:3.0.0, utf8@npm:^3.0.0": - version: 3.0.0 - resolution: "utf8@npm:3.0.0" - checksum: 10c0/675d008bab65fc463ce718d5cae8fd4c063540f269e4f25afebce643098439d53e7164bb1f193e0c3852825c7e3e32fbd8641163d19a618dbb53f1f09acb0d5a - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 - languageName: node - linkType: hard - -"util@npm:^0.12.5": - version: 0.12.5 - resolution: "util@npm:0.12.5" - dependencies: - inherits: "npm:^2.0.3" - is-arguments: "npm:^1.0.4" - is-generator-function: "npm:^1.0.7" - is-typed-array: "npm:^1.1.3" - which-typed-array: "npm:^1.1.2" - checksum: 10c0/c27054de2cea2229a66c09522d0fa1415fb12d861d08523a8846bf2e4cbf0079d4c3f725f09dcb87493549bcbf05f5798dce1688b53c6c17201a45759e7253f3 - languageName: node - linkType: hard - -"utils-merge@npm:1.0.1": - version: 1.0.1 - resolution: "utils-merge@npm:1.0.1" - checksum: 10c0/02ba649de1b7ca8854bfe20a82f1dfbdda3fb57a22ab4a8972a63a34553cf7aa51bc9081cf7e001b035b88186d23689d69e71b510e610a09a4c66f68aa95b672 - languageName: node - linkType: hard - -"uuid@npm:2.0.1": - version: 2.0.1 - resolution: "uuid@npm:2.0.1" - checksum: 10c0/8241e74e709bf0398a64c350ebdac8ba8340ee74858f239eee06972b7fbe09f2babd20df486692f68a695510df806f6bd17ffce3eadc4d3c13f2128b262d6f06 - languageName: node - linkType: hard - -"uuid@npm:8.3.2, uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 - languageName: node - linkType: hard - -"uuid@npm:^3.3.2": - version: 3.4.0 - resolution: "uuid@npm:3.4.0" - bin: - uuid: ./bin/uuid - checksum: 10c0/1c13950df865c4f506ebfe0a24023571fa80edf2e62364297a537c80af09c618299797bbf2dbac6b1f8ae5ad182ba474b89db61e0e85839683991f7e08795347 - languageName: node - linkType: hard - -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b - languageName: node - linkType: hard - -"v8-compile-cache-lib@npm:^3.0.1": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 10c0/bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391 - languageName: node - linkType: hard - -"validate-npm-package-license@npm:^3.0.1": - version: 3.0.4 - resolution: "validate-npm-package-license@npm:3.0.4" - dependencies: - spdx-correct: "npm:^3.0.0" - spdx-expression-parse: "npm:^3.0.0" - checksum: 10c0/7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f - languageName: node - linkType: hard - -"value-or-promise@npm:1.0.11": - version: 1.0.11 - resolution: "value-or-promise@npm:1.0.11" - checksum: 10c0/7499b744ae18729cfe5a2211a678a2e023859a49e2cd2f3e28da6f3d84ed94fe3167e828026f8a123927420f075cd69b927be5a5a50b1768ea5c53bf1e75a52f - languageName: node - linkType: hard - -"value-or-promise@npm:^1.0.12": - version: 1.0.12 - resolution: "value-or-promise@npm:1.0.12" - checksum: 10c0/b75657b74e4d17552bd88e0c2857020fbab34a4d091dc058db18c470e7da0336067e72c130b3358e3321ac0a6ff11c0b92b67a382318a3705ad5d57de7ff3262 - languageName: node - linkType: hard - -"varint@npm:^5.0.0": - version: 5.0.2 - resolution: "varint@npm:5.0.2" - checksum: 10c0/a8e6c304cb140389cc56f14c808cd2ad4764d81f8afdaf4e49e9804231f2a62d9443098dba6b1249b0bd160b823fc7886d51e1cb0fca54209f842310d1d2591d - languageName: node - linkType: hard - -"vary@npm:^1, vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f - languageName: node - linkType: hard - -"verror@npm:1.10.0": - version: 1.10.0 - resolution: "verror@npm:1.10.0" - dependencies: - assert-plus: "npm:^1.0.0" - core-util-is: "npm:1.0.2" - extsprintf: "npm:^1.2.0" - checksum: 10c0/37ccdf8542b5863c525128908ac80f2b476eed36a32cb944de930ca1e2e78584cc435c4b9b4c68d0fc13a47b45ff364b4be43aa74f8804f9050140f660fb660d - languageName: node - linkType: hard - -"vuvuzela@npm:1.0.3": - version: 1.0.3 - resolution: "vuvuzela@npm:1.0.3" - checksum: 10c0/34151d3b69c0295730a6fa930f2f85301aafe9a90115f2a60dbe8d376c77660b6f2fae3c88f559d18591a8a969eda2497862ce05998eb7e843ea675a04e7c6e6 - languageName: node - linkType: hard - -"web3-bzz@npm:1.10.0": - version: 1.10.0 - resolution: "web3-bzz@npm:1.10.0" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:12.1.0" - swarm-js: "npm:^0.1.40" - checksum: 10c0/b17d10c147025a9592454c9d6dbc908b28ea172354157d9d7455313d0ce0f1312d27a5c2bcbe53335516d51cb176a83c433a60836c62327ccc434c223b7c96ff - languageName: node - linkType: hard - -"web3-bzz@npm:1.10.4": - version: 1.10.4 - resolution: "web3-bzz@npm:1.10.4" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:12.1.0" - swarm-js: "npm:^0.1.40" - checksum: 10c0/6cb61007999ef8593f19833c3f5b6d348142e7b5fd48c3a666c830eaf73f87a04d9f52b4f8b49a8732717a39a91e3afbc06c6e86fbe022573d5650a7976cf172 - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-helpers@npm:1.10.0" - dependencies: - web3-eth-iban: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/3ddb8691279296c153d5d966c72f631fc6f68880d7a540de2ad658e3f63109305a4b1995490f6881cf0b3b1695c0326366de5f741cafffc595c3273755dccb90 - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-helpers@npm:1.10.4" - dependencies: - web3-eth-iban: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/78396244a26dc6bcfa1ae83b742de45eaed3e42e3c4969021d094ba270437737c0d88982ea194183e681944956ccd9dc066e62b2d964093b65b443f8abc77986 - languageName: node - linkType: hard - -"web3-core-method@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-method@npm:1.10.0" - dependencies: - "@ethersproject/transactions": "npm:^5.6.2" - web3-core-helpers: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/63cf9708ab62978ad2c71da2555b0b77db861ce034282d0c12f7939a8b44b77acbf30ef62c381ef076b2e7d2ac43bd97173047414463beaa10a59ac6df587182 - languageName: node - linkType: hard - -"web3-core-method@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-method@npm:1.10.4" - dependencies: - "@ethersproject/transactions": "npm:^5.6.2" - web3-core-helpers: "npm:1.10.4" - web3-core-promievent: "npm:1.10.4" - web3-core-subscriptions: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/8b1ab6f9f01d9b74e59296f2e6b3b4afc720b71045b96601a4c1e49da0dade02d567c1ce3fd616c5f3a976d903c12521c690cbf7ee586af038b225e5c327d66f - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-promievent@npm:1.10.0" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: 10c0/200b01c8f92534441a880d216853a520d25fbbebc4c986aab8028596ce6f4af5c2e3b299cb92a624c2ed8ea6871b4c958dcadbba233951f081cbadd2159d94ba - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-promievent@npm:1.10.4" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: 10c0/7346e8ae0905b6b0aaf3fde1a707faf13ee68863b239a7092b45c5c932db9634c10d935a0621cb63806aaceaf5f4d93f1543d6593612dc2320f049d897851be4 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-requestmanager@npm:1.10.0" - dependencies: - util: "npm:^0.12.5" - web3-core-helpers: "npm:1.10.0" - web3-providers-http: "npm:1.10.0" - web3-providers-ipc: "npm:1.10.0" - web3-providers-ws: "npm:1.10.0" - checksum: 10c0/9ea2504e3f6d46aeb7a957f4cc6566549d1d09e58da9210d13276134f69d00fffe21af36c7737a25d3a2de11c8192259ef0008bb743b9abf94e8278544b486c0 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-requestmanager@npm:1.10.4" - dependencies: - util: "npm:^0.12.5" - web3-core-helpers: "npm:1.10.4" - web3-providers-http: "npm:1.10.4" - web3-providers-ipc: "npm:1.10.4" - web3-providers-ws: "npm:1.10.4" - checksum: 10c0/d896a95f0f9d3edad79f7fb37aaf54d3d07d3aafe6446a178afbe11504fe4b7131f9b0d4762f5784964445a495353432578fc7632322e15c6760a37fd06626d9 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-subscriptions@npm:1.10.0" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.0" - checksum: 10c0/c4969644fd2d24ac8ba1a2926bc3bb784ac1f6bdcd78cb2d5cfac027b3b1e7f12d953778113d5969eae991cb17c3c726ee35f5a65c130af075411e6192da78a8 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-subscriptions@npm:1.10.4" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.4" - checksum: 10c0/aff19f0413ac9987913f8f5b2ba481e397a8a2622b3ce42745d0ceded7861b325819c9acc982d4a22fd4fdc17cdf03a113396db5b492e62380d5ca67a06cb3b9 - languageName: node - linkType: hard - -"web3-core@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core@npm:1.10.0" - dependencies: - "@types/bn.js": "npm:^5.1.1" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-requestmanager: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/d264e5c85dd6f043e2d1bff63104cc10224c4033592b43fd4d5b021c4fa5b03038945c1f184141d6493d94423d1ce3ffffc820e2967f8483d87811884702fe72 - languageName: node - linkType: hard - -"web3-core@npm:1.10.4, web3-core@npm:^1.0.0": - version: 1.10.4 - resolution: "web3-core@npm:1.10.4" - dependencies: - "@types/bn.js": "npm:^5.1.1" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-core-requestmanager: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/76941d96c3f6a99c69270eb4411e89cd004eb08efae0c228a3dd3f1283392bc39b4d6b8336d306c6484a84823c6f107aff53d23b71ca3e809dab47902c35ce4e - languageName: node - linkType: hard - -"web3-core@npm:^4.3.0, web3-core@npm:^4.3.2": - version: 4.3.2 - resolution: "web3-core@npm:4.3.2" - dependencies: - web3-errors: "npm:^1.1.4" - web3-eth-accounts: "npm:^4.1.0" - web3-eth-iban: "npm:^4.0.7" - web3-providers-http: "npm:^4.1.0" - web3-providers-ipc: "npm:^4.0.7" - web3-providers-ws: "npm:^4.0.7" - web3-types: "npm:^1.3.1" - web3-utils: "npm:^4.1.0" - web3-validator: "npm:^2.0.3" - dependenciesMeta: - web3-providers-ipc: - optional: true - checksum: 10c0/c8a575a55a4f2e276d2f621f4d9bc907687d2bb8a6f5072390b0e988e85bb014a8981ef5f56d5e2296913e5ef26243907b2cf66d2b26f9216cd2af329e8b3c31 - languageName: node - linkType: hard - -"web3-errors@npm:^1.1.3, web3-errors@npm:^1.1.4": - version: 1.1.4 - resolution: "web3-errors@npm:1.1.4" - dependencies: - web3-types: "npm:^1.3.1" - checksum: 10c0/a87d2846cfa8dd007fe3b3b474e1e83eaa0609b973413b9bd64f993a34ad6ce527606d4d09bcdcacb352a0b50a084e55ff50100b55d237a2500e22eb84e83e7d - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-abi@npm:1.10.0" - dependencies: - "@ethersproject/abi": "npm:^5.6.3" - web3-utils: "npm:1.10.0" - checksum: 10c0/529352b955031ed235b4ff318f62409ae7eb9acf0026e5a8cbf8b0b96bd5a8fc2a7803add1670d5a6202d60a98003a1c73a2b8558d962a6bd836625cffc97c41 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-abi@npm:1.10.4" - dependencies: - "@ethersproject/abi": "npm:^5.6.3" - web3-utils: "npm:1.10.4" - checksum: 10c0/976942b8591d1eb0318cb6ef258a0d4950b95f5217d4b7a9615565f832b6c30a8085241628af847ad34227ea0d604a74e88ec212e8447b7fdfb86a645be2c50f - languageName: node - linkType: hard - -"web3-eth-abi@npm:^4.2.0": - version: 4.2.0 - resolution: "web3-eth-abi@npm:4.2.0" - dependencies: - abitype: "npm:0.7.1" - web3-errors: "npm:^1.1.4" - web3-types: "npm:^1.3.1" - web3-utils: "npm:^4.1.1" - web3-validator: "npm:^2.0.4" - checksum: 10c0/f5af1d7370d069791bdecf12e4d4caa8075f5f90701f444793e18c0177175c5ab449e3c841b086a18c1672f307b1dc102ca37668099377d008a51306b60869e3 - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-accounts@npm:1.10.0" - dependencies: - "@ethereumjs/common": "npm:2.5.0" - "@ethereumjs/tx": "npm:3.3.2" - eth-lib: "npm:0.2.8" - ethereumjs-util: "npm:^7.1.5" - scrypt-js: "npm:^3.0.1" - uuid: "npm:^9.0.0" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/9f6a60044650a37e0119bf6cdaf02269acfe3eb9d8361ec4e41e0bfb36008aabaaed6ee6bfb08bc98ffd9442965620c0f3157466317ed99753d12e0308eb5766 - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-accounts@npm:1.10.4" - dependencies: - "@ethereumjs/common": "npm:2.6.5" - "@ethereumjs/tx": "npm:3.5.2" - "@ethereumjs/util": "npm:^8.1.0" - eth-lib: "npm:0.2.8" - scrypt-js: "npm:^3.0.1" - uuid: "npm:^9.0.0" - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/8dde61a4235e1ec708037a8f1ae22c59ec0a96403e7e8a7ec41b278b6880fcdf83811294df9e134afdc06b265e6be34ea5ab0d6303ebedb672d27e83ad98799e - languageName: node - linkType: hard - -"web3-eth-accounts@npm:^4.1.0, web3-eth-accounts@npm:^4.1.1": - version: 4.1.1 - resolution: "web3-eth-accounts@npm:4.1.1" - dependencies: - "@ethereumjs/rlp": "npm:^4.0.1" - crc-32: "npm:^1.2.2" - ethereum-cryptography: "npm:^2.0.0" - web3-errors: "npm:^1.1.4" - web3-types: "npm:^1.3.1" - web3-utils: "npm:^4.1.1" - web3-validator: "npm:^2.0.4" - checksum: 10c0/43c866840849227728c6d2a36ab503c5bfd3486245b393789a58053621552e05b2dbbd8178a2f9b9fc274f742fc6fdd1dd54af2449efea322fe9e67ba3680d51 - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-contract@npm:1.10.0" - dependencies: - "@types/bn.js": "npm:^5.1.1" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/6b5f2009a91364e3005e1c16fa614c3cfdcd2132351e1e266c5a891e9c45aa6e856002d8ceb748acbf7affb42548e1ad378393ecba4deb48ad37a1d12bb91f42 - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.10.4, web3-eth-contract@npm:^1.0.0": - version: 1.10.4 - resolution: "web3-eth-contract@npm:1.10.4" - dependencies: - "@types/bn.js": "npm:^5.1.1" - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-core-promievent: "npm:1.10.4" - web3-core-subscriptions: "npm:1.10.4" - web3-eth-abi: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/24d7c604c7985daa0fce27a506775ddddb1b99126027aaaa092de3a2309ff70ad2a9abbffbdcefdcc3c667b0f6b816692d900bd92dc061bee1a23704cd5e50f6 - languageName: node - linkType: hard - -"web3-eth-contract@npm:^4.3.0": - version: 4.3.0 - resolution: "web3-eth-contract@npm:4.3.0" - dependencies: - web3-core: "npm:^4.3.2" - web3-errors: "npm:^1.1.4" - web3-eth: "npm:^4.5.0" - web3-eth-abi: "npm:^4.2.0" - web3-types: "npm:^1.5.0" - web3-utils: "npm:^4.2.2" - web3-validator: "npm:^2.0.5" - checksum: 10c0/fe4db89107478ef1f8b53a109470451202926ac6977e3b20db12f40f738cec2e7e7da87fe5195100c215fa45beb37e2d7207e9c599d11471ce0e9b5021042208 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-ens@npm:1.10.0" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-eth-contract: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/9f7f8817ebfe2041a369c6342df5136e04cf2998bcfdf0af871b6f547d1953017e8ecabc89d0265edf9844f41dd5cf16d2d47030deb8debd81dca62b045c9455 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-ens@npm:1.10.4" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-promievent: "npm:1.10.4" - web3-eth-abi: "npm:1.10.4" - web3-eth-contract: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/7dafc349f87f19f2fc6c9cdd3adc922feab27dd4987ba1d1702aa169971d382e61ca13dd8392252f69c0c44a65092511f1c6a81fa195790688b306931a9f9610 - languageName: node - linkType: hard - -"web3-eth-ens@npm:^4.2.0": - version: 4.2.0 - resolution: "web3-eth-ens@npm:4.2.0" - dependencies: - "@adraffy/ens-normalize": "npm:^1.8.8" - web3-core: "npm:^4.3.2" - web3-errors: "npm:^1.1.4" - web3-eth: "npm:^4.5.0" - web3-eth-contract: "npm:^4.3.0" - web3-net: "npm:^4.0.7" - web3-types: "npm:^1.5.0" - web3-utils: "npm:^4.2.2" - web3-validator: "npm:^2.0.5" - checksum: 10c0/1d4afa332e54ed1f8357258cf908476b9da68914d9f895928d98bc2452c102e4d6ec02761f3ccd5ac5b886c672d9588f9704ed28b0c8477ed7caebb24f22eb6b - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-iban@npm:1.10.0" - dependencies: - bn.js: "npm:^5.2.1" - web3-utils: "npm:1.10.0" - checksum: 10c0/76ea1db4adabfc8db1117c8f80c09162ad80b2f8f0a587850ecc3a6e1f6d143ec17429edcaa1b4f5d316e49d1ab9cac7266b51fb7af6af8880be47cfafcca711 - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-iban@npm:1.10.4" - dependencies: - bn.js: "npm:^5.2.1" - web3-utils: "npm:1.10.4" - checksum: 10c0/47d382da507f765445e2774b54e9dda1bb4ae8f64ef94df4472f2a9e40a85dee6a547cc51f131c99e78936c415447214b88f71deda7bbe7cb161ab97a14c8b6c - languageName: node - linkType: hard - -"web3-eth-iban@npm:^4.0.7": - version: 4.0.7 - resolution: "web3-eth-iban@npm:4.0.7" - dependencies: - web3-errors: "npm:^1.1.3" - web3-types: "npm:^1.3.0" - web3-utils: "npm:^4.0.7" - web3-validator: "npm:^2.0.3" - checksum: 10c0/f1e74106afa40a662a9f2a8095a8d9fe76bbd011dfa00fdde5d759db6b99968771bb1d4afa810ff9bb38970db7b871c21869c786ae9bb4abaa2bf8298cfc0121 - languageName: node - linkType: hard - -"web3-eth-personal@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-personal@npm:1.10.0" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/37449475b5d671e1f58082f013e6ded7045c30737ed00f3263f543ea500afc2225c25ee265d7088fda82c06f1ceb1e0e2a88793cbde70f9a7e06e17f6aa8fe95 - languageName: node - linkType: hard - -"web3-eth-personal@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-personal@npm:1.10.4" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-net: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/f3189bbd726702cae329874466b3db881eae3f1d7665d3d7458d996bc8a80f9cc1b859b1be3f03b23ddc116c130708b3170e88a15b3b2529f542280c420b7f4b - languageName: node - linkType: hard - -"web3-eth-personal@npm:^4.0.8": - version: 4.0.8 - resolution: "web3-eth-personal@npm:4.0.8" - dependencies: - web3-core: "npm:^4.3.0" - web3-eth: "npm:^4.3.1" - web3-rpc-methods: "npm:^1.1.3" - web3-types: "npm:^1.3.0" - web3-utils: "npm:^4.0.7" - web3-validator: "npm:^2.0.3" - checksum: 10c0/5078894b4d8abd343876382beae7fbb4d206e7c8c50d1701950ed0b32c506b4a354fee7375662baf73c4adea8a961ec0b35656b63e2b13f6ef49da48f075742c - languageName: node - linkType: hard - -"web3-eth@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth@npm:1.10.0" - dependencies: - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-eth-accounts: "npm:1.10.0" - web3-eth-contract: "npm:1.10.0" - web3-eth-ens: "npm:1.10.0" - web3-eth-iban: "npm:1.10.0" - web3-eth-personal: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/bfe48ad6d3190a2d0a9077bcb9603a359db44eff487aa60f3f9516327d72fed82eb75423a5098fbbc0bde97e4e60b87f26c47440b4989a444f7a75288fc35b3a - languageName: node - linkType: hard - -"web3-eth@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth@npm:1.10.4" - dependencies: - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-core-subscriptions: "npm:1.10.4" - web3-eth-abi: "npm:1.10.4" - web3-eth-accounts: "npm:1.10.4" - web3-eth-contract: "npm:1.10.4" - web3-eth-ens: "npm:1.10.4" - web3-eth-iban: "npm:1.10.4" - web3-eth-personal: "npm:1.10.4" - web3-net: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/e0fd8a92bab8dc491a72ae270d26b526b0834edf313ac627d512289e696e13331b3b10d703bd79d2df80d0a61ee3544aa00804d16038288429b206656c64f23e - languageName: node - linkType: hard - -"web3-eth@npm:^4.3.1, web3-eth@npm:^4.5.0": - version: 4.5.0 - resolution: "web3-eth@npm:4.5.0" - dependencies: - setimmediate: "npm:^1.0.5" - web3-core: "npm:^4.3.2" - web3-errors: "npm:^1.1.4" - web3-eth-abi: "npm:^4.2.0" - web3-eth-accounts: "npm:^4.1.1" - web3-net: "npm:^4.0.7" - web3-providers-ws: "npm:^4.0.7" - web3-rpc-methods: "npm:^1.2.0" - web3-types: "npm:^1.5.0" - web3-utils: "npm:^4.2.1" - web3-validator: "npm:^2.0.4" - checksum: 10c0/8c7fd64022ff357bc53c5109cdd87f336d0c7de6c0c9e974ec05127259b4f1a22d426a2691aade4a1ef1d161cfc087d9671bc817051e8bb05dcd42c0703f2365 - languageName: node - linkType: hard - -"web3-net@npm:1.10.0": - version: 1.10.0 - resolution: "web3-net@npm:1.10.0" - dependencies: - web3-core: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/ba581318ca62a7aecf01dad8fea250ac928f57718ebe92b182cae2d97ffc4807ba1ffd4cf4d4bd36f37f7cbda12c7551fc4db14eb4bfd9163d82dffc05b10ab1 - languageName: node - linkType: hard - -"web3-net@npm:1.10.4": - version: 1.10.4 - resolution: "web3-net@npm:1.10.4" - dependencies: - web3-core: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/66f4b7ce741f5cc2fc24f1f9955809a7deb4a046516ead9a34cd654b1edc7a5acfe47eddffdb576bd8bb129dd6820580378f45a4f4f789a5bda444b44975c865 - languageName: node - linkType: hard - -"web3-net@npm:^4.0.7": - version: 4.0.7 - resolution: "web3-net@npm:4.0.7" - dependencies: - web3-core: "npm:^4.3.0" - web3-rpc-methods: "npm:^1.1.3" - web3-types: "npm:^1.3.0" - web3-utils: "npm:^4.0.7" - checksum: 10c0/fc82539eeac18363dbcabcb5f79ce92351d025a3414fe69a120e0a46940fe2b80293c434df4bdb31f953853f833d71494e97461afa71abff6f35d5066237dbff - languageName: node - linkType: hard - -"web3-providers-http@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-http@npm:1.10.0" - dependencies: - abortcontroller-polyfill: "npm:^1.7.3" - cross-fetch: "npm:^3.1.4" - es6-promise: "npm:^4.2.8" - web3-core-helpers: "npm:1.10.0" - checksum: 10c0/2e63fe6206a7349a1bb331b873f51708f2121c4c8c691984e742627392fc75aa902345559e8d595b4f3cc53969660a0db6735f34f8ae24562c01d632639c8b4e - languageName: node - linkType: hard - -"web3-providers-http@npm:1.10.4": - version: 1.10.4 - resolution: "web3-providers-http@npm:1.10.4" - dependencies: - abortcontroller-polyfill: "npm:^1.7.5" - cross-fetch: "npm:^4.0.0" - es6-promise: "npm:^4.2.8" - web3-core-helpers: "npm:1.10.4" - checksum: 10c0/e9023feffe0e43e789021651b10ad99de799c9507ad7a2395be53d4052fb60336613349d1a464a37322817819a0de3cb91c770cd2852f395022b4d51cf7a78ab - languageName: node - linkType: hard - -"web3-providers-http@npm:^4.1.0": - version: 4.1.0 - resolution: "web3-providers-http@npm:4.1.0" - dependencies: - cross-fetch: "npm:^4.0.0" - web3-errors: "npm:^1.1.3" - web3-types: "npm:^1.3.0" - web3-utils: "npm:^4.0.7" - checksum: 10c0/99c75abc4041b6959935b85055c07c0ad7f2cfb14b7b0a86ac5999167c6398b135ccb908a26924ef1a265e5ea9d2b8ab57e0f4e79534ac88147952fa69040dd6 - languageName: node - linkType: hard - -"web3-providers-ipc@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-ipc@npm:1.10.0" - dependencies: - oboe: "npm:2.1.5" - web3-core-helpers: "npm:1.10.0" - checksum: 10c0/dda363d4910d453157a6bcf2b0bf9d5369fe96ef057529948991f63927de4ed047cac67730405e18f0bd142517dbbaea17c91363a5d5225546262ed532da5f3c - languageName: node - linkType: hard - -"web3-providers-ipc@npm:1.10.4": - version: 1.10.4 - resolution: "web3-providers-ipc@npm:1.10.4" - dependencies: - oboe: "npm:2.1.5" - web3-core-helpers: "npm:1.10.4" - checksum: 10c0/d0f7f858a353fb1090a42dcff96f5f432a8ed9636058dfa9d9c7cd369e731e6dc41e45062fd200f6ee4bb0f38be7e1d7fe9b1b807b34d8e6e90d4695cade4aaa - languageName: node - linkType: hard - -"web3-providers-ipc@npm:^4.0.7": - version: 4.0.7 - resolution: "web3-providers-ipc@npm:4.0.7" - dependencies: - web3-errors: "npm:^1.1.3" - web3-types: "npm:^1.3.0" - web3-utils: "npm:^4.0.7" - checksum: 10c0/3eb1db6514e8d9cf8d8d9e34d215deda6b68129df276bd0854ed16f01546d53a7ae2640d4788f9947ecd94ef9d2a905dd16b4d233f48712f7b9c4d1b4ffedc86 - languageName: node - linkType: hard - -"web3-providers-ws@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-ws@npm:1.10.0" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.0" - websocket: "npm:^1.0.32" - checksum: 10c0/7c74acf800d590b76b29506b70a827b843306a4f1acb1789a5a16d831fdf852cec0b4872e5b999ad1523cd80a9b8c2358c92a041af20207fd48e6cd7763accb3 - languageName: node - linkType: hard - -"web3-providers-ws@npm:1.10.4": - version: 1.10.4 - resolution: "web3-providers-ws@npm:1.10.4" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.4" - websocket: "npm:^1.0.32" - checksum: 10c0/90dc1d7bc6e4d616ca4bd99d2efbdecc6d49ac45869913cbdf5b46a77ade8dabdfbaa8f2ce4546af82a3735dcac028d33b89d202f6199062bfcda944c8b35789 - languageName: node - linkType: hard - -"web3-providers-ws@npm:^4.0.7": - version: 4.0.7 - resolution: "web3-providers-ws@npm:4.0.7" - dependencies: - "@types/ws": "npm:8.5.3" - isomorphic-ws: "npm:^5.0.0" - web3-errors: "npm:^1.1.3" - web3-types: "npm:^1.3.0" - web3-utils: "npm:^4.0.7" - ws: "npm:^8.8.1" - checksum: 10c0/23b1496456853a281a1202c0b6ad59041c2e58197086bf8ec71c7d30db2f2689ed8fec0e1895ee98f6873cde3dc5d6f6b481c7dc1481c8b903381b9736ca2d4c - languageName: node - linkType: hard - -"web3-rpc-methods@npm:^1.1.3, web3-rpc-methods@npm:^1.2.0": - version: 1.2.0 - resolution: "web3-rpc-methods@npm:1.2.0" - dependencies: - web3-core: "npm:^4.3.2" - web3-types: "npm:^1.5.0" - web3-validator: "npm:^2.0.4" - checksum: 10c0/90ed6215ddaa63333e0d3b57cd830aa9d83e2f8f7d50b0cfb4e5dc1684042e0aa108667d024c4ad0559b1cf836f813378361fe488b778d4fea7618e192713518 - languageName: node - linkType: hard - -"web3-shh@npm:1.10.0": - version: 1.10.0 - resolution: "web3-shh@npm:1.10.0" - dependencies: - web3-core: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-net: "npm:1.10.0" - checksum: 10c0/832f6b21e39d44b7379cebb235895924e88240e08dc499d77f4d3ec1a22626118068c2b146a8f87d25dac6bf27a420f7f23a16630b3cec39e79892d369d5d264 - languageName: node - linkType: hard - -"web3-shh@npm:1.10.4": - version: 1.10.4 - resolution: "web3-shh@npm:1.10.4" - dependencies: - web3-core: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-core-subscriptions: "npm:1.10.4" - web3-net: "npm:1.10.4" - checksum: 10c0/5b56df6f8c0eed83af25fe9537af07eeeef6636ab4547155cce347f74d5b0a91ce181b12e326be079cd0677946e9075415a8253b06cce5e93bda72527cde2d9e - languageName: node - linkType: hard - -"web3-types@npm:^1.3.0, web3-types@npm:^1.3.1, web3-types@npm:^1.5.0": - version: 1.5.0 - resolution: "web3-types@npm:1.5.0" - checksum: 10c0/b71bf032f126dd2fcda8718d02302da6fc0ce65d0c6eb9d195b14a1c845c5fa2a56f7261217438f86901f5f3a325c0a8507d66c200ef73676aa31b7362acd9fd - languageName: node - linkType: hard - -"web3-utils@npm:1.10.0": - version: 1.10.0 - resolution: "web3-utils@npm:1.10.0" - dependencies: - bn.js: "npm:^5.2.1" - ethereum-bloom-filters: "npm:^1.0.6" - ethereumjs-util: "npm:^7.1.0" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - utf8: "npm:3.0.0" - checksum: 10c0/6543c5788fba035d73b3e16d7257a4ee82eb9d4949ca0572cf03e7619b51c5c97160499067a77de87efa34cbf0d932b2f560d17416cbb508c8be2527bb16e819 - languageName: node - linkType: hard - -"web3-utils@npm:1.10.4, web3-utils@npm:^1.0.0, web3-utils@npm:^1.0.0-beta.31, web3-utils@npm:^1.3.6": - version: 1.10.4 - resolution: "web3-utils@npm:1.10.4" - dependencies: - "@ethereumjs/util": "npm:^8.1.0" - bn.js: "npm:^5.2.1" - ethereum-bloom-filters: "npm:^1.0.6" - ethereum-cryptography: "npm:^2.1.2" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - utf8: "npm:3.0.0" - checksum: 10c0/fbd5c8ec71e944e9e66e3436dbd4446927c3edc95f81928723f9ac137e0d821c5cbb92dba0ed5bbac766f919f919c9d8e316e459c51d876d5188321642676677 - languageName: node - linkType: hard - -"web3-utils@npm:^4.0.7, web3-utils@npm:^4.1.0, web3-utils@npm:^4.1.1, web3-utils@npm:^4.2.1, web3-utils@npm:^4.2.2": - version: 4.2.2 - resolution: "web3-utils@npm:4.2.2" - dependencies: - ethereum-cryptography: "npm:^2.0.0" - eventemitter3: "npm:^5.0.1" - web3-errors: "npm:^1.1.4" - web3-types: "npm:^1.5.0" - web3-validator: "npm:^2.0.5" - checksum: 10c0/0f750715414926a2248f6da81d3a38de563814748ca2654e38d57aaf72c53ab4b375afeec571cd936808e1d30e414859f9444503bf7ffc09c3e63c65089b1f89 - languageName: node - linkType: hard - -"web3-validator@npm:^2.0.3, web3-validator@npm:^2.0.4, web3-validator@npm:^2.0.5": - version: 2.0.5 - resolution: "web3-validator@npm:2.0.5" - dependencies: - ethereum-cryptography: "npm:^2.0.0" - util: "npm:^0.12.5" - web3-errors: "npm:^1.1.4" - web3-types: "npm:^1.5.0" - zod: "npm:^3.21.4" - checksum: 10c0/456f4d36e61416f402c4b71abb2ccfb4a8ad442f01ac36bd70d75a53f5d2f8bf59009373de438ec16ec32d544c50a03013e9fd2d1778c43eaab67cab94f1eb98 - languageName: node - linkType: hard - -"web3@npm:1.10.0": - version: 1.10.0 - resolution: "web3@npm:1.10.0" - dependencies: - web3-bzz: "npm:1.10.0" - web3-core: "npm:1.10.0" - web3-eth: "npm:1.10.0" - web3-eth-personal: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-shh: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 10c0/d5f5cd237dcc1fc521592b983c6fa35b60400961c58ea99b53ae8d08a0575a9371aba604d63e3a87fc548b19585b401d93ddb303323723fdac304a1608b71458 - languageName: node - linkType: hard - -"web3@npm:^1.0.0-beta.34": - version: 1.10.4 - resolution: "web3@npm:1.10.4" - dependencies: - web3-bzz: "npm:1.10.4" - web3-core: "npm:1.10.4" - web3-eth: "npm:1.10.4" - web3-eth-personal: "npm:1.10.4" - web3-net: "npm:1.10.4" - web3-shh: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 10c0/fe3ea2a5599b68413f483b3c0f50806512eea2e13f4be0191d27bc509414d7f0ce28c8cb730ef00fd586a09a70a68c4b9ff45385bccb033ca884cee484da6f88 - languageName: node - linkType: hard - -"web3@npm:^4.7.0": - version: 4.7.0 - resolution: "web3@npm:4.7.0" - dependencies: - web3-core: "npm:^4.3.2" - web3-errors: "npm:^1.1.4" - web3-eth: "npm:^4.5.0" - web3-eth-abi: "npm:^4.2.0" - web3-eth-accounts: "npm:^4.1.1" - web3-eth-contract: "npm:^4.3.0" - web3-eth-ens: "npm:^4.2.0" - web3-eth-iban: "npm:^4.0.7" - web3-eth-personal: "npm:^4.0.8" - web3-net: "npm:^4.0.7" - web3-providers-http: "npm:^4.1.0" - web3-providers-ws: "npm:^4.0.7" - web3-rpc-methods: "npm:^1.2.0" - web3-types: "npm:^1.5.0" - web3-utils: "npm:^4.2.2" - web3-validator: "npm:^2.0.5" - checksum: 10c0/640d5feaaf143aa5dd63f90ab6a2572feb1748bf48b1bc155c1277e2b104786ddf6e0d898d32ee535fe4ccf86e064638a7ee2ab7315ff3b8a63c7640f29854b2 - languageName: node - linkType: hard - -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db - languageName: node - linkType: hard - -"websocket@npm:^1.0.32": - version: 1.0.34 - resolution: "websocket@npm:1.0.34" - dependencies: - bufferutil: "npm:^4.0.1" - debug: "npm:^2.2.0" - es5-ext: "npm:^0.10.50" - typedarray-to-buffer: "npm:^3.1.5" - utf-8-validate: "npm:^5.0.2" - yaeti: "npm:^0.0.6" - checksum: 10c0/a7e17d24edec685fdf055940ff9c6a15e726df5bb5e537382390bd1ab978fc8c0d71cd2842bb628e361d823aafd43934cc56aa5b979d08e52461be7da8d01eee - languageName: node - linkType: hard - -"whatwg-mimetype@npm:^3.0.0": - version: 3.0.0 - resolution: "whatwg-mimetype@npm:3.0.0" - checksum: 10c0/323895a1cda29a5fb0b9ca82831d2c316309fede0365047c4c323073e3239067a304a09a1f4b123b9532641ab604203f33a1403b5ca6a62ef405bcd7a204080f - languageName: node - linkType: hard - -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" - dependencies: - tr46: "npm:~0.0.3" - webidl-conversions: "npm:^3.0.0" - checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 - languageName: node - linkType: hard - -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: "npm:^1.0.1" - is-boolean-object: "npm:^1.1.0" - is-number-object: "npm:^1.0.4" - is-string: "npm:^1.0.5" - is-symbol: "npm:^1.0.3" - checksum: 10c0/0a62a03c00c91dd4fb1035b2f0733c341d805753b027eebd3a304b9cb70e8ce33e25317add2fe9b5fea6f53a175c0633ae701ff812e604410ddd049777cd435e - languageName: node - linkType: hard - -"which-module@npm:^1.0.0": - version: 1.0.0 - resolution: "which-module@npm:1.0.0" - checksum: 10c0/ce5088fb12dae0b6d5997b6221342943ff6275c3b2cd9c569f04ec23847c71013d254c6127d531010dccc22c0fc0f8dce2b6ecf6898941a60b576adb2018af22 - languageName: node - linkType: hard - -"which-module@npm:^2.0.0": - version: 2.0.1 - resolution: "which-module@npm:2.0.1" - checksum: 10c0/087038e7992649eaffa6c7a4f3158d5b53b14cf5b6c1f0e043dccfacb1ba179d12f17545d5b85ebd94a42ce280a6fe65d0cbcab70f4fc6daad1dfae85e0e6a3e - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-tostringtag: "npm:^1.0.2" - checksum: 10c0/4465d5348c044032032251be54d8988270e69c6b7154f8fcb2a47ff706fe36f7624b3a24246b8d9089435a8f4ec48c1c1025c5d6b499456b9e5eff4f48212983 - languageName: node - linkType: hard - -"which@npm:^1.1.1, which@npm:^1.3.1": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: "npm:^2.0.0" - bin: - which: ./bin/which - checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59 - languageName: node - linkType: hard - -"which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: "npm:^2.0.0" - bin: - node-which: ./bin/node-which - checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f - languageName: node - linkType: hard - -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" - dependencies: - isexe: "npm:^3.1.1" - bin: - node-which: bin/which.js - checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a - languageName: node - linkType: hard - -"widest-line@npm:^3.1.0": - version: 3.1.0 - resolution: "widest-line@npm:3.1.0" - dependencies: - string-width: "npm:^4.0.0" - checksum: 10c0/b1e623adcfb9df35350dd7fc61295d6d4a1eaa65a406ba39c4b8360045b614af95ad10e05abf704936ed022569be438c4bfa02d6d031863c4166a238c301119f - languageName: node - linkType: hard - -"window-size@npm:^0.2.0": - version: 0.2.0 - resolution: "window-size@npm:0.2.0" - bin: - window-size: cli.js - checksum: 10c0/378c9d7a1c903ca57f08db40dd8960252f566910ea9dea6d8552e9d61cebe9e536dcabc1b5a6edb776eebe8e5bcbcfb5b27ba13fe128625bc2033516acdc95cc - languageName: node - linkType: hard - -"winston-transport@npm:^4.7.0": - version: 4.7.0 - resolution: "winston-transport@npm:4.7.0" - dependencies: - logform: "npm:^2.3.2" - readable-stream: "npm:^3.6.0" - triple-beam: "npm:^1.3.0" - checksum: 10c0/cd16f3d0ab56697f93c4899e0eb5f89690f291bb6cf309194819789326a7c7ed943ef00f0b2fab513b114d371314368bde1a7ae6252ad1516181a79f90199cd2 - languageName: node - linkType: hard - -"winston@npm:^3.13.0": - version: 3.13.0 - resolution: "winston@npm:3.13.0" - dependencies: - "@colors/colors": "npm:^1.6.0" - "@dabh/diagnostics": "npm:^2.0.2" - async: "npm:^3.2.3" - is-stream: "npm:^2.0.0" - logform: "npm:^2.4.0" - one-time: "npm:^1.0.0" - readable-stream: "npm:^3.4.0" - safe-stable-stringify: "npm:^2.3.1" - stack-trace: "npm:0.0.x" - triple-beam: "npm:^1.3.0" - winston-transport: "npm:^4.7.0" - checksum: 10c0/2c3cc7389a691e1638edcb0d4bfea72caa82d87d5681ec6131ac9bae780d94d06fb7b112edcd4ec37c8b947a1b64943941b761e34d67c6b0dac6e9c31ae4b25b - languageName: node - linkType: hard - -"word-wrap@npm:~1.2.3": - version: 1.2.5 - resolution: "word-wrap@npm:1.2.5" - checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 - languageName: node - linkType: hard - -"wordwrap@npm:^1.0.0": - version: 1.0.0 - resolution: "wordwrap@npm:1.0.0" - checksum: 10c0/7ed2e44f3c33c5c3e3771134d2b0aee4314c9e49c749e37f464bf69f2bcdf0cbf9419ca638098e2717cff4875c47f56a007532f6111c3319f557a2ca91278e92 - languageName: node - linkType: hard - -"wordwrapjs@npm:^4.0.0": - version: 4.0.1 - resolution: "wordwrapjs@npm:4.0.1" - dependencies: - reduce-flatten: "npm:^2.0.0" - typical: "npm:^5.2.0" - checksum: 10c0/4cc43eb0f6adb7214d427e68918357a9df483815efbb4c59beb30972714b1804ede2a551b1dfd2234c0bd413c6f07d6daa6522d1c53f43f89a376d815fbf3c43 - languageName: node - linkType: hard - -"workerpool@npm:6.2.1": - version: 6.2.1 - resolution: "workerpool@npm:6.2.1" - checksum: 10c0/f0efd2d74eafd58eaeb36d7d85837d080f75c52b64893cff317b66257dd308e5c9f85ef0b12904f6c7f24ed2365bc3cfeba1f1d16aa736d84d6ef8156ae37c80 - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da - languageName: node - linkType: hard - -"wrap-ansi@npm:^2.0.0": - version: 2.1.0 - resolution: "wrap-ansi@npm:2.1.0" - dependencies: - string-width: "npm:^1.0.1" - strip-ansi: "npm:^3.0.1" - checksum: 10c0/1a47367eef192fc9ecaf00238bad5de8987c3368082b619ab36c5e2d6d7b0a2aef95a2ca65840be598c56ced5090a3ba487956c7aee0cac7c45017502fa980fb - languageName: node - linkType: hard - -"wrap-ansi@npm:^6.2.0": - version: 6.2.0 - resolution: "wrap-ansi@npm:6.2.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: 10c0/baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: "npm:^6.1.0" - string-width: "npm:^5.0.1" - strip-ansi: "npm:^7.0.1" - checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 - languageName: node - linkType: hard - -"write-file-atomic@npm:^3.0.0": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: "npm:^0.1.4" - is-typedarray: "npm:^1.0.0" - signal-exit: "npm:^3.0.2" - typedarray-to-buffer: "npm:^3.1.5" - checksum: 10c0/7fb67affd811c7a1221bed0c905c26e28f0041e138fb19ccf02db57a0ef93ea69220959af3906b920f9b0411d1914474cdd90b93a96e5cd9e8368d9777caac0e - languageName: node - linkType: hard - -"write-stream@npm:~0.4.3": - version: 0.4.3 - resolution: "write-stream@npm:0.4.3" - dependencies: - readable-stream: "npm:~0.0.2" - checksum: 10c0/c8253b4f8d898358d47c990f4d14a754082db257b21f1d0500f34a1cb7c579a991a7e2257b3da924fe84eb2817e61c6a266addbca5fd4e0e9100f38f249bd9f2 - languageName: node - linkType: hard - -"ws@npm:7.4.6": - version: 7.4.6 - resolution: "ws@npm:7.4.6" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/4b44b59bbc0549c852fb2f0cdb48e40e122a1b6078aeed3d65557cbeb7d37dda7a4f0027afba2e6a7a695de17701226d02b23bd15c97b0837808c16345c62f8e - languageName: node - linkType: hard - -"ws@npm:8.13.0": - version: 8.13.0 - resolution: "ws@npm:8.13.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/579817dbbab3ee46669129c220cfd81ba6cdb9ab5c3e9a105702dd045743c4ab72e33bb384573827c0c481213417cc880e41bc097e0fc541a0b79fa3eb38207d - languageName: node - linkType: hard - -"ws@npm:8.5.0": - version: 8.5.0 - resolution: "ws@npm:8.5.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/0baeee03e97865accda8fad51e8e5fa17d19b8e264529efdf662bbba2acc1c7f1de8316287e6df5cb639231a96009e6d5234b57e6ff36ee2d04e49a0995fec2f - languageName: node - linkType: hard - -"ws@npm:^3.0.0": - version: 3.3.3 - resolution: "ws@npm:3.3.3" - dependencies: - async-limiter: "npm:~1.0.0" - safe-buffer: "npm:~5.1.0" - ultron: "npm:~1.1.0" - checksum: 10c0/bed856f4fd85388a78b80e5ea92c7a6ff8df09ece1621218c4e366faa1551b42b5a0b66a5dd1a47d7f0d97be21d1df528b6d54f04b327e5b94c9dbcab753c94c - languageName: node - linkType: hard - -"ws@npm:^7.2.0, ws@npm:^7.4.6": - version: 7.5.9 - resolution: "ws@npm:7.5.9" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/aec4ef4eb65821a7dde7b44790f8699cfafb7978c9b080f6d7a98a7f8fc0ce674c027073a78574c94786ba7112cc90fa2cc94fc224ceba4d4b1030cff9662494 - languageName: node - linkType: hard - -"ws@npm:^8.8.1": - version: 8.16.0 - resolution: "ws@npm:8.16.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/a7783bb421c648b1e622b423409cb2a58ac5839521d2f689e84bc9dc41d59379c692dd405b15a997ea1d4c0c2e5314ad707332d0c558f15232d2bc07c0b4618a - languageName: node - linkType: hard - -"xhr-request-promise@npm:^0.1.2": - version: 0.1.3 - resolution: "xhr-request-promise@npm:0.1.3" - dependencies: - xhr-request: "npm:^1.1.0" - checksum: 10c0/c5674a395a75a2b788cc80ac9e7913b3a67ef924db51fa67c0958f986b2840583d44de179ac26cf45b872960766a4dd40b36cfab809b76dc80277ba163b75d44 - languageName: node - linkType: hard - -"xhr-request@npm:^1.0.1, xhr-request@npm:^1.1.0": - version: 1.1.0 - resolution: "xhr-request@npm:1.1.0" - dependencies: - buffer-to-arraybuffer: "npm:^0.0.5" - object-assign: "npm:^4.1.1" - query-string: "npm:^5.0.1" - simple-get: "npm:^2.7.0" - timed-out: "npm:^4.0.1" - url-set-query: "npm:^1.0.0" - xhr: "npm:^2.0.4" - checksum: 10c0/12bf79e11fa909c01058e654e954b0e3ed0638e6a62a42bd705251c920b39c3980720d0c2d8c2b97ceaeb8bf21bb08fd75c733a909b76555d252014bd3acbc79 - languageName: node - linkType: hard - -"xhr@npm:^2.0.4, xhr@npm:^2.3.3": - version: 2.6.0 - resolution: "xhr@npm:2.6.0" - dependencies: - global: "npm:~4.4.0" - is-function: "npm:^1.0.1" - parse-headers: "npm:^2.0.0" - xtend: "npm:^4.0.0" - checksum: 10c0/b73b6413b678846c422559cbc0afb2acb34c3a75b4c3bbee1f258e984255a8b8d65c1749b51691278bbdc28781782950d77a759ef5a9adf7774bed2f5dabc954 - languageName: node - linkType: hard - -"xmlhttprequest@npm:1.8.0": - version: 1.8.0 - resolution: "xmlhttprequest@npm:1.8.0" - checksum: 10c0/c890661562e4cb6c36a126071e956047164296f58b0058ab28a9c9f1c3b46a65bf421a242d3449363a2aadc3d9769146160b10a501710d476a17d77d41a5c99e - languageName: node - linkType: hard - -"xss@npm:^1.0.8": - version: 1.0.15 - resolution: "xss@npm:1.0.15" - dependencies: - commander: "npm:^2.20.3" - cssfilter: "npm:0.0.10" - bin: - xss: bin/xss - checksum: 10c0/9b31bee62a208f78e2b7bc8154e3ee87d980f4661dc4ab850ce6f4de7bc50eb152f0bdc13fa759ff8ab6d9bfdf8c0d79cf9f6f86249872b92181912309bccd08 - languageName: node - linkType: hard - -"xtend@npm:^4.0.0, xtend@npm:^4.0.2, xtend@npm:~4.0.0": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e - languageName: node - linkType: hard - -"y18n@npm:^3.2.1": - version: 3.2.2 - resolution: "y18n@npm:3.2.2" - checksum: 10c0/08dc1880f6f766057ed25cd61ef0c7dab3db93639db9a7487a84f75dac7a349dface8dff8d1d8b7bdf50969fcd69ab858ab26b06968b4e4b12ee60d195233c46 - languageName: node - linkType: hard - -"y18n@npm:^4.0.0": - version: 4.0.3 - resolution: "y18n@npm:4.0.3" - checksum: 10c0/308a2efd7cc296ab2c0f3b9284fd4827be01cfeb647b3ba18230e3a416eb1bc887ac050de9f8c4fd9e7856b2e8246e05d190b53c96c5ad8d8cb56dffb6f81024 - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 - languageName: node - linkType: hard - -"yaeti@npm:^0.0.6": - version: 0.0.6 - resolution: "yaeti@npm:0.0.6" - checksum: 10c0/4e88702d8b34d7b61c1c4ec674422b835d453b8f8a6232be41e59fc98bc4d9ab6d5abd2da55bab75dfc07ae897fdc0c541f856ce3ab3b17de1630db6161aa3f6 - languageName: node - linkType: hard - -"yallist@npm:^3.0.0, yallist@npm:^3.0.2, yallist@npm:^3.1.1": - version: 3.1.1 - resolution: "yallist@npm:3.1.1" - checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a - languageName: node - linkType: hard - -"yargs-parser@npm:20.2.4": - version: 20.2.4 - resolution: "yargs-parser@npm:20.2.4" - checksum: 10c0/08dc341f0b9f940c2fffc1d1decf3be00e28cabd2b578a694901eccc7dcd10577f10c6aa1b040fdd9a68b2042515a60f18476543bccacf9f3ce2c8534cd87435 - languageName: node - linkType: hard - -"yargs-parser@npm:^18.1.2": - version: 18.1.3 - resolution: "yargs-parser@npm:18.1.3" - dependencies: - camelcase: "npm:^5.0.0" - decamelize: "npm:^1.2.0" - checksum: 10c0/25df918833592a83f52e7e4f91ba7d7bfaa2b891ebf7fe901923c2ee797534f23a176913ff6ff7ebbc1cc1725a044cc6a6539fed8bfd4e13b5b16376875f9499 - languageName: node - linkType: hard - -"yargs-parser@npm:^2.4.1": - version: 2.4.1 - resolution: "yargs-parser@npm:2.4.1" - dependencies: - camelcase: "npm:^3.0.0" - lodash.assign: "npm:^4.0.6" - checksum: 10c0/746ba04072029ad4ce3b0aae4805810e5bbbf5ac762a3ff35ee25b3bb8eaf61acc0c3bddd0fab0ab8f902d806d750757917e6a5d5e1a267ed38cab3c32ac14d5 - languageName: node - linkType: hard - -"yargs-parser@npm:^20.2.2": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 10c0/0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72 - languageName: node - linkType: hard - -"yargs-unparser@npm:2.0.0": - version: 2.0.0 - resolution: "yargs-unparser@npm:2.0.0" - dependencies: - camelcase: "npm:^6.0.0" - decamelize: "npm:^4.0.0" - flat: "npm:^5.0.2" - is-plain-obj: "npm:^2.1.0" - checksum: 10c0/a5a7d6dc157efa95122e16780c019f40ed91d4af6d2bac066db8194ed0ec5c330abb115daa5a79ff07a9b80b8ea80c925baacf354c4c12edd878c0529927ff03 - languageName: node - linkType: hard - -"yargs@npm:16.2.0": - version: 16.2.0 - resolution: "yargs@npm:16.2.0" - dependencies: - cliui: "npm:^7.0.2" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.0" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^20.2.2" - checksum: 10c0/b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 - languageName: node - linkType: hard - -"yargs@npm:^15.0.2": - version: 15.4.1 - resolution: "yargs@npm:15.4.1" - dependencies: - cliui: "npm:^6.0.0" - decamelize: "npm:^1.2.0" - find-up: "npm:^4.1.0" - get-caller-file: "npm:^2.0.1" - require-directory: "npm:^2.1.1" - require-main-filename: "npm:^2.0.0" - set-blocking: "npm:^2.0.0" - string-width: "npm:^4.2.0" - which-module: "npm:^2.0.0" - y18n: "npm:^4.0.0" - yargs-parser: "npm:^18.1.2" - checksum: 10c0/f1ca680c974333a5822732825cca7e95306c5a1e7750eb7b973ce6dc4f97a6b0a8837203c8b194f461969bfe1fb1176d1d423036635285f6010b392fa498ab2d - languageName: node - linkType: hard - -"yargs@npm:^4.7.1": - version: 4.8.1 - resolution: "yargs@npm:4.8.1" - dependencies: - cliui: "npm:^3.2.0" - decamelize: "npm:^1.1.1" - get-caller-file: "npm:^1.0.1" - lodash.assign: "npm:^4.0.3" - os-locale: "npm:^1.4.0" - read-pkg-up: "npm:^1.0.1" - require-directory: "npm:^2.1.1" - require-main-filename: "npm:^1.0.1" - set-blocking: "npm:^2.0.0" - string-width: "npm:^1.0.1" - which-module: "npm:^1.0.0" - window-size: "npm:^0.2.0" - y18n: "npm:^3.2.1" - yargs-parser: "npm:^2.4.1" - checksum: 10c0/7e183a1d96192d6a681ea9587052d7c2019c01cccb1ac24877a4f0fd948fb4b72eff474c21226c41dc1123128ecba29a26d46a9d022e8456efa0d600d96a70b9 - languageName: node - linkType: hard - -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 - languageName: node - linkType: hard - -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f - languageName: node - linkType: hard - -"zod@npm:^3.21.4": - version: 3.22.4 - resolution: "zod@npm:3.22.4" - checksum: 10c0/7578ab283dac0eee66a0ad0fc4a7f28c43e6745aadb3a529f59a4b851aa10872b3890398b3160f257f4b6817b4ce643debdda4fb21a2c040adda7862cab0a587 - languageName: node - linkType: hard