From 1e396c61fec422c366500426be7ba8b6f2fb23c8 Mon Sep 17 00:00:00 2001 From: KPrasch Date: Wed, 7 Aug 2024 13:59:43 +0700 Subject: [PATCH 01/30] lookup access controller and authority for ritual when adding/removing encryptors --- scripts/manage_subscription.py | 108 ++++++++++++--------------------- 1 file changed, 40 insertions(+), 68 deletions(-) diff --git a/scripts/manage_subscription.py b/scripts/manage_subscription.py index 48ada8de..1a80b1f8 100644 --- a/scripts/manage_subscription.py +++ b/scripts/manage_subscription.py @@ -1,42 +1,33 @@ +#!/usr/bin/python3 + import click from ape import Contract from ape.cli import account_option, ConnectedProviderCommand, network_option from deployment import registry from deployment.options import ( - subscription_contract_option, domain_option, - access_controller_option, - ritual_id_option, encryptor_slots_option, encryptors_option, + ritual_id_option, + subscription_contract_option, ) from deployment.params import Transactor from deployment.utils import check_plugins def _erc20_approve( - amount: int, - erc20: Contract, - receiver: Contract, - transactor: Transactor + amount: int, erc20: Contract, receiver: Contract, transactor: Transactor ) -> None: """Approve an ERC20 transfer.""" click.echo( f"Approving transfer of {amount} {erc20.contract_type.name} " f"to {receiver.contract_type.name}." ) - transactor.transact( - erc20.approve, - receiver.address, - amount - ) + transactor.transact(erc20.approve, receiver.address, amount) -def _calculate_slot_fees( - subscription_contract: Contract, - slots: int -) -> int: +def _calculate_slot_fees(subscription_contract: Contract, slots: int) -> int: """Calculate the fees for a given number of encryptor slots.""" duration = subscription_contract.subscriptionPeriodDuration() encryptor_fees = subscription_contract.encryptorFees(slots, duration) @@ -66,30 +57,21 @@ def pay_subscription(account, network, domain, subscription_contract, encryptor_ click.echo(f"Connected to {network.name} network.") transactor = Transactor(account=account) subscription_contract = registry.get_contract( - contract_name=subscription_contract, - domain=domain + contract_name=subscription_contract, domain=domain ) erc20 = Contract(subscription_contract.feeToken()) base_fees = subscription_contract.baseFees(period) slot_fees = _calculate_slot_fees( - subscription_contract=subscription_contract, - slots=encryptor_slots + subscription_contract=subscription_contract, slots=encryptor_slots ) total_fees = base_fees + slot_fees _erc20_approve( - amount=total_fees, - erc20=erc20, - receiver=subscription_contract, - transactor=transactor + amount=total_fees, erc20=erc20, receiver=subscription_contract, transactor=transactor ) click.echo( - f"Paying for subscription period #{period} " - f"with {encryptor_slots} encryptor slots." - ) - transactor.transact( - subscription_contract.payForSubscription, - encryptor_slots + f"Paying for subscription period #{period} " f"with {encryptor_slots} encryptor slots." ) + transactor.transact(subscription_contract.payForSubscription, encryptor_slots) @cli.command(cls=ConnectedProviderCommand) @@ -104,25 +86,13 @@ def pay_slots(account, network, domain, subscription_contract, encryptor_slots): click.echo(f"Connected to {network.name} network.") transactor = Transactor(account=account) subscription_contract = registry.get_contract( - contract_name=subscription_contract, - domain=domain + contract_name=subscription_contract, domain=domain ) erc20 = Contract(subscription_contract.feeToken()) - fee = _calculate_slot_fees( - subscription_contract=subscription_contract, - slots=encryptor_slots - ) - _erc20_approve( - amount=fee, - erc20=erc20, - receiver=subscription_contract, - transactor=transactor - ) + fee = _calculate_slot_fees(subscription_contract=subscription_contract, slots=encryptor_slots) + _erc20_approve(amount=fee, erc20=erc20, receiver=subscription_contract, transactor=transactor) click.echo(f"Paying for {encryptor_slots} new encryptor slots.") - transactor.transact( - subscription_contract.payForEncryptorSlots, - encryptor_slots - ) + transactor.transact(subscription_contract.payForEncryptorSlots, encryptor_slots) @cli.command(cls=ConnectedProviderCommand) @@ -130,50 +100,52 @@ def pay_slots(account, network, domain, subscription_contract, encryptor_slots): @network_option(required=True) @domain_option @ritual_id_option -@access_controller_option @encryptors_option -def add_encryptors(account, network, domain, ritual_id, access_controller, encryptors): +def add_encryptors(account, network, domain, ritual_id, encryptors): """Authorize encryptors to the access control contract for a ritual.""" click.echo(f"Connected to {network.name} network.") - access_controller = registry.get_contract( - contract_name=access_controller, - domain=domain - ) + + # lookup the access controller + authority for the ritual + coordinator = registry.get_contract(contract_name="Coordinator", domain=domain) + ritual = coordinator.rituals(ritual_id) + access_controller = Contract(ritual.access_controller) # uses polygonscan API + if account != ritual.authority: + raise ValueError(f"Only the authority ({ritual.authority}) can authorize encryptors.") + transactor = Transactor(account=account) click.echo( f"Adding {len(encryptors)} encryptors " f"to the {access_controller} " f"for ritual {ritual_id}." ) - transactor.transact( - access_controller.authorize, - ritual_id, - encryptors - ) + transactor.transact(access_controller.authorize, ritual_id, encryptors) @cli.command(cls=ConnectedProviderCommand) @account_option() +@network_option(required=True) @domain_option @ritual_id_option -@access_controller_option @encryptors_option -def remove_encryptors(account, domain, ritual_id, access_controller, encryptors): +def remove_encryptors(account, network, domain, ritual_id, encryptors): """Deauthorize encryptors from the access control contract for a ritual.""" + click.echo(f"Connected to {network.name} network.") transactor = Transactor(account=account) - access_controller = registry.get_contract( - contract_name=access_controller, - domain=domain - ) + + # lookup the access controller + authority for the ritual + coordinator = registry.get_contract(contract_name="Coordinator", domain=domain) + ritual = coordinator.rituals(ritual_id) + access_controller = Contract(ritual.access_controller) # uses polygonscan API + + if account != ritual.authority: + raise ValueError(f"Only the authority ({ritual.authority}) can remove encryptors.") + click.echo( f"Removing {len(encryptors)} " - f"encryptors from the {access_controller} " + f"encryptors from the {access_controller.contract_type.name} contract" f"for ritual {ritual_id}." ) - transactor.transact( - access_controller.authorize, - ritual_id, encryptors - ) + transactor.transact(access_controller.authorize, ritual_id, encryptors) if __name__ == "__main__": From 68ebc407ca0b515acc09a41bb777cbfaa3589731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=BA=C3=B1ez?= Date: Mon, 29 Jul 2024 09:03:39 +0200 Subject: [PATCH 02/30] Dummy parameters for penalty --- deployment/constructor_params/mainnet/redeploy-taco-app.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deployment/constructor_params/mainnet/redeploy-taco-app.yml b/deployment/constructor_params/mainnet/redeploy-taco-app.yml index c011ff89..53c1ea18 100644 --- a/deployment/constructor_params/mainnet/redeploy-taco-app.yml +++ b/deployment/constructor_params/mainnet/redeploy-taco-app.yml @@ -33,4 +33,7 @@ contracts: _deauthorizationDuration: $IN_SECONDS_182_DAYS _commitmentDurationOptions: [$IN_SECONDS_91_DAYS, $IN_SECONDS_182_DAYS, $IN_SECONDS_364_DAYS, $IN_SECONDS_546_DAYS] _commitmentDeadline: $TIMESTAMP_FOR_2024_01_15_2359_UTC + _penaltyDefault: 1 + _penaltyDuration: 1 + _penaltyIncrement: 1 From c00c607de844b073d50fa945d024a7b04c13ac50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=BA=C3=B1ez?= Date: Mon, 29 Jul 2024 09:08:54 +0200 Subject: [PATCH 03/30] Updated mainnet registry with new TACoApplication --- deployment/artifacts/mainnet.json | 223 +++++++++++++++++++++++++++++- 1 file changed, 219 insertions(+), 4 deletions(-) diff --git a/deployment/artifacts/mainnet.json b/deployment/artifacts/mainnet.json index 78a2b75c..130daeb1 100644 --- a/deployment/artifacts/mainnet.json +++ b/deployment/artifacts/mainnet.json @@ -149,7 +149,7 @@ "deployer": "0xFfFd7092685bDeeBD121D1A0FEA3c349114Cce50" }, "TACoApplication": { - "address": "0x347CC7ede7e5517bD47D20620B2CF1b406edcF07", + "address": "0x98F643B32b5A3513929Dfd3F2E3e39F7376659DB", "abi": [ { "type": "constructor", @@ -194,6 +194,21 @@ "name": "_commitmentDeadline", "type": "uint64", "internalType": "uint64" + }, + { + "name": "_penaltyDefault", + "type": "uint192", + "internalType": "uint192" + }, + { + "name": "_penaltyDuration", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_penaltyIncrement", + "type": "uint192", + "internalType": "uint192" } ] }, @@ -546,6 +561,31 @@ ], "anonymous": false }, + { + "type": "event", + "name": "Penalized", + "inputs": [ + { + "name": "stakingProvider", + "type": "address", + "internalType": "address", + "indexed": true + }, + { + "name": "penaltyPercent", + "type": "uint256", + "internalType": "uint256", + "indexed": false + }, + { + "name": "endPenalty", + "type": "uint64", + "internalType": "uint64", + "indexed": false + } + ], + "anonymous": false + }, { "type": "event", "name": "RewardAdded", @@ -559,6 +599,19 @@ ], "anonymous": false }, + { + "type": "event", + "name": "RewardContractSet", + "inputs": [ + { + "name": "rewardContract", + "type": "address", + "internalType": "address", + "indexed": true + } + ], + "anonymous": false + }, { "type": "event", "name": "RewardDistributorSet", @@ -576,6 +629,12 @@ "type": "event", "name": "RewardPaid", "inputs": [ + { + "name": "sender", + "type": "address", + "internalType": "address", + "indexed": true + }, { "name": "stakingProvider", "type": "address", @@ -597,6 +656,19 @@ ], "anonymous": false }, + { + "type": "event", + "name": "RewardReset", + "inputs": [ + { + "name": "stakingProvider", + "type": "address", + "internalType": "address", + "indexed": true + } + ], + "anonymous": false + }, { "type": "event", "name": "RewardsWithdrawn", @@ -647,6 +719,19 @@ ], "anonymous": false }, + { + "type": "function", + "name": "PENALTY_BASE", + "stateMutability": "view", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint192", + "internalType": "uint192" + } + ] + }, { "type": "function", "name": "REWARD_PER_TOKEN_MULTIPLIER", @@ -1005,6 +1090,30 @@ } ] }, + { + "type": "function", + "name": "getPenalty", + "stateMutability": "view", + "inputs": [ + { + "name": "_stakingProvider", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "penalty", + "type": "uint192", + "internalType": "uint192" + }, + { + "name": "endPenalty", + "type": "uint64", + "internalType": "uint64" + } + ] + }, { "type": "function", "name": "getStakingProvidersLength", @@ -1201,6 +1310,58 @@ } ] }, + { + "type": "function", + "name": "penalize", + "stateMutability": "nonpayable", + "inputs": [ + { + "name": "_stakingProvider", + "type": "address", + "internalType": "address" + } + ], + "outputs": [] + }, + { + "type": "function", + "name": "penaltyDefault", + "stateMutability": "view", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint192", + "internalType": "uint192" + } + ] + }, + { + "type": "function", + "name": "penaltyDuration", + "stateMutability": "view", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "function", + "name": "penaltyIncrement", + "stateMutability": "view", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint192", + "internalType": "uint192" + } + ] + }, { "type": "function", "name": "pendingAuthorizationDecrease", @@ -1285,6 +1446,19 @@ "inputs": [], "outputs": [] }, + { + "type": "function", + "name": "resetReward", + "stateMutability": "nonpayable", + "inputs": [ + { + "name": "_stakingProvider", + "type": "address", + "internalType": "address" + } + ], + "outputs": [] + }, { "type": "function", "name": "resynchronizeAuthorization", @@ -1298,6 +1472,19 @@ ], "outputs": [] }, + { + "type": "function", + "name": "rewardContract", + "stateMutability": "view", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ] + }, { "type": "function", "name": "rewardDistributor", @@ -1389,6 +1576,19 @@ ], "outputs": [] }, + { + "type": "function", + "name": "setRewardContract", + "stateMutability": "nonpayable", + "inputs": [ + { + "name": "_rewardContract", + "type": "address", + "internalType": "address" + } + ], + "outputs": [] + }, { "type": "function", "name": "setRewardDistributor", @@ -1481,6 +1681,21 @@ "name": "endCommitment", "type": "uint64", "internalType": "uint64" + }, + { + "name": "stub", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "penaltyPercent", + "type": "uint192", + "internalType": "uint192" + }, + { + "name": "endPenalty", + "type": "uint64", + "internalType": "uint64" } ] }, @@ -1575,8 +1790,8 @@ "outputs": [] } ], - "tx_hash": "0x58617564fa2bf9ad71b9eab1ceefdd3eae5a46efc71f4463df6dbffbd713a160", - "block_number": 18622368, + "tx_hash": "0x178f50155caea7bb32dab5cd79280c66d19a52aa2d303174fa9f5d843ba2ea91", + "block_number": 20410589, "deployer": "0xFfFd7092685bDeeBD121D1A0FEA3c349114Cce50" } }, @@ -5682,4 +5897,4 @@ "deployer": "0xFfFd7092685bDeeBD121D1A0FEA3c349114Cce50" } } -} +} \ No newline at end of file From 3308553891fe922d988bbddaa716c720b879541f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=BA=C3=B1ez?= Date: Mon, 29 Jul 2024 09:09:26 +0200 Subject: [PATCH 04/30] Delete old intermediary redeployment artifacts --- .../artifacts/mainnet-redeploy-taco-app.json | 1584 ----------------- .../mainnet-redeploy-taco-child.json | 521 ------ 2 files changed, 2105 deletions(-) delete mode 100644 deployment/artifacts/mainnet-redeploy-taco-app.json delete mode 100644 deployment/artifacts/mainnet-redeploy-taco-child.json diff --git a/deployment/artifacts/mainnet-redeploy-taco-app.json b/deployment/artifacts/mainnet-redeploy-taco-app.json deleted file mode 100644 index 425afceb..00000000 --- a/deployment/artifacts/mainnet-redeploy-taco-app.json +++ /dev/null @@ -1,1584 +0,0 @@ -{ - "1": { - "TACoApplication": { - "address": "0x9a4C2f112Bc4A836C625E856d17bb25C075E2B51", - "abi": [ - { - "type": "constructor", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_token", - "type": "address", - "components": null, - "internal_type": "contract IERC20" - }, - { - "name": "_tStaking", - "type": "address", - "components": null, - "internal_type": "contract IStaking" - }, - { - "name": "_minimumAuthorization", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "_minOperatorSeconds", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "_rewardDuration", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "_deauthorizationDuration", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "_commitmentDurationOptions", - "type": "uint64[]", - "components": null, - "internal_type": "uint64[]" - }, - { - "name": "_commitmentDeadline", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "error", - "name": "AddressEmptyCode", - "inputs": [ - { - "name": "target", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "error", - "name": "AddressInsufficientBalance", - "inputs": [ - { - "name": "account", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "error", - "name": "FailedInnerCall", - "inputs": [] - }, - { - "type": "error", - "name": "InvalidInitialization", - "inputs": [] - }, - { - "type": "error", - "name": "NotInitializing", - "inputs": [] - }, - { - "type": "error", - "name": "OwnableInvalidOwner", - "inputs": [ - { - "name": "owner", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "error", - "name": "OwnableUnauthorizedAccount", - "inputs": [ - { - "name": "account", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "error", - "name": "SafeCastOverflowedUintDowncast", - "inputs": [ - { - "name": "bits", - "type": "uint8", - "components": null, - "internal_type": "uint8" - }, - { - "name": "value", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "error", - "name": "SafeERC20FailedOperation", - "inputs": [ - { - "name": "token", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "event", - "name": "AuthorizationDecreaseApproved", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "fromAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "toAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "AuthorizationDecreaseRequested", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "fromAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "toAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "AuthorizationIncreased", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "fromAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "toAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "AuthorizationInvoluntaryDecreased", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "fromAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "toAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "AuthorizationReSynchronized", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "fromAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "toAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "CommitmentMade", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "endCommitment", - "type": "uint256", - "components": null, - "internal_type": "uint256", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Initialized", - "inputs": [ - { - "name": "version", - "type": "uint64", - "components": null, - "internal_type": "uint64", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "ManualChildSynchronizationSent", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "authorized", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "deauthorizing", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "endDeauthorization", - "type": "uint64", - "components": null, - "internal_type": "uint64", - "indexed": false - }, - { - "name": "operator", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OperatorBonded", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "operator", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "previousOperator", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "startTimestamp", - "type": "uint256", - "components": null, - "internal_type": "uint256", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OperatorConfirmed", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "operator", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OwnershipTransferred", - "inputs": [ - { - "name": "previousOwner", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "newOwner", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RewardAdded", - "inputs": [ - { - "name": "reward", - "type": "uint256", - "components": null, - "internal_type": "uint256", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RewardDistributorSet", - "inputs": [ - { - "name": "distributor", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RewardPaid", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "beneficiary", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "reward", - "type": "uint256", - "components": null, - "internal_type": "uint256", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RewardsWithdrawn", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "amount", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Slashed", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "penalty", - "type": "uint256", - "components": null, - "internal_type": "uint256", - "indexed": false - }, - { - "name": "investigator", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "reward", - "type": "uint256", - "components": null, - "internal_type": "uint256", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "function", - "name": "REWARD_PER_TOKEN_MULTIPLIER", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "adjudicator", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "approveAuthorizationDecrease", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "authorizationDecreaseRequested", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "_fromAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "_toAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "authorizationIncreased", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "_fromAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "_toAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "authorizationParameters", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "_minimumAuthorization", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "authorizationDecreaseDelay", - "type": "uint64", - "components": null, - "internal_type": "uint64" - }, - { - "name": "authorizationDecreaseChangePeriod", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "authorizedOverall", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "authorizedStake", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "availableRewards", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "bondOperator", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "_operator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "childApplication", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "contract ITACoRootToChild" - } - ] - }, - { - "type": "function", - "name": "commitmentDeadline", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "commitmentDurationOption1", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "commitmentDurationOption2", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "commitmentDurationOption3", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "commitmentDurationOption4", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "confirmOperatorAddress", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_operator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "deauthorizationDuration", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "eligibleStake", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "_endDate", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "getActiveStakingProviders", - "stateMutability": "view", - "inputs": [ - { - "name": "_startIndex", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "_maxStakingProviders", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "_cohortDuration", - "type": "uint32", - "components": null, - "internal_type": "uint32" - } - ], - "outputs": [ - { - "name": "allAuthorizedTokens", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "activeStakingProviders", - "type": "bytes32[]", - "components": null, - "internal_type": "bytes32[]" - } - ] - }, - { - "type": "function", - "name": "getBeneficiary", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "beneficiary", - "type": "address", - "components": null, - "internal_type": "address payable" - } - ] - }, - { - "type": "function", - "name": "getStakingProvidersLength", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "initialize", - "stateMutability": "nonpayable", - "inputs": [], - "outputs": [] - }, - { - "type": "function", - "name": "involuntaryAuthorizationDecrease", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "_fromAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "_toAmount", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "isAuthorized", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "components": null, - "internal_type": "bool" - } - ] - }, - { - "type": "function", - "name": "isOperatorConfirmed", - "stateMutability": "view", - "inputs": [ - { - "name": "_operator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "components": null, - "internal_type": "bool" - } - ] - }, - { - "type": "function", - "name": "lastTimeRewardApplicable", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "lastUpdateTime", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "makeCommitment", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "_commitmentDuration", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "manualChildSynchronization", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "minOperatorSeconds", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "minimumAuthorization", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "operatorToStakingProvider", - "stateMutability": "view", - "inputs": [ - { - "name": "_operator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "owner", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "pendingAuthorizationDecrease", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "periodFinish", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "pushReward", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_reward", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "registerOperator", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_operator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "remainingAuthorizationDecreaseDelay", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "renounceOwnership", - "stateMutability": "nonpayable", - "inputs": [], - "outputs": [] - }, - { - "type": "function", - "name": "resynchronizeAuthorization", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "rewardDistributor", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "rewardDuration", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "rewardPerToken", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint160", - "components": null, - "internal_type": "uint160" - } - ] - }, - { - "type": "function", - "name": "rewardPerTokenStored", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint160", - "components": null, - "internal_type": "uint160" - } - ] - }, - { - "type": "function", - "name": "rewardRateDecimals", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "setAdjudicator", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_adjudicator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "setChildApplication", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_childApplication", - "type": "address", - "components": null, - "internal_type": "contract ITACoRootToChild" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "setRewardDistributor", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_rewardDistributor", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "slash", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "_penalty", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "_investigator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "stakingProviderInfo", - "stateMutability": "view", - "inputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "operator", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "operatorConfirmed", - "type": "bool", - "components": null, - "internal_type": "bool" - }, - { - "name": "operatorStartTimestamp", - "type": "uint64", - "components": null, - "internal_type": "uint64" - }, - { - "name": "authorized", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "deauthorizing", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "endDeauthorization", - "type": "uint64", - "components": null, - "internal_type": "uint64" - }, - { - "name": "tReward", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "rewardPerTokenPaid", - "type": "uint160", - "components": null, - "internal_type": "uint160" - }, - { - "name": "endCommitment", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "stakingProviderToOperator", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "stakingProviders", - "stateMutability": "view", - "inputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "tStaking", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "contract IStaking" - } - ] - }, - { - "type": "function", - "name": "token", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "contract IERC20" - } - ] - }, - { - "type": "function", - "name": "transferOwnership", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "newOwner", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "withdrawRewards", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - } - ], - "tx_hash": "0x073e91d330c8954dd194013bc0e38f0ed567074e6af5fe40dbc491e90047cbeb", - "block_number": 19274350, - "deployer": "0xFfFd7092685bDeeBD121D1A0FEA3c349114Cce50" - } - } -} \ No newline at end of file diff --git a/deployment/artifacts/mainnet-redeploy-taco-child.json b/deployment/artifacts/mainnet-redeploy-taco-child.json deleted file mode 100644 index e4305a38..00000000 --- a/deployment/artifacts/mainnet-redeploy-taco-child.json +++ /dev/null @@ -1,521 +0,0 @@ -{ - "137": { - "TACoChildApplication": { - "address": "0xa6381716D4d9e94B0c332cfFf0527e22C0c007cb", - "abi": [ - { - "type": "constructor", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_rootApplication", - "type": "address", - "components": null, - "internal_type": "contract ITACoChildToRoot" - }, - { - "name": "_minimumAuthorization", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "error", - "name": "InvalidInitialization", - "inputs": [] - }, - { - "type": "error", - "name": "NotInitializing", - "inputs": [] - }, - { - "type": "event", - "name": "AuthorizationUpdated", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "authorized", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "deauthorizing", - "type": "uint96", - "components": null, - "internal_type": "uint96", - "indexed": false - }, - { - "name": "endDeauthorization", - "type": "uint64", - "components": null, - "internal_type": "uint64", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Initialized", - "inputs": [ - { - "name": "version", - "type": "uint64", - "components": null, - "internal_type": "uint64", - "indexed": false - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OperatorConfirmed", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "operator", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OperatorUpdated", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - }, - { - "name": "operator", - "type": "address", - "components": null, - "internal_type": "address", - "indexed": true - } - ], - "anonymous": false - }, - { - "type": "function", - "name": "authorizedStake", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "confirmOperatorAddress", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_operator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "coordinator", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "eligibleStake", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "_endDate", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "getActiveStakingProviders", - "stateMutability": "view", - "inputs": [ - { - "name": "_startIndex", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "_maxStakingProviders", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "_cohortDuration", - "type": "uint32", - "components": null, - "internal_type": "uint32" - } - ], - "outputs": [ - { - "name": "allAuthorizedTokens", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "activeStakingProviders", - "type": "bytes32[]", - "components": null, - "internal_type": "bytes32[]" - } - ] - }, - { - "type": "function", - "name": "getActiveStakingProviders", - "stateMutability": "view", - "inputs": [ - { - "name": "_startIndex", - "type": "uint256", - "components": null, - "internal_type": "uint256" - }, - { - "name": "_maxStakingProviders", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ], - "outputs": [ - { - "name": "allAuthorizedTokens", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "activeStakingProviders", - "type": "bytes32[]", - "components": null, - "internal_type": "bytes32[]" - } - ] - }, - { - "type": "function", - "name": "getStakingProvidersLength", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ] - }, - { - "type": "function", - "name": "initialize", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "_coordinator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "minimumAuthorization", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "operatorToStakingProvider", - "stateMutability": "view", - "inputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "pendingAuthorizationDecrease", - "stateMutability": "view", - "inputs": [ - { - "name": "_stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ] - }, - { - "type": "function", - "name": "rootApplication", - "stateMutability": "view", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "contract ITACoChildToRoot" - } - ] - }, - { - "type": "function", - "name": "stakingProviderInfo", - "stateMutability": "view", - "inputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [ - { - "name": "operator", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "authorized", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "operatorConfirmed", - "type": "bool", - "components": null, - "internal_type": "bool" - }, - { - "name": "index", - "type": "uint248", - "components": null, - "internal_type": "uint248" - }, - { - "name": "deauthorizing", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "endDeauthorization", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ] - }, - { - "type": "function", - "name": "stakingProviders", - "stateMutability": "view", - "inputs": [ - { - "name": "", - "type": "uint256", - "components": null, - "internal_type": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "address", - "components": null, - "internal_type": "address" - } - ] - }, - { - "type": "function", - "name": "updateAuthorization", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "authorized", - "type": "uint96", - "components": null, - "internal_type": "uint96" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "updateAuthorization", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "authorized", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "deauthorizing", - "type": "uint96", - "components": null, - "internal_type": "uint96" - }, - { - "name": "endDeauthorization", - "type": "uint64", - "components": null, - "internal_type": "uint64" - } - ], - "outputs": [] - }, - { - "type": "function", - "name": "updateOperator", - "stateMutability": "nonpayable", - "inputs": [ - { - "name": "stakingProvider", - "type": "address", - "components": null, - "internal_type": "address" - }, - { - "name": "operator", - "type": "address", - "components": null, - "internal_type": "address" - } - ], - "outputs": [] - } - ], - "tx_hash": "0xe15af2eab1314bcc2d8a85cb537c8266f7551766de8dd307fab9e5233521ebea", - "block_number": 53775101, - "deployer": "0x1591165F1BF8B73de7053A6BE6f239BC15076879" - } - } -} \ No newline at end of file From c763df9fd5893ea6b9c9bdc82ca1b052237e4f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=BA=C3=B1ez?= Date: Thu, 15 Aug 2024 14:59:34 +0200 Subject: [PATCH 05/30] Don't change TACoApp address in registry, since it's proxied Co-authored-by: Derek Pierre --- deployment/artifacts/mainnet.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/artifacts/mainnet.json b/deployment/artifacts/mainnet.json index 130daeb1..da5cfafa 100644 --- a/deployment/artifacts/mainnet.json +++ b/deployment/artifacts/mainnet.json @@ -149,7 +149,7 @@ "deployer": "0xFfFd7092685bDeeBD121D1A0FEA3c349114Cce50" }, "TACoApplication": { - "address": "0x98F643B32b5A3513929Dfd3F2E3e39F7376659DB", + "address": "0x347CC7ede7e5517bD47D20620B2CF1b406edcF07", "abi": [ { "type": "constructor", From e60ab6dd623cd7fa48b19ebd525a772fb82d2713 Mon Sep 17 00:00:00 2001 From: KPrasch Date: Thu, 15 Aug 2024 15:58:53 +0200 Subject: [PATCH 06/30] Apply suggestions from code review Apply RFRs in PR #300 Co-authored-by: Derek Pierre --- scripts/manage_subscription.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/manage_subscription.py b/scripts/manage_subscription.py index 1a80b1f8..e91519b3 100644 --- a/scripts/manage_subscription.py +++ b/scripts/manage_subscription.py @@ -109,7 +109,7 @@ def add_encryptors(account, network, domain, ritual_id, encryptors): coordinator = registry.get_contract(contract_name="Coordinator", domain=domain) ritual = coordinator.rituals(ritual_id) access_controller = Contract(ritual.access_controller) # uses polygonscan API - if account != ritual.authority: + if account.address != ritual.authority: raise ValueError(f"Only the authority ({ritual.authority}) can authorize encryptors.") transactor = Transactor(account=account) @@ -135,9 +135,9 @@ def remove_encryptors(account, network, domain, ritual_id, encryptors): # lookup the access controller + authority for the ritual coordinator = registry.get_contract(contract_name="Coordinator", domain=domain) ritual = coordinator.rituals(ritual_id) - access_controller = Contract(ritual.access_controller) # uses polygonscan API + access_controller = Contract(ritual.accessController) # uses polygonscan API - if account != ritual.authority: + if account.address != ritual.authority: raise ValueError(f"Only the authority ({ritual.authority}) can remove encryptors.") click.echo( From 9b52e3af901c07e060f70b406985520e00490176 Mon Sep 17 00:00:00 2001 From: KPrasch Date: Thu, 15 Aug 2024 16:05:36 +0200 Subject: [PATCH 07/30] Update scripts/manage_subscription.py Co-authored-by: Derek Pierre --- scripts/manage_subscription.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/manage_subscription.py b/scripts/manage_subscription.py index e91519b3..42b98b4e 100644 --- a/scripts/manage_subscription.py +++ b/scripts/manage_subscription.py @@ -108,7 +108,7 @@ def add_encryptors(account, network, domain, ritual_id, encryptors): # lookup the access controller + authority for the ritual coordinator = registry.get_contract(contract_name="Coordinator", domain=domain) ritual = coordinator.rituals(ritual_id) - access_controller = Contract(ritual.access_controller) # uses polygonscan API + access_controller = Contract(ritual.accessController) # uses polygonscan API if account.address != ritual.authority: raise ValueError(f"Only the authority ({ritual.authority}) can authorize encryptors.") From 6b12617fc1e4025e2c772f6abc9d1ca6eaee800e Mon Sep 17 00:00:00 2001 From: James Campbell Date: Thu, 15 Aug 2024 15:55:53 +0100 Subject: [PATCH 08/30] Prevent variables being overwritten --- scripts/initiate_ritual.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/scripts/initiate_ritual.py b/scripts/initiate_ritual.py index 323d327c..7b08678f 100644 --- a/scripts/initiate_ritual.py +++ b/scripts/initiate_ritual.py @@ -105,6 +105,11 @@ def cli( message="Cannot specify --min-version when using --handpicked.", ) + # Get the contracts from the registry + coordinator_contract = registry.get_contract(domain=domain, contract_name="Coordinator") + access_controller_contract = registry.get_contract(domain=domain, contract_name=access_controller) + fee_model_contract = registry.get_contract(domain=domain, contract_name=fee_model) + # Get the staking providers in the ritual cohort if handpicked: providers = sorted(line.lower() for line in handpicked) @@ -115,20 +120,16 @@ def cli( domain=domain, num_nodes=num_nodes, duration=duration, random_seed=random_seed, min_version=min_version ) - # Get the contracts from the registry - coordinator = registry.get_contract(domain=domain, contract_name="Coordinator") - access_controller = registry.get_contract(domain=domain, contract_name=access_controller) - fee_model = registry.get_contract(domain=domain, contract_name=fee_model) # Initiate the ritual transactor = Transactor(account=account) transactor.transact( - coordinator.initiateRitual, - fee_model.address, + coordinator_contract.initiateRitual, + fee_model_contract.address, providers, authority, duration, - access_controller.address, + access_controller_contract.address, ) From 49bf166267b1e200aec384758d2c4c697e87f3f2 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 15 Aug 2024 11:32:01 -0400 Subject: [PATCH 09/30] Script that lists all the active rituals that a specified staking provider is participating in. --- scripts/ritual_membership.py | 63 ++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 scripts/ritual_membership.py diff --git a/scripts/ritual_membership.py b/scripts/ritual_membership.py new file mode 100644 index 00000000..3a9d45a8 --- /dev/null +++ b/scripts/ritual_membership.py @@ -0,0 +1,63 @@ +import click +from ape import networks, project +from ape.cli import ConnectedProviderCommand, network_option +from eth_typing import ChecksumAddress +from eth_utils import to_checksum_address + +from deployment.constants import SUPPORTED_TACO_DOMAINS +from deployment.registry import contracts_from_registry +from deployment.utils import registry_filepath_from_domain + + +@click.command(cls=ConnectedProviderCommand) +@network_option(required=True) +@click.option( + "--domain", + "-d", + help="TACo domain", + type=click.Choice(SUPPORTED_TACO_DOMAINS), + required=True, +) +@click.option( + "--staking-provider-address", + "-p", + help="Staking provider address to check", + type=ChecksumAddress, + required=True, +) +def cli(network, domain, staking_provider_address): + """Lists all the active rituals that a staking provider is participating in.""" + registry_filepath = registry_filepath_from_domain(domain=domain) + contracts = contracts_from_registry( + registry_filepath, chain_id=networks.active_provider.chain_id + ) + + provider_checksum_address = to_checksum_address(staking_provider_address) + # lower used for comparing against sorted list + provider_checksum_address_lower = provider_checksum_address.lower() + + coordinator = project.Coordinator.at(contracts["Coordinator"].address) + num_rituals = coordinator.numberOfRituals() + + ritual_memberships = [] + for ritual_id in range(0, num_rituals): + if not coordinator.isRitualActive(ritual_id): + continue + + participants = coordinator.getParticipants(ritual_id) + for participant in participants: + provider = participant.provider + if provider == provider_checksum_address: + ritual_memberships.append(ritual_id) + break + if provider_checksum_address_lower < provider: + # list of participants is sorted so stop early if already passed + break + + if not ritual_memberships: + print(f"\nStaking provider {provider_checksum_address} is not part of any rituals") + return + + print("\nActive Ritual Memberships:") + for ritual_id in ritual_memberships: + print(f"\t- ID: #{ritual_id}") From d4dac28cb03cca2fb20d11a3e98f509d606757e4 Mon Sep 17 00:00:00 2001 From: James Campbell Date: Thu, 15 Aug 2024 16:44:15 +0100 Subject: [PATCH 10/30] Add duration calculation when using a subscription --- scripts/initiate_ritual.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/scripts/initiate_ritual.py b/scripts/initiate_ritual.py index 7b08678f..8d6d1bcd 100644 --- a/scripts/initiate_ritual.py +++ b/scripts/initiate_ritual.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 import click +from ape import chain from ape.cli import ConnectedProviderCommand, account_option, network_option from deployment import registry @@ -25,7 +26,7 @@ "-t", help="Duration of the ritual in seconds. Must be at least 24h.", type=MinInt(86400), - required=True, + required=False, ) @click.option( "--access-controller", @@ -110,6 +111,23 @@ def cli( access_controller_contract = registry.get_contract(domain=domain, contract_name=access_controller) fee_model_contract = registry.get_contract(domain=domain, contract_name=fee_model) + # if using a subcription, duration needs to be calculated + if fee_model == "BqETHSubscription": + start_of_subscription = fee_model_contract.startOfSubscription() + duration = ( + fee_model_contract.subscriptionPeriodDuration() + + fee_model_contract.yellowPeriodDuration() + + fee_model_contract.redPeriodDuration() + ) + if start_of_subscription > 0: + click.echo( + "Subscription has already started. Subtracting the elapsed time from the duration." + ) + now = chain.blocks.head.timestamp + elapsed = now - start_of_subscription + 100 + duration -= elapsed + + # Get the staking providers in the ritual cohort if handpicked: providers = sorted(line.lower() for line in handpicked) From 5d78a8f4b88b96d493bef7066860faf43ba95930 Mon Sep 17 00:00:00 2001 From: Victoria Zotova Date: Thu, 15 Aug 2024 13:21:24 -0400 Subject: [PATCH 11/30] Coordinator: moves rituals from array to mapping --- .../contracts/coordination/Coordinator.sol | 80 ++++++++++++------- 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/contracts/contracts/coordination/Coordinator.sol b/contracts/contracts/coordination/Coordinator.sol index 125a559f..ca1c6483 100644 --- a/contracts/contracts/coordination/Coordinator.sol +++ b/contracts/contracts/coordination/Coordinator.sol @@ -93,7 +93,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable ITACoChildApplication public immutable application; uint96 private immutable minAuthorization; // TODO use child app for checking eligibility - Ritual[] public rituals; + Ritual[] private ritualsStub; // former rituals uint32 public timeout; uint16 public maxDkgSize; bool private stub1; // former isInitiationPublic @@ -106,10 +106,13 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable mapping(address => ParticipantKey[]) internal participantKeysHistory; mapping(bytes32 => uint32) internal ritualPublicKeyRegistry; mapping(IFeeModel => bool) public feeModelsRegistry; + + mapping(uint256 index => Ritual ritual) internal _rituals; + uint256 public numberOfRituals; // Note: Adjust the __preSentinelGap size if more contract variables are added // Storage area for sentinel values - uint256[19] internal __preSentinelGap; + uint256[17] internal __preSentinelGap; Participant internal __sentinelParticipant; uint256[20] internal __postSentinelGap; @@ -128,27 +131,49 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable __AccessControlDefaultAdminRules_init(0, _admin); } + function initializeNumberOfRituals() external reinitializer(2) { + if (numberOfRituals == 0) { + numberOfRituals = ritualsStub.length; + } + } + + function rituals(uint32 ritualId) public view returns (Ritual memory) { + return storageRitual(ritualId); + } + + // for backward compatibility + function storageRitual(uint32 ritualId) internal view returns (Ritual storage) { + if (ritualId < ritualsStub.length) { + return ritualsStub[ritualId]; + } + require(ritualId < numberOfRituals, "Ritual id out of bounds"); + return _rituals[ritualId]; + } + function getInitiator(uint32 ritualId) external view returns (address) { - return rituals[ritualId].initiator; + return rituals(ritualId).initiator; } function getTimestamps( uint32 ritualId ) external view returns (uint32 initTimestamp, uint32 endTimestamp) { - initTimestamp = rituals[ritualId].initTimestamp; - endTimestamp = rituals[ritualId].endTimestamp; + Ritual storage ritual = storageRitual(ritualId); + initTimestamp = ritual.initTimestamp; + endTimestamp = ritual.endTimestamp; } function getAccessController(uint32 ritualId) external view returns (IEncryptionAuthorizer) { - return rituals[ritualId].accessController; + Ritual storage ritual = storageRitual(ritualId); + return ritual.accessController; } function getFeeModel(uint32 ritualId) external view returns (IFeeModel) { - return rituals[ritualId].feeModel; + Ritual storage ritual = storageRitual(ritualId); + return ritual.feeModel; } function getRitualState(uint32 ritualId) external view returns (RitualState) { - return getRitualState(rituals[ritualId]); + return getRitualState(storageRitual(ritualId)); } function isRitualActive(Ritual storage ritual) internal view returns (bool) { @@ -156,7 +181,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable } function isRitualActive(uint32 ritualId) external view returns (bool) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); return isRitualActive(ritual); } @@ -194,7 +219,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable } function setProviderPublicKey(BLS12381.G2Point calldata publicKey) external { - uint32 lastRitualId = uint32(rituals.length); + uint32 lastRitualId = uint32(numberOfRituals); address stakingProvider = application.operatorToStakingProvider(msg.sender); require(stakingProvider != address(0), "Operator has no bond with staking provider"); @@ -247,7 +272,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable } function transferRitualAuthority(uint32 ritualId, address newAuthority) external { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); require(isRitualActive(ritual), "Ritual is not active"); address previousAuthority = ritual.authority; require(msg.sender == previousAuthority, "Sender not ritual authority"); @@ -255,12 +280,8 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable emit RitualAuthorityTransferred(ritualId, previousAuthority, newAuthority); } - function numberOfRituals() external view returns (uint256) { - return rituals.length; - } - function getParticipants(uint32 ritualId) external view returns (Participant[] memory) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); return ritual.participant; } @@ -283,8 +304,9 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable require(2 <= length && length <= maxDkgSize, "Invalid number of nodes"); require(duration >= 24 hours, "Invalid ritual duration"); // TODO: Define minimum duration #106 - uint32 id = uint32(rituals.length); - Ritual storage ritual = rituals.push(); + uint32 id = uint32(numberOfRituals); + Ritual storage ritual = _rituals[id]; + numberOfRituals += 1; ritual.initiator = msg.sender; ritual.authority = authority; ritual.dkgSize = length; @@ -326,7 +348,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable function postTranscript(uint32 ritualId, bytes calldata transcript) external { uint256 initialGasLeft = gasleft(); - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); require( getRitualState(ritual) == RitualState.DKG_AWAITING_TRANSCRIPTS, "Not waiting for transcripts" @@ -354,7 +376,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable } function getAuthority(uint32 ritualId) external view returns (address) { - return rituals[ritualId].authority; + return rituals(ritualId).authority; } function postAggregation( @@ -365,7 +387,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable ) external { uint256 initialGasLeft = gasleft(); - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); require( getRitualState(ritual) == RitualState.DKG_AWAITING_AGGREGATIONS, "Not waiting for aggregations" @@ -433,7 +455,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable function getPublicKeyFromRitualId( uint32 ritualId ) external view returns (BLS12381.G1Point memory) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); RitualState state = getRitualState(ritual); require( state == RitualState.ACTIVE || state == RitualState.EXPIRED, @@ -484,7 +506,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable address provider, bool transcript ) external view returns (Participant memory) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); Participant memory participant = getParticipant(ritual, provider); if (!transcript) { participant.transcript = ""; @@ -496,7 +518,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable uint32 ritualId, address provider ) external view returns (Participant memory) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); Participant memory participant = getParticipant(ritual, provider); return participant; } @@ -507,7 +529,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable uint256 maxParticipants, bool includeTranscript ) external view returns (Participant[] memory) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); uint256 endIndex = ritual.participant.length; require(startIndex >= 0, "Invalid start index"); require(startIndex < endIndex, "Wrong start index"); @@ -529,7 +551,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable } function getProviders(uint32 ritualId) external view returns (address[] memory) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); address[] memory providers = new address[](ritual.participant.length); for (uint256 i = 0; i < ritual.participant.length; i++) { providers[i] = ritual.participant[i].provider; @@ -538,7 +560,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable } function isParticipant(uint32 ritualId, address provider) external view returns (bool) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); (bool found, ) = findParticipant(ritual, provider); return found; } @@ -549,7 +571,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable bytes memory evidence, bytes memory ciphertextHeader ) external view returns (bool) { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); require(getRitualState(ritual) == RitualState.ACTIVE, "Ritual not active"); return ritual.accessController.isAuthorized(ritualId, evidence, ciphertextHeader); } @@ -572,7 +594,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable } function extendRitual(uint32 ritualId, uint32 duration) external { - Ritual storage ritual = rituals[ritualId]; + Ritual storage ritual = storageRitual(ritualId); require(msg.sender == ritual.initiator, "Only initiator can extend ritual"); require(getRitualState(ritual) == RitualState.ACTIVE, "Only active ritual can be extended"); ritual.endTimestamp += duration; From 2ee2d92620aa2c23167120f4d33ea9073f521e7e Mon Sep 17 00:00:00 2001 From: Victoria Zotova Date: Thu, 15 Aug 2024 14:02:57 -0400 Subject: [PATCH 12/30] Coordinator: tests for upgrade --- .../contracts/coordination/Coordinator.sol | 2 +- contracts/test/CoordinatorTestSet.sol | 35 ++++++ tests/test_coordinator.py | 110 ++++++++++++++++-- 3 files changed, 134 insertions(+), 13 deletions(-) diff --git a/contracts/contracts/coordination/Coordinator.sol b/contracts/contracts/coordination/Coordinator.sol index ca1c6483..cb250007 100644 --- a/contracts/contracts/coordination/Coordinator.sol +++ b/contracts/contracts/coordination/Coordinator.sol @@ -93,7 +93,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable ITACoChildApplication public immutable application; uint96 private immutable minAuthorization; // TODO use child app for checking eligibility - Ritual[] private ritualsStub; // former rituals + Ritual[] internal ritualsStub; // former rituals, "internal" for testing only uint32 public timeout; uint16 public maxDkgSize; bool private stub1; // former isInitiationPublic diff --git a/contracts/test/CoordinatorTestSet.sol b/contracts/test/CoordinatorTestSet.sol index d7664553..6b777d11 100644 --- a/contracts/test/CoordinatorTestSet.sol +++ b/contracts/test/CoordinatorTestSet.sol @@ -3,6 +3,7 @@ pragma solidity ^0.8.0; import "../threshold/ITACoChildApplication.sol"; +import "../contracts/coordination/Coordinator.sol"; /** * @notice Contract for testing Coordinator contract @@ -33,3 +34,37 @@ contract ChildApplicationForCoordinatorMock is ITACoChildApplication { // solhint-disable-next-line no-empty-blocks function penalize(address _stakingProvider) external {} } + +contract ExtendedCoordinator is Coordinator { + constructor(ITACoChildApplication _application) Coordinator(_application) {} + + function initiateOldRitual( + IFeeModel feeModel, + address[] calldata providers, + address authority, + uint32 duration, + IEncryptionAuthorizer accessController + ) external returns (uint32) { + uint16 length = uint16(providers.length); + + uint32 id = uint32(ritualsStub.length); + Ritual storage ritual = ritualsStub.push(); + ritual.initiator = msg.sender; + ritual.authority = authority; + ritual.dkgSize = length; + ritual.threshold = getThresholdForRitualSize(length); + ritual.initTimestamp = uint32(block.timestamp); + ritual.endTimestamp = ritual.initTimestamp + duration; + ritual.accessController = accessController; + ritual.feeModel = feeModel; + + address previous = address(0); + for (uint256 i = 0; i < length; i++) { + Participant storage newParticipant = ritual.participant.push(); + address current = providers[i]; + newParticipant.provider = current; + previous = current; + } + return id; + } +} diff --git a/tests/test_coordinator.py b/tests/test_coordinator.py index 22b88b09..0d896319 100644 --- a/tests/test_coordinator.py +++ b/tests/test_coordinator.py @@ -3,6 +3,7 @@ import ape import pytest +from ape.utils import ZERO_ADDRESS from eth_account import Account from hexbytes import HexBytes from web3 import Web3 @@ -86,9 +87,9 @@ def erc20(project, initiator): @pytest.fixture() -def coordinator(project, deployer, application, initiator, oz_dependency): +def coordinator(project, deployer, application, oz_dependency): admin = deployer - contract = project.Coordinator.deploy( + contract = project.ExtendedCoordinator.deploy( application.address, sender=deployer, ) @@ -100,7 +101,7 @@ def coordinator(project, deployer, application, initiator, oz_dependency): encoded_initializer_function, sender=deployer, ) - proxy_contract = project.Coordinator.at(proxy.address) + proxy_contract = project.ExtendedCoordinator.at(proxy.address) return proxy_contract @@ -219,17 +220,20 @@ def test_initiate_ritual( ritual_struct = coordinator.rituals(ritualID) assert ritual_struct[0] == initiator - init, end = ritual_struct[1], ritual_struct[2] + init, end = ritual_struct[1], ritual_struct["endTimestamp"] assert end - init == DURATION - total_transcripts, total_aggregations = ritual_struct[3], ritual_struct[4] + total_transcripts, total_aggregations = ( + ritual_struct["totalTranscripts"], + ritual_struct["totalAggregations"], + ) assert total_transcripts == total_aggregations == 0 - assert ritual_struct[5] == authority - assert ritual_struct[6] == len(nodes) - assert ritual_struct[7] == 1 + len(nodes) // 2 # threshold - assert not ritual_struct[8] # aggregationMismatch - assert ritual_struct[9] == global_allow_list.address # accessController - assert ritual_struct[10] == (b"\x00" * 32, b"\x00" * 16) # publicKey - assert not ritual_struct[11] # aggregatedTranscript + assert ritual_struct["authority"] == authority + assert ritual_struct["dkgSize"] == len(nodes) + assert ritual_struct["threshold"] == 1 + len(nodes) // 2 # threshold + assert not ritual_struct["aggregationMismatch"] # aggregationMismatch + assert ritual_struct["accessController"] == global_allow_list.address # accessController + assert ritual_struct["publicKey"] == (b"\x00" * 32, b"\x00" * 16) # publicKey + assert not ritual_struct["aggregatedTranscript"] # aggregatedTranscript fee = fee_model.getRitualCost(len(nodes), DURATION) assert erc20.balanceOf(fee_model) == fee @@ -564,3 +568,85 @@ def test_post_aggregation_fails( assert fee_model.totalPendingFees() == 0 assert fee_model.pendingFees(ritualID) == 0 fee_model.withdrawTokens(fee_model_balance_after_refund, sender=deployer) + + +def test_upgrade( + coordinator, nodes, initiator, erc20, fee_model, treasury, deployer, global_allow_list +): + coordinator.initiateOldRitual( + fee_model, nodes, initiator, DURATION, global_allow_list.address, sender=initiator + ) + coordinator.initiateOldRitual( + ZERO_ADDRESS, [nodes[0]], treasury, DURATION // 2, deployer, sender=initiator + ) + assert coordinator.numberOfRituals() == 0 + coordinator.initializeNumberOfRituals(sender=deployer) + assert coordinator.numberOfRituals() == 2 + + initiate_ritual( + coordinator=coordinator, + fee_model=fee_model, + erc20=erc20, + authority=initiator, + nodes=nodes, + allow_logic=global_allow_list, + ) + assert coordinator.numberOfRituals() == 3 + + assert coordinator.getRitualState(0) == RitualState.DKG_AWAITING_TRANSCRIPTS + assert coordinator.getRitualState(1) == RitualState.DKG_AWAITING_TRANSCRIPTS + assert coordinator.getRitualState(2) == RitualState.DKG_AWAITING_TRANSCRIPTS + + ritual_struct = coordinator.rituals(0) + assert ritual_struct["initiator"] == initiator + init, end = ritual_struct["initTimestamp"], ritual_struct["endTimestamp"] + assert end - init == DURATION + total_transcripts, total_aggregations = ( + ritual_struct["totalTranscripts"], + ritual_struct["totalAggregations"], + ) + assert total_transcripts == total_aggregations == 0 + assert ritual_struct["authority"] == initiator + assert ritual_struct["dkgSize"] == len(nodes) + assert ritual_struct["threshold"] == 1 + len(nodes) // 2 + assert not ritual_struct["aggregationMismatch"] + assert ritual_struct["accessController"] == global_allow_list.address + assert ritual_struct["publicKey"] == (b"\x00" * 32, b"\x00" * 16) + assert not ritual_struct["aggregatedTranscript"] + assert ritual_struct["feeModel"] == fee_model.address + + ritual_struct = coordinator.rituals(1) + assert ritual_struct["initiator"] == initiator + init, end = ritual_struct["initTimestamp"], ritual_struct["endTimestamp"] + assert end - init == DURATION // 2 + total_transcripts, total_aggregations = ( + ritual_struct["totalTranscripts"], + ritual_struct["totalAggregations"], + ) + assert total_transcripts == total_aggregations == 0 + assert ritual_struct["authority"] == treasury + assert ritual_struct["dkgSize"] == 1 + assert ritual_struct["threshold"] == 1 # threshold + assert not ritual_struct["aggregationMismatch"] # aggregationMismatch + assert ritual_struct["accessController"] == deployer # accessController + assert ritual_struct["publicKey"] == (b"\x00" * 32, b"\x00" * 16) # publicKey + assert not ritual_struct["aggregatedTranscript"] # aggregatedTranscript + assert ritual_struct["feeModel"] == ZERO_ADDRESS # feeModel + + ritual_struct = coordinator.rituals(2) + assert ritual_struct["initiator"] == initiator + init, end = ritual_struct["initTimestamp"], ritual_struct["endTimestamp"] + assert end - init == DURATION + total_transcripts, total_aggregations = ( + ritual_struct["totalTranscripts"], + ritual_struct["totalAggregations"], + ) + assert total_transcripts == total_aggregations == 0 + assert ritual_struct["authority"] == initiator + assert ritual_struct["dkgSize"] == len(nodes) + assert ritual_struct["threshold"] == 1 + len(nodes) // 2 # threshold + assert not ritual_struct["aggregationMismatch"] # aggregationMismatch + assert ritual_struct["accessController"] == global_allow_list.address # accessController + assert ritual_struct["publicKey"] == (b"\x00" * 32, b"\x00" * 16) # publicKey + assert not ritual_struct["aggregatedTranscript"] # aggregatedTranscript + assert ritual_struct["feeModel"] == fee_model.address # feeModel From 2619079d5ec0b8916d856c9b70ee5babbb19ec51 Mon Sep 17 00:00:00 2001 From: James Campbell Date: Fri, 16 Aug 2024 09:14:44 +0100 Subject: [PATCH 13/30] Check that subscription hasn't already ended --- scripts/initiate_ritual.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/initiate_ritual.py b/scripts/initiate_ritual.py index 8d6d1bcd..1908c402 100644 --- a/scripts/initiate_ritual.py +++ b/scripts/initiate_ritual.py @@ -120,10 +120,13 @@ def cli( + fee_model_contract.redPeriodDuration() ) if start_of_subscription > 0: + end_of_subscription = fee_model_contract.getEndOfSubscription() + now = chain.blocks.head.timestamp + if now > end_of_subscription: + raise ValueError("Subscription has already ended.") click.echo( "Subscription has already started. Subtracting the elapsed time from the duration." ) - now = chain.blocks.head.timestamp elapsed = now - start_of_subscription + 100 duration -= elapsed From e173166e29101b6a63585b7814823b8c4d7f28e8 Mon Sep 17 00:00:00 2001 From: Victoria Zotova Date: Mon, 19 Aug 2024 12:19:39 -0400 Subject: [PATCH 14/30] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: David Núñez --- contracts/contracts/coordination/Coordinator.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/contracts/coordination/Coordinator.sol b/contracts/contracts/coordination/Coordinator.sol index cb250007..e58337a7 100644 --- a/contracts/contracts/coordination/Coordinator.sol +++ b/contracts/contracts/coordination/Coordinator.sol @@ -131,6 +131,7 @@ contract Coordinator is Initializable, AccessControlDefaultAdminRulesUpgradeable __AccessControlDefaultAdminRules_init(0, _admin); } + /// @dev use `upgradeAndCall` for upgrading together with re-initialization function initializeNumberOfRituals() external reinitializer(2) { if (numberOfRituals == 0) { numberOfRituals = ritualsStub.length; From 67f889690d7178972f106eb490e1e05ffc631576 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Tue, 20 Aug 2024 14:22:54 -0400 Subject: [PATCH 15/30] Undo previous change to how receipts were obtained. That change applies to ape 0.8.8 but not to ape 0.7.x which we currently use. --- deployment/registry.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/deployment/registry.py b/deployment/registry.py index 7fb03e45..7d2aa0ae 100644 --- a/deployment/registry.py +++ b/deployment/registry.py @@ -5,17 +5,13 @@ from pathlib import Path from typing import Dict, List, NamedTuple, Optional -from ape import chain, project +from ape import project from ape.contracts import ContractInstance from eth_typing import ChecksumAddress from eth_utils import to_checksum_address from web3.types import ABI -from deployment.utils import ( - _load_json, - get_contract_container, - registry_filepath_from_domain -) +from deployment.utils import _load_json, get_contract_container, registry_filepath_from_domain ChainId = int ContractName = str @@ -68,7 +64,7 @@ def _get_entry( ) -> RegistryEntry: contract_abi = _get_abi(contract_instance) contract_name = _get_name(contract_instance=contract_instance, registry_names=registry_names) - receipt = chain.get_receipt(contract_instance.txn_hash) + receipt = contract_instance.receipt entry = RegistryEntry( name=contract_name, address=to_checksum_address(contract_instance.address), From 3772347802a6a0c3306cbecc742a8e2596a7c1fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=BA=C3=B1ez?= Date: Wed, 21 Aug 2024 16:25:08 +0200 Subject: [PATCH 16/30] Don't check for ape-infura when not using infura --- deployment/utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deployment/utils.py b/deployment/utils.py index 591ef777..1cce314d 100644 --- a/deployment/utils.py +++ b/deployment/utils.py @@ -99,6 +99,8 @@ def check_infura_plugin() -> None: """Checks that the ape-infura plugin is installed.""" if is_local_network(): return # unnecessary for local deployment + if networks.provider.name != 'infura': + return # unnecessary when using a provider different than infura try: import ape_infura # noqa: F401 from ape_infura.provider import _ENVIRONMENT_VARIABLE_NAMES # noqa: F401 From d78c076f6c9ec1585af8282c49cef13a0a65c168 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Wed, 21 Aug 2024 16:50:42 -0400 Subject: [PATCH 17/30] Raise an exception for unsuccessful HTTP codes from Porter sample request. --- deployment/utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/deployment/utils.py b/deployment/utils.py index 591ef777..9ebf7048 100644 --- a/deployment/utils.py +++ b/deployment/utils.py @@ -9,7 +9,7 @@ from ape.contracts import ContractContainer, ContractInstance from ape_etherscan.utils import API_KEY_ENV_KEY_MAP -from deployment.constants import ARTIFACTS_DIR, LYNX, MAINNET, PORTER_SAMPLING_ENDPOINTS, TAPIR +from deployment.constants import ARTIFACTS_DIR, MAINNET, PORTER_SAMPLING_ENDPOINTS from deployment.networks import is_local_network @@ -192,6 +192,8 @@ def sample_nodes( params["min_version"] = min_version response = requests.get(porter_endpoint, params=params) + response.raise_for_status() + data = response.json() result = sorted(data["result"]["ursulas"], key=lambda x: x.lower()) From b78f263b4c143c3056bb1ad8466a75216a86b4c6 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Wed, 21 Aug 2024 16:51:21 -0400 Subject: [PATCH 18/30] On testnet /get_ursulas is used and its response format is slightly different than /bucket_sampling used on mainnet. --- deployment/utils.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/deployment/utils.py b/deployment/utils.py index 9ebf7048..8bba053b 100644 --- a/deployment/utils.py +++ b/deployment/utils.py @@ -195,6 +195,11 @@ def sample_nodes( response.raise_for_status() data = response.json() - result = sorted(data["result"]["ursulas"], key=lambda x: x.lower()) + ursulas = data["result"]["ursulas"] + if domain != MAINNET: + # /get_ursulas is used for sampling (instead of /bucket_sampling) + # so the json returned is slightly different + ursulas = [u["checksum_address"] for u in ursulas] + result = sorted(ursulas, key=lambda x: x.lower()) return result From 594848ff7dfa982cb29b6c358e15bf77965dbaa2 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 14:53:07 -0400 Subject: [PATCH 19/30] Relock dependencies to latest versions. --- Pipfile.lock | 2348 +++++++++++++++++++++++----------------------- requirements.txt | 155 ++- 2 files changed, 1248 insertions(+), 1255 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 45f3a7d9..7f5d2032 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -16,87 +16,110 @@ ] }, "default": { + "aiohappyeyeballs": { + "hashes": [ + "sha256:55a1714f084e63d49639800f95716da97a1f173d46a16dfcfda0016abb93b6b2", + "sha256:7ce92076e249169a13c2f49320d1967425eaf1f407522d707d59cac7628d62bd" + ], + "markers": "python_version >= '3.8'", + "version": "==2.4.0" + }, "aiohttp": { "hashes": [ - "sha256:017a21b0df49039c8f46ca0971b3a7fdc1f56741ab1240cb90ca408049766168", - "sha256:039df344b45ae0b34ac885ab5b53940b174530d4dd8a14ed8b0e2155b9dddccb", - "sha256:055ce4f74b82551678291473f66dc9fb9048a50d8324278751926ff0ae7715e5", - "sha256:06a9b2c8837d9a94fae16c6223acc14b4dfdff216ab9b7202e07a9a09541168f", - "sha256:07b837ef0d2f252f96009e9b8435ec1fef68ef8b1461933253d318748ec1acdc", - "sha256:0ed621426d961df79aa3b963ac7af0d40392956ffa9be022024cd16297b30c8c", - "sha256:0fa43c32d1643f518491d9d3a730f85f5bbaedcbd7fbcae27435bb8b7a061b29", - "sha256:1f5a71d25cd8106eab05f8704cd9167b6e5187bcdf8f090a66c6d88b634802b4", - "sha256:1f5cd333fcf7590a18334c90f8c9147c837a6ec8a178e88d90a9b96ea03194cc", - "sha256:27468897f628c627230dba07ec65dc8d0db566923c48f29e084ce382119802bc", - "sha256:298abd678033b8571995650ccee753d9458dfa0377be4dba91e4491da3f2be63", - "sha256:2c895a656dd7e061b2fd6bb77d971cc38f2afc277229ce7dd3552de8313a483e", - "sha256:361a1026c9dd4aba0109e4040e2aecf9884f5cfe1b1b1bd3d09419c205e2e53d", - "sha256:363afe77cfcbe3a36353d8ea133e904b108feea505aa4792dad6585a8192c55a", - "sha256:38a19bc3b686ad55804ae931012f78f7a534cce165d089a2059f658f6c91fa60", - "sha256:38f307b41e0bea3294a9a2a87833191e4bcf89bb0365e83a8be3a58b31fb7f38", - "sha256:3e59c23c52765951b69ec45ddbbc9403a8761ee6f57253250c6e1536cacc758b", - "sha256:4b4af9f25b49a7be47c0972139e59ec0e8285c371049df1a63b6ca81fdd216a2", - "sha256:504b6981675ace64c28bf4a05a508af5cde526e36492c98916127f5a02354d53", - "sha256:50fca156d718f8ced687a373f9e140c1bb765ca16e3d6f4fe116e3df7c05b2c5", - "sha256:522a11c934ea660ff8953eda090dcd2154d367dec1ae3c540aff9f8a5c109ab4", - "sha256:52df73f14ed99cee84865b95a3d9e044f226320a87af208f068ecc33e0c35b96", - "sha256:595f105710293e76b9dc09f52e0dd896bd064a79346234b521f6b968ffdd8e58", - "sha256:59c26c95975f26e662ca78fdf543d4eeaef70e533a672b4113dd888bd2423caa", - "sha256:5bce0dc147ca85caa5d33debc4f4d65e8e8b5c97c7f9f660f215fa74fc49a321", - "sha256:5eafe2c065df5401ba06821b9a054d9cb2848867f3c59801b5d07a0be3a380ae", - "sha256:5ed3e046ea7b14938112ccd53d91c1539af3e6679b222f9469981e3dac7ba1ce", - "sha256:5fe9ce6c09668063b8447f85d43b8d1c4e5d3d7e92c63173e6180b2ac5d46dd8", - "sha256:648056db9a9fa565d3fa851880f99f45e3f9a771dd3ff3bb0c048ea83fb28194", - "sha256:69361bfdca5468c0488d7017b9b1e5ce769d40b46a9f4a2eed26b78619e9396c", - "sha256:6b0e029353361f1746bac2e4cc19b32f972ec03f0f943b390c4ab3371840aabf", - "sha256:6b88f9386ff1ad91ace19d2a1c0225896e28815ee09fc6a8932fded8cda97c3d", - "sha256:770d015888c2a598b377bd2f663adfd947d78c0124cfe7b959e1ef39f5b13869", - "sha256:7943c414d3a8d9235f5f15c22ace69787c140c80b718dcd57caaade95f7cd93b", - "sha256:7cf5c9458e1e90e3c390c2639f1017a0379a99a94fdfad3a1fd966a2874bba52", - "sha256:7f46acd6a194287b7e41e87957bfe2ad1ad88318d447caf5b090012f2c5bb528", - "sha256:82e6aa28dd46374f72093eda8bcd142f7771ee1eb9d1e223ff0fa7177a96b4a5", - "sha256:835a55b7ca49468aaaac0b217092dfdff370e6c215c9224c52f30daaa735c1c1", - "sha256:84871a243359bb42c12728f04d181a389718710129b36b6aad0fc4655a7647d4", - "sha256:8aacb477dc26797ee089721536a292a664846489c49d3ef9725f992449eda5a8", - "sha256:8e2c45c208c62e955e8256949eb225bd8b66a4c9b6865729a786f2aa79b72e9d", - "sha256:90842933e5d1ff760fae6caca4b2b3edba53ba8f4b71e95dacf2818a2aca06f7", - "sha256:938a9653e1e0c592053f815f7028e41a3062e902095e5a7dc84617c87267ebd5", - "sha256:939677b61f9d72a4fa2a042a5eee2a99a24001a67c13da113b2e30396567db54", - "sha256:9d3c9b50f19704552f23b4eaea1fc082fdd82c63429a6506446cbd8737823da3", - "sha256:a6fe5571784af92b6bc2fda8d1925cccdf24642d49546d3144948a6a1ed58ca5", - "sha256:a78ed8a53a1221393d9637c01870248a6f4ea5b214a59a92a36f18151739452c", - "sha256:ab40e6251c3873d86ea9b30a1ac6d7478c09277b32e14745d0d3c6e76e3c7e29", - "sha256:abf151955990d23f84205286938796c55ff11bbfb4ccfada8c9c83ae6b3c89a3", - "sha256:acef0899fea7492145d2bbaaaec7b345c87753168589cc7faf0afec9afe9b747", - "sha256:b40670ec7e2156d8e57f70aec34a7216407848dfe6c693ef131ddf6e76feb672", - "sha256:b791a3143681a520c0a17e26ae7465f1b6f99461a28019d1a2f425236e6eedb5", - "sha256:b955ed993491f1a5da7f92e98d5dad3c1e14dc175f74517c4e610b1f2456fb11", - "sha256:ba39e9c8627edc56544c8628cc180d88605df3892beeb2b94c9bc857774848ca", - "sha256:bca77a198bb6e69795ef2f09a5f4c12758487f83f33d63acde5f0d4919815768", - "sha256:c3452ea726c76e92f3b9fae4b34a151981a9ec0a4847a627c43d71a15ac32aa6", - "sha256:c46956ed82961e31557b6857a5ca153c67e5476972e5f7190015018760938da2", - "sha256:c7c8b816c2b5af5c8a436df44ca08258fc1a13b449393a91484225fcb7545533", - "sha256:cd73265a9e5ea618014802ab01babf1940cecb90c9762d8b9e7d2cc1e1969ec6", - "sha256:dad46e6f620574b3b4801c68255492e0159d1712271cc99d8bdf35f2043ec266", - "sha256:dc9b311743a78043b26ffaeeb9715dc360335e5517832f5a8e339f8a43581e4d", - "sha256:df822ee7feaaeffb99c1a9e5e608800bd8eda6e5f18f5cfb0dc7eeb2eaa6bbec", - "sha256:e083c285857b78ee21a96ba1eb1b5339733c3563f72980728ca2b08b53826ca5", - "sha256:e5e46b578c0e9db71d04c4b506a2121c0cb371dd89af17a0586ff6769d4c58c1", - "sha256:e99abf0bba688259a496f966211c49a514e65afa9b3073a1fcee08856e04425b", - "sha256:ee43080e75fc92bf36219926c8e6de497f9b247301bbf88c5c7593d931426679", - "sha256:f033d80bc6283092613882dfe40419c6a6a1527e04fc69350e87a9df02bbc283", - "sha256:f1088fa100bf46e7b398ffd9904f4808a0612e1d966b4aa43baa535d1b6341eb", - "sha256:f56455b0c2c7cc3b0c584815264461d07b177f903a04481dfc33e08a89f0c26b", - "sha256:f59dfe57bb1ec82ac0698ebfcdb7bcd0e99c255bd637ff613760d5f33e7c81b3", - "sha256:f7217af2e14da0856e082e96ff637f14ae45c10a5714b63c77f26d8884cf1051", - "sha256:f734e38fd8666f53da904c52a23ce517f1b07722118d750405af7e4123933511", - "sha256:f95511dd5d0e05fd9728bac4096319f80615aaef4acbecb35a990afebe953b0e", - "sha256:fdd215b7b7fd4a53994f238d0f46b7ba4ac4c0adb12452beee724ddd0743ae5d", - "sha256:feeb18a801aacb098220e2c3eea59a512362eb408d4afd0c242044c33ad6d542", - "sha256:ff30218887e62209942f91ac1be902cc80cddb86bf00fbc6783b7a43b2bea26f" + "sha256:02594361128f780eecc2a29939d9dfc870e17b45178a867bf61a11b2a4367277", + "sha256:03f2645adbe17f274444953bdea69f8327e9d278d961d85657cb0d06864814c1", + "sha256:074d1bff0163e107e97bd48cad9f928fa5a3eb4b9d33366137ffce08a63e37fe", + "sha256:0912b8a8fadeb32ff67a3ed44249448c20148397c1ed905d5dac185b4ca547bb", + "sha256:0d277cfb304118079e7044aad0b76685d30ecb86f83a0711fc5fb257ffe832ca", + "sha256:0d93400c18596b7dc4794d48a63fb361b01a0d8eb39f28800dc900c8fbdaca91", + "sha256:123dd5b16b75b2962d0fff566effb7a065e33cd4538c1692fb31c3bda2bfb972", + "sha256:17e997105bd1a260850272bfb50e2a328e029c941c2708170d9d978d5a30ad9a", + "sha256:18a01eba2574fb9edd5f6e5fb25f66e6ce061da5dab5db75e13fe1558142e0a3", + "sha256:1923a5c44061bffd5eebeef58cecf68096e35003907d8201a4d0d6f6e387ccaa", + "sha256:1942244f00baaacaa8155eca94dbd9e8cc7017deb69b75ef67c78e89fdad3c77", + "sha256:1b2c16a919d936ca87a3c5f0e43af12a89a3ce7ccbce59a2d6784caba945b68b", + "sha256:1c19de68896747a2aa6257ae4cf6ef59d73917a36a35ee9d0a6f48cff0f94db8", + "sha256:1e72589da4c90337837fdfe2026ae1952c0f4a6e793adbbfbdd40efed7c63599", + "sha256:22c0a23a3b3138a6bf76fc553789cb1a703836da86b0f306b6f0dc1617398abc", + "sha256:2c634a3207a5445be65536d38c13791904fda0748b9eabf908d3fe86a52941cf", + "sha256:2d21ac12dc943c68135ff858c3a989f2194a709e6e10b4c8977d7fcd67dfd511", + "sha256:2f1f1c75c395991ce9c94d3e4aa96e5c59c8356a15b1c9231e783865e2772699", + "sha256:305be5ff2081fa1d283a76113b8df7a14c10d75602a38d9f012935df20731487", + "sha256:33e6bc4bab477c772a541f76cd91e11ccb6d2efa2b8d7d7883591dfb523e5987", + "sha256:349ef8a73a7c5665cca65c88ab24abe75447e28aa3bc4c93ea5093474dfdf0ff", + "sha256:380f926b51b92d02a34119d072f178d80bbda334d1a7e10fa22d467a66e494db", + "sha256:38172a70005252b6893088c0f5e8a47d173df7cc2b2bd88650957eb84fcf5022", + "sha256:391cc3a9c1527e424c6865e087897e766a917f15dddb360174a70467572ac6ce", + "sha256:3a1c32a19ee6bbde02f1cb189e13a71b321256cc1d431196a9f824050b160d5a", + "sha256:4120d7fefa1e2d8fb6f650b11489710091788de554e2b6f8347c7a20ceb003f5", + "sha256:424ae21498790e12eb759040bbb504e5e280cab64693d14775c54269fd1d2bb7", + "sha256:44b324a6b8376a23e6ba25d368726ee3bc281e6ab306db80b5819999c737d820", + "sha256:4790f0e15f00058f7599dab2b206d3049d7ac464dc2e5eae0e93fa18aee9e7bf", + "sha256:4aff049b5e629ef9b3e9e617fa6e2dfeda1bf87e01bcfecaf3949af9e210105e", + "sha256:4b38b1570242fbab8d86a84128fb5b5234a2f70c2e32f3070143a6d94bc854cf", + "sha256:4d46c7b4173415d8e583045fbc4daa48b40e31b19ce595b8d92cf639396c15d5", + "sha256:4f1c9866ccf48a6df2b06823e6ae80573529f2af3a0992ec4fe75b1a510df8a6", + "sha256:4f7acae3cf1a2a2361ec4c8e787eaaa86a94171d2417aae53c0cca6ca3118ff6", + "sha256:54d9ddea424cd19d3ff6128601a4a4d23d54a421f9b4c0fff740505813739a91", + "sha256:58718e181c56a3c02d25b09d4115eb02aafe1a732ce5714ab70326d9776457c3", + "sha256:5ede29d91a40ba22ac1b922ef510aab871652f6c88ef60b9dcdf773c6d32ad7a", + "sha256:61645818edd40cc6f455b851277a21bf420ce347baa0b86eaa41d51ef58ba23d", + "sha256:66bf9234e08fe561dccd62083bf67400bdbf1c67ba9efdc3dac03650e97c6088", + "sha256:673f988370f5954df96cc31fd99c7312a3af0a97f09e407399f61583f30da9bc", + "sha256:676f94c5480d8eefd97c0c7e3953315e4d8c2b71f3b49539beb2aa676c58272f", + "sha256:6c225286f2b13bab5987425558baa5cbdb2bc925b2998038fa028245ef421e75", + "sha256:7384d0b87d4635ec38db9263e6a3f1eb609e2e06087f0aa7f63b76833737b471", + "sha256:7e2fe37ac654032db1f3499fe56e77190282534810e2a8e833141a021faaab0e", + "sha256:7f2bfc0032a00405d4af2ba27f3c429e851d04fad1e5ceee4080a1c570476697", + "sha256:7f6b639c36734eaa80a6c152a238242bedcee9b953f23bb887e9102976343092", + "sha256:814375093edae5f1cb31e3407997cf3eacefb9010f96df10d64829362ae2df69", + "sha256:8224f98be68a84b19f48e0bdc14224b5a71339aff3a27df69989fa47d01296f3", + "sha256:898715cf566ec2869d5cb4d5fb4be408964704c46c96b4be267442d265390f32", + "sha256:8989f46f3d7ef79585e98fa991e6ded55d2f48ae56d2c9fa5e491a6e4effb589", + "sha256:8ba01ebc6175e1e6b7275c907a3a36be48a2d487549b656aa90c8a910d9f3178", + "sha256:8c5c6fa16412b35999320f5c9690c0f554392dc222c04e559217e0f9ae244b92", + "sha256:8c6a4e5e40156d72a40241a25cc226051c0a8d816610097a8e8f517aeacd59a2", + "sha256:8eaf44ccbc4e35762683078b72bf293f476561d8b68ec8a64f98cf32811c323e", + "sha256:8fb4fc029e135859f533025bc82047334e24b0d489e75513144f25408ecaf058", + "sha256:9093a81e18c45227eebe4c16124ebf3e0d893830c6aca7cc310bfca8fe59d857", + "sha256:94c4381ffba9cc508b37d2e536b418d5ea9cfdc2848b9a7fea6aebad4ec6aac1", + "sha256:94fac7c6e77ccb1ca91e9eb4cb0ac0270b9fb9b289738654120ba8cebb1189c6", + "sha256:95c4dc6f61d610bc0ee1edc6f29d993f10febfe5b76bb470b486d90bbece6b22", + "sha256:975218eee0e6d24eb336d0328c768ebc5d617609affaca5dbbd6dd1984f16ed0", + "sha256:ad146dae5977c4dd435eb31373b3fe9b0b1bf26858c6fc452bf6af394067e10b", + "sha256:afe16a84498441d05e9189a15900640a2d2b5e76cf4efe8cbb088ab4f112ee57", + "sha256:b1c43eb1ab7cbf411b8e387dc169acb31f0ca0d8c09ba63f9eac67829585b44f", + "sha256:b90078989ef3fc45cf9221d3859acd1108af7560c52397ff4ace8ad7052a132e", + "sha256:b98e698dc34966e5976e10bbca6d26d6724e6bdea853c7c10162a3235aba6e16", + "sha256:ba5a8b74c2a8af7d862399cdedce1533642fa727def0b8c3e3e02fcb52dca1b1", + "sha256:c31ad0c0c507894e3eaa843415841995bf8de4d6b2d24c6e33099f4bc9fc0d4f", + "sha256:c3b9162bab7e42f21243effc822652dc5bb5e8ff42a4eb62fe7782bcbcdfacf6", + "sha256:c58c6837a2c2a7cf3133983e64173aec11f9c2cd8e87ec2fdc16ce727bcf1a04", + "sha256:c83f7a107abb89a227d6c454c613e7606c12a42b9a4ca9c5d7dad25d47c776ae", + "sha256:cde98f323d6bf161041e7627a5fd763f9fd829bcfcd089804a5fdce7bb6e1b7d", + "sha256:ce91db90dbf37bb6fa0997f26574107e1b9d5ff939315247b7e615baa8ec313b", + "sha256:d00f3c5e0d764a5c9aa5a62d99728c56d455310bcc288a79cab10157b3af426f", + "sha256:d17920f18e6ee090bdd3d0bfffd769d9f2cb4c8ffde3eb203777a3895c128862", + "sha256:d55f011da0a843c3d3df2c2cf4e537b8070a419f891c930245f05d329c4b0689", + "sha256:d742c36ed44f2798c8d3f4bc511f479b9ceef2b93f348671184139e7d708042c", + "sha256:d9a487ef090aea982d748b1b0d74fe7c3950b109df967630a20584f9a99c0683", + "sha256:d9ef084e3dc690ad50137cc05831c52b6ca428096e6deb3c43e95827f531d5ef", + "sha256:da452c2c322e9ce0cfef392e469a26d63d42860f829026a63374fde6b5c5876f", + "sha256:dc4826823121783dccc0871e3f405417ac116055bf184ac04c36f98b75aacd12", + "sha256:de7a5299827253023c55ea549444e058c0eb496931fa05d693b95140a947cb73", + "sha256:e04a1f2a65ad2f93aa20f9ff9f1b672bf912413e5547f60749fa2ef8a644e061", + "sha256:e1ca1ef5ba129718a8fc827b0867f6aa4e893c56eb00003b7367f8a733a9b072", + "sha256:ee40b40aa753d844162dcc80d0fe256b87cba48ca0054f64e68000453caead11", + "sha256:f071854b47d39591ce9a17981c46790acb30518e2f83dfca8db2dfa091178691", + "sha256:f29930bc2921cef955ba39a3ff87d2c4398a0394ae217f41cb02d5c26c8b1b77", + "sha256:f489a2c9e6455d87eabf907ac0b7d230a9786be43fbe884ad184ddf9e9c1e385", + "sha256:f5bf3ead3cb66ab990ee2561373b009db5bc0e857549b6c9ba84b20bc462e172", + "sha256:f6f18898ace4bcd2d41a122916475344a87f1dfdec626ecde9ee802a711bc569", + "sha256:f8112fb501b1e0567a1251a2fd0747baae60a4ab325a871e975b7bb67e59221f", + "sha256:fd31f176429cecbc1ba499d4aba31aaccfea488f418d60376b911269d3b883c5" ], "markers": "python_version >= '3.8'", - "version": "==3.9.3" + "version": "==3.10.5" }, "aiosignal": { "hashes": [ @@ -108,47 +131,47 @@ }, "annotated-types": { "hashes": [ - "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43", - "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d" + "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", + "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89" ], "markers": "python_version >= '3.8'", - "version": "==0.6.0" + "version": "==0.7.0" }, "ape-etherscan": { "hashes": [ - "sha256:2e46597d02119b6c04b32e177d6d1200c3e29c90b5642d365881721734d72ea7", - "sha256:521ec3eb742410b5fc1a17cc5e31c254db077f672ba3497ec12db1a04c369e12" + "sha256:3ceeb1800591880df3fd9654d27545b0a48374341f71663bce0a8f374cee09bd", + "sha256:84b6d0066f48db11e71571bcba5d27807a4f8b3590e20ee9e39232e4b53774e9" ], "index": "pypi", - "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.7.2" + "markers": "python_version >= '3.9' and python_version < '4'", + "version": "==0.8.2" }, "ape-infura": { "hashes": [ - "sha256:47524b3ec31132b19566edffb019fde16afd67ce063f0bbd7cd53d530c264edf", - "sha256:e2e7114e068a31e78148aa8de0113c3749e580e6c05475028f09481276671004" + "sha256:6aa645c74b1e7ddd378777f7ebbbcf45264316abc683765f695d45420feaa1e4", + "sha256:daae707963b2d59eddcb460fdb264c087bd7eea5564f59387c0b2723fa0cbaf3" ], "index": "pypi", - "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.7.2" + "markers": "python_version >= '3.9' and python_version < '4'", + "version": "==0.8.1" }, "ape-polygon": { "hashes": [ - "sha256:c02bc5b4506a88809ef06ad6cd2936c96255de1325de16788ac94917a9345531", - "sha256:c14f44efbb5aef2f42a82ad0b5c445cf255031a52e58baccfb03ed6e9e11f0c2" + "sha256:9380a3f71d0618eb5c1528cf04ebb366899a0bf3bc3c37de12af2e12d9c37a66", + "sha256:da79f68e464a984b8c548b75da145c1e5701ee9dad3aae42ac65526cda2155c7" ], "index": "pypi", - "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.7.2" + "markers": "python_version >= '3.9' and python_version < '4'", + "version": "==0.8.0" }, "ape-solidity": { "hashes": [ - "sha256:1b64e494482ad6ff4d60c4d7ec76377f36dcf68970576f1345d18203db190a6d", - "sha256:57588d88d10bd8097d24d0c9c0c1e63cf3ece3b0cd5c455381d9a45d6e8f51f2" + "sha256:6ef836850e402777d8f14093d40db076467c16f3b385dfb24578bfdfe996a073", + "sha256:782cb064f35c906e7f5bf46526de67853b1a21d344b72f5610a544e541187ec4" ], "index": "pypi", - "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.7.1" + "markers": "python_version >= '3.9' and python_version < '4'", + "version": "==0.8.3" }, "asn1crypto": { "hashes": [ @@ -166,11 +189,11 @@ }, "attrs": { "hashes": [ - "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30", - "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1" + "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" ], "markers": "python_version >= '3.7'", - "version": "==23.2.0" + "version": "==24.2.0" }, "base58": { "hashes": [ @@ -309,32 +332,32 @@ }, "black": { "hashes": [ - "sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f", - "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93", - "sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11", - "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0", - "sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9", - "sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5", - "sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213", - "sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d", - "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7", - "sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837", - "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f", - "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395", - "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995", - "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f", - "sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597", - "sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959", - "sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5", - "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb", - "sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4", - "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7", - "sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd", - "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7" + "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6", + "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e", + "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f", + "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018", + "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e", + "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd", + "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4", + "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed", + "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2", + "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42", + "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af", + "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb", + "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368", + "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb", + "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af", + "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed", + "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47", + "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2", + "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a", + "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c", + "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920", + "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==24.3.0" + "version": "==24.8.0" }, "bump2version": { "hashes": [ @@ -354,77 +377,92 @@ }, "cachetools": { "hashes": [ - "sha256:0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945", - "sha256:ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105" + "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292", + "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a" ], "markers": "python_version >= '3.7'", - "version": "==5.3.3" + "version": "==5.5.0" }, "certifi": { "hashes": [ - "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f", - "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1" + "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b", + "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90" ], "markers": "python_version >= '3.6'", - "version": "==2024.2.2" + "version": "==2024.7.4" }, "cffi": { "hashes": [ - "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc", - "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a", - "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", - "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab", - "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520", - "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36", - "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743", - "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8", - "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed", - "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684", - "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", - "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324", - "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d", - "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", - "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e", - "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088", - "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000", - "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7", - "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", - "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673", - "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c", - "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe", - "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2", - "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", - "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8", - "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a", - "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0", - "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b", - "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896", - "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e", - "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9", - "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2", - "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b", - "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6", - "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", - "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f", - "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", - "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4", - "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", - "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", - "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba", - "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872", - "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", - "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", - "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1", - "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", - "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969", - "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b", - "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4", - "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", - "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", - "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" - ], - "markers": "platform_python_implementation != 'PyPy'", - "version": "==1.16.0" + "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f", + "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab", + "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499", + "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058", + "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693", + "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb", + "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377", + "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885", + "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2", + "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401", + "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4", + "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b", + "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59", + "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f", + "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c", + "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555", + "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa", + "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424", + "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb", + "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2", + "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8", + "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e", + "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9", + "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82", + "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828", + "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759", + "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc", + "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118", + "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf", + "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932", + "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a", + "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29", + "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206", + "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2", + "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c", + "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c", + "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0", + "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a", + "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195", + "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6", + "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9", + "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc", + "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb", + "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0", + "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7", + "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb", + "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a", + "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492", + "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720", + "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42", + "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7", + "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d", + "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d", + "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb", + "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4", + "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2", + "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b", + "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8", + "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e", + "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204", + "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3", + "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150", + "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4", + "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76", + "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e", + "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb", + "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91" + ], + "markers": "python_version >= '3.8'", + "version": "==1.17.0" }, "cfgv": { "hashes": [ @@ -538,6 +576,96 @@ "markers": "python_full_version >= '3.7.0'", "version": "==3.3.2" }, + "ckzg": { + "hashes": [ + "sha256:02f9cc3e38b3702ec5895a1ebf927fd02b8f5c2f93c7cb9e438581b5b74472c8", + "sha256:052d302058d72431acc9dd4a9c76854c8dfce10c698deef5252884e32a1ac7bf", + "sha256:071dc7fc179316ce1bfabaa056156e4e84f312c4560ab7b9529a3b9a84019df3", + "sha256:09043738b029bdf4fdc82041b395cfc6f5b5cf63435e5d4d685d24fd14c834d3", + "sha256:0d7600ce7a73ac41d348712d0c1fe5e4cb6caa329377064cfa3a6fd8fbffb410", + "sha256:0e816af31951b5e94e6bc069f21fe783427c190526e0437e16c4488a34ddcacc", + "sha256:13a8cccf0070a29bc01493179db2e61220ee1a6cb17f8ea41c68a2f043ace87f", + "sha256:145ae31c3d499d1950567bd636dc5b24292b600296b9deb5523bc20d8f7b51c3", + "sha256:155eacc237cb28c9eafda1c47a89e6e4550f1c2e711f2eee21e0bb2f4df75546", + "sha256:19893ee7bd7da8688382cb134cb9ee7bce5c38e3a9386e3ed99bb010487d2d17", + "sha256:1ca8a256cdd56d06bc5ef24caac64845240dbabca402c5a1966d519b2514b4ec", + "sha256:1ec775649daade1b93041aac9c1660c2ad9828b57ccd2eeb5a3074d8f05e544a", + "sha256:1ed8c99cd3d9af596470e0481fd58931007288951719bad026f0dd486dd0ec11", + "sha256:2433a89af4158beddebbdd66fae95b34d40f2467bee8dc40df0333de5e616b5f", + "sha256:27261672154cbd477d84d289845b0022fbdbe2ba45b7a2a2051c345fa04c8334", + "sha256:272adfe471380d10e4a0e1639d877e504555079a60233dd82249c799b15be81e", + "sha256:27be65c88d5d773a30e6f198719cefede7e25cad807384c3d65a09c11616fc9d", + "sha256:283a40c625222560fda3dcb912b666f7d50f9502587b73c4358979f519f1c961", + "sha256:331d49bc72430a3f85ea6ecb55a0d0d65f66a21d61af5783b465906a741366d5", + "sha256:3594470134eda7adf2813ad3f1da55ced98c8a393262f47ce3890c5afa05b23e", + "sha256:3c0afa232d2312e3101aaddb6971b486b0038a0f9171500bc23143f5749eff55", + "sha256:3cdaad2745425d7708e76e8e56a52fdaf5c5cc1cfefd5129d24ff8dbe06a012d", + "sha256:3d2ccd68b0743e20e853e31a08da490a8d38c7f12b9a0c4ee63ef5afa0dc2427", + "sha256:4295acc380f8d42ebea4a4a0a68c424a322bb335a33bad05c72ead8cbb28d118", + "sha256:489763ad92e2175fb6ab455411f03ec104c630470d483e11578bf2e00608f283", + "sha256:4f86cef801d7b0838e17b6ee2f2c9e747447d91ad1220a701baccdf7ef11a3c8", + "sha256:50ca4af4e2f1a1e8b0a7e97b3aef39dedbb0d52d90866ece424f13f8df1b5972", + "sha256:54d71e5ca416bd51c543f9f51e426e6792f8a0280b83aef92faad1b826f401ea", + "sha256:5b29889f5bc5db530f766871c0ff4133e7270ecf63aaa3ca756d3b2731980802", + "sha256:5e86627bc33bc63b8de869d7d5bfa9868619a4f3e4e7082103935c52f56c66b5", + "sha256:5f029822d27c52b9c3dbe5706408b099da779f10929be0422a09a34aa026a872", + "sha256:611c03a170f0f746180eeb0cc28cdc6f954561b8eb9013605a046de86520ee6b", + "sha256:633110a9431231664be2ad32baf10971547f18289d33967654581b9ae9c94a7e", + "sha256:651ba33ee2d7fefff14ca519a72996b733402f8b043fbfef12d5fe2a442d86d8", + "sha256:65311e72780105f239d1d66512629a9f468b7c9f2609b8567fc68963ac638ef9", + "sha256:69e1376284e9a5094d7c4d3e552202d6b32a67c5acc461b0b35718d8ec5c7363", + "sha256:6ea91b0236384f93ad1df01d530672f09e254bd8c3cf097ebf486aebb97f6c8c", + "sha256:74d87eafe561d4bfb544a4f3419d26c56ad7de00f39789ef0fdb09515544d12e", + "sha256:75b2f0ab341f3c33702ce64e1c101116c7462a25686d0b1a0193ca654ad4f96e", + "sha256:7e8d534ddbe785c44cf1cd62ee32d78b4310d66dd70e42851f5468af655b81f5", + "sha256:7e9dc671b0a307ea65d0a216ca496c272dd3c1ed890ddc2a306da49b0d8ffc83", + "sha256:88728fbd410d61bd5d655ac50b842714c38bc34ff717f73592132d28911fc88e", + "sha256:895044069de7010be6c7ee703f03fd7548267a0823cf60b9dd26ec50267dd9e8", + "sha256:8bca5e7c38d913fabc24ad09545f78ba23cfc13e1ac8250644231729ca908549", + "sha256:94f7eb080c00c0ccbd4fafad69f0b35b624a6a229a28e11d365b60b58a072832", + "sha256:96e8281b6d58cf91b9559e1bd38132161d63467500838753364c68e825df2e2c", + "sha256:97c27153fab853f017fed159333b27beeb2e0da834c92c9ecdc26d0e5c3983b3", + "sha256:99694917eb6decefc0d330d9887a89ea770824b2fa76eb830bab5fe57ea5c20c", + "sha256:9d3d049186c9966e9140de39a9979d7adcfe22f8b02d2852c94d3c363235cc18", + "sha256:a2f59da9cb82b6a4be615f2561a255731eededa7ecd6ba4b2f2dedfc918ef137", + "sha256:a66a690d3d1801085d11de6825df47a99b465ff32dbe90be4a3c9f43c577da96", + "sha256:a9ac729c5c6f3d2c030c0bc8c9e10edc253e36f002cfe227292035009965d349", + "sha256:ab29fc61fbd32096b82b02e6b18ae0d7423048d3540b7b90805b16ae10bdb769", + "sha256:ab6a2ba2706b5eaa1ce6bc7c4e72970bf9587e2e0e482e5fb4df1996bccb7a40", + "sha256:abc5a27284db479ead4c053ff086d6e222914f1b0aa08b80eabfa116dbed4f7a", + "sha256:b26799907257c39471cb3665f66f7630797140131606085c2c94a7094ab6ddf2", + "sha256:b874167de1d6de72890a2ad5bd9aa7adbddc41c3409923b59cf4ef27f83f79da", + "sha256:bcc0d2031fcabc4be37e9e602c926ef9347238d2f58c1b07e0c147f60b9e760b", + "sha256:bdd082bc0f2a595e3546658ecbe1ff78fe65b0ab7e619a8197a62d94f46b5b46", + "sha256:bfcc70fb76b3d36125d646110d5001f2aa89c1c09ff5537a4550cdb7951f44d4", + "sha256:c1528bc2b95aac6d184a90b023602c40d7b11b577235848c1b5593c00cf51d37", + "sha256:c16d5ee1ddbbbad0367ff970b3ec9f6d1879e9f928023beda59ae9e16ad99e4c", + "sha256:c3e1a9a72695e777497e95bb2213316a1138f82d1bb5d67b9c029a522d24908e", + "sha256:c49d5dc0918ad912777720035f9820bdbb6c7e7d1898e12506d44ab3c938d525", + "sha256:c67064bbbeba1a6892c9c80b3d0c2a540ff48a5ca5356fdb2a8d998b264e43e6", + "sha256:c732cda00c76b326f39ae97edfc6773dd231b7c77288b38282584a7aee77c3a7", + "sha256:c7e039800e50592580171830e788ef4a1d6bb54300d074ae9f9119e92aefc568", + "sha256:c915e1f2ef51657c3255d8b1e2aea6e0b93348ae316b2b79eaadfb17ad8f514e", + "sha256:d31d7fbe396a51f43375e38c31bc3a96c7996882582f95f3fcfd54acfa7b3ce6", + "sha256:d81e68e84d80084da298471ad5eaddfcc1cf73545cb24e9453550c8186870982", + "sha256:d87a121ace8feb6c9386f247e7e36ef55e584fc8a6b1bc2c60757a59c1efe364", + "sha256:d95e97a0d0f7758119bb905fb5688222b1556de465035614883c42fe4a047d1f", + "sha256:d9e030af7d6acdcb356fddfb095048bc8e880fe4cd70ff2206c64f33bf384a0d", + "sha256:da2d9988781a09a4577ee7ea8f51fe4a94b4422789a523164f5ba3118566ad41", + "sha256:e3cb2f8c767aee57e88944f90848e8689ce43993b9ff21589cfb97a562208fe7", + "sha256:e43741e7453262aa3ba1754623d7864250b33751bd850dd548e3ed6bd1911093", + "sha256:e6bd5006cb3e802744309450183087a6594d50554814eee19065f7064dff7b05", + "sha256:edaea8fb50b01c6c19768d9305ad365639a8cd804754277d5108dcae4808f00b", + "sha256:f37be0054ebb4b8ac6e6d5267290b239b09e7ddc611776051b4c3c4032d161ba", + "sha256:f439c9e5297ae29a700f6d55de1525e2e295dbbb7366f0974c8702fca9e536b9", + "sha256:f769eb2e1056ca396462460079f6849c778f58884bb24b638ff7028dd2120b65", + "sha256:f876783ec654b7b9525503c2a0a1b086e5d4f52ff65cac7e8747769b0c2e5468", + "sha256:fb9d0b09ca1bdb5955b626d6645f811424ae0fcab47699a1a938a3ce0438c25f", + "sha256:fca227ce0ce3427254a113fdb3aed5ecd99c1fc670cb0c60cc8a2154793678e4", + "sha256:fea56f39e48b60c1ff6f751c47489e353d1bd95cae65c429cf5f87735d794431" + ], + "version": "==1.0.2" + }, "click": { "hashes": [ "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", @@ -548,53 +676,60 @@ }, "coincurve": { "hashes": [ - "sha256:1356308449462275546ec5b8b2bf2ef8ba46a031dd3f7de29ea8840046b50412", - "sha256:19a9c10847590baca83191e62a6d7cff3d9853edc42235c44dff0548a7d0a14e", - "sha256:1ca607dfae705b90d5060b57cdf73e79f7c949e272cf540398bb4c10d1af4956", - "sha256:1eef347d2446a78dd249dfbf298d4b053d3ca00e6514e6589107dd5e326d9ac8", - "sha256:2784cb217777bbd247e9090385689da9baf5613d1a5c9c9bd4b22e43d04c1956", - "sha256:2fd44bbb937f28c3b7eec72ae4d090ab8fd6894c43b62b38b48d3a3623ca9066", - "sha256:2fe158bde4f45f08d68fc373d78fecd119d3f4179b83d57a7c8541f070e87c4f", - "sha256:346b44755ae505d2f64f9880a294d5fcad4d3fd8a315296dd39c3509f1dc555d", - "sha256:37045959e9b15902704e342e2a99e84df85021be7368c7d9c59f7ff7fb6aaf95", - "sha256:3de1dca6a657060575f9290b52dcf825f1e6c38a07dfc6a3535152e4846fbf2b", - "sha256:3e5dfad921fc0de04f7117edae5d81639ec76bae3d6d1fe571eb394be85656be", - "sha256:4194222745f1f5ca224e7bf52a9b2710650558e0de1e05f16e23f2b5ffb114a0", - "sha256:4364ef547d82d8075107e6a54e82a81f08a71acaa9722478f3ed3c8a8a042e00", - "sha256:4cc0c380a0a0f6ea1589ab9216059c3ea1c5b153cc283b2b603102de66f75a65", - "sha256:512385b546366889be713d0ea613a805467e99630f57f9379976650129cad752", - "sha256:64ec50fbea52fbb6b7972ae62caf2ae18888e3a99e1fe095073d5d09ff5f87fa", - "sha256:662cc62d743466efc0cf2cc11cbfd81f1ef4d16cba9d554ff81dacd7989e6af5", - "sha256:6f25c9360c6d770559073333553a695c42b051576a44b8276c07cfc74eacf8df", - "sha256:744f394e6ce9db96eb2dd374448e56c497d99da52cba8b1ccecf410dc004552f", - "sha256:75d971c3ba7171b0711652684f8cc471594fecb94915409080fbc8af6d1332e7", - "sha256:7bae24f65cf5121ec708bb29004473a4c157eec8c2569067b02015bf729aae8c", - "sha256:7d2449cf35c6d1a4edbd73b58e7db1c29934d0b1750569bb9725dfb591c08510", - "sha256:825771d13023335d372f8e7f9f212f44527a00b0845e2f35da2e53ac3d3bc320", - "sha256:88adad6a06618a9ce647758a2a303b399982b3360e68efabd9a772497894ddb3", - "sha256:8af61945ba74ba6b498fcd05a21368d01b6c4bf7cda896791876aee5aa830acc", - "sha256:9472600e6bc32ec27efbec906e15da822ae345091d2b0f3c19b42a90041ae077", - "sha256:976be3a67d1d3940a53aa05513d8a7124432bfb7cd8d2eb0ea5ba3c2e06fd940", - "sha256:992897fe0b37634aaf76b2f94933d7011f88725b436249e64f1f809110d39d1c", - "sha256:9a31556af9199b5a84a787a17578fc60eff2edf87ba1b68b5a2d7bf5795b556c", - "sha256:a5ea7d27168c4f626e03057abfcc5116545d7729ec679d1d542739c441a10d42", - "sha256:a66d4fc6f782ba8fa444c8027548a0314af1ec5176d8fca5122f954bbd9ef4b6", - "sha256:a960657b570a33a0a02089c9e122e0a0deec09e95f79d71fb5256760ceb8eb0c", - "sha256:ab8332db832913e04a112d0c6ec33f99f31a723f67243da9a5501d284a4e003b", - "sha256:b65ecb9ca384db928e7ca24b82632d3ed50d0be84d0f4eafb4b6e8b04940eaf3", - "sha256:b6b07ae76fed2c83970fc694222ada50feab9e404db6b99d3a20e191874acb80", - "sha256:bd0bb1d1f31e42fb4eea96344febf7d2108dffeede6f6b6c9bc0482d0f911c7d", - "sha256:c2191049e66792a1a19ca2e64b4d057be3ef1553105e5b9713a92b740c7809ee", - "sha256:c3a50b9b1f242d14363cd2504cdb72eb8a24012082c691a7ed4cbc81d5b9c01a", - "sha256:ca1b8f986ba24d4c8ea6ae396fc931291dbc44d9e2f5ea830d463e5c45c84357", - "sha256:d56bc6458bd72ef307e805d0ad4c686fff94b4ae8340b7998c954b86d2af8ee6", - "sha256:d8769eec71e6881f2eb0efd37604eca40384bd92f055a413fe5156787fc2733b", - "sha256:ef0dbb63c0c55a86ef320d9a4a0ba08782ed07e741f2c1900309b2d9a35116be", - "sha256:f6f4f1eebcdc8037242b90ab1255fc398456dd8e383718485f7716228fa5e8f9" + "sha256:0530b9dd02fc6f6c2916716974b79bdab874227f560c422801ade290e3fc5013", + "sha256:0ff1f3b81330db5092c24da2102e4fcba5094f14945b3eb40746456ceabdd6d9", + "sha256:11a47083a0b7092d3eb50929f74ffd947c4a5e7035796b81310ea85289088c7a", + "sha256:13335c19c7e5f36eaba2a53c68073d981980d7dc7abfee68d29f2da887ccd24e", + "sha256:1ccc3e4db55abf3fc0e604a187fdb05f0702bc5952e503d9a75f4ae6eeb4cb3a", + "sha256:1ffbdfef6a6d147988eabaed681287a9a7e6ba45ecc0a8b94ba62ad0a7656d97", + "sha256:22d70dd55d13fd427418eb41c20fde0a20a5e5f016e2b1bb94710701e759e7e0", + "sha256:33d7f6ebd90fcc550f819f7f2cce2af525c342aac07f0ccda46ad8956ad9d99b", + "sha256:3657bb5ed0baf1cf8cf356e7d44aa90a7902cc3dd4a435c6d4d0bed0553ad4f7", + "sha256:4155759f071375699282e03b3d95fb473ee05c022641c077533e0d906311e57a", + "sha256:44087d1126d43925bf9a2391ce5601bf30ce0dba4466c239172dc43226696018", + "sha256:46f18d481eaae72c169f334cde1fd22011a884e0c9c6adc3fdc1fd13df8236a3", + "sha256:4870047704cddaae7f0266a549c927407c2ba0ec92d689e3d2b511736812a905", + "sha256:4af57bdadd2e64d117dd0b33cfefe76e90c7a6c496a7b034fc65fd01ec249b15", + "sha256:4df4416a6c0370d777aa725a25b14b04e45aa228da1251c258ff91444643f688", + "sha256:4e9e548db77f4ea34c0d748dddefc698adb0ee3fab23ed19f80fb2118dac70f6", + "sha256:52a67bfddbd6224dfa42085c88ad176559801b57d6a8bd30d92ee040de88b7b3", + "sha256:566bc5986debdf8572b6be824fd4de03d533c49f3de778e29f69017ae3fe82d8", + "sha256:572083ccce6c7b514d482f25f394368f4ae888f478bd0b067519d33160ea2fcc", + "sha256:594b840fc25d74118407edbbbc754b815f1bba9759dbf4f67f1c2b78396df2d3", + "sha256:5ccf0ba38b0f307a9b3ce28933f6c71dc12ef3a0985712ca09f48591afd597c8", + "sha256:61e951b1d695b62376f60519a84c4facaf756eeb9c5aff975bea0942833f185d", + "sha256:763c6122dd7d5e7a81c86414ce360dbe9a2d4afa1ca6c853ee03d63820b3d0c5", + "sha256:7eacc7944ddf9e2b7448ecbe84753841ab9874b8c332a4f5cc3b2f184db9f4a2", + "sha256:7fbfb8d16cf2bea2cf48fc5246d4cb0a06607d73bb5c57c007c9aed7509f855e", + "sha256:81ce41263517b0a9f43cd570c87720b3c13324929584fa28d2e4095969b6015d", + "sha256:82f7de97694d9343f26bd1c8e081b168e5f525894c12445548ce458af227f536", + "sha256:872419e404300302e938849b6b92a196fabdad651060b559dc310e52f8392829", + "sha256:8cdbf0da0e0809366fdfff236b7eb6e663669c7b1f46361a4c4d05f5b7e94c57", + "sha256:9add43c4807f0c17a940ce4076334c28f51d09c145cd478400e89dcfb83fb59d", + "sha256:9de1ec57f43c3526bc462be58fb97910dc1fdd5acab6c71eda9f9719a5bd7489", + "sha256:a26437b7cbde13fb6e09261610b788ca2a0ca2195c62030afd1e1e0d1a62e035", + "sha256:a6f007c44c726b5c0b3724093c0d4fb8e294f6b6869beb02d7473b21777473a3", + "sha256:ac8335b1658a2ef5b3eb66d52647742fe8c6f413ad5b9d5310d7ea6d8060d40f", + "sha256:bcc94cceea6ec8863815134083e6221a034b1ecef822d0277cf6ad2e70009b7f", + "sha256:c293c095dc690178b822cadaaeb81de3cc0d28f8bdf8216ed23551dcce153a26", + "sha256:c2baa26b1aad1947ca07b3aa9e6a98940c5141c6bdd0f9b44d89e36da7282ffa", + "sha256:c7ac025e485a0229fd5394e0bf6b4a75f8a4f6cee0dcf6f0b01a2ef05c5210ff", + "sha256:d3e2f21957ada0e1742edbde117bb41758fa8691b69c8d186c23e9e522ea71cd", + "sha256:d559b22828638390118cae9372a1bb6f6594f5584c311deb1de6a83163a0919b", + "sha256:d72222b4ecd3952e8ffcbf59bc7e0d1b181161ba170b60e5c8e1f359a43bbe7e", + "sha256:df9ff9b17a1d27271bf476cf3fa92df4c151663b11a55d8cea838b8f88d83624", + "sha256:e46e3f1c21b3330857bcb1a3a5b942f645c8bce912a8a2b252216f34acfe4195", + "sha256:e905b4b084b4f3b61e5a5d58ac2632fd1d07b7b13b4c6d778335a6ca1dafd7a3", + "sha256:eacf9c0ce8739c84549a89c083b1f3526c8780b84517ee75d6b43d276e55f8a0", + "sha256:ed51f8bba35e6c7676ad65539c3dbc35acf014fc402101fa24f6b0a15a74ab9e", + "sha256:ee5bc78a31a2f1370baf28aaff3949bc48f940a12b0359d1cd2c4115742874e6", + "sha256:f00c361c356bcea386d47a191bb8ac60429f4b51c188966a201bfecaf306ff7f", + "sha256:f2895d032e281c4e747947aae4bcfeef7c57eabfd9be22886c0ca4e1365c7c1f", + "sha256:f4d70283168e146f025005c15406086513d5d35e89a60cf4326025930d45013a" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==19.0.1" + "version": "==20.0.0" }, "colorama": { "hashes": [ @@ -606,42 +741,37 @@ }, "cryptography": { "hashes": [ - "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee", - "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576", - "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d", - "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30", - "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413", - "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb", - "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da", - "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4", - "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd", - "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc", - "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8", - "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1", - "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc", - "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e", - "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8", - "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940", - "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400", - "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7", - "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16", - "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278", - "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74", - "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec", - "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1", - "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2", - "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c", - "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922", - "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a", - "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6", - "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1", - "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e", - "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac", - "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7" + "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709", + "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069", + "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2", + "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b", + "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e", + "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70", + "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778", + "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22", + "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895", + "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf", + "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431", + "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f", + "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947", + "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74", + "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc", + "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66", + "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66", + "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf", + "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f", + "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5", + "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e", + "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f", + "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55", + "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1", + "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47", + "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5", + "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0" ], "index": "pypi", "markers": "python_version >= '3.7'", - "version": "==42.0.5" + "version": "==43.0.0" }, "cytoolz": { "hashes": [ @@ -769,14 +899,6 @@ "markers": "python_version >= '3.5'", "version": "==5.1.1" }, - "deprecated": { - "hashes": [ - "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c", - "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.2.14" - }, "distlib": { "hashes": [ "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784", @@ -786,44 +908,44 @@ }, "eip712": { "hashes": [ - "sha256:19d9abdb4b0ffb97f12a68addc2bbcdb2f0a2da17bc038a22c77b42353de1ecd", - "sha256:e69760414523f60328279620776549a17ff72f89974688710d3467ae08717070" + "sha256:2d055fd6f14fffe338b9fba27935e75a9133f7e4417ea9b8331995c2ef58f3b6", + "sha256:a722400d8f72650b8ae8af3593894de35dfa6d158984e8bff933008e9710013f" ], "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.2.4" + "version": "==0.2.7" }, "eth-abi": { "hashes": [ - "sha256:60d88788d53725794cdb07c0f0bb0df2a31a6e1ad19644313fe6117ac24eeeb0", - "sha256:abd83410a5326145bf178675c276de0ed154f6dc695dcad1beafaa44d97f44ae" + "sha256:33ddd756206e90f7ddff1330cc8cac4aa411a824fe779314a0a52abea2c8fc14", + "sha256:84cac2626a7db8b7d9ebe62b0fdca676ab1014cc7f777189e3c0cd721a4c16d8" ], - "markers": "python_full_version >= '3.7.2' and python_version < '4'", - "version": "==4.2.1" + "markers": "python_version >= '3.8' and python_version < '4'", + "version": "==5.1.0" }, "eth-account": { "hashes": [ - "sha256:474a2fccf7286230cf66502565f03b536921d7e1fdfceba198e42160e5ac4bc1", - "sha256:b7a83f506a8edf57926569e5f04471ce3f1700e572d3421b4ad0dad7a26c0978" + "sha256:16cf58aabc65171fc206489899b7e5546e3215e1a4debc12dbd55345c979081e", + "sha256:a712a9534638a7cfaa4cc069f1b9d5cefeee70362cfc3a7b0a2534ee61ce76c9" ], - "markers": "python_version >= '3.7' and python_version < '4'", - "version": "==0.10.0" + "markers": "python_version >= '3.8' and python_version < '4'", + "version": "==0.11.3" }, "eth-ape": { "hashes": [ - "sha256:0869ace9f9fe039c779d83bdf8842982015fa306d521df89439a1eee75d0b9d5", - "sha256:200e793200317394f0db1d00f531bdad14d200b6e325f2afe2a13149434af740" + "sha256:154079bec431ca41083e15000204c108be79ed10ecfc6cee5e8c78ccc0295d76", + "sha256:2b72d3ab27417b4a4d82cf7aa04d3cc89abfe1091974d8a98691a5c4049de7f9" ], "index": "pypi", - "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.7.13" + "markers": "python_version >= '3.9' and python_version < '4'", + "version": "==0.8.12" }, "eth-bloom": { "hashes": [ - "sha256:94bab384b01f2eb1012abbd6bb504e4c743878414d8695ee5a5d25f4247b3886", - "sha256:bb884ece93d292dfbbe4696744db874a88ac5bfc45f6f1b0ee147d801604a46c" + "sha256:6be3dfa44a597a0bc8d974c381fb9a60bbcadfb56e88e69ab55ba538d90b3256", + "sha256:c1eb51cb9f9ec8834b691d67e73c02c4e79e22c81ae8058209971803236ffbb2" ], "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==3.0.0" + "version": "==3.0.1" }, "eth-hash": { "extras": [ @@ -839,26 +961,27 @@ }, "eth-keyfile": { "hashes": [ - "sha256:02e3c2e564c7403b92db3fef8ecae3d21123b15787daecd5b643a57369c530f9", - "sha256:9e09f5bc97c8309876c06bdea7a94f0051c25ba3109b5df37afb815418322efe" + "sha256:65387378b82fe7e86d7cb9f8d98e6d639142661b2f6f490629da09fddbef6d64", + "sha256:9708bc31f386b52cca0969238ff35b1ac72bd7a7186f2a84b86110d3c973bec1" ], "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.8.0" + "version": "==0.8.1" }, "eth-keys": { "hashes": [ - "sha256:7d18887483bc9b8a3fdd8e32ddcb30044b9f08fcb24a380d93b6eee3a5bb3216", - "sha256:e07915ffb91277803a28a379418bdd1fad1f390c38ad9353a0f189789a440d5d" + "sha256:2b587e4bbb9ac2195215a7ab0c0fb16042b17d4ec50240ed670bbb8f53da7a48", + "sha256:ad13d920a2217a49bed3a1a7f54fb0980f53caf86d3bbab2139fd3330a17b97e" ], - "version": "==0.4.0" + "markers": "python_version >= '3.8' and python_version < '4'", + "version": "==0.5.1" }, "eth-pydantic-types": { "hashes": [ - "sha256:3a2f37a19a13e4660071c9d3f7931aa139d36af94b0a4aaf340d44c44ae9e577", - "sha256:4392ab016b4d3a5831517b17082a122268b4425f45ea2faf25d275a7cf79b927" + "sha256:0ddcdb4fb2c51d54e7adc29e6826e7c7229d99f680906986f70beaf9b4cd912d", + "sha256:d95951791931c94fbd869b7fdf50d45cd228520510dba83d6edc04cc04b8dafe" ], "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.1.0a5" + "version": "==0.1.0" }, "eth-rlp": { "hashes": [ @@ -873,10 +996,10 @@ "py-evm" ], "hashes": [ - "sha256:9939e235293eb55732b2a9fdc61707777fd3bb6e8403e7649b168f439870ad7d", - "sha256:c06cb0e472300863ceb7d9ea846685acd92e2f44dbe407ff0c4112f1d8808e55" + "sha256:b46e9acfb5cb5f3f62fd729d796ca0af231f117e35ce6f2f2f5bb55d4108edcd", + "sha256:d352cd1f99511dac6f38a0c449f77315a1ddbe234c8a3f3fe6ff90ac172622f3" ], - "version": "==0.9.1b2" + "version": "==0.11.0b2" }, "eth-typing": { "hashes": [ @@ -896,27 +1019,27 @@ }, "ethpm-types": { "hashes": [ - "sha256:0ba4b128fc339e123a53d53ffac1c598948824197b22fa1220d579059ffd63a4", - "sha256:cf76045a0001f7b1338a87cda21f93612415a7ebf91f5ae814e2a34a08d04fc9" + "sha256:77f40bc82e4ba19d3db7f9bfe3faaedeb7e9073343bca7658e19890c96a0cdb6", + "sha256:9b65e3d1dd5ba465c267843c8070d03fe6d813f8b2a7b1d9b3884b177404ed27" ], "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.6.7" + "version": "==0.6.14" }, "evm-trace": { "hashes": [ - "sha256:ddc73cf38eac187bee7c3d55992f9d74986a82350d8d78da105c4e3ec8130649", - "sha256:ed0cac773005dd4913feb61aca71d6eee059c1b4e3b150c45d32fffeace217ec" + "sha256:41e5750e310d8c751b59dce99fefbb1f0090429b154aa65309725bdf6cea27f1", + "sha256:c0f44cf5c71e64a7fdfa47372ed7489edc78a7eb954ab3c7ad9f7bd7433b0d89" ], - "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==0.1.2" + "markers": "python_version >= '3.9' and python_version < '4'", + "version": "==0.2.0" }, "evmchains": { "hashes": [ - "sha256:3207dcf5010075fbac353c8126a10915b58df045f9ff1722610911a0c5c22e53", - "sha256:3b41a2867965f53949d47eb84a1e031f8c18ddd377620ec201cccc66b4ce740b" + "sha256:6f3d36d959cc66f5d87e1572dde3511423cd6b6aaea3b828ee532f8233f9de36", + "sha256:c07b73ac506e35b20393385817e9e25c7da6044895501e92b8e23a12c7fafc84" ], "markers": "python_version >= '3.8'", - "version": "==0.0.4" + "version": "==0.0.11" }, "executing": { "hashes": [ @@ -928,20 +1051,20 @@ }, "filelock": { "hashes": [ - "sha256:5ffa845303983e7a0b7ae17636509bc97997d58afeafa72fb141a17b152284cb", - "sha256:a79895a25bbefdf55d1a2a0a80968f7dbb28edcd6d4234a0afb3f37ecde4b546" + "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb", + "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7" ], "markers": "python_version >= '3.8'", - "version": "==3.13.3" + "version": "==3.15.4" }, "flake8": { "hashes": [ - "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132", - "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3" + "sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38", + "sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213" ], "index": "pypi", "markers": "python_full_version >= '3.8.1'", - "version": "==7.0.0" + "version": "==7.1.1" }, "frozenlist": { "hashes": [ @@ -1036,121 +1159,118 @@ }, "identify": { "hashes": [ - "sha256:10a7ca245cfcd756a554a7288159f72ff105ad233c7c4b9c6f0f4d108f5f6791", - "sha256:c4de0081837b211594f8e877a6b4fad7ca32bbfc1a9307fdd61c28bfe923f13e" + "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf", + "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0" ], "markers": "python_version >= '3.8'", - "version": "==2.5.35" + "version": "==2.6.0" }, "idna": { "hashes": [ - "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", - "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f" + "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", + "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0" ], "markers": "python_version >= '3.5'", - "version": "==3.6" + "version": "==3.7" }, "ijson": { "hashes": [ - "sha256:055b71bbc37af5c3c5861afe789e15211d2d3d06ac51ee5a647adf4def19c0ea", - "sha256:0567e8c833825b119e74e10a7c29761dc65fcd155f5d4cb10f9d3b8916ef9912", - "sha256:06f9707da06a19b01013f8c65bf67db523662a9b4a4ff027e946e66c261f17f0", - "sha256:0974444c1f416e19de1e9f567a4560890095e71e81623c509feff642114c1e53", - "sha256:0a4ae076bf97b0430e4e16c9cb635a6b773904aec45ed8dcbc9b17211b8569ba", - "sha256:0b9d1141cfd1e6d6643aa0b4876730d0d28371815ce846d2e4e84a2d4f471cf3", - "sha256:0e0243d166d11a2a47c17c7e885debf3b19ed136be2af1f5d1c34212850236ac", - "sha256:10294e9bf89cb713da05bc4790bdff616610432db561964827074898e174f917", - "sha256:105c314fd624e81ed20f925271ec506523b8dd236589ab6c0208b8707d652a0e", - "sha256:1844c5b57da21466f255a0aeddf89049e730d7f3dfc4d750f0e65c36e6a61a7c", - "sha256:211124cff9d9d139dd0dfced356f1472860352c055d2481459038b8205d7d742", - "sha256:2a80c0bb1053055d1599e44dc1396f713e8b3407000e6390add72d49633ff3bb", - "sha256:2cc04fc0a22bb945cd179f614845c8b5106c0b3939ee0d84ce67c7a61ac1a936", - "sha256:2ec3e5ff2515f1c40ef6a94983158e172f004cd643b9e4b5302017139b6c96e4", - "sha256:35194e0b8a2bda12b4096e2e792efa5d4801a0abb950c48ade351d479cd22ba5", - "sha256:396338a655fb9af4ac59dd09c189885b51fa0eefc84d35408662031023c110d1", - "sha256:39f551a6fbeed4433c85269c7c8778e2aaea2501d7ebcb65b38f556030642c17", - "sha256:3b14d322fec0de7af16f3ef920bf282f0dd747200b69e0b9628117f381b7775b", - "sha256:3c0d526ccb335c3c13063c273637d8611f32970603dfb182177b232d01f14c23", - "sha256:3dcc33ee56f92a77f48776014ddb47af67c33dda361e84371153c4f1ed4434e1", - "sha256:4252e48c95cd8ceefc2caade310559ab61c37d82dfa045928ed05328eb5b5f65", - "sha256:455d7d3b7a6aacfb8ab1ebcaf697eedf5be66e044eac32508fccdc633d995f0e", - "sha256:457f8a5fc559478ac6b06b6d37ebacb4811f8c5156e997f0d87d708b0d8ab2ae", - "sha256:46bafb1b9959872a1f946f8dd9c6f1a30a970fc05b7bfae8579da3f1f988e598", - "sha256:4a3a6a2fbbe7550ffe52d151cf76065e6b89cfb3e9d0463e49a7e322a25d0426", - "sha256:4b2ec8c2a3f1742cbd5f36b65e192028e541b5fd8c7fd97c1fc0ca6c427c704a", - "sha256:4fc35d569eff3afa76bfecf533f818ecb9390105be257f3f83c03204661ace70", - "sha256:545a30b3659df2a3481593d30d60491d1594bc8005f99600e1bba647bb44cbb5", - "sha256:644f4f03349ff2731fd515afd1c91b9e439e90c9f8c28292251834154edbffca", - "sha256:674e585361c702fad050ab4c153fd168dc30f5980ef42b64400bc84d194e662d", - "sha256:6a4db2f7fb9acfb855c9ae1aae602e4648dd1f88804a0d5cfb78c3639bcf156c", - "sha256:6bd3e7e91d031f1e8cea7ce53f704ab74e61e505e8072467e092172422728b22", - "sha256:6c32c18a934c1dc8917455b0ce478fd7a26c50c364bd52c5a4fb0fc6bb516af7", - "sha256:6f662dc44362a53af3084d3765bb01cd7b4734d1f484a6095cad4cb0cbfe5374", - "sha256:713a919e0220ac44dab12b5fed74f9130f3480e55e90f9d80f58de129ea24f83", - "sha256:7596b42f38c3dcf9d434dddd50f46aeb28e96f891444c2b4b1266304a19a2c09", - "sha256:7851a341429b12d4527ca507097c959659baf5106c7074d15c17c387719ffbcd", - "sha256:7b8064a85ec1b0beda7dd028e887f7112670d574db606f68006c72dd0bb0e0e2", - "sha256:7ce4c70c23521179d6da842bb9bc2e36bb9fad1e0187e35423ff0f282890c9ca", - "sha256:7dc357da4b4ebd8903e77dbcc3ce0555ee29ebe0747c3c7f56adda423df8ec89", - "sha256:81815b4184b85ce124bfc4c446d5f5e5e643fc119771c5916f035220ada29974", - "sha256:85afdb3f3a5d0011584d4fa8e6dccc5936be51c27e84cd2882fe904ca3bd04c5", - "sha256:86b3c91fdcb8ffb30556c9669930f02b7642de58ca2987845b04f0d7fe46d9a8", - "sha256:904f77dd3d87736ff668884fe5197a184748eb0c3e302ded61706501d0327465", - "sha256:916acdc5e504f8b66c3e287ada5d4b39a3275fc1f2013c4b05d1ab9933671a6c", - "sha256:923131f5153c70936e8bd2dd9dcfcff43c67a3d1c789e9c96724747423c173eb", - "sha256:92dc4d48e9f6a271292d6079e9fcdce33c83d1acf11e6e12696fb05c5889fe74", - "sha256:96190d59f015b5a2af388a98446e411f58ecc6a93934e036daa75f75d02386a0", - "sha256:9680e37a10fedb3eab24a4a7e749d8a73f26f1a4c901430e7aa81b5da15f7307", - "sha256:9788f0c915351f41f0e69ec2618b81ebfcf9f13d9d67c6d404c7f5afda3e4afb", - "sha256:98c6799925a5d1988da4cd68879b8eeab52c6e029acc45e03abb7921a4715c4b", - "sha256:9c2a12dcdb6fa28f333bf10b3a0f80ec70bc45280d8435be7e19696fab2bc706", - "sha256:9e0a27db6454edd6013d40a956d008361aac5bff375a9c04ab11fc8c214250b5", - "sha256:a2973ce57afb142d96f35a14e9cfec08308ef178a2c76b8b5e1e98f3960438bf", - "sha256:a4d7fe3629de3ecb088bff6dfe25f77be3e8261ed53d5e244717e266f8544305", - "sha256:a729b0c8fb935481afe3cf7e0dadd0da3a69cc7f145dbab8502e2f1e01d85a7c", - "sha256:ab4db9fee0138b60e31b3c02fff8a4c28d7b152040553b6a91b60354aebd4b02", - "sha256:ac44781de5e901ce8339352bb5594fcb3b94ced315a34dbe840b4cff3450e23b", - "sha256:b49fd5fe1cd9c1c8caf6c59f82b08117dd6bea2ec45b641594e25948f48f4169", - "sha256:b4eb2304573c9fdf448d3fa4a4fdcb727b93002b5c5c56c14a5ffbbc39f64ae4", - "sha256:ba33c764afa9ecef62801ba7ac0319268a7526f50f7601370d9f8f04e77fc02b", - "sha256:bcc51c84bb220ac330122468fe526a7777faa6464e3b04c15b476761beea424f", - "sha256:bdd0dc5da4f9dc6d12ab6e8e0c57d8b41d3c8f9ceed31a99dae7b2baf9ea769a", - "sha256:be8495f7c13fa1f622a2c6b64e79ac63965b89caf664cc4e701c335c652d15f2", - "sha256:c075a547de32f265a5dd139ab2035900fef6653951628862e5cdce0d101af557", - "sha256:c1a4b8eb69b6d7b4e94170aa991efad75ba156b05f0de2a6cd84f991def12ff9", - "sha256:c63f3d57dbbac56cead05b12b81e8e1e259f14ce7f233a8cbe7fa0996733b628", - "sha256:c6beb80df19713e39e68dc5c337b5c76d36ccf69c30b79034634e5e4c14d6904", - "sha256:ccd6be56335cbb845f3d3021b1766299c056c70c4c9165fb2fbe2d62258bae3f", - "sha256:cfced0a6ec85916eb8c8e22415b7267ae118eaff2a860c42d2cc1261711d0d31", - "sha256:d052417fd7ce2221114f8d3b58f05a83c1a2b6b99cafe0b86ac9ed5e2fc889df", - "sha256:d1053fb5f0b010ee76ca515e6af36b50d26c1728ad46be12f1f147a835341083", - "sha256:d31e0d771d82def80cd4663a66de277c3b44ba82cd48f630526b52f74663c639", - "sha256:d34e049992d8a46922f96483e96b32ac4c9cffd01a5c33a928e70a283710cd58", - "sha256:d6ea7c7e3ec44742e867c72fd750c6a1e35b112f88a917615332c4476e718d40", - "sha256:db2d6341f9cb538253e7fe23311d59252f124f47165221d3c06a7ed667ecd595", - "sha256:db3bf1b42191b5cc9b6441552fdcb3b583594cb6b19e90d1578b7cbcf80d0fae", - "sha256:e641814793a037175f7ec1b717ebb68f26d89d82cfd66f36e588f32d7e488d5f", - "sha256:e84d27d1acb60d9102728d06b9650e5b7e5cb0631bd6e3dfadba8fb6a80d6c2f", - "sha256:e9fd906f0c38e9f0bfd5365e1bed98d649f506721f76bb1a9baa5d7374f26f19", - "sha256:eaac293853f1342a8d2a45ac1f723c860f700860e7743fb97f7b76356df883a8", - "sha256:eeb286639649fb6bed37997a5e30eefcacddac79476d24128348ec890b2a0ccb", - "sha256:f05ed49f434ce396ddcf99e9fd98245328e99f991283850c309f5e3182211a79", - "sha256:f4bc87e69d1997c6a55fff5ee2af878720801ff6ab1fb3b7f94adda050651e37", - "sha256:f8d54b624629f9903005c58d9321a036c72f5c212701bbb93d1a520ecd15e370", - "sha256:fa234ab7a6a33ed51494d9d2197fb96296f9217ecae57f5551a55589091e7853", - "sha256:fa8b98be298efbb2588f883f9953113d8a0023ab39abe77fe734b71b46b1220a", - "sha256:fbac4e9609a1086bbad075beb2ceec486a3b138604e12d2059a33ce2cba93051", - "sha256:fd12e42b9cb9c0166559a3ffa276b4f9fc9d5b4c304e5a13668642d34b48b634" - ], - "version": "==3.2.3" - }, - "importlib-metadata": { - "hashes": [ - "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570", - "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2" - ], - "markers": "python_version >= '3.8'", - "version": "==7.1.0" + "sha256:0015354011303175eae7e2ef5136414e91de2298e5a2e9580ed100b728c07e51", + "sha256:034642558afa57351a0ffe6de89e63907c4cf6849070cc10a3b2542dccda1afe", + "sha256:0420c24e50389bc251b43c8ed379ab3e3ba065ac8262d98beb6735ab14844460", + "sha256:04366e7e4a4078d410845e58a2987fd9c45e63df70773d7b6e87ceef771b51ee", + "sha256:0b003501ee0301dbf07d1597482009295e16d647bb177ce52076c2d5e64113e0", + "sha256:0ee57a28c6bf523d7cb0513096e4eb4dac16cd935695049de7608ec110c2b751", + "sha256:192e4b65495978b0bce0c78e859d14772e841724d3269fc1667dc6d2f53cc0ea", + "sha256:1efb521090dd6cefa7aafd120581947b29af1713c902ff54336b7c7130f04c47", + "sha256:25fd49031cdf5fd5f1fd21cb45259a64dad30b67e64f745cc8926af1c8c243d3", + "sha256:2636cb8c0f1023ef16173f4b9a233bcdb1df11c400c603d5f299fac143ca8d70", + "sha256:29ce02af5fbf9ba6abb70765e66930aedf73311c7d840478f1ccecac53fefbf3", + "sha256:2af323a8aec8a50fa9effa6d640691a30a9f8c4925bd5364a1ca97f1ac6b9b5c", + "sha256:30cfea40936afb33b57d24ceaf60d0a2e3d5c1f2335ba2623f21d560737cc730", + "sha256:33afc25057377a6a43c892de34d229a86f89ea6c4ca3dd3db0dcd17becae0dbb", + "sha256:36aa56d68ea8def26778eb21576ae13f27b4a47263a7a2581ab2ef58b8de4451", + "sha256:3917b2b3d0dbbe3296505da52b3cb0befbaf76119b2edaff30bd448af20b5400", + "sha256:3aba5c4f97f4e2ce854b5591a8b0711ca3b0c64d1b253b04ea7b004b0a197ef6", + "sha256:3c556f5553368dff690c11d0a1fb435d4ff1f84382d904ccc2dc53beb27ba62e", + "sha256:3dc1fb02c6ed0bae1b4bf96971258bf88aea72051b6e4cebae97cff7090c0607", + "sha256:3e8d8de44effe2dbd0d8f3eb9840344b2d5b4cc284a14eb8678aec31d1b6bea8", + "sha256:40ee3821ee90be0f0e95dcf9862d786a7439bd1113e370736bfdf197e9765bfb", + "sha256:44367090a5a876809eb24943f31e470ba372aaa0d7396b92b953dda953a95d14", + "sha256:45ff05de889f3dc3d37a59d02096948ce470699f2368b32113954818b21aa74a", + "sha256:4690e3af7b134298055993fcbea161598d23b6d3ede11b12dca6815d82d101d5", + "sha256:473f5d921fadc135d1ad698e2697025045cd8ed7e5e842258295012d8a3bc702", + "sha256:47c144117e5c0e2babb559bc8f3f76153863b8dd90b2d550c51dab5f4b84a87f", + "sha256:4ac6c3eeed25e3e2cb9b379b48196413e40ac4e2239d910bb33e4e7f6c137745", + "sha256:4b72178b1e565d06ab19319965022b36ef41bcea7ea153b32ec31194bec032a2", + "sha256:4e9ffe358d5fdd6b878a8a364e96e15ca7ca57b92a48f588378cef315a8b019e", + "sha256:501dce8eaa537e728aa35810656aa00460a2547dcb60937c8139f36ec344d7fc", + "sha256:5378d0baa59ae422905c5f182ea0fd74fe7e52a23e3821067a7d58c8306b2191", + "sha256:542c1e8fddf082159a5d759ee1412c73e944a9a2412077ed00b303ff796907dc", + "sha256:63afea5f2d50d931feb20dcc50954e23cef4127606cc0ecf7a27128ed9f9a9e6", + "sha256:658ba9cad0374d37b38c9893f4864f284cdcc7d32041f9808fba8c7bcaadf134", + "sha256:6b661a959226ad0d255e49b77dba1d13782f028589a42dc3172398dd3814c797", + "sha256:72e3488453754bdb45c878e31ce557ea87e1eb0f8b4fc610373da35e8074ce42", + "sha256:7914d0cf083471856e9bc2001102a20f08e82311dfc8cf1a91aa422f9414a0d6", + "sha256:7ab00721304af1ae1afa4313ecfa1bf16b07f55ef91e4a5b93aeaa3e2bd7917c", + "sha256:7d0b6b637d05dbdb29d0bfac2ed8425bb369e7af5271b0cc7cf8b801cb7360c2", + "sha256:7e2b3e9ca957153557d06c50a26abaf0d0d6c0ddf462271854c968277a6b5372", + "sha256:7f172e6ba1bee0d4c8f8ebd639577bfe429dee0f3f96775a067b8bae4492d8a0", + "sha256:7f7a5250599c366369fbf3bc4e176f5daa28eb6bc7d6130d02462ed335361675", + "sha256:844c0d1c04c40fd1b60f148dc829d3f69b2de789d0ba239c35136efe9a386529", + "sha256:8643c255a25824ddd0895c59f2319c019e13e949dc37162f876c41a283361527", + "sha256:8795e88adff5aa3c248c1edce932db003d37a623b5787669ccf205c422b91e4a", + "sha256:87c727691858fd3a1c085d9980d12395517fcbbf02c69fbb22dede8ee03422da", + "sha256:8851584fb931cffc0caa395f6980525fd5116eab8f73ece9d95e6f9c2c326c4c", + "sha256:891f95c036df1bc95309951940f8eea8537f102fa65715cdc5aae20b8523813b", + "sha256:8c85447569041939111b8c7dbf6f8fa7a0eb5b2c4aebb3c3bec0fb50d7025121", + "sha256:8e0ff16c224d9bfe4e9e6bd0395826096cda4a3ef51e6c301e1b61007ee2bd24", + "sha256:8f83f553f4cde6d3d4eaf58ec11c939c94a0ec545c5b287461cafb184f4b3a14", + "sha256:8f890d04ad33262d0c77ead53c85f13abfb82f2c8f078dfbf24b78f59534dfdd", + "sha256:8fdf3721a2aa7d96577970f5604bd81f426969c1822d467f07b3d844fa2fecc7", + "sha256:907f3a8674e489abdcb0206723e5560a5cb1fa42470dcc637942d7b10f28b695", + "sha256:92355f95a0e4da96d4c404aa3cff2ff033f9180a9515f813255e1526551298c1", + "sha256:97a9aea46e2a8371c4cf5386d881de833ed782901ac9f67ebcb63bb3b7d115af", + "sha256:988e959f2f3d59ebd9c2962ae71b97c0df58323910d0b368cc190ad07429d1bb", + "sha256:99f5c8ab048ee4233cc4f2b461b205cbe01194f6201018174ac269bf09995749", + "sha256:9cd5c03c63ae06d4f876b9844c5898d0044c7940ff7460db9f4cd984ac7862b5", + "sha256:a3b730ef664b2ef0e99dec01b6573b9b085c766400af363833e08ebc1e38eb2f", + "sha256:a716e05547a39b788deaf22725490855337fc36613288aa8ae1601dc8c525553", + "sha256:a7ec759c4a0fc820ad5dc6a58e9c391e7b16edcb618056baedbedbb9ea3b1524", + "sha256:aaa6bfc2180c31a45fac35d40e3312a3d09954638ce0b2e9424a88e24d262a13", + "sha256:ad04cf38164d983e85f9cba2804566c0160b47086dcca4cf059f7e26c5ace8ca", + "sha256:b2f73f0d0fce5300f23a1383d19b44d103bb113b57a69c36fd95b7c03099b181", + "sha256:b325f42e26659df1a0de66fdb5cde8dd48613da9c99c07d04e9fb9e254b7ee1c", + "sha256:b51bab2c4e545dde93cb6d6bb34bf63300b7cd06716f195dd92d9255df728331", + "sha256:b5c3e285e0735fd8c5a26d177eca8b52512cdd8687ca86ec77a0c66e9c510182", + "sha256:b73b493af9e947caed75d329676b1b801d673b17481962823a3e55fe529c8b8b", + "sha256:b9d85a02e77ee8ea6d9e3fd5d515bcc3d798d9c1ea54817e5feb97a9bc5d52fe", + "sha256:bdcfc88347fd981e53c33d832ce4d3e981a0d696b712fbcb45dcc1a43fe65c65", + "sha256:c594c0abe69d9d6099f4ece17763d53072f65ba60b372d8ba6de8695ce6ee39e", + "sha256:c8a9befb0c0369f0cf5c1b94178d0d78f66d9cebb9265b36be6e4f66236076b8", + "sha256:cd174b90db68c3bcca273e9391934a25d76929d727dc75224bf244446b28b03b", + "sha256:d5576415f3d76290b160aa093ff968f8bf6de7d681e16e463a0134106b506f49", + "sha256:d654d045adafdcc6c100e8e911508a2eedbd2a1b5f93f930ba13ea67d7704ee9", + "sha256:d92e339c69b585e7b1d857308ad3ca1636b899e4557897ccd91bb9e4a56c965b", + "sha256:da3b6987a0bc3e6d0f721b42c7a0198ef897ae50579547b0345f7f02486898f5", + "sha256:dd26b396bc3a1e85f4acebeadbf627fa6117b97f4c10b177d5779577c6607744", + "sha256:de7c1ddb80fa7a3ab045266dca169004b93f284756ad198306533b792774f10a", + "sha256:df3ab5e078cab19f7eaeef1d5f063103e1ebf8c26d059767b26a6a0ad8b250a3", + "sha256:e0155a8f079c688c2ccaea05de1ad69877995c547ba3d3612c1c336edc12a3a5", + "sha256:e10c14535abc7ddf3fd024aa36563cd8ab5d2bb6234a5d22c77c30e30fa4fb2b", + "sha256:e4396b55a364a03ff7e71a34828c3ed0c506814dd1f50e16ebed3fc447d5188e", + "sha256:e5589225c2da4bb732c9c370c5961c39a6db72cf69fb2a28868a5413ed7f39e6", + "sha256:e6576cdc36d5a09b0c1a3d81e13a45d41a6763188f9eaae2da2839e8a4240bce", + "sha256:e6850ae33529d1e43791b30575070670070d5fe007c37f5d06aebc1dd152ab3f", + "sha256:e9afd97339fc5a20f0542c971f90f3ca97e73d3050cdc488d540b63fae45329a", + "sha256:ead50635fb56577c07eff3e557dac39533e0fe603000684eea2af3ed1ad8f941", + "sha256:ed1336a2a6e5c427f419da0154e775834abcbc8ddd703004108121c6dd9eba9d", + "sha256:f0c819f83e4f7b7f7463b2dc10d626a8be0c85fbc7b3db0edc098c2b16ac968e", + "sha256:f64f01795119880023ba3ce43072283a393f0b90f52b66cc0ea1a89aa64a9ccb", + "sha256:f87a7e52f79059f9c58f6886c262061065eb6f7554a587be7ed3aa63e6b71b34", + "sha256:ff835906f84451e143f31c4ce8ad73d83ef4476b944c2a2da91aec8b649570e1" + ], + "version": "==3.3.0" }, "iniconfig": { "hashes": [ @@ -1162,20 +1282,20 @@ }, "ipython": { "hashes": [ - "sha256:07232af52a5ba146dc3372c7bf52a0f890a23edf38d77caef8d53f9cdc2584c1", - "sha256:7468edaf4f6de3e1b912e57f66c241e6fd3c7099f2ec2136e239e142e800274d" + "sha256:1cec0fbba8404af13facebe83d04436a7434c7400e59f47acf467c64abd0956c", + "sha256:e6b347c27bdf9c32ee9d31ae85defc525755a1869f14057e900675b9e8d6e6ff" ], "markers": "python_version >= '3.10'", - "version": "==8.23.0" + "version": "==8.26.0" }, "isort": { "hashes": [ - "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109", - "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6" + "sha256:0ec8b74806e80fec33e6e7ba89d35e17b3eb1c4c74316ea44cf877cc26e8b118", + "sha256:cde11e804641edbe1b6b95d56582eb541f27eebc77864c6015545944bb0e9c76" ], "index": "pypi", - "markers": "python_full_version >= '3.8.0'", - "version": "==5.13.2" + "markers": "python_full_version >= '3.7.0'", + "version": "==6.0.0b2" }, "jedi": { "hashes": [ @@ -1187,11 +1307,11 @@ }, "jsonschema": { "hashes": [ - "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f", - "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5" + "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", + "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566" ], "markers": "python_version >= '3.8'", - "version": "==4.21.1" + "version": "==4.23.0" }, "jsonschema-specifications": { "hashes": [ @@ -1304,11 +1424,11 @@ }, "matplotlib-inline": { "hashes": [ - "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311", - "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304" + "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", + "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca" ], - "markers": "python_version >= '3.5'", - "version": "==0.1.6" + "markers": "python_version >= '3.8'", + "version": "==0.1.7" }, "mccabe": { "hashes": [ @@ -1480,11 +1600,11 @@ }, "nodeenv": { "hashes": [ - "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2", - "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec" + "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", + "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'", - "version": "==1.8.0" + "version": "==1.9.1" }, "nucypher-core": { "hashes": [ @@ -1547,7 +1667,7 @@ "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3", "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f" ], - "markers": "python_version >= '3.10'", + "markers": "python_version >= '3.9'", "version": "==1.26.4" }, "packaging": { @@ -1560,50 +1680,53 @@ }, "pandas": { "hashes": [ - "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813", - "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792", - "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406", - "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373", - "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328", - "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996", - "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf", - "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6", - "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7", - "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc", - "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1", - "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23", - "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a", - "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51", - "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572", - "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31", - "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5", - "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a", - "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003", - "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d", - "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354", - "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee", - "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa", - "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0", - "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9", - "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae", - "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc" + "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863", + "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2", + "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1", + "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad", + "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db", + "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76", + "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51", + "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32", + "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08", + "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b", + "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4", + "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921", + "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288", + "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee", + "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0", + "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24", + "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99", + "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151", + "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd", + "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce", + "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57", + "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef", + "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54", + "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a", + "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238", + "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23", + "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772", + "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce", + "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad" ], - "markers": "python_version >= '3.8'", - "version": "==1.5.3" + "markers": "python_version >= '3.9'", + "version": "==2.2.2" }, "parsimonious": { "hashes": [ - "sha256:b2ad1ae63a2f65bd78f5e0a8ac510a98f3607a43f1db2a8d46636a5d9e4a30c1" + "sha256:8281600da180ec8ae35427a4ab4f7b82bfec1e3d1e52f80cb60ea82b9512501c", + "sha256:982ab435fabe86519b57f6b35610aa4e4e977e9f02a14353edf4bbc75369fc0f" ], - "version": "==0.9.0" + "version": "==0.10.0" }, "parso": { "hashes": [ - "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0", - "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75" + "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", + "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d" ], "markers": "python_version >= '3.6'", - "version": "==0.8.3" + "version": "==0.8.4" }, "pathspec": { "hashes": [ @@ -1623,53 +1746,53 @@ }, "platformdirs": { "hashes": [ - "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068", - "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768" + "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee", + "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3" ], "markers": "python_version >= '3.8'", - "version": "==4.2.0" + "version": "==4.2.2" }, "pluggy": { "hashes": [ - "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981", - "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be" + "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", + "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669" ], "markers": "python_version >= '3.8'", - "version": "==1.4.0" + "version": "==1.5.0" }, "pre-commit": { "hashes": [ - "sha256:5eae9e10c2b5ac51577c3452ec0a490455c45a0533f7960f993a0d01e59decab", - "sha256:e209d61b8acdcf742404408531f0c37d49d2c734fd7cff2d6076083d191cb060" + "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af", + "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==3.7.0" + "version": "==3.8.0" }, "prompt-toolkit": { "hashes": [ - "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d", - "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6" + "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10", + "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360" ], "markers": "python_full_version >= '3.7.0'", - "version": "==3.0.43" + "version": "==3.0.47" }, "protobuf": { "hashes": [ - "sha256:38aa5f535721d5bb99861166c445c4105c4e285c765fbb2ac10f116e32dcd46d", - "sha256:3c388ea6ddfe735f8cf69e3f7dc7611e73107b60bdfcf5d0f024c3ccd3794e23", - "sha256:7ee014c2c87582e101d6b54260af03b6596728505c79f17c8586e7523aaa8f8c", - "sha256:8ca2a1d97c290ec7b16e4e5dff2e5ae150cc1582f55b5ab300d45cb0dfa90e51", - "sha256:9b557c317ebe6836835ec4ef74ec3e994ad0894ea424314ad3552bc6e8835b4e", - "sha256:b9ba3ca83c2e31219ffbeb9d76b63aad35a3eb1544170c55336993d7a18ae72c", - "sha256:d693d2504ca96750d92d9de8a103102dd648fda04540495535f0fec7577ed8fc", - "sha256:da612f2720c0183417194eeaa2523215c4fcc1a1949772dc65f05047e08d5932", - "sha256:e6039957449cb918f331d32ffafa8eb9255769c96aa0560d9a5bf0b4e00a2a33", - "sha256:f7417703f841167e5a27d48be13389d52ad705ec09eade63dfc3180a959215d7", - "sha256:fbfe61e7ee8c1860855696e3ac6cfd1b01af5498facc6834fcc345c9684fb2ca" + "sha256:0aff281799c0e18492e537cfba6ec2f2676fac12f68e3984437876495fecf8c7", + "sha256:22e49e384c775a79d9b26b4eb884a5a36f58bd86edf7bbf3180723acf34b7173", + "sha256:43ded45c15cd3c7228e0f045a31e70f500b94b4639e1da61e49183daf9f33289", + "sha256:52bd152ec63289ec187c9b96fade849f4734e88d705823ea7e9e467341503c62", + "sha256:5a836173c5c63499407b1699d007be3fa8e8cfd07735796c8ea012addc51ac07", + "sha256:62f7e8ee989199f6f9133435cfd2e8ac596af15b675d22f727ff98a071f976c8", + "sha256:84d5ac339ff678542c4be0bb9271b02d20885b1e8fdfc40b01c527b43fe9acb8", + "sha256:9050a4ecafd2525e839bdab19af8be2a3e85690c4eb9d16cc45fc02f61cee9dc", + "sha256:b000efc311e4bf5ba783250a20fde39db8d2703599ec6109ee5f8082485c9d3c", + "sha256:b598322e96e9309d8fec825d23ed57c7c6dd923f2fa331971e26e08af419e740", + "sha256:c4cc4c1442a4641e8e4dc5dcdb1ed469d4e8e2d0d1c5b3e94c7a545ea0f3275b" ], "markers": "python_version >= '3.8'", - "version": "==5.26.1" + "version": "==5.28.0rc2" }, "ptyprocess": { "hashes": [ @@ -1680,10 +1803,10 @@ }, "pure-eval": { "hashes": [ - "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", - "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" + "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", + "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42" ], - "version": "==0.2.2" + "version": "==0.2.3" }, "py-cid": { "hashes": [ @@ -1694,26 +1817,27 @@ }, "py-ecc": { "hashes": [ - "sha256:3fc8a79e38975e05dc443d25783fd69212a1ca854cc0efef071301a8f7d6ce1d", - "sha256:54e8aa4c30374fa62d582c599a99f352c153f2971352171318bd6910a643be0b" + "sha256:557461f42e57294d734305a30faf6b8903421651871e9cdeff8d8e67c6796c70", + "sha256:84a8b4d436163c83c65345a68e32f921ef6e64374a36f8e561f0455b4b08f5f2" ], - "markers": "python_version >= '3.6' and python_version < '4'", - "version": "==6.0.0" + "markers": "python_version >= '3.8' and python_version < '4'", + "version": "==7.0.1" }, "py-evm": { "hashes": [ - "sha256:1bf7b293faa70c03727358ae3e5cb0abf7282391461d9b52b82decd6ed18c2f7", - "sha256:d40b6ac950485111dc7ad7bd29e3f61e00d5f81dc919e8c2b3afca30f228dc05" + "sha256:aeb889514af12b6a8cb5091fe93008642eadf7c19999859dad3191eaf451647c", + "sha256:f0fc4a4b904917b40e6a06f87925017dc48ea6582e95f88d28be38f3566e2bae" ], - "version": "==0.7.0a4" + "markers": "python_version >= '3.8' and python_version < '4'", + "version": "==0.10.1b1" }, "py-geth": { "hashes": [ - "sha256:ae8771b028c68f6710e6434d2aa1310ce2ba3cc9099d244d9bb5a9e340786a92", - "sha256:c08d84f6dad4f86a9b8ffd74c0a0f160d600db0ee45dfc2a66d5e13522aeb039" + "sha256:57368b52c6e1c74f2277a2a370c01ad4c73a021835b150619c02dd7bdab3d369", + "sha256:bd2edaf8dcba4b3fdf4b33792da0340e114e411feff35b6ac7d58d19252c06b7" ], "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==4.4.0" + "version": "==5.0.0" }, "py-multibase": { "hashes": [ @@ -1738,19 +1862,19 @@ }, "py-solc-x": { "hashes": [ - "sha256:55b49361d618809e67fc965dd9d444caf83cf30b3cc9a633b85587b0aff8e984", - "sha256:d0e196e5c77d6ee76fb917582e4d08db6d4f8915e6c2a4da0ce0ed35c841528a" + "sha256:1b5fe26d5f4976b1fcc2b3276fb2fe182633bc35757a3abf3b9af5ac57ec2544", + "sha256:ef131f2f0e708fcaf92068a38c7569920839d259fdaa9946af3393f1dc86c5b1" ], "markers": "python_version >= '3.8' and python_version < '4'", - "version": "==2.0.2" + "version": "==2.0.3" }, "pycodestyle": { "hashes": [ - "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f", - "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67" + "sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3", + "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521" ], "markers": "python_version >= '3.8'", - "version": "==2.11.1" + "version": "==2.12.1" }, "pycparser": { "hashes": [ @@ -1799,136 +1923,114 @@ }, "pydantic": { "hashes": [ - "sha256:b3ef57c62535b0941697cce638c08900d87fcb67e29cfa99e8a68f747f393f7a", - "sha256:d0caf5954bee831b6bfe7e338c32b9e30c85dfe080c843680783ac2b631673b4" + "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a", + "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8" ], - "markers": "python_version >= '3.7'", - "version": "==2.5.3" + "markers": "python_version >= '3.8'", + "version": "==2.8.2" }, "pydantic-core": { "hashes": [ - "sha256:00646784f6cd993b1e1c0e7b0fdcbccc375d539db95555477771c27555e3c556", - "sha256:00b1087dabcee0b0ffd104f9f53d7d3eaddfaa314cdd6726143af6bc713aa27e", - "sha256:0348b1dc6b76041516e8a854ff95b21c55f5a411c3297d2ca52f5528e49d8411", - "sha256:036137b5ad0cb0004c75b579445a1efccd072387a36c7f217bb8efd1afbe5245", - "sha256:095b707bb287bfd534044166ab767bec70a9bba3175dcdc3371782175c14e43c", - "sha256:0c08de15d50fa190d577e8591f0329a643eeaed696d7771760295998aca6bc66", - "sha256:1302a54f87b5cd8528e4d6d1bf2133b6aa7c6122ff8e9dc5220fbc1e07bffebd", - "sha256:172de779e2a153d36ee690dbc49c6db568d7b33b18dc56b69a7514aecbcf380d", - "sha256:1b027c86c66b8627eb90e57aee1f526df77dc6d8b354ec498be9a757d513b92b", - "sha256:1ce830e480f6774608dedfd4a90c42aac4a7af0a711f1b52f807130c2e434c06", - "sha256:1fd0c1d395372843fba13a51c28e3bb9d59bd7aebfeb17358ffaaa1e4dbbe948", - "sha256:23598acb8ccaa3d1d875ef3b35cb6376535095e9405d91a3d57a8c7db5d29341", - "sha256:24368e31be2c88bd69340fbfe741b405302993242ccb476c5c3ff48aeee1afe0", - "sha256:26a92ae76f75d1915806b77cf459811e772d8f71fd1e4339c99750f0e7f6324f", - "sha256:27e524624eace5c59af499cd97dc18bb201dc6a7a2da24bfc66ef151c69a5f2a", - "sha256:2b8719037e570639e6b665a4050add43134d80b687288ba3ade18b22bbb29dd2", - "sha256:2c5bcf3414367e29f83fd66f7de64509a8fd2368b1edf4351e862910727d3e51", - "sha256:2dbe357bc4ddda078f79d2a36fc1dd0494a7f2fad83a0a684465b6f24b46fe80", - "sha256:2f5fa187bde8524b1e37ba894db13aadd64faa884657473b03a019f625cee9a8", - "sha256:2f6ffc6701a0eb28648c845f4945a194dc7ab3c651f535b81793251e1185ac3d", - "sha256:314ccc4264ce7d854941231cf71b592e30d8d368a71e50197c905874feacc8a8", - "sha256:36026d8f99c58d7044413e1b819a67ca0e0b8ebe0f25e775e6c3d1fabb3c38fb", - "sha256:36099c69f6b14fc2c49d7996cbf4f87ec4f0e66d1c74aa05228583225a07b590", - "sha256:36fa402dcdc8ea7f1b0ddcf0df4254cc6b2e08f8cd80e7010d4c4ae6e86b2a87", - "sha256:370ffecb5316ed23b667d99ce4debe53ea664b99cc37bfa2af47bc769056d534", - "sha256:3860c62057acd95cc84044e758e47b18dcd8871a328ebc8ccdefd18b0d26a21b", - "sha256:399ac0891c284fa8eb998bcfa323f2234858f5d2efca3950ae58c8f88830f145", - "sha256:3a0b5db001b98e1c649dd55afa928e75aa4087e587b9524a4992316fa23c9fba", - "sha256:3dcf1978be02153c6a31692d4fbcc2a3f1db9da36039ead23173bc256ee3b91b", - "sha256:4241204e4b36ab5ae466ecec5c4c16527a054c69f99bba20f6f75232a6a534e2", - "sha256:438027a975cc213a47c5d70672e0d29776082155cfae540c4e225716586be75e", - "sha256:43e166ad47ba900f2542a80d83f9fc65fe99eb63ceec4debec160ae729824052", - "sha256:478e9e7b360dfec451daafe286998d4a1eeaecf6d69c427b834ae771cad4b622", - "sha256:4ce8299b481bcb68e5c82002b96e411796b844d72b3e92a3fbedfe8e19813eab", - "sha256:4f86f1f318e56f5cbb282fe61eb84767aee743ebe32c7c0834690ebea50c0a6b", - "sha256:55a23dcd98c858c0db44fc5c04fc7ed81c4b4d33c653a7c45ddaebf6563a2f66", - "sha256:599c87d79cab2a6a2a9df4aefe0455e61e7d2aeede2f8577c1b7c0aec643ee8e", - "sha256:5aa90562bc079c6c290f0512b21768967f9968e4cfea84ea4ff5af5d917016e4", - "sha256:64634ccf9d671c6be242a664a33c4acf12882670b09b3f163cd00a24cffbd74e", - "sha256:667aa2eac9cd0700af1ddb38b7b1ef246d8cf94c85637cbb03d7757ca4c3fdec", - "sha256:6a31d98c0d69776c2576dda4b77b8e0c69ad08e8b539c25c7d0ca0dc19a50d6c", - "sha256:6af4b3f52cc65f8a0bc8b1cd9676f8c21ef3e9132f21fed250f6958bd7223bed", - "sha256:6c8edaea3089bf908dd27da8f5d9e395c5b4dc092dbcce9b65e7156099b4b937", - "sha256:71d72ca5eaaa8d38c8df16b7deb1a2da4f650c41b58bb142f3fb75d5ad4a611f", - "sha256:72f9a942d739f09cd42fffe5dc759928217649f070056f03c70df14f5770acf9", - "sha256:747265448cb57a9f37572a488a57d873fd96bf51e5bb7edb52cfb37124516da4", - "sha256:75ec284328b60a4e91010c1acade0c30584f28a1f345bc8f72fe8b9e46ec6a96", - "sha256:78d0768ee59baa3de0f4adac9e3748b4b1fffc52143caebddfd5ea2961595277", - "sha256:78ee52ecc088c61cce32b2d30a826f929e1708f7b9247dc3b921aec367dc1b23", - "sha256:7be719e4d2ae6c314f72844ba9d69e38dff342bc360379f7c8537c48e23034b7", - "sha256:7e1f4744eea1501404b20b0ac059ff7e3f96a97d3e3f48ce27a139e053bb370b", - "sha256:7e90d6cc4aad2cc1f5e16ed56e46cebf4877c62403a311af20459c15da76fd91", - "sha256:7ebe3416785f65c28f4f9441e916bfc8a54179c8dea73c23023f7086fa601c5d", - "sha256:7f41533d7e3cf9520065f610b41ac1c76bc2161415955fbcead4981b22c7611e", - "sha256:7f5025db12fc6de7bc1104d826d5aee1d172f9ba6ca936bf6474c2148ac336c1", - "sha256:86c963186ca5e50d5c8287b1d1c9d3f8f024cbe343d048c5bd282aec2d8641f2", - "sha256:86ce5fcfc3accf3a07a729779d0b86c5d0309a4764c897d86c11089be61da160", - "sha256:8a14c192c1d724c3acbfb3f10a958c55a2638391319ce8078cb36c02283959b9", - "sha256:8b93785eadaef932e4fe9c6e12ba67beb1b3f1e5495631419c784ab87e975670", - "sha256:8ed1af8692bd8d2a29d702f1a2e6065416d76897d726e45a1775b1444f5928a7", - "sha256:92879bce89f91f4b2416eba4429c7b5ca22c45ef4a499c39f0c5c69257522c7c", - "sha256:94fc0e6621e07d1e91c44e016cc0b189b48db053061cc22d6298a611de8071bb", - "sha256:982487f8931067a32e72d40ab6b47b1628a9c5d344be7f1a4e668fb462d2da42", - "sha256:9862bf828112e19685b76ca499b379338fd4c5c269d897e218b2ae8fcb80139d", - "sha256:99b14dbea2fdb563d8b5a57c9badfcd72083f6006caf8e126b491519c7d64ca8", - "sha256:9c6a5c79b28003543db3ba67d1df336f253a87d3112dac3a51b94f7d48e4c0e1", - "sha256:a19b794f8fe6569472ff77602437ec4430f9b2b9ec7a1105cfd2232f9ba355e6", - "sha256:a306cdd2ad3a7d795d8e617a58c3a2ed0f76c8496fb7621b6cd514eb1532cae8", - "sha256:a3dde6cac75e0b0902778978d3b1646ca9f438654395a362cb21d9ad34b24acf", - "sha256:a874f21f87c485310944b2b2734cd6d318765bcbb7515eead33af9641816506e", - "sha256:a983cca5ed1dd9a35e9e42ebf9f278d344603bfcb174ff99a5815f953925140a", - "sha256:aca48506a9c20f68ee61c87f2008f81f8ee99f8d7f0104bff3c47e2d148f89d9", - "sha256:b2602177668f89b38b9f84b7b3435d0a72511ddef45dc14446811759b82235a1", - "sha256:b3e5fe4538001bb82e2295b8d2a39356a84694c97cb73a566dc36328b9f83b40", - "sha256:b6ca36c12a5120bad343eef193cc0122928c5c7466121da7c20f41160ba00ba2", - "sha256:b89f4477d915ea43b4ceea6756f63f0288941b6443a2b28c69004fe07fde0d0d", - "sha256:b9a9d92f10772d2a181b5ca339dee066ab7d1c9a34ae2421b2a52556e719756f", - "sha256:c99462ffc538717b3e60151dfaf91125f637e801f5ab008f81c402f1dff0cd0f", - "sha256:cb92f9061657287eded380d7dc455bbf115430b3aa4741bdc662d02977e7d0af", - "sha256:cdee837710ef6b56ebd20245b83799fce40b265b3b406e51e8ccc5b85b9099b7", - "sha256:cf10b7d58ae4a1f07fccbf4a0a956d705356fea05fb4c70608bb6fa81d103cda", - "sha256:d15687d7d7f40333bd8266f3814c591c2e2cd263fa2116e314f60d82086e353a", - "sha256:d5c28525c19f5bb1e09511669bb57353d22b94cf8b65f3a8d141c389a55dec95", - "sha256:d5f916acf8afbcab6bacbb376ba7dc61f845367901ecd5e328fc4d4aef2fcab0", - "sha256:dab03ed811ed1c71d700ed08bde8431cf429bbe59e423394f0f4055f1ca0ea60", - "sha256:db453f2da3f59a348f514cfbfeb042393b68720787bbef2b4c6068ea362c8149", - "sha256:de2a0645a923ba57c5527497daf8ec5df69c6eadf869e9cd46e86349146e5975", - "sha256:dea7fcd62915fb150cdc373212141a30037e11b761fbced340e9db3379b892d4", - "sha256:dfcbebdb3c4b6f739a91769aea5ed615023f3c88cb70df812849aef634c25fbe", - "sha256:dfcebb950aa7e667ec226a442722134539e77c575f6cfaa423f24371bb8d2e94", - "sha256:e0641b506486f0b4cd1500a2a65740243e8670a2549bb02bc4556a83af84ae03", - "sha256:e33b0834f1cf779aa839975f9d8755a7c2420510c0fa1e9fa0497de77cd35d2c", - "sha256:e4ace1e220b078c8e48e82c081e35002038657e4b37d403ce940fa679e57113b", - "sha256:e4cf2d5829f6963a5483ec01578ee76d329eb5caf330ecd05b3edd697e7d768a", - "sha256:e574de99d735b3fc8364cba9912c2bec2da78775eba95cbb225ef7dda6acea24", - "sha256:e646c0e282e960345314f42f2cea5e0b5f56938c093541ea6dbf11aec2862391", - "sha256:e8a5ac97ea521d7bde7621d86c30e86b798cdecd985723c4ed737a2aa9e77d0c", - "sha256:eedf97be7bc3dbc8addcef4142f4b4164066df0c6f36397ae4aaed3eb187d8ab", - "sha256:ef633add81832f4b56d3b4c9408b43d530dfca29e68fb1b797dcb861a2c734cd", - "sha256:f27207e8ca3e5e021e2402ba942e5b4c629718e665c81b8b306f3c8b1ddbb786", - "sha256:f85f3843bdb1fe80e8c206fe6eed7a1caeae897e496542cee499c374a85c6e08", - "sha256:f8e81e4b55930e5ffab4a68db1af431629cf2e4066dbdbfef65348b8ab804ea8", - "sha256:f96ae96a060a8072ceff4cfde89d261837b4294a4f28b84a28765470d502ccc6", - "sha256:fd9e98b408384989ea4ab60206b8e100d8687da18b5c813c11e92fd8212a98e0", - "sha256:ffff855100bc066ff2cd3aa4a60bc9534661816b110f0243e59503ec2df38421" + "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d", + "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f", + "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686", + "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482", + "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006", + "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83", + "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6", + "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88", + "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86", + "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a", + "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6", + "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a", + "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6", + "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6", + "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43", + "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c", + "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4", + "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e", + "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203", + "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd", + "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1", + "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24", + "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc", + "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc", + "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3", + "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598", + "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98", + "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331", + "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2", + "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a", + "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6", + "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688", + "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91", + "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa", + "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b", + "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0", + "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840", + "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c", + "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd", + "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3", + "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231", + "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1", + "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953", + "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250", + "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a", + "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2", + "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20", + "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434", + "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab", + "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703", + "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a", + "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2", + "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac", + "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611", + "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121", + "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e", + "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b", + "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09", + "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906", + "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9", + "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7", + "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b", + "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987", + "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c", + "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b", + "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e", + "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237", + "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1", + "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19", + "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b", + "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad", + "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0", + "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94", + "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312", + "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f", + "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669", + "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1", + "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe", + "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99", + "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a", + "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a", + "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52", + "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c", + "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad", + "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1", + "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a", + "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f", + "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a", + "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27" ], - "markers": "python_version >= '3.7'", - "version": "==2.14.6" + "markers": "python_version >= '3.8'", + "version": "==2.20.1" }, "pydantic-settings": { "hashes": [ - "sha256:00b9f6a5e95553590434c0fa01ead0b216c3e10bc54ae02e37f359948643c5ed", - "sha256:0235391d26db4d2190cb9b31051c4b46882d28a51533f97440867f012d4da091" + "sha256:bb6849dc067f1687574c12a639e231f3a6feeed0a12d710c1382045c5db1c315", + "sha256:ed81c3a0f46392b4d7c0a565c05884e6e54b3456e6f0fe4d8814981172dc9a88" ], "markers": "python_version >= '3.8'", - "version": "==2.2.1" - }, - "pyethash": { - "hashes": [ - "sha256:ff66319ce26b9d77df1f610942634dac9742e216f2c27b051c0a2c2dec9c2818" - ], - "version": "==0.1.27" + "version": "==2.4.0" }, "pyflakes": { "hashes": [ @@ -1938,48 +2040,13 @@ "markers": "python_version >= '3.8'", "version": "==3.2.0" }, - "pygithub": { - "hashes": [ - "sha256:3d87a822e6c868142f0c2c4bf16cce4696b5a7a4d142a7bd160e1bdf75bc54a9", - "sha256:c44e3a121c15bf9d3a5cc98d94c9a047a5132a9b01d22264627f58ade9ddc217" - ], - "markers": "python_version >= '3.7'", - "version": "==1.59.1" - }, "pygments": { "hashes": [ - "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", - "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" - ], - "markers": "python_version >= '3.7'", - "version": "==2.17.2" - }, - "pyjwt": { - "extras": [ - "crypto" - ], - "hashes": [ - "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de", - "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320" + "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", + "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a" ], - "markers": "python_version >= '3.7'", - "version": "==2.8.0" - }, - "pynacl": { - "hashes": [ - "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", - "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", - "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", - "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", - "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", - "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", - "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", - "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", - "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", - "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543" - ], - "markers": "python_version >= '3.6'", - "version": "==1.5.0" + "markers": "python_version >= '3.8'", + "version": "==2.18.0" }, "pyproject-api": { "hashes": [ @@ -1991,11 +2058,11 @@ }, "pytest": { "hashes": [ - "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280", - "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8" + "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5", + "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce" ], - "markers": "python_version >= '3.7'", - "version": "==7.4.4" + "markers": "python_version >= '3.8'", + "version": "==8.3.2" }, "python-baseconv": { "hashes": [ @@ -2035,176 +2102,164 @@ }, "pyyaml": { "hashes": [ - "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", - "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", - "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", - "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", - "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", - "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", - "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", - "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", - "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", - "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", - "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", - "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", - "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", - "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", - "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", - "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", - "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", - "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", - "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", - "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", - "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", - "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", - "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", - "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", - "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", - "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", - "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", - "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", - "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", - "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef", - "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", - "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", - "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", - "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", - "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", - "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", - "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", - "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", - "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", - "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", - "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", - "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", - "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", - "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", - "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", - "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", - "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", - "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", - "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", - "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", - "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" + "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", + "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", + "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", + "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", + "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", + "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", + "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", + "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", + "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", + "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", + "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", + "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", + "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", + "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", + "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", + "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", + "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", + "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", + "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", + "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", + "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", + "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", + "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", + "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", + "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", + "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", + "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", + "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", + "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", + "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", + "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", + "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", + "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", + "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", + "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", + "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", + "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", + "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", + "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", + "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", + "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", + "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", + "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", + "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", + "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", + "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", + "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", + "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", + "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", + "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", + "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", + "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", + "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" ], "index": "pypi", - "markers": "python_version >= '3.6'", - "version": "==6.0.1" + "markers": "python_version >= '3.8'", + "version": "==6.0.2" }, "referencing": { "hashes": [ - "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844", - "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4" + "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", + "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de" ], "markers": "python_version >= '3.8'", - "version": "==0.34.0" + "version": "==0.35.1" }, "regex": { "hashes": [ - "sha256:0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5", - "sha256:086dd15e9435b393ae06f96ab69ab2d333f5d65cbe65ca5a3ef0ec9564dfe770", - "sha256:094ba386bb5c01e54e14434d4caabf6583334090865b23ef58e0424a6286d3dc", - "sha256:09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105", - "sha256:0ecf44ddf9171cd7566ef1768047f6e66975788258b1c6c6ca78098b95cf9a3d", - "sha256:0fda75704357805eb953a3ee15a2b240694a9a514548cd49b3c5124b4e2ad01b", - "sha256:11a963f8e25ab5c61348d090bf1b07f1953929c13bd2309a0662e9ff680763c9", - "sha256:150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630", - "sha256:1b9d811f72210fa9306aeb88385b8f8bcef0dfbf3873410413c00aa94c56c2b6", - "sha256:1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c", - "sha256:22a86d9fff2009302c440b9d799ef2fe322416d2d58fc124b926aa89365ec482", - "sha256:22f3470f7524b6da61e2020672df2f3063676aff444db1daa283c2ea4ed259d6", - "sha256:263ef5cc10979837f243950637fffb06e8daed7f1ac1e39d5910fd29929e489a", - "sha256:283fc8eed679758de38fe493b7d7d84a198b558942b03f017b1f94dda8efae80", - "sha256:29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5", - "sha256:298dc6354d414bc921581be85695d18912bea163a8b23cac9a2562bbcd5088b1", - "sha256:2aae8101919e8aa05ecfe6322b278f41ce2994c4a430303c4cd163fef746e04f", - "sha256:2f4e475a80ecbd15896a976aa0b386c5525d0ed34d5c600b6d3ebac0a67c7ddf", - "sha256:34e4af5b27232f68042aa40a91c3b9bb4da0eeb31b7632e0091afc4310afe6cb", - "sha256:37f8e93a81fc5e5bd8db7e10e62dc64261bcd88f8d7e6640aaebe9bc180d9ce2", - "sha256:3a17d3ede18f9cedcbe23d2daa8a2cd6f59fe2bf082c567e43083bba3fb00347", - "sha256:3b1de218d5375cd6ac4b5493e0b9f3df2be331e86520f23382f216c137913d20", - "sha256:43f7cd5754d02a56ae4ebb91b33461dc67be8e3e0153f593c509e21d219c5060", - "sha256:4558410b7a5607a645e9804a3e9dd509af12fb72b9825b13791a37cd417d73a5", - "sha256:4719bb05094d7d8563a450cf8738d2e1061420f79cfcc1fa7f0a44744c4d8f73", - "sha256:4bfc2b16e3ba8850e0e262467275dd4d62f0d045e0e9eda2bc65078c0110a11f", - "sha256:518440c991f514331f4850a63560321f833979d145d7d81186dbe2f19e27ae3d", - "sha256:51f4b32f793812714fd5307222a7f77e739b9bc566dc94a18126aba3b92b98a3", - "sha256:531ac6cf22b53e0696f8e1d56ce2396311254eb806111ddd3922c9d937151dae", - "sha256:5cd05d0f57846d8ba4b71d9c00f6f37d6b97d5e5ef8b3c3840426a475c8f70f4", - "sha256:5dd58946bce44b53b06d94aa95560d0b243eb2fe64227cba50017a8d8b3cd3e2", - "sha256:60080bb3d8617d96f0fb7e19796384cc2467447ef1c491694850ebd3670bc457", - "sha256:636ba0a77de609d6510235b7f0e77ec494d2657108f777e8765efc060094c98c", - "sha256:67d3ccfc590e5e7197750fcb3a2915b416a53e2de847a728cfa60141054123d4", - "sha256:68191f80a9bad283432385961d9efe09d783bcd36ed35a60fb1ff3f1ec2efe87", - "sha256:7502534e55c7c36c0978c91ba6f61703faf7ce733715ca48f499d3dbbd7657e0", - "sha256:7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704", - "sha256:7d2af3f6b8419661a0c421584cfe8aaec1c0e435ce7e47ee2a97e344b98f794f", - "sha256:7e316026cc1095f2a3e8cc012822c99f413b702eaa2ca5408a513609488cb62f", - "sha256:88ad44e220e22b63b0f8f81f007e8abbb92874d8ced66f32571ef8beb0643b2b", - "sha256:88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5", - "sha256:89723d2112697feaa320c9d351e5f5e7b841e83f8b143dba8e2d2b5f04e10923", - "sha256:8a0ccf52bb37d1a700375a6b395bff5dd15c50acb745f7db30415bae3c2b0715", - "sha256:8c2c19dae8a3eb0ea45a8448356ed561be843b13cbc34b840922ddf565498c1c", - "sha256:905466ad1702ed4acfd67a902af50b8db1feeb9781436372261808df7a2a7bca", - "sha256:9852b76ab558e45b20bf1893b59af64a28bd3820b0c2efc80e0a70a4a3ea51c1", - "sha256:98a2636994f943b871786c9e82bfe7883ecdaba2ef5df54e1450fa9869d1f756", - "sha256:9aa1a67bbf0f957bbe096375887b2505f5d8ae16bf04488e8b0f334c36e31360", - "sha256:9eda5f7a50141291beda3edd00abc2d4a5b16c29c92daf8d5bd76934150f3edc", - "sha256:a6d1047952c0b8104a1d371f88f4ab62e6275567d4458c1e26e9627ad489b445", - "sha256:a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e", - "sha256:a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4", - "sha256:ad83e7545b4ab69216cef4cc47e344d19622e28aabec61574b20257c65466d6a", - "sha256:b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8", - "sha256:b43523d7bc2abd757119dbfb38af91b5735eea45537ec6ec3a5ec3f9562a1c53", - "sha256:b521dcecebc5b978b447f0f69b5b7f3840eac454862270406a39837ffae4e697", - "sha256:b77e27b79448e34c2c51c09836033056a0547aa360c45eeeb67803da7b0eedaf", - "sha256:b7a635871143661feccce3979e1727c4e094f2bdfd3ec4b90dfd4f16f571a87a", - "sha256:b7fca9205b59c1a3d5031f7e64ed627a1074730a51c2a80e97653e3e9fa0d415", - "sha256:ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f", - "sha256:ba99d8077424501b9616b43a2d208095746fb1284fc5ba490139651f971d39d9", - "sha256:c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400", - "sha256:c3c4a78615b7762740531c27cf46e2f388d8d727d0c0c739e72048beb26c8a9d", - "sha256:c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392", - "sha256:c7ad32824b7f02bb3c9f80306d405a1d9b7bb89362d68b3c5a9be53836caebdb", - "sha256:cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd", - "sha256:cc038b2d8b1470364b1888a98fd22d616fba2b6309c5b5f181ad4483e0017861", - "sha256:cc37b9aeebab425f11f27e5e9e6cf580be7206c6582a64467a14dda211abc232", - "sha256:cc6bb9aa69aacf0f6032c307da718f61a40cf970849e471254e0e91c56ffca95", - "sha256:d126361607b33c4eb7b36debc173bf25d7805847346dd4d99b5499e1fef52bc7", - "sha256:d15b274f9e15b1a0b7a45d2ac86d1f634d983ca40d6b886721626c47a400bf39", - "sha256:d166eafc19f4718df38887b2bbe1467a4f74a9830e8605089ea7a30dd4da8887", - "sha256:d498eea3f581fbe1b34b59c697512a8baef88212f92e4c7830fcc1499f5b45a5", - "sha256:d6f7e255e5fa94642a0724e35406e6cb7001c09d476ab5fce002f652b36d0c39", - "sha256:d78bd484930c1da2b9679290a41cdb25cc127d783768a0369d6b449e72f88beb", - "sha256:d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586", - "sha256:d902a43085a308cef32c0d3aea962524b725403fd9373dea18110904003bac97", - "sha256:d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423", - "sha256:da695d75ac97cb1cd725adac136d25ca687da4536154cdc2815f576e4da11c69", - "sha256:db2a0b1857f18b11e3b0e54ddfefc96af46b0896fb678c85f63fb8c37518b3e7", - "sha256:df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1", - "sha256:e14b73607d6231f3cc4622809c196b540a6a44e903bcfad940779c80dffa7be7", - "sha256:e2610e9406d3b0073636a3a2e80db05a02f0c3169b5632022b4e81c0364bcda5", - "sha256:e692296c4cc2873967771345a876bcfc1c547e8dd695c6b89342488b0ea55cd8", - "sha256:e693e233ac92ba83a87024e1d32b5f9ab15ca55ddd916d878146f4e3406b5c91", - "sha256:e81469f7d01efed9b53740aedd26085f20d49da65f9c1f41e822a33992cb1590", - "sha256:e8c7e08bb566de4faaf11984af13f6bcf6a08f327b13631d41d62592681d24fe", - "sha256:ed19b3a05ae0c97dd8f75a5d8f21f7723a8c33bbc555da6bbe1f96c470139d3c", - "sha256:efb2d82f33b2212898f1659fb1c2e9ac30493ac41e4d53123da374c3b5541e64", - "sha256:f44dd4d68697559d007462b0a3a1d9acd61d97072b71f6d1968daef26bc744bd", - "sha256:f72cbae7f6b01591f90814250e636065850c5926751af02bb48da94dfced7baa", - "sha256:f7bc09bc9c29ebead055bcba136a67378f03d66bf359e87d0f7c759d6d4ffa31", - "sha256:ff100b203092af77d1a5a7abe085b3506b7eaaf9abf65b73b7d6905b6cb76988" + "sha256:01b689e887f612610c869421241e075c02f2e3d1ae93a037cb14f88ab6a8934c", + "sha256:04ce29e2c5fedf296b1a1b0acc1724ba93a36fb14031f3abfb7abda2806c1535", + "sha256:0ffe3f9d430cd37d8fa5632ff6fb36d5b24818c5c986893063b4e5bdb84cdf24", + "sha256:18300a1d78cf1290fa583cd8b7cde26ecb73e9f5916690cf9d42de569c89b1ce", + "sha256:185e029368d6f89f36e526764cf12bf8d6f0e3a2a7737da625a76f594bdfcbfc", + "sha256:19c65b00d42804e3fbea9708f0937d157e53429a39b7c61253ff15670ff62cb5", + "sha256:228b0d3f567fafa0633aee87f08b9276c7062da9616931382993c03808bb68ce", + "sha256:23acc72f0f4e1a9e6e9843d6328177ae3074b4182167e34119ec7233dfeccf53", + "sha256:25419b70ba00a16abc90ee5fce061228206173231f004437730b67ac77323f0d", + "sha256:2dfbb8baf8ba2c2b9aa2807f44ed272f0913eeeba002478c4577b8d29cde215c", + "sha256:2f1baff13cc2521bea83ab2528e7a80cbe0ebb2c6f0bfad15be7da3aed443908", + "sha256:33e2614a7ce627f0cdf2ad104797d1f68342d967de3695678c0cb84f530709f8", + "sha256:3426de3b91d1bc73249042742f45c2148803c111d1175b283270177fdf669024", + "sha256:382281306e3adaaa7b8b9ebbb3ffb43358a7bbf585fa93821300a418bb975281", + "sha256:3d974d24edb231446f708c455fd08f94c41c1ff4f04bcf06e5f36df5ef50b95a", + "sha256:3f3b6ca8eae6d6c75a6cff525c8530c60e909a71a15e1b731723233331de4169", + "sha256:3fac296f99283ac232d8125be932c5cd7644084a30748fda013028c815ba3364", + "sha256:416c0e4f56308f34cdb18c3f59849479dde5b19febdcd6e6fa4d04b6c31c9faa", + "sha256:438d9f0f4bc64e8dea78274caa5af971ceff0f8771e1a2333620969936ba10be", + "sha256:43affe33137fcd679bdae93fb25924979517e011f9dea99163f80b82eadc7e53", + "sha256:44fc61b99035fd9b3b9453f1713234e5a7c92a04f3577252b45feefe1b327759", + "sha256:45104baae8b9f67569f0f1dca5e1f1ed77a54ae1cd8b0b07aba89272710db61e", + "sha256:4fdd1384619f406ad9037fe6b6eaa3de2749e2e12084abc80169e8e075377d3b", + "sha256:538d30cd96ed7d1416d3956f94d54e426a8daf7c14527f6e0d6d425fcb4cca52", + "sha256:558a57cfc32adcf19d3f791f62b5ff564922942e389e3cfdb538a23d65a6b610", + "sha256:5eefee9bfe23f6df09ffb6dfb23809f4d74a78acef004aa904dc7c88b9944b05", + "sha256:64bd50cf16bcc54b274e20235bf8edbb64184a30e1e53873ff8d444e7ac656b2", + "sha256:65fd3d2e228cae024c411c5ccdffae4c315271eee4a8b839291f84f796b34eca", + "sha256:66b4c0731a5c81921e938dcf1a88e978264e26e6ac4ec96a4d21ae0354581ae0", + "sha256:68a8f8c046c6466ac61a36b65bb2395c74451df2ffb8458492ef49900efed293", + "sha256:6a1141a1dcc32904c47f6846b040275c6e5de0bf73f17d7a409035d55b76f289", + "sha256:6b9fc7e9cc983e75e2518496ba1afc524227c163e43d706688a6bb9eca41617e", + "sha256:6f51f9556785e5a203713f5efd9c085b4a45aecd2a42573e2b5041881b588d1f", + "sha256:7214477bf9bd195894cf24005b1e7b496f46833337b5dedb7b2a6e33f66d962c", + "sha256:731fcd76bbdbf225e2eb85b7c38da9633ad3073822f5ab32379381e8c3c12e94", + "sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad", + "sha256:7a5486ca56c8869070a966321d5ab416ff0f83f30e0e2da1ab48815c8d165d46", + "sha256:7c479f5ae937ec9985ecaf42e2e10631551d909f203e31308c12d703922742f9", + "sha256:7df9ea48641da022c2a3c9c641650cd09f0cd15e8908bf931ad538f5ca7919c9", + "sha256:7e37e809b9303ec3a179085415cb5f418ecf65ec98cdfe34f6a078b46ef823ee", + "sha256:80c811cfcb5c331237d9bad3bea2c391114588cf4131707e84d9493064d267f9", + "sha256:836d3cc225b3e8a943d0b02633fb2f28a66e281290302a79df0e1eaa984ff7c1", + "sha256:84c312cdf839e8b579f504afcd7b65f35d60b6285d892b19adea16355e8343c9", + "sha256:86b17ba823ea76256b1885652e3a141a99a5c4422f4a869189db328321b73799", + "sha256:871e3ab2838fbcb4e0865a6e01233975df3a15e6fce93b6f99d75cacbd9862d1", + "sha256:88ecc3afd7e776967fa16c80f974cb79399ee8dc6c96423321d6f7d4b881c92b", + "sha256:8bc593dcce679206b60a538c302d03c29b18e3d862609317cb560e18b66d10cf", + "sha256:8fd5afd101dcf86a270d254364e0e8dddedebe6bd1ab9d5f732f274fa00499a5", + "sha256:945352286a541406f99b2655c973852da7911b3f4264e010218bbc1cc73168f2", + "sha256:973335b1624859cb0e52f96062a28aa18f3a5fc77a96e4a3d6d76e29811a0e6e", + "sha256:994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51", + "sha256:9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506", + "sha256:a2ec4419a3fe6cf8a4795752596dfe0adb4aea40d3683a132bae9c30b81e8d73", + "sha256:a4997716674d36a82eab3e86f8fa77080a5d8d96a389a61ea1d0e3a94a582cf7", + "sha256:a512eed9dfd4117110b1881ba9a59b31433caed0c4101b361f768e7bcbaf93c5", + "sha256:a82465ebbc9b1c5c50738536fdfa7cab639a261a99b469c9d4c7dcbb2b3f1e57", + "sha256:ae2757ace61bc4061b69af19e4689fa4416e1a04840f33b441034202b5cd02d4", + "sha256:b16582783f44fbca6fcf46f61347340c787d7530d88b4d590a397a47583f31dd", + "sha256:ba2537ef2163db9e6ccdbeb6f6424282ae4dea43177402152c67ef869cf3978b", + "sha256:bf7a89eef64b5455835f5ed30254ec19bf41f7541cd94f266ab7cbd463f00c41", + "sha256:c0abb5e4e8ce71a61d9446040c1e86d4e6d23f9097275c5bd49ed978755ff0fe", + "sha256:c414cbda77dbf13c3bc88b073a1a9f375c7b0cb5e115e15d4b73ec3a2fbc6f59", + "sha256:c51edc3541e11fbe83f0c4d9412ef6c79f664a3745fab261457e84465ec9d5a8", + "sha256:c5e69fd3eb0b409432b537fe3c6f44ac089c458ab6b78dcec14478422879ec5f", + "sha256:c918b7a1e26b4ab40409820ddccc5d49871a82329640f5005f73572d5eaa9b5e", + "sha256:c9bb87fdf2ab2370f21e4d5636e5317775e5d51ff32ebff2cf389f71b9b13750", + "sha256:ca5b2028c2f7af4e13fb9fc29b28d0ce767c38c7facdf64f6c2cd040413055f1", + "sha256:d0a07763776188b4db4c9c7fb1b8c494049f84659bb387b71c73bbc07f189e96", + "sha256:d33a0021893ede5969876052796165bab6006559ab845fd7b515a30abdd990dc", + "sha256:d55588cba7553f0b6ec33130bc3e114b355570b45785cebdc9daed8c637dd440", + "sha256:dac8e84fff5d27420f3c1e879ce9929108e873667ec87e0c8eeb413a5311adfe", + "sha256:eaef80eac3b4cfbdd6de53c6e108b4c534c21ae055d1dbea2de6b3b8ff3def38", + "sha256:eb462f0e346fcf41a901a126b50f8781e9a474d3927930f3490f38a6e73b6950", + "sha256:eb563dd3aea54c797adf513eeec819c4213d7dbfc311874eb4fd28d10f2ff0f2", + "sha256:f273674b445bcb6e4409bf8d1be67bc4b58e8b46fd0d560055d515b8830063cd", + "sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce", + "sha256:fb168b5924bef397b5ba13aabd8cf5df7d3d93f10218d7b925e360d436863f66", + "sha256:fbf8c2f00904eaf63ff37718eb13acf8e178cb940520e47b2f05027f5bb34ce3", + "sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86" ], - "markers": "python_version >= '3.7'", - "version": "==2023.12.25" + "markers": "python_version >= '3.8'", + "version": "==2024.7.24" }, "requests": { "hashes": [ - "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", - "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" ], - "markers": "python_version >= '3.7'", - "version": "==2.31.0" + "markers": "python_version >= '3.8'", + "version": "==2.32.3" }, "rich": { "hashes": [ @@ -2216,115 +2271,120 @@ }, "rlp": { "hashes": [ - "sha256:63b0465d2948cd9f01de449d7adfb92d207c1aef3982f20310f8009be4a507e8", - "sha256:d2a963225b3f26795c5b52310e0871df9824af56823d739511583ef459895a7d" + "sha256:bcefb11013dfadf8902642337923bd0c786dc8a27cb4c21da6e154e52869ecb1", + "sha256:ff6846c3c27b97ee0492373aa074a7c3046aadd973320f4fffa7ac45564b0258" ], - "version": "==3.0.0" + "markers": "python_version >= '3.8' and python_version < '4'", + "version": "==4.0.1" }, "rpds-py": { "hashes": [ - "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f", - "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c", - "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76", - "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e", - "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157", - "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f", - "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5", - "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05", - "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24", - "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1", - "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8", - "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b", - "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb", - "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07", - "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1", - "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6", - "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e", - "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e", - "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1", - "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab", - "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4", - "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17", - "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594", - "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d", - "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d", - "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3", - "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c", - "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66", - "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f", - "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80", - "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33", - "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f", - "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c", - "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022", - "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e", - "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f", - "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da", - "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1", - "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688", - "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795", - "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c", - "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98", - "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1", - "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20", - "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307", - "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4", - "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18", - "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294", - "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66", - "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467", - "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948", - "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e", - "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1", - "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0", - "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7", - "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd", - "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641", - "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d", - "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9", - "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1", - "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da", - "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3", - "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa", - "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7", - "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40", - "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496", - "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124", - "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836", - "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434", - "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984", - "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f", - "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6", - "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e", - "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461", - "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c", - "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432", - "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73", - "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58", - "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88", - "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337", - "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7", - "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863", - "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475", - "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3", - "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51", - "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf", - "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024", - "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40", - "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9", - "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec", - "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb", - "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7", - "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861", - "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880", - "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f", - "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd", - "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca", - "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58", - "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e" + "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c", + "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585", + "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5", + "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6", + "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef", + "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2", + "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29", + "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318", + "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b", + "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399", + "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739", + "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee", + "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174", + "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a", + "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344", + "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2", + "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03", + "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5", + "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22", + "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e", + "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96", + "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91", + "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752", + "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075", + "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253", + "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee", + "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad", + "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5", + "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce", + "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7", + "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b", + "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8", + "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57", + "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3", + "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec", + "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209", + "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921", + "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045", + "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074", + "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580", + "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7", + "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5", + "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3", + "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0", + "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24", + "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139", + "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db", + "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc", + "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789", + "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f", + "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2", + "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c", + "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232", + "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6", + "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c", + "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29", + "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489", + "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94", + "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751", + "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2", + "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda", + "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9", + "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51", + "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c", + "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8", + "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989", + "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511", + "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1", + "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2", + "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150", + "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c", + "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965", + "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f", + "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58", + "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b", + "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f", + "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d", + "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821", + "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de", + "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121", + "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855", + "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272", + "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60", + "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02", + "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1", + "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140", + "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879", + "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940", + "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364", + "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4", + "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e", + "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420", + "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5", + "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24", + "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c", + "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf", + "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f", + "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e", + "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab", + "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08", + "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92", + "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a", + "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8" ], "markers": "python_version >= '3.8'", - "version": "==0.18.0" + "version": "==0.20.0" }, "safe-pysha3": { "hashes": [ @@ -2340,14 +2400,6 @@ "markers": "python_version >= '2.7'", "version": "==2.10.0" }, - "setuptools": { - "hashes": [ - "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e", - "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c" - ], - "markers": "python_version >= '3.8'", - "version": "==69.2.0" - }, "six": { "hashes": [ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", @@ -2365,58 +2417,58 @@ }, "sqlalchemy": { "hashes": [ - "sha256:01d10638a37460616708062a40c7b55f73e4d35eaa146781c683e0fa7f6c43fb", - "sha256:04c487305ab035a9548f573763915189fc0fe0824d9ba28433196f8436f1449c", - "sha256:0dfefdb3e54cd15f5d56fd5ae32f1da2d95d78319c1f6dfb9bcd0eb15d603d5d", - "sha256:0f3ca96af060a5250a8ad5a63699180bc780c2edf8abf96c58af175921df847a", - "sha256:205f5a2b39d7c380cbc3b5dcc8f2762fb5bcb716838e2d26ccbc54330775b003", - "sha256:25664e18bef6dc45015b08f99c63952a53a0a61f61f2e48a9e70cec27e55f699", - "sha256:296195df68326a48385e7a96e877bc19aa210e485fa381c5246bc0234c36c78e", - "sha256:2a0732dffe32333211801b28339d2a0babc1971bc90a983e3035e7b0d6f06b93", - "sha256:3071ad498896907a5ef756206b9dc750f8e57352113c19272bdfdc429c7bd7de", - "sha256:308ef9cb41d099099fffc9d35781638986870b29f744382904bf9c7dadd08513", - "sha256:334184d1ab8f4c87f9652b048af3f7abea1c809dfe526fb0435348a6fef3d380", - "sha256:38b624e5cf02a69b113c8047cf7f66b5dfe4a2ca07ff8b8716da4f1b3ae81567", - "sha256:471fcb39c6adf37f820350c28aac4a7df9d3940c6548b624a642852e727ea586", - "sha256:4c142852ae192e9fe5aad5c350ea6befe9db14370b34047e1f0f7cf99e63c63b", - "sha256:4f6d971255d9ddbd3189e2e79d743ff4845c07f0633adfd1de3f63d930dbe673", - "sha256:52c8011088305476691b8750c60e03b87910a123cfd9ad48576d6414b6ec2a1d", - "sha256:52de4736404e53c5c6a91ef2698c01e52333988ebdc218f14c833237a0804f1b", - "sha256:5c7b02525ede2a164c5fa5014915ba3591730f2cc831f5be9ff3b7fd3e30958e", - "sha256:5ef3fbccb4058355053c51b82fd3501a6e13dd808c8d8cd2561e610c5456013c", - "sha256:5f20cb0a63a3e0ec4e169aa8890e32b949c8145983afa13a708bc4b0a1f30e03", - "sha256:61405ea2d563407d316c63a7b5271ae5d274a2a9fbcd01b0aa5503635699fa1e", - "sha256:77d29cb6c34b14af8a484e831ab530c0f7188f8efed1c6a833a2c674bf3c26ec", - "sha256:7b184e3de58009cc0bf32e20f137f1ec75a32470f5fede06c58f6c355ed42a72", - "sha256:7e614d7a25a43a9f54fcce4675c12761b248547f3d41b195e8010ca7297c369c", - "sha256:8197d6f7a3d2b468861ebb4c9f998b9df9e358d6e1cf9c2a01061cb9b6cf4e41", - "sha256:87a1d53a5382cdbbf4b7619f107cc862c1b0a4feb29000922db72e5a66a5ffc0", - "sha256:8c37f1050feb91f3d6c32f864d8e114ff5545a4a7afe56778d76a9aec62638ba", - "sha256:90453597a753322d6aa770c5935887ab1fc49cc4c4fdd436901308383d698b4b", - "sha256:988569c8732f54ad3234cf9c561364221a9e943b78dc7a4aaf35ccc2265f1930", - "sha256:99a1e69d4e26f71e750e9ad6fdc8614fbddb67cfe2173a3628a2566034e223c7", - "sha256:9b19836ccca0d321e237560e475fd99c3d8655d03da80c845c4da20dda31b6e1", - "sha256:9d6753305936eddc8ed190e006b7bb33a8f50b9854823485eed3a886857ab8d1", - "sha256:a13b917b4ffe5a0a31b83d051d60477819ddf18276852ea68037a144a506efb9", - "sha256:a88913000da9205b13f6f195f0813b6ffd8a0c0c2bd58d499e00a30eb508870c", - "sha256:b2a0e3cf0caac2085ff172c3faacd1e00c376e6884b5bc4dd5b6b84623e29e4f", - "sha256:b5d7ed79df55a731749ce65ec20d666d82b185fa4898430b17cb90c892741520", - "sha256:bab41acf151cd68bc2b466deae5deeb9e8ae9c50ad113444151ad965d5bf685b", - "sha256:bd9566b8e58cabd700bc367b60e90d9349cd16f0984973f98a9a09f9c64e86f0", - "sha256:bda7ce59b06d0f09afe22c56714c65c957b1068dee3d5e74d743edec7daba552", - "sha256:c2f9c762a2735600654c654bf48dad388b888f8ce387b095806480e6e4ff6907", - "sha256:c4520047006b1d3f0d89e0532978c0688219857eb2fee7c48052560ae76aca1e", - "sha256:d96710d834a6fb31e21381c6d7b76ec729bd08c75a25a5184b1089141356171f", - "sha256:dba622396a3170974f81bad49aacebd243455ec3cc70615aeaef9e9613b5bca5", - "sha256:dc4ee2d4ee43251905f88637d5281a8d52e916a021384ec10758826f5cbae305", - "sha256:dddaae9b81c88083e6437de95c41e86823d150f4ee94bf24e158a4526cbead01", - "sha256:de7202ffe4d4a8c1e3cde1c03e01c1a3772c92858837e8f3879b497158e4cb44", - "sha256:e5bbe55e8552019c6463709b39634a5fc55e080d0827e2a3a11e18eb73f5cdbd", - "sha256:ea311d4ee9a8fa67f139c088ae9f905fcf0277d6cd75c310a21a88bf85e130f5", - "sha256:fecd5089c4be1bcc37c35e9aa678938d2888845a134dd016de457b942cf5a758" + "sha256:01438ebcdc566d58c93af0171c74ec28efe6a29184b773e378a385e6215389da", + "sha256:0c1c9b673d21477cec17ab10bc4decb1322843ba35b481585facd88203754fc5", + "sha256:0c9045ecc2e4db59bfc97b20516dfdf8e41d910ac6fb667ebd3a79ea54084619", + "sha256:0d322cc9c9b2154ba7e82f7bf25ecc7c36fbe2d82e2933b3642fc095a52cfc78", + "sha256:0ef18a84e5116340e38eca3e7f9eeaaef62738891422e7c2a0b80feab165905f", + "sha256:1467940318e4a860afd546ef61fefb98a14d935cd6817ed07a228c7f7c62f389", + "sha256:14e09e083a5796d513918a66f3d6aedbc131e39e80875afe81d98a03312889e6", + "sha256:167e7497035c303ae50651b351c28dc22a40bb98fbdb8468cdc971821b1ae533", + "sha256:19d98f4f58b13900d8dec4ed09dd09ef292208ee44cc9c2fe01c1f0a2fe440e9", + "sha256:21b053be28a8a414f2ddd401f1be8361e41032d2ef5884b2f31d31cb723e559f", + "sha256:251f0d1108aab8ea7b9aadbd07fb47fb8e3a5838dde34aa95a3349876b5a1f1d", + "sha256:295ff8689544f7ee7e819529633d058bd458c1fd7f7e3eebd0f9268ebc56c2a0", + "sha256:2b6be53e4fde0065524f1a0a7929b10e9280987b320716c1509478b712a7688c", + "sha256:306fe44e754a91cd9d600a6b070c1f2fadbb4a1a257b8781ccf33c7067fd3e4d", + "sha256:31983018b74908ebc6c996a16ad3690301a23befb643093fcfe85efd292e384d", + "sha256:328429aecaba2aee3d71e11f2477c14eec5990fb6d0e884107935f7fb6001632", + "sha256:3bd1cae7519283ff525e64645ebd7a3e0283f3c038f461ecc1c7b040a0c932a1", + "sha256:3cd33c61513cb1b7371fd40cf221256456d26a56284e7d19d1f0b9f1eb7dd7e8", + "sha256:3eb6a97a1d39976f360b10ff208c73afb6a4de86dd2a6212ddf65c4a6a2347d5", + "sha256:4363ed245a6231f2e2957cccdda3c776265a75851f4753c60f3004b90e69bfeb", + "sha256:4488120becf9b71b3ac718f4138269a6be99a42fe023ec457896ba4f80749525", + "sha256:49496b68cd190a147118af585173ee624114dfb2e0297558c460ad7495f9dfe2", + "sha256:4979dc80fbbc9d2ef569e71e0896990bc94df2b9fdbd878290bd129b65ab579c", + "sha256:52fec964fba2ef46476312a03ec8c425956b05c20220a1a03703537824b5e8e1", + "sha256:5954463675cb15db8d4b521f3566a017c8789222b8316b1e6934c811018ee08b", + "sha256:62e23d0ac103bcf1c5555b6c88c114089587bc64d048fef5bbdb58dfd26f96da", + "sha256:6bab3db192a0c35e3c9d1560eb8332463e29e5507dbd822e29a0a3c48c0a8d92", + "sha256:6c742be912f57586ac43af38b3848f7688863a403dfb220193a882ea60e1ec3a", + "sha256:723a40ee2cc7ea653645bd4cf024326dea2076673fc9d3d33f20f6c81db83e1d", + "sha256:78c03d0f8a5ab4f3034c0e8482cfcc415a3ec6193491cfa1c643ed707d476f16", + "sha256:7d6ba0497c1d066dd004e0f02a92426ca2df20fac08728d03f67f6960271feec", + "sha256:7dd8583df2f98dea28b5cd53a1beac963f4f9d087888d75f22fcc93a07cf8d84", + "sha256:85a01b5599e790e76ac3fe3aa2f26e1feba56270023d6afd5550ed63c68552b3", + "sha256:8a37e4d265033c897892279e8adf505c8b6b4075f2b40d77afb31f7185cd6ecd", + "sha256:8bd63d051f4f313b102a2af1cbc8b80f061bf78f3d5bd0843ff70b5859e27924", + "sha256:916a798f62f410c0b80b63683c8061f5ebe237b0f4ad778739304253353bc1cb", + "sha256:9365a3da32dabd3e69e06b972b1ffb0c89668994c7e8e75ce21d3e5e69ddef28", + "sha256:99db65e6f3ab42e06c318f15c98f59a436f1c78179e6a6f40f529c8cc7100b22", + "sha256:aaf04784797dcdf4c0aa952c8d234fa01974c4729db55c45732520ce12dd95b4", + "sha256:acd9b73c5c15f0ec5ce18128b1fe9157ddd0044abc373e6ecd5ba376a7e5d961", + "sha256:ada0102afff4890f651ed91120c1120065663506b760da4e7823913ebd3258be", + "sha256:b178e875a7a25b5938b53b006598ee7645172fccafe1c291a706e93f48499ff5", + "sha256:b27dfb676ac02529fb6e343b3a482303f16e6bc3a4d868b73935b8792edb52d0", + "sha256:b8afd5b26570bf41c35c0121801479958b4446751a3971fb9a480c1afd85558e", + "sha256:bf2360a5e0f7bd75fa80431bf8ebcfb920c9f885e7956c7efde89031695cafb8", + "sha256:c1b88cc8b02b6a5f0efb0345a03672d4c897dc7d92585176f88c67346f565ea8", + "sha256:c41a2b9ca80ee555decc605bd3c4520cc6fef9abde8fd66b1cf65126a6922d65", + "sha256:c750987fc876813f27b60d619b987b057eb4896b81117f73bb8d9918c14f1cad", + "sha256:e567a8793a692451f706b363ccf3c45e056b67d90ead58c3bc9471af5d212202" ], "markers": "python_version >= '3.7'", - "version": "==2.0.29" + "version": "==2.0.32" }, "stack-data": { "hashes": [ @@ -2435,52 +2487,68 @@ }, "tox": { "hashes": [ - "sha256:0defb44f6dafd911b61788325741cc6b2e12ea71f987ac025ad4d649f1f1a104", - "sha256:2900c4eb7b716af4a928a7fdc2ed248ad6575294ed7cfae2ea41203937422847" + "sha256:53a092527d65e873e39213ebd4bd027a64623320b6b0326136384213f95b7076", + "sha256:f00a5dc4222b358e69694e47e3da0227ac41253509bca9f45aa8f012053e8d9d" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==4.14.2" + "version": "==4.15.1" }, "tqdm": { "hashes": [ - "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9", - "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531" + "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd", + "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad" ], "markers": "python_version >= '3.7'", - "version": "==4.66.2" + "version": "==4.66.5" }, "traitlets": { "hashes": [ - "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9", - "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80" + "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", + "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f" ], "markers": "python_version >= '3.8'", - "version": "==5.14.2" + "version": "==5.14.3" }, "trie": { "hashes": [ - "sha256:117a6f0844eb60f2f68ed45e621886690dacd16343394c1adfb3ff44231725bc", - "sha256:b6ad00305722b271cd05c9475e741c92a61f0ca53e6cc4fa9a5591e37eac34ca" + "sha256:3f53adaa04726eb23cb786b0118e62d1f2fb6ed0a7968be964dc34aba27380ee", + "sha256:fbe90011a28f4fc6597bc83706589c2a74c81c8b1410c5e16eebfae0e9796464" ], - "markers": "python_version >= '3.7' and python_version < '4'", - "version": "==2.2.0" + "markers": "python_version >= '3.8' and python_version < '4'", + "version": "==3.0.1" + }, + "types-requests": { + "hashes": [ + "sha256:90c079ff05e549f6bf50e02e910210b98b8ff1ebdd18e19c873cd237737c1358", + "sha256:f754283e152c752e46e70942fa2a146b5bc70393522257bb85bd1ef7e019dcc3" + ], + "markers": "python_version >= '3.8'", + "version": "==2.32.0.20240712" }, "typing-extensions": { "hashes": [ - "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", - "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb" + "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" ], "markers": "python_version >= '3.8'", - "version": "==4.10.0" + "version": "==4.12.2" + }, + "tzdata": { + "hashes": [ + "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd", + "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252" + ], + "markers": "python_version >= '2'", + "version": "==2024.1" }, "urllib3": { "hashes": [ - "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", - "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" + "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", + "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168" ], "markers": "python_version >= '3.8'", - "version": "==2.2.1" + "version": "==2.2.2" }, "varint": { "hashes": [ @@ -2490,11 +2558,11 @@ }, "virtualenv": { "hashes": [ - "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a", - "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197" + "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a", + "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589" ], "markers": "python_version >= '3.7'", - "version": "==20.25.1" + "version": "==20.26.3" }, "watchdog": { "hashes": [ @@ -2541,165 +2609,103 @@ "tester" ], "hashes": [ - "sha256:50e96cc447823444510ee659586b264ebc7ddbfc74cccb720d042146aa404348", - "sha256:b10c93476c106acc44b8428e47c61c385b7d0885e82cdc24049d27f521833552" + "sha256:16fe72aeb48bbd5f7e7e64b323a0d3a16522a28eb4f19ef9f9dd6ce7ee813c82", + "sha256:a29bc1863734e1c05f128ddbc56878f299ea71776806e667b581a83b5d5be0ed" ], "markers": "python_full_version >= '3.7.2'", - "version": "==6.16.0" + "version": "==6.20.1" }, "websockets": { "hashes": [ - "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b", - "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6", - "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df", - "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b", - "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205", - "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892", - "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53", - "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2", - "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed", - "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c", - "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd", - "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b", - "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931", - "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30", - "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370", - "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be", - "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec", - "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf", - "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62", - "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b", - "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402", - "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f", - "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123", - "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9", - "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603", - "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45", - "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558", - "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4", - "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438", - "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137", - "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480", - "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447", - "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8", - "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04", - "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c", - "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb", - "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967", - "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b", - "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d", - "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def", - "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c", - "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92", - "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2", - "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113", - "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b", - "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28", - "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7", - "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d", - "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f", - "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468", - "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8", - "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae", - "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611", - "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d", - "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9", - "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca", - "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f", - "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2", - "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077", - "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2", - "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6", - "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374", - "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc", - "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e", - "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53", - "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399", - "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547", - "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3", - "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870", - "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5", - "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8", - "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7" + "sha256:02cc9bb1a887dac0e08bf657c5d00aa3fac0d03215d35a599130c2034ae6663a", + "sha256:038e7a0f1bfafc7bf52915ab3506b7a03d1e06381e9f60440c856e8918138151", + "sha256:05c25f7b849702950b6fd0e233989bb73a0d2bc83faa3b7233313ca395205f6d", + "sha256:06b3186e97bf9a33921fa60734d5ed90f2a9b407cce8d23c7333a0984049ef61", + "sha256:06df8306c241c235075d2ae77367038e701e53bc8c1bb4f6644f4f53aa6dedd0", + "sha256:0a8f7d65358a25172db00c69bcc7df834155ee24229f560d035758fd6613111a", + "sha256:1f661a4205741bdc88ac9c2b2ec003c72cee97e4acd156eb733662ff004ba429", + "sha256:265e1f0d3f788ce8ef99dca591a1aec5263b26083ca0934467ad9a1d1181067c", + "sha256:2be1382a4daa61e2f3e2be3b3c86932a8db9d1f85297feb6e9df22f391f94452", + "sha256:2e1cf4e1eb84b4fd74a47688e8b0940c89a04ad9f6937afa43d468e71128cd68", + "sha256:337837ac788d955728b1ab01876d72b73da59819a3388e1c5e8e05c3999f1afa", + "sha256:358d37c5c431dd050ffb06b4b075505aae3f4f795d7fff9794e5ed96ce99b998", + "sha256:35c2221b539b360203f3f9ad168e527bf16d903e385068ae842c186efb13d0ea", + "sha256:3670def5d3dfd5af6f6e2b3b243ea8f1f72d8da1ef927322f0703f85c90d9603", + "sha256:372f46a0096cfda23c88f7e42349a33f8375e10912f712e6b496d3a9a557290f", + "sha256:376a43a4fd96725f13450d3d2e98f4f36c3525c562ab53d9a98dd2950dca9a8a", + "sha256:384129ad0490e06bab2b98c1da9b488acb35bb11e2464c728376c6f55f0d45f3", + "sha256:3a20cf14ba7b482c4a1924b5e061729afb89c890ca9ed44ac4127c6c5986e424", + "sha256:3e6566e79c8c7cbea75ec450f6e1828945fc5c9a4769ceb1c7b6e22470539712", + "sha256:4782ec789f059f888c1e8fdf94383d0e64b531cffebbf26dd55afd53ab487ca4", + "sha256:4d70c89e3d3b347a7c4d3c33f8d323f0584c9ceb69b82c2ef8a174ca84ea3d4a", + "sha256:516062a0a8ef5ecbfa4acbaec14b199fc070577834f9fe3d40800a99f92523ca", + "sha256:5575031472ca87302aeb2ce2c2349f4c6ea978c86a9d1289bc5d16058ad4c10a", + "sha256:587245f0704d0bb675f919898d7473e8827a6d578e5a122a21756ca44b811ec8", + "sha256:602cbd010d8c21c8475f1798b705bb18567eb189c533ab5ef568bc3033fdf417", + "sha256:6058b6be92743358885ad6dcdecb378fde4a4c74d4dd16a089d07580c75a0e80", + "sha256:63b702fb31e3f058f946ccdfa551f4d57a06f7729c369e8815eb18643099db37", + "sha256:6ad684cb7efce227d756bae3e8484f2e56aa128398753b54245efdfbd1108f2c", + "sha256:6fd757f313c13c34dae9f126d3ba4cf97175859c719e57c6a614b781c86b617e", + "sha256:7334752052532c156d28b8eaf3558137e115c7871ea82adff69b6d94a7bee273", + "sha256:788bc841d250beccff67a20a5a53a15657a60111ef9c0c0a97fbdd614fae0fe2", + "sha256:7d14901fdcf212804970c30ab9ee8f3f0212e620c7ea93079d6534863444fb4e", + "sha256:7ea9c9c7443a97ea4d84d3e4d42d0e8c4235834edae652993abcd2aff94affd7", + "sha256:81a11a1ddd5320429db47c04d35119c3e674d215173d87aaeb06ae80f6e9031f", + "sha256:851fd0afb3bc0b73f7c5b5858975d42769a5fdde5314f4ef2c106aec63100687", + "sha256:85a1f92a02f0b8c1bf02699731a70a8a74402bb3f82bee36e7768b19a8ed9709", + "sha256:89d795c1802d99a643bf689b277e8604c14b5af1bc0a31dade2cd7a678087212", + "sha256:9202c0010c78fad1041e1c5285232b6508d3633f92825687549540a70e9e5901", + "sha256:939a16849d71203628157a5e4a495da63967c744e1e32018e9b9e2689aca64d4", + "sha256:93b8c2008f372379fb6e5d2b3f7c9ec32f7b80316543fd3a5ace6610c5cde1b0", + "sha256:94c1c02721139fe9940b38d28fb15b4b782981d800d5f40f9966264fbf23dcc8", + "sha256:9895df6cd0bfe79d09bcd1dbdc03862846f26fbd93797153de954306620c1d00", + "sha256:9cc7f35dcb49a4e32db82a849fcc0714c4d4acc9d2273aded2d61f87d7f660b7", + "sha256:9ed02c604349068d46d87ef4c2012c112c791f2bec08671903a6bb2bd9c06784", + "sha256:a00e1e587c655749afb5b135d8d3edcfe84ec6db864201e40a882e64168610b3", + "sha256:a1ab8f0e0cadc5be5f3f9fa11a663957fecbf483d434762c8dfb8aa44948944a", + "sha256:a4de299c947a54fca9ce1c5fd4a08eb92ffce91961becb13bd9195f7c6e71b47", + "sha256:a7fbf2a8fe7556a8f4e68cb3e736884af7bf93653e79f6219f17ebb75e97d8f0", + "sha256:ad4fa707ff9e2ffee019e946257b5300a45137a58f41fbd9a4db8e684ab61528", + "sha256:ad818cdac37c0ad4c58e51cb4964eae4f18b43c4a83cb37170b0d90c31bd80cf", + "sha256:addf0a16e4983280efed272d8cb3b2e05f0051755372461e7d966b80a6554e16", + "sha256:ae7a519a56a714f64c3445cabde9fc2fc927e7eae44f413eae187cddd9e54178", + "sha256:b32f38bc81170fd56d0482d505b556e52bf9078b36819a8ba52624bd6667e39e", + "sha256:b5407c34776b9b77bd89a5f95eb0a34aaf91889e3f911c63f13035220eb50107", + "sha256:b7bf950234a482b7461afdb2ec99eee3548ec4d53f418c7990bb79c620476602", + "sha256:b89849171b590107f6724a7b0790736daead40926ddf47eadf998b4ff51d6414", + "sha256:bcea3eb58c09c3a31cc83b45c06d5907f02ddaf10920aaa6443975310f699b95", + "sha256:bd4ba86513430513e2aa25a441bb538f6f83734dc368a2c5d18afdd39097aa33", + "sha256:bf8eb5dca4f484a60f5327b044e842e0d7f7cdbf02ea6dc4a4f811259f1f1f0b", + "sha256:c026ee729c4ce55708a14b839ba35086dfae265fc12813b62d34ce33f4980c1c", + "sha256:c210d1460dc8d326ffdef9703c2f83269b7539a1690ad11ae04162bc1878d33d", + "sha256:c8feb8e19ef65c9994e652c5b0324abd657bedd0abeb946fb4f5163012c1e730", + "sha256:cbac2eb7ce0fac755fb983c9247c4a60c4019bcde4c0e4d167aeb17520cc7ef1", + "sha256:cbfe82a07596a044de78bb7a62519e71690c5812c26c5f1d4b877e64e4f46309", + "sha256:d3f3d2e20c442b58dbac593cb1e02bc02d149a86056cc4126d977ad902472e3b", + "sha256:d42a818e634f789350cd8fb413a3f5eec1cf0400a53d02062534c41519f5125c", + "sha256:d4b83cf7354cbbc058e97b3e545dceb75b8d9cf17fd5a19db419c319ddbaaf7a", + "sha256:d9726d2c9bd6aed8cb994d89b3910ca0079406edce3670886ec828a73e7bdd53", + "sha256:da7e501e59857e8e3e9d10586139dc196b80445a591451ca9998aafba1af5278", + "sha256:da7e918d82e7bdfc6f66d31febe1b2e28a1ca3387315f918de26f5e367f61572", + "sha256:dbbac01e80aee253d44c4f098ab3cc17c822518519e869b284cfbb8cd16cc9de", + "sha256:df5c0eff91f61b8205a6c9f7b255ff390cdb77b61c7b41f79ca10afcbb22b6cb", + "sha256:e07e76c49f39c5b45cbd7362b94f001ae209a3ea4905ae9a09cfd53b3c76373d", + "sha256:e1e10b3fbed7be4a59831d3a939900e50fcd34d93716e433d4193a4d0d1d335d", + "sha256:e39d393e0ab5b8bd01717cc26f2922026050188947ff54fe6a49dc489f7750b7", + "sha256:e5ba5e9b332267d0f2c33ede390061850f1ac3ee6cd1bdcf4c5ea33ead971966", + "sha256:e7a1963302947332c3039e3f66209ec73b1626f8a0191649e0713c391e9f5b0d", + "sha256:e7fcad070dcd9ad37a09d89a4cbc2a5e3e45080b88977c0da87b3090f9f55ead", + "sha256:eae368cac85adc4c7dc3b0d5f84ffcca609d658db6447387300478e44db70796", + "sha256:ede95125a30602b1691a4b1da88946bf27dae283cf30f22cd2cb8ca4b2e0d119", + "sha256:f5737c53eb2c8ed8f64b50d3dafd3c1dae739f78aa495a288421ac1b3de82717", + "sha256:f5f9d23fbbf96eefde836d9692670bfc89e2d159f456d499c5efcf6a6281c1af", + "sha256:f66e00e42f25ca7e91076366303e11c82572ca87cc5aae51e6e9c094f315ab41", + "sha256:f9af457ed593e35f467140d8b61d425495b127744a9d65d45a366f8678449a23", + "sha256:fa0839f35322f7b038d8adcf679e2698c3a483688cc92e3bd15ee4fb06669e9a", + "sha256:fd038bc9e2c134847f1e0ce3191797fad110756e690c2fdd9702ed34e7a43abb" ], "markers": "python_version >= '3.8'", - "version": "==12.0" - }, - "wrapt": { - "hashes": [ - "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc", - "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81", - "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09", - "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e", - "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca", - "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0", - "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb", - "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487", - "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40", - "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c", - "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060", - "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202", - "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41", - "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9", - "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b", - "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664", - "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d", - "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362", - "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00", - "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc", - "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1", - "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267", - "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956", - "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966", - "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1", - "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228", - "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72", - "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d", - "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292", - "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0", - "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0", - "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36", - "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c", - "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5", - "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f", - "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73", - "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b", - "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2", - "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593", - "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39", - "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389", - "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf", - "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf", - "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89", - "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c", - "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c", - "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f", - "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440", - "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465", - "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136", - "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b", - "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8", - "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3", - "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8", - "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6", - "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e", - "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f", - "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c", - "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e", - "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8", - "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2", - "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020", - "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35", - "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d", - "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3", - "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537", - "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809", - "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d", - "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a", - "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4" - ], - "markers": "python_version >= '3.6'", - "version": "==1.16.0" + "version": "==13.0" }, "yarl": { "hashes": [ @@ -2796,14 +2802,6 @@ ], "markers": "python_version >= '3.7'", "version": "==1.9.4" - }, - "zipp": { - "hashes": [ - "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b", - "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715" - ], - "markers": "python_version >= '3.8'", - "version": "==3.18.1" } }, "develop": {} diff --git a/requirements.txt b/requirements.txt index da2100dd..ea562db6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,145 +1,140 @@ -i https://pypi.org/simple -aiohttp==3.9.3; python_version >= '3.8' +aiohappyeyeballs==2.4.0; python_version >= '3.8' +aiohttp==3.10.5; python_version >= '3.8' aiosignal==1.3.1; python_version >= '3.7' -annotated-types==0.6.0; python_version >= '3.8' -ape-etherscan==0.7.2; python_version >= '3.8' and python_version < '4' -ape-infura==0.7.2; python_version >= '3.8' and python_version < '4' -ape-polygon==0.7.2; python_version >= '3.8' and python_version < '4' -ape-solidity==0.7.1; python_version >= '3.8' and python_version < '4' +annotated-types==0.7.0; python_version >= '3.8' +ape-etherscan==0.8.2; python_version >= '3.9' and python_version < '4' +ape-infura==0.8.1; python_version >= '3.9' and python_version < '4' +ape-polygon==0.8.0; python_version >= '3.9' and python_version < '4' +ape-solidity==0.8.3; python_version >= '3.9' and python_version < '4' asn1crypto==1.5.1 asttokens==2.4.1 -attrs==23.2.0; python_version >= '3.7' +attrs==24.2.0; python_version >= '3.7' base58==1.0.3 bitarray==2.9.2 -black==24.3.0; python_version >= '3.8' +black==24.8.0; python_version >= '3.8' bump2version==1.0.1; python_version >= '3.5' cached-property==1.5.2 -cachetools==5.3.3; python_version >= '3.7' -certifi==2024.2.2; python_version >= '3.6' -cffi==1.16.0; platform_python_implementation != 'PyPy' +cachetools==5.5.0; python_version >= '3.7' +certifi==2024.7.4; python_version >= '3.6' +cffi==1.17.0; python_version >= '3.8' cfgv==3.4.0; python_version >= '3.8' chardet==5.2.0; python_version >= '3.7' charset-normalizer==3.3.2; python_full_version >= '3.7.0' +ckzg==1.0.2 click==8.1.7; python_version >= '3.7' -coincurve==19.0.1; python_version >= '3.8' +coincurve==20.0.0; python_version >= '3.8' colorama==0.4.6; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6' -cryptography==42.0.5; python_version >= '3.7' +cryptography==43.0.0; python_version >= '3.7' cytoolz==0.12.3; implementation_name == 'cpython' dataclassy==0.11.1; python_version >= '3.6' decorator==5.1.1; python_version >= '3.5' -deprecated==1.2.14; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' distlib==0.3.8 -eip712==0.2.4; python_version >= '3.8' and python_version < '4' -eth-abi==4.2.1; python_full_version >= '3.7.2' and python_version < '4' -eth-account==0.10.0; python_version >= '3.7' and python_version < '4' -eth-ape==0.7.13; python_version >= '3.8' and python_version < '4' -eth-bloom==3.0.0; python_version >= '3.8' and python_version < '4' +eip712==0.2.7; python_version >= '3.8' and python_version < '4' +eth-abi==5.1.0; python_version >= '3.8' and python_version < '4' +eth-account==0.11.3; python_version >= '3.8' and python_version < '4' +eth-ape==0.8.12; python_version >= '3.9' and python_version < '4' +eth-bloom==3.0.1; python_version >= '3.8' and python_version < '4' eth-hash[pycryptodome,pysha3]==0.7.0; python_version >= '3.8' and python_version < '4' -eth-keyfile==0.8.0; python_version >= '3.8' and python_version < '4' -eth-keys==0.4.0 -eth-pydantic-types==0.1.0a5; python_version >= '3.8' and python_version < '4' +eth-keyfile==0.8.1; python_version >= '3.8' and python_version < '4' +eth-keys==0.5.1; python_version >= '3.8' and python_version < '4' +eth-pydantic-types==0.1.0; python_version >= '3.8' and python_version < '4' eth-rlp==1.0.1; python_version >= '3.8' and python_version < '4' -eth-tester[py-evm]==0.9.1b2 +eth-tester[py-evm]==0.11.0b2 eth-typing==3.5.2; python_full_version >= '3.7.2' and python_version < '4' eth-utils==2.3.1; python_version >= '3.7' and python_version < '4' -ethpm-types==0.6.7; python_version >= '3.8' and python_version < '4' -evm-trace==0.1.2; python_version >= '3.8' and python_version < '4' -evmchains==0.0.4; python_version >= '3.8' +ethpm-types==0.6.14; python_version >= '3.8' and python_version < '4' +evm-trace==0.2.0; python_version >= '3.9' and python_version < '4' +evmchains==0.0.11; python_version >= '3.8' executing==2.0.1; python_version >= '3.5' -filelock==3.13.3; python_version >= '3.8' -flake8==7.0.0; python_full_version >= '3.8.1' +filelock==3.15.4; python_version >= '3.8' +flake8==7.1.1; python_full_version >= '3.8.1' frozenlist==1.4.1; python_version >= '3.8' hexbytes==0.3.1; python_version >= '3.7' and python_version < '4' -identify==2.5.35; python_version >= '3.8' -idna==3.6; python_version >= '3.5' -ijson==3.2.3 -importlib-metadata==7.1.0; python_version >= '3.8' +identify==2.6.0; python_version >= '3.8' +idna==3.7; python_version >= '3.5' +ijson==3.3.0 iniconfig==2.0.0; python_version >= '3.7' -ipython==8.23.0; python_version >= '3.10' -isort==5.13.2; python_full_version >= '3.8.0' +ipython==8.26.0; python_version >= '3.10' +isort==6.0.0b2; python_full_version >= '3.7.0' jedi==0.19.1; python_version >= '3.6' -jsonschema==4.21.1; python_version >= '3.8' +jsonschema==4.23.0; python_version >= '3.8' jsonschema-specifications==2023.12.1; python_version >= '3.8' lazyasd==0.1.4 lru-dict==1.2.0 markdown-it-py==3.0.0; python_version >= '3.8' -matplotlib-inline==0.1.6; python_version >= '3.5' +matplotlib-inline==0.1.7; python_version >= '3.8' mccabe==0.7.0; python_version >= '3.6' mdurl==0.1.2; python_version >= '3.7' morphys==1.0 msgspec==0.18.6; python_version >= '3.8' multidict==6.0.5; python_version >= '3.7' mypy-extensions==1.0.0; python_version >= '3.5' -nodeenv==1.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6' +nodeenv==1.9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6' nucypher-core==0.14.0 -numpy==1.26.4; python_version >= '3.10' +numpy==1.26.4; python_version >= '3.9' packaging==23.2; python_version >= '3.7' -pandas==1.5.3; python_version >= '3.8' -parsimonious==0.9.0 -parso==0.8.3; python_version >= '3.6' +pandas==2.2.2; python_version >= '3.9' +parsimonious==0.10.0 +parso==0.8.4; python_version >= '3.6' pathspec==0.12.1; python_version >= '3.8' pexpect==4.9.0; sys_platform != 'win32' and sys_platform != 'emscripten' -platformdirs==4.2.0; python_version >= '3.8' -pluggy==1.4.0; python_version >= '3.8' -pre-commit==3.7.0; python_version >= '3.9' -prompt-toolkit==3.0.43; python_full_version >= '3.7.0' -protobuf==5.26.1; python_version >= '3.8' +platformdirs==4.2.2; python_version >= '3.8' +pluggy==1.5.0; python_version >= '3.8' +pre-commit==3.8.0; python_version >= '3.9' +prompt-toolkit==3.0.47; python_full_version >= '3.7.0' +protobuf==5.28.0rc2; python_version >= '3.8' ptyprocess==0.7.0 -pure-eval==0.2.2 +pure-eval==0.2.3 py-cid==0.3.0 -py-ecc==6.0.0; python_version >= '3.6' and python_version < '4' -py-evm==0.7.0a4 -py-geth==4.4.0; python_version >= '3.8' and python_version < '4' +py-ecc==7.0.1; python_version >= '3.8' and python_version < '4' +py-evm==0.10.1b1; python_version >= '3.8' and python_version < '4' +py-geth==5.0.0; python_version >= '3.8' and python_version < '4' py-multibase==1.0.3 py-multicodec==0.2.1 py-multihash==0.2.3 -py-solc-x==2.0.2; python_version >= '3.8' and python_version < '4' -pycodestyle==2.11.1; python_version >= '3.8' +py-solc-x==2.0.3; python_version >= '3.8' and python_version < '4' +pycodestyle==2.12.1; python_version >= '3.8' pycparser==2.22; python_version >= '3.8' pycryptodome==3.20.0 -pydantic==2.5.3; python_version >= '3.7' -pydantic-core==2.14.6; python_version >= '3.7' -pydantic-settings==2.2.1; python_version >= '3.8' -pyethash==0.1.27 +pydantic==2.8.2; python_version >= '3.8' +pydantic-core==2.20.1; python_version >= '3.8' +pydantic-settings==2.4.0; python_version >= '3.8' pyflakes==3.2.0; python_version >= '3.8' -pygithub==1.59.1; python_version >= '3.7' -pygments==2.17.2; python_version >= '3.7' -pyjwt[crypto]==2.8.0; python_version >= '3.7' -pynacl==1.5.0; python_version >= '3.6' +pygments==2.18.0; python_version >= '3.8' pyproject-api==1.6.1; python_version >= '3.8' -pytest==7.4.4; python_version >= '3.7' +pytest==8.3.2; python_version >= '3.8' python-baseconv==1.2.2 python-dateutil==2.9.0.post0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2' python-dotenv==1.0.1; python_version >= '3.8' pytz==2024.1 pyunormalize==15.1.0; python_version >= '3.6' -pyyaml==6.0.1; python_version >= '3.6' -referencing==0.34.0; python_version >= '3.8' -regex==2023.12.25; python_version >= '3.7' -requests==2.31.0; python_version >= '3.7' +pyyaml==6.0.2; python_version >= '3.8' +referencing==0.35.1; python_version >= '3.8' +regex==2024.7.24; python_version >= '3.8' +requests==2.32.3; python_version >= '3.8' rich==13.7.1; python_full_version >= '3.7.0' -rlp==3.0.0 -rpds-py==0.18.0; python_version >= '3.8' +rlp==4.0.1; python_version >= '3.8' and python_version < '4' +rpds-py==0.20.0; python_version >= '3.8' safe-pysha3==1.0.4 semantic-version==2.10.0; python_version >= '2.7' -setuptools==69.2.0; python_version >= '3.8' six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2' sortedcontainers==2.4.0 -sqlalchemy==2.0.29; python_version >= '3.7' +sqlalchemy==2.0.32; python_version >= '3.7' stack-data==0.6.3 toolz==0.12.1; python_version >= '3.7' -tox==4.14.2; python_version >= '3.8' -tqdm==4.66.2; python_version >= '3.7' -traitlets==5.14.2; python_version >= '3.8' -trie==2.2.0; python_version >= '3.7' and python_version < '4' -typing-extensions==4.10.0; python_version >= '3.8' -urllib3==2.2.1; python_version >= '3.8' +tox==4.15.1; python_version >= '3.8' +tqdm==4.66.5; python_version >= '3.7' +traitlets==5.14.3; python_version >= '3.8' +trie==3.0.1; python_version >= '3.8' and python_version < '4' +types-requests==2.32.0.20240712; python_version >= '3.8' +typing-extensions==4.12.2; python_version >= '3.8' +tzdata==2024.1; python_version >= '2' +urllib3==2.2.2; python_version >= '3.8' varint==1.0.2 -virtualenv==20.25.1; python_version >= '3.7' +virtualenv==20.26.3; python_version >= '3.7' watchdog==3.0.0; python_version >= '3.7' wcwidth==0.2.13 -web3[tester]==6.16.0; python_full_version >= '3.7.2' -websockets==12.0; python_version >= '3.8' -wrapt==1.16.0; python_version >= '3.6' +web3[tester]==6.20.1; python_full_version >= '3.7.2' +websockets==13.0; python_version >= '3.8' yarl==1.9.4; python_version >= '3.7' -zipp==3.18.1; python_version >= '3.8' From 7c2941dc91a3b64387bc1fae34743e0b31d6844a Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 14:55:41 -0400 Subject: [PATCH 20/30] Prettier should ignore Pipfile.lock --- .prettierignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index 2ea008ee..068670a2 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,4 +3,5 @@ **/contracts/contracts/NuCypherToken.sol **/contracts/test/proxy/ **/contracts/test/StakingEscrowTestSet.sol -**/.cache \ No newline at end of file +**/.cache +Pipfile.lock From 2eceb0397df348ab7cc966a27b8a905b64614844 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 14:57:12 -0400 Subject: [PATCH 21/30] Remove import re-mappings since no longer needed with newer version of ape. --- ape-config.yaml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/ape-config.yaml b/ape-config.yaml index 4bc99149..633e5d0e 100644 --- a/ape-config.yaml +++ b/ape-config.yaml @@ -27,17 +27,10 @@ dependencies: solidity: version: 0.8.23 evm_version: paris - import_remapping: - - "@openzeppelin/contracts=openzeppelin/v5.0.0" - - "@openzeppelin-upgradeable/contracts=openzeppelin-upgradeable/v5.0.0" - - "@fx-portal/contracts=fx-portal/v1.0.5" - - "@threshold/contracts=threshold/v1.2.1" - ethereum: mainnet: - transaction_acceptance_timeout: 600 # 10 minutes - + transaction_acceptance_timeout: 600 # 10 minutes test: mnemonic: test test test test test test test test test test test junk From e45d4586b161e8f1e958c16fa1aae38509b1d488 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 14:57:47 -0400 Subject: [PATCH 22/30] Obtain contract instance receipt from the creation metadata available in latest version of ape. --- deployment/registry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/registry.py b/deployment/registry.py index 7d2aa0ae..57da8cac 100644 --- a/deployment/registry.py +++ b/deployment/registry.py @@ -64,7 +64,7 @@ def _get_entry( ) -> RegistryEntry: contract_abi = _get_abi(contract_instance) contract_name = _get_name(contract_instance=contract_instance, registry_names=registry_names) - receipt = contract_instance.receipt + receipt = contract_instance.creation_metadata.receipt entry = RegistryEntry( name=contract_name, address=to_checksum_address(contract_instance.address), From a992b5079d8e17ca95ed3459e9b5f5ba25586cee Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 14:58:55 -0400 Subject: [PATCH 23/30] Remove managed allow list deployment script since no longer needed. --- scripts/deploy_managed_allow_list.py | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 scripts/deploy_managed_allow_list.py diff --git a/scripts/deploy_managed_allow_list.py b/scripts/deploy_managed_allow_list.py deleted file mode 100644 index 0288ccc4..00000000 --- a/scripts/deploy_managed_allow_list.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/python3 - -from ape import project - -from deployment.constants import ARTIFACTS_DIR, CONSTRUCTOR_PARAMS_DIR -from deployment.params import Deployer -from deployment.registry import merge_registries - -VERIFY = False -CONSTRUCTOR_PARAMS_FILEPATH = CONSTRUCTOR_PARAMS_DIR / "managed_allow_list.yml" -LYNX = ARTIFACTS_DIR / "lynx.json" -TAPIR = ARTIFACTS_DIR / "tapir.json" - - -def main(): - deployer = Deployer.from_yaml(filepath=CONSTRUCTOR_PARAMS_FILEPATH, verify=VERIFY) - managed_allow_list = deployer.deploy(project.ManagedAllowList) - deployments = [managed_allow_list] - deployer.finalize(deployments=deployments) - - for domain in (LYNX, TAPIR): - merge_registries( - registry_1_filepath=domain, - registry_2_filepath=deployer.registry_filepath, - output_filepath=domain, - ) From 9e44ae8c8ca078346fdf624f75651756e64f757c Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 15:30:20 -0400 Subject: [PATCH 24/30] Remove unused Destroyable contract and corresponding test - fails with ape 0.8 but is unused anyway. --- contracts/test/proxy/Destroyable.sol | 40 ------------ tests/test_dispatcher.py | 98 ---------------------------- 2 files changed, 138 deletions(-) delete mode 100644 contracts/test/proxy/Destroyable.sol diff --git a/contracts/test/proxy/Destroyable.sol b/contracts/test/proxy/Destroyable.sol deleted file mode 100644 index ec8e54f5..00000000 --- a/contracts/test/proxy/Destroyable.sol +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later - -pragma solidity ^0.8.0; - - -import "../../contracts/proxy/Upgradeable.sol"; - - -/** -* @dev Contract that could be destroyed by selfdestruct -*/ -contract Destroyable is Upgradeable { - - uint256 public constructorValue; - uint256 public functionValue; - - constructor(uint256 _constructorValue) { - constructorValue = _constructorValue; - } - - function setFunctionValue(uint256 _functionValue) public { - functionValue = _functionValue; - } - - function verifyState(address _testTarget) public override { - super.verifyState(_testTarget); - require(delegateGet(_testTarget, this.constructorValue.selector) == constructorValue); - require(delegateGet(_testTarget, this.functionValue.selector) == functionValue); - } - - function finishUpgrade(address _target) public override { - super.finishUpgrade(_target); - constructorValue = Destroyable(_target).constructorValue(); - } - - function destroy() public { - selfdestruct(payable(msg.sender)); - } - -} diff --git a/tests/test_dispatcher.py b/tests/test_dispatcher.py index f72f6fde..0ad0ae63 100644 --- a/tests/test_dispatcher.py +++ b/tests/test_dispatcher.py @@ -16,7 +16,6 @@ """ import ape -import pytest from ape.utils import ZERO_ADDRESS @@ -339,103 +338,6 @@ def test_dispatcher(project, accounts): ] -def test_selfdestruct(project, accounts): - creator = accounts[0] - account = accounts[1] - - # Deploy contract and destroy it - contract1_lib = creator.deploy(project.Destroyable, 22) - assert 22 == contract1_lib.constructorValue() - contract1_lib.destroy(sender=creator) - with pytest.raises(ape.exceptions.ContractNotFoundError): - contract1_lib.constructorValue() - - # Can't create dispatcher using address without contract - with ape.reverts(): - creator.deploy(project.Dispatcher, ZERO_ADDRESS) - with ape.reverts(): - creator.deploy(project.Dispatcher, account) - with ape.reverts(): - creator.deploy(project.Dispatcher, contract1_lib.address) - - # Deploy contract again with a dispatcher targeting it - contract2_lib = creator.deploy(project.Destroyable, 23) - dispatcher = creator.deploy(project.Dispatcher, contract2_lib.address) - assert contract2_lib.address == dispatcher.target() - - contract_instance = project.Destroyable.at(dispatcher.address) - contract_instance.setFunctionValue(34, sender=accounts[0]) - assert 23 == contract_instance.constructorValue() - assert 34 == contract_instance.functionValue() - - # Can't upgrade to an address without contract - with ape.reverts(): - dispatcher.upgrade(ZERO_ADDRESS, sender=creator) - with ape.reverts(): - dispatcher.upgrade(account, sender=creator) - with ape.reverts(): - dispatcher.upgrade(contract1_lib.address, sender=creator) - - # Destroy library - contract2_lib.destroy(sender=creator) - # Dispatcher must determine that there is no contract - with ape.reverts(): - contract_instance.constructorValue() - - # Can't upgrade to an address without contract - with ape.reverts(): - dispatcher.upgrade(ZERO_ADDRESS, sender=creator) - with ape.reverts(): - dispatcher.upgrade(account, sender=creator) - with ape.reverts(): - dispatcher.upgrade(contract1_lib.address, sender=creator) - - # Deploy the same contract again and upgrade to this contract - contract3_lib = creator.deploy(project.Destroyable, 24) - dispatcher.upgrade(contract3_lib.address, sender=creator) - assert 24 == contract_instance.constructorValue() - assert 34 == contract_instance.functionValue() - - # Can't rollback because the previous version is destroyed - with ape.reverts(): - dispatcher.rollback(sender=account) - - # Destroy again - contract3_lib.destroy(sender=creator) - with ape.reverts(): - contract_instance.constructorValue() - - # Still can't rollback because the previous version is destroyed - with ape.reverts(): - dispatcher.rollback(sender=account) - - # Deploy the same contract twice and upgrade to the latest contract - contract4_lib = creator.deploy(project.Destroyable, 25) - contract5_lib = creator.deploy(project.Destroyable, 26) - dispatcher.upgrade(contract4_lib.address, sender=creator) - dispatcher.upgrade(contract5_lib.address, sender=creator) - assert 26 == contract_instance.constructorValue() - assert 34 == contract_instance.functionValue() - - # Destroy the previous version of the contract and try to rollback again - contract4_lib.destroy(sender=creator) - with ape.reverts(): - dispatcher.rollback(sender=account) - - # Deploy the same contract again and upgrade - contract6_lib = creator.deploy(project.Destroyable, 27) - dispatcher.upgrade(contract6_lib.address, sender=creator) - assert 27 == contract_instance.constructorValue() - assert 34 == contract_instance.functionValue() - - # Destroy the current version of the contract - contract6_lib.destroy(sender=creator) - # Now rollback must work, the previous version is fine - dispatcher.rollback(sender=creator) - assert 26 == contract_instance.constructorValue() - assert 34 == contract_instance.functionValue() - - def test_receive_fallback(project, accounts): creator = accounts[0] # Deploy first contract From 16610f6565aecd1fe1d4ef09d03c3a619d34b9fe Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 16:52:11 -0400 Subject: [PATCH 25/30] Add ability for the deployer to not prompt user for deployments. --- deployment/params.py | 61 ++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/deployment/params.py b/deployment/params.py index abcc99fd..0b5bbc26 100644 --- a/deployment/params.py +++ b/deployment/params.py @@ -1,6 +1,6 @@ import typing from abc import ABC, abstractmethod -from collections import namedtuple, OrderedDict +from collections import OrderedDict, namedtuple from pathlib import Path from typing import Any, List @@ -480,7 +480,11 @@ class Transactor: Represents an ape account plus validated/annotated transaction execution. """ - def __init__(self, account: typing.Optional[AccountAPI] = None): + def __init__(self, account: typing.Optional[AccountAPI] = None, force: bool = False): + if force and not account: + raise ValueError("'force' can only be used if 'account' is provided") + + self._force = force if account is None: self._account = select_account() else: @@ -502,13 +506,17 @@ def transact(self, method: ContractTransactionHandler, *args) -> ReceiptAPI: else: message = f"{base_message} with no arguments" print(message) - _continue() - result = method(*args, sender=self._account, - # FIXME: Manual gas fees - #199 - # max_priority_fee="3 gwei", - # max_fee="120 gwei" - ) + if not self._force: + _continue() + + result = method( + *args, + sender=self._account, + # FIXME: Manual gas fees - #199 + # max_priority_fee="3 gwei", + # max_fee="120 gwei" + ) return result @@ -526,7 +534,10 @@ def __init__( path: Path, verify: bool, account: typing.Optional[AccountAPI] = None, + force: bool = False, ): + super().__init__(account, force) + check_plugins() self.path = path self.config = config @@ -539,10 +550,13 @@ def __init__( _Constants = namedtuple("_Constants", list(constants)) self.constants = _Constants(**constants) - super().__init__(account) self._set_account(self._account) self.verify = verify - self._confirm_start() + self._print_deployment_info() + + if not self._force: + # Confirms the start of the deployment. + _continue() @classmethod def from_yaml(cls, filepath: Path, *args, **kwargs) -> "Deployer": @@ -583,16 +597,19 @@ def _deploy_contract( self, container: ContractContainer, resolved_params: OrderedDict ) -> ContractInstance: contract_name = container.contract_type.name - _confirm_resolution(resolved_params, contract_name) + if not self._force: + _confirm_resolution(resolved_params, contract_name) deployment_params = [container, *resolved_params.values()] kwargs = self._get_kwargs() deployer_account = self.get_account() - return deployer_account.deploy(*deployment_params, - # FIXME: Manual gas fees - #199 - # max_priority_fee="3 gwei", - # max_fee="120 gwei", - **kwargs) + return deployer_account.deploy( + *deployment_params, + # FIXME: Manual gas fees - #199 + # max_priority_fee="3 gwei", + # max_fee="120 gwei", + **kwargs, + ) def _deploy_proxy( self, @@ -615,12 +632,8 @@ def _deploy_proxy( ) return contract_type_container.at(proxy_contract.address) - def upgrade(self, container: ContractContainer, proxy_address, data=b'') -> ContractInstance: - - admin_slot = chain.provider.get_storage_at( - address=proxy_address, - slot=EIP1967_ADMIN_SLOT - ) + def upgrade(self, container: ContractContainer, proxy_address, data=b"") -> ContractInstance: + admin_slot = chain.provider.get_storage_at(address=proxy_address, slot=EIP1967_ADMIN_SLOT) if admin_slot == EMPTY_BYTES32: raise ValueError( @@ -651,8 +664,7 @@ def finalize(self, deployments: List[ContractInstance]) -> None: if self.verify: verify_contracts(contracts=deployments) - def _confirm_start(self) -> None: - """Confirms the start of the deployment.""" + def _print_deployment_info(self): print( f"Account: {self.get_account().address}", f"Config: {self.path}", @@ -664,4 +676,3 @@ def _confirm_start(self) -> None: f"Gas Price: {networks.provider.gas_price}", sep="\n", ) - _continue() From 9099e3327054844b3d1bffdb05d7f8f9fb152a3d Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 16:53:51 -0400 Subject: [PATCH 26/30] Add deployment script to use for CI tests in order to test deployments. --- deployment/constructor_params/ci/child.yml | 33 ++++++++++++++++++ scripts/ci/deploy_child.py | 39 ++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 deployment/constructor_params/ci/child.yml create mode 100644 scripts/ci/deploy_child.py diff --git a/deployment/constructor_params/ci/child.yml b/deployment/constructor_params/ci/child.yml new file mode 100644 index 00000000..40c80af0 --- /dev/null +++ b/deployment/constructor_params/ci/child.yml @@ -0,0 +1,33 @@ +deployment: + name: ci-child + chain_id: 1337 + +artifacts: + dir: ./deployment/artifacts/ + filename: ci.json + +constants: + ONE_HOUR_IN_SECONDS: 3600 + FORTY_THOUSAND_TOKENS_IN_WEI_UNITS: 40000000000000000000000 + TEN_MILLION_TOKENS_IN_WEI_UNITS: 10000000000000000000000000 # https://www.youtube.com/watch?v=EJR1H5tf5wE + MAX_DKG_SIZE: 4 + +contracts: + - MockPolygonChild + - TACoChildApplication: + proxy: + constructor: + _rootApplication: $MockPolygonChild + _minimumAuthorization: $FORTY_THOUSAND_TOKENS_IN_WEI_UNITS + - LynxRitualToken: + constructor: + _totalSupplyOfTokens: $TEN_MILLION_TOKENS_IN_WEI_UNITS + - Coordinator: + proxy: + constructor: + _data: $encode:initialize,$ONE_HOUR_IN_SECONDS,$MAX_DKG_SIZE,$deployer + constructor: + _application: $TACoChildApplication + - GlobalAllowList: + constructor: + _coordinator: $Coordinator diff --git a/scripts/ci/deploy_child.py b/scripts/ci/deploy_child.py new file mode 100644 index 00000000..9d76b026 --- /dev/null +++ b/scripts/ci/deploy_child.py @@ -0,0 +1,39 @@ +#!/usr/bin/python3 +from ape import accounts, networks, project + +from deployment.constants import CONSTRUCTOR_PARAMS_DIR +from deployment.params import Deployer + +VERIFY = False +CONSTRUCTOR_PARAMS_FILEPATH = CONSTRUCTOR_PARAMS_DIR / "ci" / "child.yml" + + +def main(): + with networks.ethereum.local.use_provider("test"): + test_account = accounts.test_accounts[0] + + deployer = Deployer.from_yaml( + filepath=CONSTRUCTOR_PARAMS_FILEPATH, verify=VERIFY, account=test_account, force=True + ) + + mock_polygon_child = deployer.deploy(project.MockPolygonChild) + + taco_child_application = deployer.deploy(project.TACoChildApplication) + + deployer.transact(mock_polygon_child.setChildApplication, taco_child_application.address) + + ritual_token = deployer.deploy(project.LynxRitualToken) + + coordinator = deployer.deploy(project.Coordinator) + + global_allow_list = deployer.deploy(project.GlobalAllowList) + + deployments = [ + mock_polygon_child, + taco_child_application, + ritual_token, + coordinator, + global_allow_list, + ] + + deployer.finalize(deployments=deployments) From 067d7d46005b1c71e817cc21b54dc9acc14b37e4 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 16:56:43 -0400 Subject: [PATCH 27/30] Add step to CI to test deployment of contracts, and to list contracts in registries for each domain. --- .github/workflows/main.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index f965aed8..225e7b1f 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -43,6 +43,15 @@ jobs: - name: Run Ape Tests run: ape test + - name: Run Deployment Test + run: ape run ci deploy_child + + - name: Run Registry Scripts to list contracts + run: | + ape run list_contracts --domain lynx + ape run list_contracts --domain tapir + ape run list_contracts --domain mainnet + - name: Build npm package run: npm run build From d9810590e9844330bb1cceb9339a688aac84e1aa Mon Sep 17 00:00:00 2001 From: derekpierre Date: Thu, 22 Aug 2024 19:44:41 -0400 Subject: [PATCH 28/30] Update pip install so that script files can properly reference deployment yml path within github action. --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 225e7b1f..35fb7b2b 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -38,7 +38,7 @@ jobs: with: cache: "pip" python-version: "3.11" - - run: pip install . -r requirements.txt + - run: pip install -e . -r requirements.txt - name: Run Ape Tests run: ape test From a7ce192dfa9785f21ad1d24678f044685181cf21 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Fri, 23 Aug 2024 07:42:44 -0400 Subject: [PATCH 29/30] Rename 'force' to 'non_interactive' for clarity. --- deployment/params.py | 18 +++++++++--------- scripts/ci/deploy_child.py | 5 ++++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/deployment/params.py b/deployment/params.py index 0b5bbc26..53826e26 100644 --- a/deployment/params.py +++ b/deployment/params.py @@ -480,11 +480,11 @@ class Transactor: Represents an ape account plus validated/annotated transaction execution. """ - def __init__(self, account: typing.Optional[AccountAPI] = None, force: bool = False): - if force and not account: - raise ValueError("'force' can only be used if 'account' is provided") + def __init__(self, account: typing.Optional[AccountAPI] = None, non_interactive: bool = False): + if non_interactive and not account: + raise ValueError("'non_interactive' can only be used if an account is provided") - self._force = force + self._non_interactive = non_interactive if account is None: self._account = select_account() else: @@ -507,7 +507,7 @@ def transact(self, method: ContractTransactionHandler, *args) -> ReceiptAPI: message = f"{base_message} with no arguments" print(message) - if not self._force: + if not self._non_interactive: _continue() result = method( @@ -534,9 +534,9 @@ def __init__( path: Path, verify: bool, account: typing.Optional[AccountAPI] = None, - force: bool = False, + non_interactive: bool = False, ): - super().__init__(account, force) + super().__init__(account, non_interactive) check_plugins() self.path = path @@ -554,7 +554,7 @@ def __init__( self.verify = verify self._print_deployment_info() - if not self._force: + if not self._non_interactive: # Confirms the start of the deployment. _continue() @@ -597,7 +597,7 @@ def _deploy_contract( self, container: ContractContainer, resolved_params: OrderedDict ) -> ContractInstance: contract_name = container.contract_type.name - if not self._force: + if not self._non_interactive: _confirm_resolution(resolved_params, contract_name) deployment_params = [container, *resolved_params.values()] kwargs = self._get_kwargs() diff --git a/scripts/ci/deploy_child.py b/scripts/ci/deploy_child.py index 9d76b026..89cd2cad 100644 --- a/scripts/ci/deploy_child.py +++ b/scripts/ci/deploy_child.py @@ -13,7 +13,10 @@ def main(): test_account = accounts.test_accounts[0] deployer = Deployer.from_yaml( - filepath=CONSTRUCTOR_PARAMS_FILEPATH, verify=VERIFY, account=test_account, force=True + filepath=CONSTRUCTOR_PARAMS_FILEPATH, + verify=VERIFY, + account=test_account, + non_interactive=True, ) mock_polygon_child = deployer.deploy(project.MockPolygonChild) From c24f375bbf6bbd5e4d42c241189790a0f901d175 Mon Sep 17 00:00:00 2001 From: derekpierre Date: Fri, 23 Aug 2024 07:43:14 -0400 Subject: [PATCH 30/30] Delete generated registry at the end of the script - allows for local execution without always having to manually delete the file. --- scripts/ci/deploy_child.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/ci/deploy_child.py b/scripts/ci/deploy_child.py index 89cd2cad..ab5c7ff8 100644 --- a/scripts/ci/deploy_child.py +++ b/scripts/ci/deploy_child.py @@ -40,3 +40,6 @@ def main(): ] deployer.finalize(deployments=deployments) + + # remove registry file now that task is complete + deployer.registry_filepath.unlink()