From 5adf48c77553d268ab38a71fff00103eed1a0fc8 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 16 Oct 2024 11:27:10 +0530 Subject: [PATCH 01/52] feat: add support for mode --- .../valory/agents/optimus/aea-config.yaml | 25 +++++++++++-------- packages/valory/services/optimus/service.yaml | 13 +++++++--- .../skills/liquidity_trader_abci/skill.yaml | 17 +++++++------ .../valory/skills/optimus_abci/skill.yaml | 19 +++++++------- 4 files changed, 43 insertions(+), 31 deletions(-) diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 53f8b21..1783ba5 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeidz54kvxhbdmpruzguuzzq7bjg4pekjb5amqobkxoy4oqknnobopu - valory/abstract_round_abci:0.1.0:bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm -- valory/liquidity_trader_abci:0.1.0:bafybeicll2viv2bs7jmkzr7lskc7qgscvdv3gurlqgzr36npdzvckpja4u -- valory/optimus_abci:0.1.0:bafybeid2luqlruokidipj5s4xp7ygetfyirck5j7wmkgzjqfuydx27p42a +- valory/liquidity_trader_abci:0.1.0:bafybeiexvi2dcshz4au52cw4op25dfamuyjv6qxty2vvh7ie3mqw5fdv6a +- valory/optimus_abci:0.1.0:bafybeideqaphxoewriurhambhl3xn5d4747w4ibzk72q4sqjug7z4imdxq - valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey - valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq - valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi @@ -102,6 +102,11 @@ config: chain_id: ${int:10} poa_chain: ${bool:false} default_gas_price_strategy: ${str:eip1559} + mode: + address: ${str:https://virtual.mode.rpc.tenderly.co/f1d63db5-da55-4383-bbed-54a6edbb0ee2} + chain_id: ${int:34443} + poa_chain: ${bool:false} + default_gas_price_strategy: ${str:eip1559} --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection @@ -138,7 +143,7 @@ models: requests_per_minute: ${int:30} credits: ${int:10000} rate_limited_code: ${int:429} - chain_to_platform_id_mapping: ${str:{"optimism":"optimistic-ethereum","base":"base","ethereum":"ethereum"}} + chain_to_platform_id_mapping: ${str:{"optimism":"optimistic-ethereum","base":"base","ethereum":"ethereum","mode":"mode"}} params: args: cleanup_history_depth: 1 @@ -205,33 +210,33 @@ models: termination_from_block: ${int:34088325} allowed_dexs: ${list:["balancerPool", "UniswapV3"]} initial_assets: ${str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - safe_contract_addresses: ${str:{"ethereum":"0x0000000000000000000000000000000000000000","base":"0x07e27E181Df065141ee90a4DD43cE4113bc9853C","optimism":"0x07e27E181Df065141ee90a4DD43cE4113bc9853C"}} + safe_contract_addresses: ${str:{"ethereum":"0x0000000000000000000000000000000000000000","base":"0x07e27E181Df065141ee90a4DD43cE4113bc9853C","optimism":"0x07e27E181Df065141ee90a4DD43cE4113bc9853C","mode":"0x0000000000000000000000000000000000000000"}} merkl_fetch_campaigns_args: ${str:{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"true"}} allowed_chains: ${list:["optimism","base"]} gas_reserve: ${str:{"ethereum":1000,"optimism":1000,"base":1000}} round_threshold: ${int:0} apr_threshold: ${int:5} min_balance_multiplier: ${int:5} - multisend_contract_addresses: ${str:{"ethereum":"0x998739BFdAAdde7C933B942a68053933098f9EDa","optimism":"0xbE5b0013D2712DC4faF07726041C27ecFdBC35AD","base":"0x998739BFdAAdde7C933B942a68053933098f9EDa"}} + multisend_contract_addresses: ${str:{"ethereum":"0x998739BFdAAdde7C933B942a68053933098f9EDa","optimism":"0xbE5b0013D2712DC4faF07726041C27ecFdBC35AD","base":"0x998739BFdAAdde7C933B942a68053933098f9EDa","mode":"0x998739BFdAAdde7C933B942a68053933098f9EDa"}} lifi_advance_routes_url: ${str:https://li.quest/v1/advanced/routes} lifi_fetch_step_transaction_url: ${str:https://li.quest/v1/advanced/stepTransaction} lifi_check_status_url: ${str:https://li.quest/v1/status} lifi_fetch_tools_url: ${str:https://li.quest/v1/tools} slippage_for_swap: ${float:0.09} - balancer_vault_contract_addresses: ${str:{"optimism":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","base":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"}} + balancer_vault_contract_addresses: ${str:{"optimism":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","base":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","mode":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"}} uniswap_position_manager_contract_addresses: ${str:{"optimism":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","base":"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1"}} - chain_to_chain_key_mapping: ${str:{"ethereum":"eth","optimism":"opt","base":"bas"}} + chain_to_chain_key_mapping: ${str:{"ethereum":"eth","optimism":"opt","base":"bas","mode":"mod"}} waiting_period_for_status_check: ${int:10} max_num_of_retries: ${int:5} reward_claiming_time_period: ${int:28800} - merkl_distributor_contract_addresses: ${str:{"optimism":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","base":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae"}} + merkl_distributor_contract_addresses: ${str:{"optimism":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","base":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","mode":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae"}} intermediate_tokens: ${str:{"ethereum":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2":{"symbol":"WETH","liquidity_provider":"0xF04a5cC80B1E94C69B48f5ee68a08CD2F09A7c3E"},"0xdAC17F958D2ee523a2206206994597C13D831ec7":{"symbol":"USDT","liquidity_provider":"0xcEe284F754E854890e311e3280b767F80797180d"},"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":{"symbol":"USDC","liquidity_provider":"0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640"},"0x6B175474E89094C44Da98b954EedeAC495271d0F":{"symbol":"DAI","liquidity_provider":"0x517F9dD285e75b599234F7221227339478d0FcC8"},"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84":{"symbol":"stETH","liquidity_provider":"0x4028DAAC072e492d34a3Afdbef0ba7e35D8b55C4"},"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0":{"symbol":"wstETH","liquidity_provider":"0x109830a1AAaD605BbF02a9dFA7B0B92EC2FB7dAa"},"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599":{"symbol":"WBTC","liquidity_provider":"0xCBCdF9626bC03E24f779434178A73a0B4bad62eD"},"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984":{"symbol":"UNI","liquidity_provider":"0x1d42064Fc4Beb5F8aAF85F4617AE8b3b5B8Bd801"}},"optimism":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0x4200000000000000000000000000000000000006"},"0x7F5c764cBc14f9669B88837ca1490cCa17c31607":{"symbol":"USDC.e","liquidity_provider":"0xD1F1baD4c9E6c44DeC1e9bF3B94902205c5Cd6C3"},"0x4200000000000000000000000000000000000006":{"symbol":"WETH","liquidity_provider":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"},"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58":{"symbol":"USDT","liquidity_provider":"0xA73C628eaf6e283E26A7b1f8001CF186aa4c0E8E"},"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1":{"symbol":"DAI","liquidity_provider":"0x03aF20bDAaFfB4cC0A521796a223f7D85e2aAc31"},"0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb":{"symbol":"wstETH","liquidity_provider":"0x04F6C85A1B00F6D9B75f91FD23835974Cc07E65c"},"0x68f180fcCe6836688e9084f035309E29Bf0A2095":{"symbol":"WBTC","liquidity_provider":"0x078f358208685046a11C85e8ad32895DED33A249"},"0x76FB31fb4af56892A25e32cFC43De717950c9278":{"symbol":"AAVE","liquidity_provider":"0xf329e36C7bF6E5E86ce2150875a84Ce77f477375"},"0x4200000000000000000000000000000000000042":{"symbol":"OP","liquidity_provider":"0x2A82Ae142b2e62Cb7D10b55E323ACB1Cab663a26"}},"base":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0xd0b53D9277642d899DF5C87A3966A349A798F224"},"0x4200000000000000000000000000000000000006":{"symbol":"WETH","liquidity_provider":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"},"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913":{"symbol":"USDC","liquidity_provider":"0x0B0A5886664376F59C351ba3f598C8A8B4D0A6f3"},"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA":{"symbol":"USDbC","liquidity_provider":"0x0B25c51637c43decd6CC1C1e3da4518D54ddb528"},"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb":{"symbol":"DAI","liquidity_provider":"0x927860797d07b1C46fbBe7f6f73D45C7E1BFBb27"},"0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452":{"symbol":"wstETH","liquidity_provider":"0x99CBC45ea5bb7eF3a5BC08FB1B7E56bB2442Ef0D"},"0xB6fe221Fe9EeF5aBa221c348bA20A1Bf5e73624c":{"symbol":"rETH","liquidity_provider":"0x95Fa1ddc9a78273f795e67AbE8f1Cd2Cd39831fF"},"0x532f27101965dd16442E59d40670FaF5eBB142E4":{"symbol":"BRETT","liquidity_provider":"0xBA3F945812a83471d709BCe9C3CA699A19FB46f7"}}}} merkl_user_rewards_url: ${str:https://api.merkl.xyz/v3/userRewards} tenderly_bundle_simulation_url: ${str:https://api.tenderly.co/api/v1/account/{tenderly_account_slug}/project/{tenderly_project_slug}/simulate-bundle} tenderly_access_key: ${str:access_key} tenderly_account_slug: ${str:account_slug} tenderly_project_slug: ${str:project_slug} - chain_to_chain_id_mapping: ${str:{"optimism":10,"base":8453,"ethereum":1}} + chain_to_chain_id_mapping: ${str:{"optimism":10,"base":8453,"ethereum":1,"mode":34443}} staking_token_contract_address: ${str:0x88996bbdE7f982D93214881756840cE2c77C4992} staking_activity_checker_contract_address: ${str:0x7Fd1F4b764fA41d19fe3f63C85d12bf64d2bbf68} staking_threshold_period: ${int:5} @@ -241,4 +246,4 @@ models: min_swap_amount_threshold: ${int:10} max_fee_percentage: ${float:0.02} max_gas_percentage: ${float:0.25} - balancer_graphql_endpoints: ${str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest"}} + balancer_graphql_endpoints: ${str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 877ba29..c401a81 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeieanzpdxesfkufg573qakjyqkxnv4wxr3sd4vmlozzic7gxlx6aqq +agent: valory/optimus:0.1.0:bafybeicyayccklnin4gvkjs6cgqjyicjuai2pl4vvjqmxsfs4as273uimm number_of_agents: 1 deployment: {} --- @@ -70,7 +70,7 @@ models: tendermint_p2p_url: ${TENDERMINT_P2P_URL_0:str:optimism_tm_0:26656} service_endpoint_base: ${SERVICE_ENDPOINT_BASE:str:https://optimism.autonolas.tech/} multisend_batch_size: ${MULTISEND_BATCH_SIZE:int:5} - safe_contract_addresses: ${SAFE_CONTRACT_ADDRESSES:str:{"ethereum":"0x0000000000000000000000000000000000000000","base":"0x0000000000000000000000000000000000000000","optimism":"0x0000000000000000000000000000000000000000"}} + safe_contract_addresses: ${SAFE_CONTRACT_ADDRESSES:str:{"ethereum":"0x0000000000000000000000000000000000000000","base":"0x0000000000000000000000000000000000000000","optimism":"0x0000000000000000000000000000000000000000","mode":"0x0000000000000000000000000000000000000000"}} staking_token_contract_address: ${STAKING_TOKEN_CONTRACT_ADDRESS:str:0x88996bbdE7f982D93214881756840cE2c77C4992} staking_activity_checker_contract_address: ${STAKING_ACTIVITY_CHECKER_CONTRACT_ADDRESS:str:0x7Fd1F4b764fA41d19fe3f63C85d12bf64d2bbf68} staking_threshold_period: ${STAKING_THRESHOLD_PERIOD:int:5} @@ -81,7 +81,7 @@ models: min_swap_amount_threshold: ${MIN_SWAP_AMOUNT_THRESHOLD:int:10} max_fee_percentage: ${MAX_FEE_PERCENTAGE:float:0.02} max_gas_percentage: ${MAX_GAS_PERCENTAGE:float:0.25} - balancer_graphql_endpoints: ${BALANCER_GRAPHQL_ENDPOINTS:str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest"}} + balancer_graphql_endpoints: ${BALANCER_GRAPHQL_ENDPOINTS:str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} @@ -90,7 +90,7 @@ models: requests_per_minute: ${COINGECKO_REQUESTS_PER_MINUTE:int:30} credits: ${COINGECKO_CREDITS:int:10000} rate_limited_code: ${COINGECKO_RATE_LIMITED_CODE:int:429} - chain_to_platform_id_mapping: ${COINGECKO_CHAIN_TO_PLATFORM_ID_MAPPING:str:{"optimism":"optimistic-ethereum","base":"base","ethereum":"ethereum"}} + chain_to_platform_id_mapping: ${COINGECKO_CHAIN_TO_PLATFORM_ID_MAPPING:str:{"optimism":"optimistic-ethereum","base":"base","ethereum":"ethereum","mode":"mode"}} --- public_id: valory/ledger:0.19.0 type: connection @@ -111,6 +111,11 @@ config: chain_id: ${OPTIMISM_LEDGER_CHAIN_ID:int:10} poa_chain: ${OPTIMISM_LEDGER_IS_POA_CHAIN:bool:false} default_gas_price_strategy: ${OPTIMISM_LEDGER_PRICING:str:eip1559} + mode: + address: ${MODE_LEDGER_RPC:str:https://virtual.mode.rpc.tenderly.co/f1d63db5-da55-4383-bbed-54a6edbb0ee2} + chain_id: ${MODE_LEDGER_CHAIN_ID:int:34443} + poa_chain: ${MODE_LEDGER_IS_POA_CHAIN:bool:false} + default_gas_price_strategy: ${MODE_LEDGER_PRICING:str:eip1559} --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index fa08282..18cd797 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -148,26 +148,27 @@ models: allowed_dexs: - balancerPool initial_assets: '{"ethereum":{"0x0000000000000000000000000000000000000000":"eth","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"usdc"}}' - safe_contract_addresses: '{"ethereum":"0x0000000000000000000000000000000000000000","arbitrum":"0x0000000000000000000000000000000000000000","optimism":"0x0000000000000000000000000000000000000000"}' + safe_contract_addresses: '{"ethereum":"0x0000000000000000000000000000000000000000","arbitrum":"0x0000000000000000000000000000000000000000","optimism":"0x0000000000000000000000000000000000000000","mode":"0x0000000000000000000000000000000000000000"}' allowed_chains: - base - optimism + - mode gas_reserve: '{"ethereum":1,"optimism":10,"arbitrum":42161}' round_threshold: 5 apr_threshold: 5 min_balance_multiplier: 5 - multisend_contract_addresses: '{"ethereum":"0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761","optimism":"0xbE5b0013D2712DC4faF07726041C27ecFdBC35AD"}' + multisend_contract_addresses: '{"ethereum":"0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761","optimism":"0xbE5b0013D2712DC4faF07726041C27ecFdBC35AD","base":"0x998739BFdAAdde7C933B942a68053933098f9EDa","mode":"0x998739BFdAAdde7C933B942a68053933098f9EDa"}' lifi_advance_routes_url: https://li.quest/v1/advanced/routes lifi_fetch_step_transaction_url: https://li.quest/v1/advanced/stepTransaction lifi_check_status_url: https://li.quest/v1/status slippage_for_swap: 0.08 - balancer_vault_contract_addresses: '{"optimism":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","base":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"}' + balancer_vault_contract_addresses: '{"optimism":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","base":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","mode":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"}' uniswap_position_manager_contract_addresses: '{"optimism":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","base":"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1"}' - chain_to_chain_key_mapping: '{"optimism":"opt","base":"bas"}' + chain_to_chain_key_mapping: '{"optimism":"opt","base":"bas","mode":"mod"}' waiting_period_for_status_check: 5 max_num_of_retries: 5 reward_claiming_time_period: 28800 - merkl_distributor_contract_addresses: '{"optimism":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","base":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae"}' + merkl_distributor_contract_addresses: '{"optimism":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","base":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","mode":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae"}' intermediate_tokens: '{"ethereum":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2":{"symbol":"WETH","liquidity_provider":"0xF04a5cC80B1E94C69B48f5ee68a08CD2F09A7c3E"},"0xdAC17F958D2ee523a2206206994597C13D831ec7":{"symbol":"USDT","liquidity_provider":"0xcEe284F754E854890e311e3280b767F80797180d"},"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":{"symbol":"USDC","liquidity_provider":"0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640"},"0x6B175474E89094C44Da98b954EedeAC495271d0F":{"symbol":"DAI","liquidity_provider":"0x517F9dD285e75b599234F7221227339478d0FcC8"},"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84":{"symbol":"stETH","liquidity_provider":"0x4028DAAC072e492d34a3Afdbef0ba7e35D8b55C4"},"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0":{"symbol":"wstETH","liquidity_provider":"0x109830a1AAaD605BbF02a9dFA7B0B92EC2FB7dAa"},"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599":{"symbol":"WBTC","liquidity_provider":"0xCBCdF9626bC03E24f779434178A73a0B4bad62eD"},"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984":{"symbol":"UNI","liquidity_provider":"0x1d42064Fc4Beb5F8aAF85F4617AE8b3b5B8Bd801"}},"optimism":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0x4200000000000000000000000000000000000006"},"0x7F5c764cBc14f9669B88837ca1490cCa17c31607":{"symbol":"USDC.e","liquidity_provider":"0xD1F1baD4c9E6c44DeC1e9bF3B94902205c5Cd6C3"},"0x4200000000000000000000000000000000000006":{"symbol":"WETH","liquidity_provider":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"},"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58":{"symbol":"USDT","liquidity_provider":"0xA73C628eaf6e283E26A7b1f8001CF186aa4c0E8E"},"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1":{"symbol":"DAI","liquidity_provider":"0x03aF20bDAaFfB4cC0A521796a223f7D85e2aAc31"},"0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb":{"symbol":"wstETH","liquidity_provider":"0x04F6C85A1B00F6D9B75f91FD23835974Cc07E65c"},"0x68f180fcCe6836688e9084f035309E29Bf0A2095":{"symbol":"WBTC","liquidity_provider":"0x078f358208685046a11C85e8ad32895DED33A249"},"0x76FB31fb4af56892A25e32cFC43De717950c9278":{"symbol":"AAVE","liquidity_provider":"0xf329e36C7bF6E5E86ce2150875a84Ce77f477375"},"0x4200000000000000000000000000000000000042":{"symbol":"OP","liquidity_provider":"0x2A82Ae142b2e62Cb7D10b55E323ACB1Cab663a26"}},"base":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0xd0b53D9277642d899DF5C87A3966A349A798F224"},"0x4200000000000000000000000000000000000006":{"symbol":"WETH","liquidity_provider":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"},"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913":{"symbol":"USDC","liquidity_provider":"0x0B0A5886664376F59C351ba3f598C8A8B4D0A6f3"},"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA":{"symbol":"USDbC","liquidity_provider":"0x0B25c51637c43decd6CC1C1e3da4518D54ddb528"},"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb":{"symbol":"DAI","liquidity_provider":"0x927860797d07b1C46fbBe7f6f73D45C7E1BFBb27"},"0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452":{"symbol":"wstETH","liquidity_provider":"0x99CBC45ea5bb7eF3a5BC08FB1B7E56bB2442Ef0D"},"0xB6fe221Fe9EeF5aBa221c348bA20A1Bf5e73624c":{"symbol":"rETH","liquidity_provider":"0x95Fa1ddc9a78273f795e67AbE8f1Cd2Cd39831fF"},"0x532f27101965dd16442E59d40670FaF5eBB142E4":{"symbol":"BRETT","liquidity_provider":"0xBA3F945812a83471d709BCe9C3CA699A19FB46f7"}}}' lifi_fetch_tools_url: https://li.quest/v1/tools merkl_user_rewards_url: https://api.merkl.xyz/v3/userRewards @@ -175,7 +176,7 @@ models: tenderly_access_key: access_key tenderly_account_slug: account_slug tenderly_project_slug: project_slug - chain_to_chain_id_mapping: '{"optimism":10,"base":8453,"ethereum":1}' + chain_to_chain_id_mapping: '{"optimism":10,"base":8453,"ethereum":1,"mode":34443}' staking_token_contract_address: '0x63C2c53c09dE534Dd3bc0b7771bf976070936bAC' staking_activity_checker_contract_address: '0x7Fd1F4b764fA41d19fe3f63C85d12bf64d2bbf68' staking_threshold_period: 5 @@ -186,7 +187,7 @@ models: min_swap_amount_threshold: 10 max_fee_percentage: 0.02 max_gas_percentage: 0.1 - balancer_graphql_endpoints: '{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest"}' + balancer_graphql_endpoints: '{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}' class_name: Params coingecko: args: @@ -196,7 +197,7 @@ models: requests_per_minute: 30 credits: 10000 rate_limited_code: 429 - chain_to_platform_id_mapping: '{"optimism":"optimistic-ethereum","base":"base","ethereum":"ethereum"}' + chain_to_platform_id_mapping: '{"optimism":"optimistic-ethereum","base":"base","ethereum":"ethereum","mode":"mode"}' class_name: Coingecko requests: args: {} diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index c5100d6..ff8bcbf 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey - valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq - valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi -- valory/liquidity_trader_abci:0.1.0:bafybeicll2viv2bs7jmkzr7lskc7qgscvdv3gurlqgzr36npdzvckpja4u +- valory/liquidity_trader_abci:0.1.0:bafybeiexvi2dcshz4au52cw4op25dfamuyjv6qxty2vvh7ie3mqw5fdv6a - valory/transaction_settlement_abci:0.1.0:bafybeielv6eivt2z6nforq43xewl2vmpfwpdu2s2vfogobziljnwsclmlm behaviours: main: @@ -138,26 +138,27 @@ models: allowed_dexs: - balancerPool initial_assets: '{"ethereum":{"0x0000000000000000000000000000000000000000":"eth","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"usdc"}}' - safe_contract_addresses: '{"ethereum":"0x0000000000000000000000000000000000000000","arbitrum":"0x0000000000000000000000000000000000000000","optimism":"0x0000000000000000000000000000000000000000"}' + safe_contract_addresses: '{"ethereum":"0x0000000000000000000000000000000000000000","arbitrum":"0x0000000000000000000000000000000000000000","optimism":"0x0000000000000000000000000000000000000000","mode":"0x0000000000000000000000000000000000000000"}' allowed_chains: - base - optimism + - mode gas_reserve: '{"ethereum":1,"optimism":10,"arbitrum":42161}' round_threshold: 5 apr_threshold: 5 min_balance_multiplier: 5 - multisend_contract_addresses: '{"ethereum":"0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761","optimism":"0xbE5b0013D2712DC4faF07726041C27ecFdBC35AD"}' + multisend_contract_addresses: '{"ethereum":"0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761","optimism":"0xbE5b0013D2712DC4faF07726041C27ecFdBC35AD","base":"0x998739BFdAAdde7C933B942a68053933098f9EDa","mode":"0x998739BFdAAdde7C933B942a68053933098f9EDa"}' lifi_advance_routes_url: https://li.quest/v1/advanced/routes lifi_fetch_step_transaction_url: https://li.quest/v1/advanced/stepTransaction lifi_check_status_url: https://li.quest/v1/status slippage_for_swap: 0.08 - balancer_vault_contract_addresses: '{"optimism":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","base":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"}' + balancer_vault_contract_addresses: '{"optimism":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","base":"0xBA12222222228d8Ba445958a75a0704d566BF2C8","mode":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"}' uniswap_position_manager_contract_addresses: '{"optimism":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","base":"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1"}' - chain_to_chain_key_mapping: '{"optimism":"opt","base":"bas"}' + chain_to_chain_key_mapping: '{"optimism":"opt","base":"bas","mode":"mod"}' waiting_period_for_status_check: 5 max_num_of_retries: 5 reward_claiming_time_period: 28800 - merkl_distributor_contract_addresses: '{"optimism":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","base":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae"}' + merkl_distributor_contract_addresses: '{"optimism":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","base":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae","mode":"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae"}' intermediate_tokens: '{"ethereum":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2":{"symbol":"WETH","liquidity_provider":"0xF04a5cC80B1E94C69B48f5ee68a08CD2F09A7c3E"},"0xdAC17F958D2ee523a2206206994597C13D831ec7":{"symbol":"USDT","liquidity_provider":"0xcEe284F754E854890e311e3280b767F80797180d"},"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":{"symbol":"USDC","liquidity_provider":"0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640"},"0x6B175474E89094C44Da98b954EedeAC495271d0F":{"symbol":"DAI","liquidity_provider":"0x517F9dD285e75b599234F7221227339478d0FcC8"},"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84":{"symbol":"stETH","liquidity_provider":"0x4028DAAC072e492d34a3Afdbef0ba7e35D8b55C4"},"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0":{"symbol":"wstETH","liquidity_provider":"0x109830a1AAaD605BbF02a9dFA7B0B92EC2FB7dAa"},"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599":{"symbol":"WBTC","liquidity_provider":"0xCBCdF9626bC03E24f779434178A73a0B4bad62eD"},"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984":{"symbol":"UNI","liquidity_provider":"0x1d42064Fc4Beb5F8aAF85F4617AE8b3b5B8Bd801"}},"optimism":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0x4200000000000000000000000000000000000006"},"0x7F5c764cBc14f9669B88837ca1490cCa17c31607":{"symbol":"USDC.e","liquidity_provider":"0xD1F1baD4c9E6c44DeC1e9bF3B94902205c5Cd6C3"},"0x4200000000000000000000000000000000000006":{"symbol":"WETH","liquidity_provider":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"},"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58":{"symbol":"USDT","liquidity_provider":"0xA73C628eaf6e283E26A7b1f8001CF186aa4c0E8E"},"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1":{"symbol":"DAI","liquidity_provider":"0x03aF20bDAaFfB4cC0A521796a223f7D85e2aAc31"},"0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb":{"symbol":"wstETH","liquidity_provider":"0x04F6C85A1B00F6D9B75f91FD23835974Cc07E65c"},"0x68f180fcCe6836688e9084f035309E29Bf0A2095":{"symbol":"WBTC","liquidity_provider":"0x078f358208685046a11C85e8ad32895DED33A249"},"0x76FB31fb4af56892A25e32cFC43De717950c9278":{"symbol":"AAVE","liquidity_provider":"0xf329e36C7bF6E5E86ce2150875a84Ce77f477375"},"0x4200000000000000000000000000000000000042":{"symbol":"OP","liquidity_provider":"0x2A82Ae142b2e62Cb7D10b55E323ACB1Cab663a26"}},"base":{"0x0000000000000000000000000000000000000000":{"symbol":"ETH","liquidity_provider":"0xd0b53D9277642d899DF5C87A3966A349A798F224"},"0x4200000000000000000000000000000000000006":{"symbol":"WETH","liquidity_provider":"0xBA12222222228d8Ba445958a75a0704d566BF2C8"},"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913":{"symbol":"USDC","liquidity_provider":"0x0B0A5886664376F59C351ba3f598C8A8B4D0A6f3"},"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA":{"symbol":"USDbC","liquidity_provider":"0x0B25c51637c43decd6CC1C1e3da4518D54ddb528"},"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb":{"symbol":"DAI","liquidity_provider":"0x927860797d07b1C46fbBe7f6f73D45C7E1BFBb27"},"0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452":{"symbol":"wstETH","liquidity_provider":"0x99CBC45ea5bb7eF3a5BC08FB1B7E56bB2442Ef0D"},"0xB6fe221Fe9EeF5aBa221c348bA20A1Bf5e73624c":{"symbol":"rETH","liquidity_provider":"0x95Fa1ddc9a78273f795e67AbE8f1Cd2Cd39831fF"},"0x532f27101965dd16442E59d40670FaF5eBB142E4":{"symbol":"BRETT","liquidity_provider":"0xBA3F945812a83471d709BCe9C3CA699A19FB46f7"}}}' lifi_fetch_tools_url: https://li.quest/v1/tools merkl_user_rewards_url: https://api.merkl.xyz/v3/userRewards @@ -165,7 +166,7 @@ models: tenderly_access_key: access_key tenderly_account_slug: account_slug tenderly_project_slug: project_slug - chain_to_chain_id_mapping: '{"optimism":10,"base":8453,"ethereum":1}' + chain_to_chain_id_mapping: '{"optimism":10,"base":8453,"ethereum":1,"mode":34443}' staking_token_contract_address: '0x63C2c53c09dE534Dd3bc0b7771bf976070936bAC' staking_activity_checker_contract_address: '0x7Fd1F4b764fA41d19fe3f63C85d12bf64d2bbf68' staking_threshold_period: 5 @@ -176,7 +177,7 @@ models: max_fee_percentage: 0.02 max_gas_percentage: 0.1 merkl_fetch_campaigns_args: '{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"true"}' - balancer_graphql_endpoints: '{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest"}' + balancer_graphql_endpoints: '{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}' class_name: Params coingecko: args: @@ -186,7 +187,7 @@ models: requests_per_minute: 30 credits: 10000 rate_limited_code: 429 - chain_to_platform_id_mapping: '{"optimism":"optimistic-ethereum","base":"base","ethereum":"ethereum"}' + chain_to_platform_id_mapping: '{"optimism":"optimistic-ethereum","base":"base","ethereum":"ethereum","mode":"mode"}' class_name: Coingecko randomness_api: args: From 6e6315ba55c3d3a907d16fef4f6b749f79eb5b19 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 16 Oct 2024 11:32:15 +0530 Subject: [PATCH 02/52] fix: add mode rpc url --- scripts/aea-config-replace.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/aea-config-replace.py b/scripts/aea-config-replace.py index e189fe4..6e35226 100644 --- a/scripts/aea-config-replace.py +++ b/scripts/aea-config-replace.py @@ -49,6 +49,11 @@ def main() -> None: config[2]["config"]["ledger_apis"]["optimism"][ "address" ] = f"${{str:{os.getenv('OPTIMISM_LEDGER_RPC')}}}" + + if os.getenv("MODE_LEDGER_RPC"): + config[2]["config"]["ledger_apis"]["mode"][ + "address" + ] = f"${{str:{os.getenv('MODE_LEDGER_RPC')}}}" # Params config[5]["models"]["params"]["args"]["setup"][ From ca39eacb1233d33a6cd3b7d2bc620b733c2fdecf Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 16 Oct 2024 11:32:30 +0530 Subject: [PATCH 03/52] fix: update packages --- packages/packages.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 3138d4d..f2c9cd6 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeihaqsvmncuzmwv2r6iuzc5t7ur6ugdhephz7ydftypksjidpsylbq", "contract/valory/staking_token/0.1.0": "bafybeifrvtkofw5c26b3irm6izqfdpik6vpjhm6hqwcdzx333h6vhdanai", "contract/valory/staking_activity_checker/0.1.0": "bafybeibjzsi2r5b6xd4iwl4wbwldptnynryzsdpifym4mkv32ynswx22ou", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicll2viv2bs7jmkzr7lskc7qgscvdv3gurlqgzr36npdzvckpja4u", - "skill/valory/optimus_abci/0.1.0": "bafybeid2luqlruokidipj5s4xp7ygetfyirck5j7wmkgzjqfuydx27p42a", - "agent/valory/optimus/0.1.0": "bafybeieanzpdxesfkufg573qakjyqkxnv4wxr3sd4vmlozzic7gxlx6aqq", - "service/valory/optimus/0.1.0": "bafybeifdjaennczbswrpzgfty6gvwbhf4xx2dbizir5mdzcjpb6k3zhloy" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiexvi2dcshz4au52cw4op25dfamuyjv6qxty2vvh7ie3mqw5fdv6a", + "skill/valory/optimus_abci/0.1.0": "bafybeideqaphxoewriurhambhl3xn5d4747w4ibzk72q4sqjug7z4imdxq", + "agent/valory/optimus/0.1.0": "bafybeicyayccklnin4gvkjs6cgqjyicjuai2pl4vvjqmxsfs4as273uimm", + "service/valory/optimus/0.1.0": "bafybeicqtn6ndjeh7ievgxots6ibqhsd3vmtoe6xme7ra3f6l266fhbmga" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", From 968006a5bef6e31d91e45a09a8543b0512c7eebf Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 16 Oct 2024 13:12:23 +0530 Subject: [PATCH 04/52] fix: run formatters --- scripts/aea-config-replace.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/aea-config-replace.py b/scripts/aea-config-replace.py index 6e35226..bcf249b 100644 --- a/scripts/aea-config-replace.py +++ b/scripts/aea-config-replace.py @@ -49,7 +49,7 @@ def main() -> None: config[2]["config"]["ledger_apis"]["optimism"][ "address" ] = f"${{str:{os.getenv('OPTIMISM_LEDGER_RPC')}}}" - + if os.getenv("MODE_LEDGER_RPC"): config[2]["config"]["ledger_apis"]["mode"][ "address" From 2c09f007a5df82c037ae9939e6312456b54896aa Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 23 Oct 2024 12:48:54 +0530 Subject: [PATCH 05/52] chore: update Readme and Security --- README.md | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++- SECURITY.md | 34 +++++++++++++++ 2 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 SECURITY.md diff --git a/README.md b/README.md index 8e3214f..9b3b0ea 100644 --- a/README.md +++ b/README.md @@ -1 +1,122 @@ -# optimus-agent +## Optimus service + +**Supported Chains:** +The Optimus service currently operates on the following chains: +- Optimism +- Base +- Ethereum + +**Supported DEXs:** +The Optimus service trades on the following decentralized exchanges (DEXs): +- Balancer +- Uniswap + +**Operational Process:** +Within a typical epoch of 24 hours, the Optimus service performs the following tasks: + +1. **Opportunity Identification:** It identifies trading opportunities through campaigns advertised on the Merkl platform across the supported DEXs. + +2. **Liquidity Pool Investment:** When a suitable liquidity pool is found, the service takes the following actions: + - **First Opportunity:** If this is the first opportunity encountered, the service will add liquidity to the pool if its Annual Percentage Rate (APR) is higher than 5%. + - **Subsequent Opportunities:** If the service has already invested in a liquidity pool, it will consider the next opportunity only if its APR exceeds that of the previously invested pool. + +3. **Transaction Tracking:** The service tracks the number of transactions performed on the Optimism chain, which serves as key performance indicators (KPIs) for Olas Staking Rewards. + +The Optimus service is an [agent service](https://docs.autonolas.network/open-autonomy/get_started/what_is_an_agent_service/) (or autonomous service) based on the [Open Autonomy framework](https://docs.autonolas.network/open-autonomy/). Below we show you how to prepare your environment, how to prepare the agent keys, and how to configure and run the service. + +## Prepare the environment + +- System requirements: + + - Python `== 3.10` + - [Poetry](https://python-poetry.org/docs/) `>=1.4.0` + - [Docker Engine](https://docs.docker.com/engine/install/) + - [Docker Compose](https://docs.docker.com/compose/install/) + +- Clone this repository: + + git clone https://github.com/valory-xyz/optimus.git + +- Create a development environment: + + poetry install && poetry shell + +- Configure the Open Autonomy framework: + + autonomy init --reset --author valory --remote --ipfs --ipfs-node "/dns/registry.autonolas.tech/tcp/443/https" + +- Pull packages required to run the service: + + autonomy packages sync --update-packages + +## Prepare the keys and the Safe + +1. You need a **Gnosis keypair** to run the service. + +First, prepare the `keys.json` file with the Gnosis keypair of your agent. (Replace the uppercase placeholders below): + + cat > keys.json << EOF + [ + { + "address": "YOUR_AGENT_ADDRESS", + "private_key": "YOUR_AGENT_PRIVATE_KEY" + } + ] + EOF + +2. You need to deploy 4 **[Safes](https://safe.global/) on the following networks - Ethereum-Mainnet, Optimism, Base, Mode** + +3. You need to provide some funds ETH and USDC both to your Safe address on Ethereum-Mainnet, and some ETH to your agent across all the chains (Ethereum-Mainnet, Optimism, Base, Mode) to cover for gas fees. + +4. You will need your Tenderly Access Key, Tenderly account Slug, and Tenderly Project Slug. Get one at https://dashboard.tenderly.co/ under settings. + +5. You will need also need Coingecko API Key. Get one at https://www.coingecko.com/ under My Account -> Developer's Dashboard. + +## Configure the service + +Set up the following environment variables, to run the service. **Please read their description below**. + +```bash +export ETHEREUM_LEDGER_RPC=INSERT_YOUR_ETHEREUM_RPC +export OPTIMISM_LEDGER_RPC=INSERT_YOUR_OPTIMISM_RPC +export BASE_LEDGER_RPC=INSERT_YOUR_BASE_RPC +export MODE_LEDGER_RPC=INSERT_YOUR_MODE_RPC + +export ALL_PARTICIPANTS='["YOUR_AGENT_ADDRESS"]' +export SAFE_CONTRACT_ADDRESSES='{ethereum:"YOUR_SAFE_ADDRESS_ON_ETHEREUM","optimism":"YOUR_SAFE_ADDRESS_ON_OPTIMISM","base":"YOUR_SAFE_ADDRESS_ON_BASE","mode":"YOUR_SAFE_ADDRESS_ON_MODE"}' + +export SLIPPAGE_FOR_SWAP=0.09 +export TENDERLY_ACCESS_KEY=YOUR_TENDERLY_ACCESS_KEY +export TENDERLY_ACCOUNT_SLUG=YOUR_TENDERLY_ACCOUNT_SLUG +export TENDERLY_PROJECT_SLUG=YOUR_TENDERLY_PROJECT_SLUG +export COINGECKO_API_KEY=YOUR_COINGECKO_API_KEY + +Note - We provide default value for SLIPPAGE_FOR_SWAP, but feel free to experiment with different values. It indicates the allowed slippage when bridging/swapping assets using LiFi. + +## Run the service +Once you have configured (exported) the environment variables, you are in position to run the service. + +- Fetch the service: + + ```bash + autonomy fetch --local --service valory/optimus && cd optimus + ``` + +- Build the Docker image: + + ```bash + autonomy build-image + ``` + +- Copy your `keys.json` file prepared [in the previous section](#prepare-the-keys-and-the-safe) in the same directory: + + ```bash + cp path/to/keys.json . + ``` + +- Build the deployment with a single agent and run: + + ```bash + autonomy deploy build --n 1 -ltm + autonomy deploy run --build-dir abci_build/ + ``` diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..2b5fdca --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,34 @@ +# Security Policy + +This document outlines security procedures and general policies for the `optimus` project. + +## Supported Versions + +The following table shows which versions of `optimus` are currently being supported with security updates. + +| Version | Supported | +|---------|--------------------| +| `n/a` | :white_check_mark: | +| `n/a` | :x: | + +## Reporting a Vulnerability + +The `optimus` team and community take all security bugs in `optimus` seriously. Thank you for improving the security of `optimus`. We appreciate your efforts and responsible disclosure and will make every effort to acknowledge your contributions. + +Report security bugs by emailing `info@valory.xyz`. + +The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavour to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance. + +Report security bugs in third-party modules to the person or team maintaining the module. + +## Disclosure Policy + +When the security team receives a security bug report, they will assign it to a primary handler. This person will coordinate the fix and release process, involving the following steps: + +- Confirm the problem and determine the affected versions. +- Audit code to find any potential similar problems. +- Prepare fixes for all releases still under maintenance. These fixes will be released as fast as possible to PyPI. + +## Comments on this Policy + +If you have suggestions on how this process could be improved please submit a pull request. From 8dff01b61f6e088b1360e5085c3d1c8a662b1dda Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 23 Oct 2024 12:51:50 +0530 Subject: [PATCH 06/52] fix: update README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b3b0ea..45fbf06 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ First, prepare the `keys.json` file with the Gnosis keypair of your agent. (Repl ] EOF -2. You need to deploy 4 **[Safes](https://safe.global/) on the following networks - Ethereum-Mainnet, Optimism, Base, Mode** +2. You need to deploy **[Safes](https://safe.global/) on the following networks - Ethereum-Mainnet, Optimism, Base, Mode** 3. You need to provide some funds ETH and USDC both to your Safe address on Ethereum-Mainnet, and some ETH to your agent across all the chains (Ethereum-Mainnet, Optimism, Base, Mode) to cover for gas fees. @@ -90,6 +90,7 @@ export TENDERLY_ACCESS_KEY=YOUR_TENDERLY_ACCESS_KEY export TENDERLY_ACCOUNT_SLUG=YOUR_TENDERLY_ACCOUNT_SLUG export TENDERLY_PROJECT_SLUG=YOUR_TENDERLY_PROJECT_SLUG export COINGECKO_API_KEY=YOUR_COINGECKO_API_KEY +``` Note - We provide default value for SLIPPAGE_FOR_SWAP, but feel free to experiment with different values. It indicates the allowed slippage when bridging/swapping assets using LiFi. From c7212ef7e9dee3d9db401de2af9a89647c5bcb3d Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 23 Oct 2024 14:03:31 +0530 Subject: [PATCH 07/52] fix: update HISTORY --- .spelling | 23 +++++++++++++++++++++++ HISTORY.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 72 insertions(+), 6 deletions(-) diff --git a/.spelling b/.spelling index 728b0ae..fe65046 100644 --- a/.spelling +++ b/.spelling @@ -38,3 +38,26 @@ uniswap v0.1.0 v0.2.0 optimus-agent +Optimus +Ethereum-Mainnet +Ethereum +SLIPPAGE_FOR_SWAP +LiFi +Merkl +DEXs +KPIs +url +tx +uppercase +v0.2.1 +v0.2.2 +v0.2.3 +v0.2.4 +v0.2.5 +v0.2.6 +v0.2.7 +v0.2.8 +v0.2.9 +relayer +release.yaml + diff --git a/HISTORY.md b/HISTORY.md index 61adf28..3e6734a 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -2,11 +2,54 @@ ## v0.1.0 - [Release Date: 2024-09-06] -- **feat/uniswap**: Added support for Uniswap integration. -- **feat/claim reward**: Introduced the feature for claiming rewards. -- **v0.1.0 release**: Initial version of the project. -- **fix: claim rewards**: Fixed an issue with claiming rewards. +- Feat/uniswap +- Feat/claim reward +- fix: claim rewards + +## v0.2.0 - [Release Date: 2024-09-09] + +- Fix/unlocking staking rewards + +## v0.2.1 - [Release Date: 2024-09-18] + +- Fix/staking +- Fix/include all campaigns + +## v0.2.2 - [Release Date: 2024-09-20] + +- Fix/vanity tx + +## v0.2.3 + +- fix: resolve CI failures +- chore: add release.yaml + +## v0.2.4 + +- chore: bump to autonomy@v0.16.1 +- fix: remove gas overrides + +## v0.2.5 + +- Fix/swap profitability +- Implements logic in the Optimus agent to proceed with a bridge or swap transaction only if the relayer fee is less than 2% of the amount being bridged or swapped, and the gas fees are less than 25% of the amount being traded. + +## v0.2.6 + +- Fix/route selection +- fix: update url +- fix: add check for zero address +- fix: remove retries for status check +- Enhanced the reliability and efficiency of token swaps and bridges. +- Introduced fallback mechanisms for failed routes and cost-efficiency checks to control gas and swap/bridge fees. +- Optimized route selection to reduce complexity and retries, improving transaction success and cost-effectiveness. + +## v0.2.7 + +- adds gas cost tracker + +## v0.2.8 + +- fix: make allowed chains configurable -## v0.2.0 - [Release Date: 2024-09-06] -- **Unlocking Staking Rewards**: Added logic to unlock staking rewards based on meeting a daily minimum transaction threshold on the Optimism network From 6fee7734c8b204e1d92b55fd820adc5277bfeefb Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 23 Oct 2024 14:06:50 +0530 Subject: [PATCH 08/52] fix: update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 45fbf06..ea65335 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ The Optimus service currently operates on the following chains: - Optimism - Base - Ethereum +- Mode **Supported DEXs:** The Optimus service trades on the following decentralized exchanges (DEXs): From 208eac9de251f9237ab8da4b95e43a1f4bcf5c9d Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 23 Oct 2024 20:15:03 +0530 Subject: [PATCH 09/52] fix: override gas strategy params for mode --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 7 +++++-- packages/valory/services/optimus/service.yaml | 5 ++++- .../valory/skills/liquidity_trader_abci/behaviours.py | 4 +--- packages/valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index f2c9cd6..42651b3 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeihaqsvmncuzmwv2r6iuzc5t7ur6ugdhephz7ydftypksjidpsylbq", "contract/valory/staking_token/0.1.0": "bafybeifrvtkofw5c26b3irm6izqfdpik6vpjhm6hqwcdzx333h6vhdanai", "contract/valory/staking_activity_checker/0.1.0": "bafybeibjzsi2r5b6xd4iwl4wbwldptnynryzsdpifym4mkv32ynswx22ou", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiexvi2dcshz4au52cw4op25dfamuyjv6qxty2vvh7ie3mqw5fdv6a", - "skill/valory/optimus_abci/0.1.0": "bafybeideqaphxoewriurhambhl3xn5d4747w4ibzk72q4sqjug7z4imdxq", - "agent/valory/optimus/0.1.0": "bafybeicyayccklnin4gvkjs6cgqjyicjuai2pl4vvjqmxsfs4as273uimm", - "service/valory/optimus/0.1.0": "bafybeicqtn6ndjeh7ievgxots6ibqhsd3vmtoe6xme7ra3f6l266fhbmga" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeihio7imf5ss6347irw2sd5crek2tq6vg2vy6z2nmwadmpnehvkpbi", + "skill/valory/optimus_abci/0.1.0": "bafybeibqps5sjkcictxgifovck5x5xquuiyckopq6js3ymvaogl5mpn3tu", + "agent/valory/optimus/0.1.0": "bafybeihvl6elual5znl2vavg6my7btstd4qjthy52s2b4wzaaboevxxu3a", + "service/valory/optimus/0.1.0": "bafybeicekdw3mdg2mfedfl4s6ihgollcnajc34yk7zmf5nmb7ldkiuchvu" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 1783ba5..e5f40cf 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeidz54kvxhbdmpruzguuzzq7bjg4pekjb5amqobkxoy4oqknnobopu - valory/abstract_round_abci:0.1.0:bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm -- valory/liquidity_trader_abci:0.1.0:bafybeiexvi2dcshz4au52cw4op25dfamuyjv6qxty2vvh7ie3mqw5fdv6a -- valory/optimus_abci:0.1.0:bafybeideqaphxoewriurhambhl3xn5d4747w4ibzk72q4sqjug7z4imdxq +- valory/liquidity_trader_abci:0.1.0:bafybeihio7imf5ss6347irw2sd5crek2tq6vg2vy6z2nmwadmpnehvkpbi +- valory/optimus_abci:0.1.0:bafybeibqps5sjkcictxgifovck5x5xquuiyckopq6js3ymvaogl5mpn3tu - valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey - valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq - valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi @@ -107,6 +107,9 @@ config: chain_id: ${int:34443} poa_chain: ${bool:false} default_gas_price_strategy: ${str:eip1559} + gas_price_strategies: + eip1559: + fee_history_percentile: 50 --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index c401a81..25f61ff 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeicyayccklnin4gvkjs6cgqjyicjuai2pl4vvjqmxsfs4as273uimm +agent: valory/optimus:0.1.0:bafybeihvl6elual5znl2vavg6my7btstd4qjthy52s2b4wzaaboevxxu3a number_of_agents: 1 deployment: {} --- @@ -116,6 +116,9 @@ config: chain_id: ${MODE_LEDGER_CHAIN_ID:int:34443} poa_chain: ${MODE_LEDGER_IS_POA_CHAIN:bool:false} default_gas_price_strategy: ${MODE_LEDGER_PRICING:str:eip1559} + gas_price_strategies: + eip1559: + fee_history_percentile: ${FEE_HISTORY_PERCENTILE:50} --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 23e824e..aa9e1c0 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -2715,9 +2715,7 @@ def _build_multisend_tx( self, positions, tx_info ) -> Generator[None, None, Optional[str]]: multisend_txs = [] - amount = self._get_balance( - tx_info.get("from_chain"), tx_info.get("source_token"), positions - ) + amount= tx_info.get("amount") if tx_info.get("source_token") != ZERO_ADDRESS: approval_tx_payload = yield from self.get_approval_tx_hash( diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 18cd797..9933ac8 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeihi6lt7svxnhkj3w56fbetnp562vcrf7whex2ie5ig5zuor76sydy + behaviours.py: bafybeifnfyaa2jrvghprbhuscyacokcqglhqchtlq6grmvlr7xtvs7gnfu dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index ff8bcbf..cee58ee 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey - valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq - valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi -- valory/liquidity_trader_abci:0.1.0:bafybeiexvi2dcshz4au52cw4op25dfamuyjv6qxty2vvh7ie3mqw5fdv6a +- valory/liquidity_trader_abci:0.1.0:bafybeihio7imf5ss6347irw2sd5crek2tq6vg2vy6z2nmwadmpnehvkpbi - valory/transaction_settlement_abci:0.1.0:bafybeielv6eivt2z6nforq43xewl2vmpfwpdu2s2vfogobziljnwsclmlm behaviours: main: From c9022417a7534ae6e3e5e58bbd1e41a3ac0c01b3 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 24 Oct 2024 16:42:29 +0530 Subject: [PATCH 10/52] fix: update merkl params --- packages/valory/agents/optimus/aea-config.yaml | 2 +- packages/valory/services/optimus/service.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index e5f40cf..dfc8aa6 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -214,7 +214,7 @@ models: allowed_dexs: ${list:["balancerPool", "UniswapV3"]} initial_assets: ${str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} safe_contract_addresses: ${str:{"ethereum":"0x0000000000000000000000000000000000000000","base":"0x07e27E181Df065141ee90a4DD43cE4113bc9853C","optimism":"0x07e27E181Df065141ee90a4DD43cE4113bc9853C","mode":"0x0000000000000000000000000000000000000000"}} - merkl_fetch_campaigns_args: ${str:{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"true"}} + merkl_fetch_campaigns_args: ${str:{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}} allowed_chains: ${list:["optimism","base"]} gas_reserve: ${str:{"ethereum":1000,"optimism":1000,"base":1000}} round_threshold: ${int:0} diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 25f61ff..fb0cafe 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeihvl6elual5znl2vavg6my7btstd4qjthy52s2b4wzaaboevxxu3a +agent: valory/optimus:0.1.0:bafybeihbcj3jlnaqkopw5lqfx4kassaxxfhwsx3n2np67hi3qjpavtehwy number_of_agents: 1 deployment: {} --- @@ -77,7 +77,7 @@ models: store_path: ${STORE_PATH:str:/data/} assets_info_filename: ${ASSETS_INFO_FILENAME:str:assets.json} pool_info_filename: ${POOL_INFO_FILENAME:str:current_pool.json} - merkl_fetch_campaigns_args: ${MERKL_FETCH_CAMPAIGNS_ARGS:str:{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"true"}} + merkl_fetch_campaigns_args: ${MERKL_FETCH_CAMPAIGNS_ARGS:str:{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}} min_swap_amount_threshold: ${MIN_SWAP_AMOUNT_THRESHOLD:int:10} max_fee_percentage: ${MAX_FEE_PERCENTAGE:float:0.02} max_gas_percentage: ${MAX_GAS_PERCENTAGE:float:0.25} From 1964ab6911906db75d5474f7f6e1f2c013908dc0 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 24 Oct 2024 16:49:19 +0530 Subject: [PATCH 11/52] chore: update packages --- packages/packages.json | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 42651b3..ed554bc 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -10,8 +10,8 @@ "contract/valory/staking_activity_checker/0.1.0": "bafybeibjzsi2r5b6xd4iwl4wbwldptnynryzsdpifym4mkv32ynswx22ou", "skill/valory/liquidity_trader_abci/0.1.0": "bafybeihio7imf5ss6347irw2sd5crek2tq6vg2vy6z2nmwadmpnehvkpbi", "skill/valory/optimus_abci/0.1.0": "bafybeibqps5sjkcictxgifovck5x5xquuiyckopq6js3ymvaogl5mpn3tu", - "agent/valory/optimus/0.1.0": "bafybeihvl6elual5znl2vavg6my7btstd4qjthy52s2b4wzaaboevxxu3a", - "service/valory/optimus/0.1.0": "bafybeicekdw3mdg2mfedfl4s6ihgollcnajc34yk7zmf5nmb7ldkiuchvu" + "agent/valory/optimus/0.1.0": "bafybeica22kkxurhf5htzhbdqdrvr5643mg4wpvawd7hn4ijnviqzkamyu", + "service/valory/optimus/0.1.0": "bafybeifrozusw4yujcjzmlaufm4tsj5xgibw6bfe6pgsnm5jcv7gw7zyce" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index fb0cafe..76e499c 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeihbcj3jlnaqkopw5lqfx4kassaxxfhwsx3n2np67hi3qjpavtehwy +agent: valory/optimus:0.1.0:bafybeica22kkxurhf5htzhbdqdrvr5643mg4wpvawd7hn4ijnviqzkamyu number_of_agents: 1 deployment: {} --- From eb13be7b712676820dcd5db40be22900bc4b5b45 Mon Sep 17 00:00:00 2001 From: gauravlochab Date: Wed, 30 Oct 2024 14:55:05 +0530 Subject: [PATCH 12/52] chore: bump to autonomy@v0.18.2 --- packages/packages.json | 46 +++++++++---------- .../valory/agents/optimus/aea-config.yaml | 14 +++--- .../contracts/balancer_vault/contract.yaml | 2 +- .../balancer_weighted_pool/contract.yaml | 2 +- packages/valory/contracts/erc20/contract.yaml | 4 +- .../contracts/merkl_distributor/contract.yaml | 2 +- .../staking_activity_checker/contract.yaml | 4 +- .../contracts/staking_token/contract.yaml | 4 +- .../contract.yaml | 2 +- .../contracts/uniswap_v3_pool/contract.yaml | 2 +- packages/valory/services/optimus/service.yaml | 2 +- .../skills/liquidity_trader_abci/skill.yaml | 16 +++---- .../valory/skills/optimus_abci/skill.yaml | 2 +- pyproject.toml | 10 ++-- tox.ini | 12 ++--- 15 files changed, 62 insertions(+), 62 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index ed554bc..7571dbd 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,17 +1,17 @@ { "dev": { - "contract/valory/balancer_weighted_pool/0.1.0": "bafybeidyjlrlq3jrbackewedwt5irokhjupxgpqfgur2ri426cap2oqt7a", - "contract/valory/balancer_vault/0.1.0": "bafybeie6twptrkqddget7pjijzob2c4jqmrrtpkwombneh35xx56djz4ru", - "contract/valory/erc20/0.1.0": "bafybeiav4gh7lxfnwp4f7oorkbvjxrdsgjgyhl43rgbblaugtl76zlx7vy", - "contract/valory/uniswap_v3_non_fungible_position_manager/0.1.0": "bafybeigadr3nyx6tkrual7oqn2qiup35addfevromxjzzlvkiukpyhtz6y", - "contract/valory/uniswap_v3_pool/0.1.0": "bafybeih64nqgwlverl2tubnkymtlvewngn2pthzzfjewvxpk7dt2im6gza", - "contract/valory/merkl_distributor/0.1.0": "bafybeihaqsvmncuzmwv2r6iuzc5t7ur6ugdhephz7ydftypksjidpsylbq", - "contract/valory/staking_token/0.1.0": "bafybeifrvtkofw5c26b3irm6izqfdpik6vpjhm6hqwcdzx333h6vhdanai", - "contract/valory/staking_activity_checker/0.1.0": "bafybeibjzsi2r5b6xd4iwl4wbwldptnynryzsdpifym4mkv32ynswx22ou", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeihio7imf5ss6347irw2sd5crek2tq6vg2vy6z2nmwadmpnehvkpbi", - "skill/valory/optimus_abci/0.1.0": "bafybeibqps5sjkcictxgifovck5x5xquuiyckopq6js3ymvaogl5mpn3tu", - "agent/valory/optimus/0.1.0": "bafybeica22kkxurhf5htzhbdqdrvr5643mg4wpvawd7hn4ijnviqzkamyu", - "service/valory/optimus/0.1.0": "bafybeifrozusw4yujcjzmlaufm4tsj5xgibw6bfe6pgsnm5jcv7gw7zyce" + "contract/valory/balancer_weighted_pool/0.1.0": "bafybeigqt5fofqh4jakrty5xkyap5jkuv4ib7oeyxprksb7xf4dqivxpcq", + "contract/valory/balancer_vault/0.1.0": "bafybeib3gxzp73qpfenwei4w4lridam2sdnzwszwyjc6bn342d7tuwrttu", + "contract/valory/erc20/0.1.0": "bafybeiemh4warjroyqwkuaso3jwfjfvobyuydj5xyppi7cepo7wtu5ab64", + "contract/valory/uniswap_v3_non_fungible_position_manager/0.1.0": "bafybeibza3bamh3dcuc5i3dysrhtb5lbuetd4s2hzbolqxkzywtkkhihva", + "contract/valory/uniswap_v3_pool/0.1.0": "bafybeicvypbpkhshkuaiul35mojqupr6vxqinfqzypbebmmbxsvlil3hva", + "contract/valory/merkl_distributor/0.1.0": "bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm", + "contract/valory/staking_token/0.1.0": "bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y", + "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeid6i25tn6xnpf2qljm2cr26tsqxlfrdgiyt4m3qpjpu25t77fgbmq", + "skill/valory/optimus_abci/0.1.0": "bafybeigfrgx2ocrr4ujcwexsv2xvbfaawauef7lmrpvcjck5gqemubjqry", + "agent/valory/optimus/0.1.0": "bafybeid2tv3uwndec4qmfjdqyq7pnvt7kkxvzwlqyiy47nii6wrxiytooe", + "service/valory/optimus/0.1.0": "bafybeidwjk3ra52vuxolu6kgz7zzthxqtytkfamffwfc75nhq2fhnap4sq" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", @@ -22,21 +22,21 @@ "protocol/valory/acn/1.1.0": "bafybeidluaoeakae3exseupaea4i3yvvk5vivyt227xshjlffywwxzcxqe", "protocol/valory/ipfs/0.1.0": "bafybeiftxi2qhreewgsc5wevogi7yc5g6hbcbo4uiuaibauhv3nhfcdtvm", "protocol/valory/tendermint/0.1.0": "bafybeig4mi3vmlv5zpbjbfuzcgida6j5f2nhrpedxicmrrfjweqc5r7cra", - "contract/valory/service_registry/0.1.0": "bafybeihafe524ilngwzavkhwz4er56p7nyar26lfm7lrksfiqvvzo3kdcq", - "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeicpcpyurm7gxir2gnlsgzeirzomkhcbnzr5txk67zdf4mmg737rtu", + "contract/valory/service_registry/0.1.0": "bafybeicky7duncl25yif5gduo7a3ccgbgfo4pkx6rvexooyvzgyomcfuy4", + "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeidkqhw7smq4kbqryodom6maj7gubc5nbxwm4vi343xbkqxx3brjtm", "contract/valory/multisend/0.1.0": "bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y", - "contract/valory/gnosis_safe/0.1.0": "bafybeib375xmvcplw7ageic2np3hq4yqeijrvd5kl7rrdnyvswats6ngmm", - "connection/valory/abci/0.1.0": "bafybeiejymu4ul62zx6weoibnlsrfprfpjnplhjefz6sr6izgdr4sajlnu", + "contract/valory/gnosis_safe/0.1.0": "bafybeiaw4yr7ubqlp63iz5wxqep3a5fokqs3kqva7sp2nsqg355zzucqgm", + "connection/valory/abci/0.1.0": "bafybeiavg4blopyq2mfojlfmsdxpk64ywpot25zi34wfmv4yeal6pbqbfy", "connection/valory/http_client/0.23.0": "bafybeihi772xgzpqeipp3fhmvpct4y6e6tpjp4sogwqrnf3wqspgeilg4u", - "connection/valory/ipfs/0.1.0": "bafybeiegnapkvkamis47v5ioza2haerrjdzzb23rptpmcydyneas7jc2wm", + "connection/valory/ipfs/0.1.0": "bafybeiay3g7ioixe5zxilb5vodvz3lpf3jhugvpdzisfzeqlxt2wejaira", "connection/valory/ledger/0.19.0": "bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e", "connection/valory/p2p_libp2p_client/0.1.0": "bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e", "connection/valory/http_server/0.22.0": "bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m", - "skill/valory/abstract_abci/0.1.0": "bafybeidz54kvxhbdmpruzguuzzq7bjg4pekjb5amqobkxoy4oqknnobopu", - "skill/valory/reset_pause_abci/0.1.0": "bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq", - "skill/valory/registration_abci/0.1.0": "bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey", - "skill/valory/abstract_round_abci/0.1.0": "bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm", - "skill/valory/termination_abci/0.1.0": "bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi", - "skill/valory/transaction_settlement_abci/0.1.0": "bafybeielv6eivt2z6nforq43xewl2vmpfwpdu2s2vfogobziljnwsclmlm" + "skill/valory/abstract_abci/0.1.0": "bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu", + "skill/valory/reset_pause_abci/0.1.0": "bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e", + "skill/valory/registration_abci/0.1.0": "bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq", + "skill/valory/abstract_round_abci/0.1.0": "bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti", + "skill/valory/termination_abci/0.1.0": "bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy", + "skill/valory/transaction_settlement_abci/0.1.0": "bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy" } } \ No newline at end of file diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index dfc8aa6..554d516 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -19,10 +19,10 @@ contracts: - valory/gnosis_safe_proxy_factory:0.1.0:bafybeicpcpyurm7gxir2gnlsgzeirzomkhcbnzr5txk67zdf4mmg737rtu - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y - valory/service_registry:0.1.0:bafybeihafe524ilngwzavkhwz4er56p7nyar26lfm7lrksfiqvvzo3kdcq -- valory/balancer_weighted_pool:0.1.0:bafybeidyjlrlq3jrbackewedwt5irokhjupxgpqfgur2ri426cap2oqt7a -- valory/balancer_vault:0.1.0:bafybeie6twptrkqddget7pjijzob2c4jqmrrtpkwombneh35xx56djz4ru -- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeigadr3nyx6tkrual7oqn2qiup35addfevromxjzzlvkiukpyhtz6y -- valory/uniswap_v3_pool:0.1.0:bafybeih64nqgwlverl2tubnkymtlvewngn2pthzzfjewvxpk7dt2im6gza +- valory/balancer_weighted_pool:0.1.0:bafybeigqt5fofqh4jakrty5xkyap5jkuv4ib7oeyxprksb7xf4dqivxpcq +- valory/balancer_vault:0.1.0:bafybeib3gxzp73qpfenwei4w4lridam2sdnzwszwyjc6bn342d7tuwrttu +- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeibza3bamh3dcuc5i3dysrhtb5lbuetd4s2hzbolqxkzywtkkhihva +- valory/uniswap_v3_pool:0.1.0:bafybeicvypbpkhshkuaiul35mojqupr6vxqinfqzypbebmmbxsvlil3hva protocols: - open_aea/signing:1.0.0:bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi - valory/abci:0.1.0:bafybeiaqmp7kocbfdboksayeqhkbrynvlfzsx4uy4x6nohywnmaig4an7u @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeidz54kvxhbdmpruzguuzzq7bjg4pekjb5amqobkxoy4oqknnobopu - valory/abstract_round_abci:0.1.0:bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm -- valory/liquidity_trader_abci:0.1.0:bafybeihio7imf5ss6347irw2sd5crek2tq6vg2vy6z2nmwadmpnehvkpbi -- valory/optimus_abci:0.1.0:bafybeibqps5sjkcictxgifovck5x5xquuiyckopq6js3ymvaogl5mpn3tu +- valory/liquidity_trader_abci:0.1.0:bafybeid6i25tn6xnpf2qljm2cr26tsqxlfrdgiyt4m3qpjpu25t77fgbmq +- valory/optimus_abci:0.1.0:bafybeigfrgx2ocrr4ujcwexsv2xvbfaawauef7lmrpvcjck5gqemubjqry - valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey - valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq - valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi @@ -72,7 +72,7 @@ logging_config: skill_exception_policy: stop_and_exit dependencies: open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 default_connection: null --- public_id: valory/abci:0.1.0 diff --git a/packages/valory/contracts/balancer_vault/contract.yaml b/packages/valory/contracts/balancer_vault/contract.yaml index c825ece..d1b43e9 100644 --- a/packages/valory/contracts/balancer_vault/contract.yaml +++ b/packages/valory/contracts/balancer_vault/contract.yaml @@ -16,7 +16,7 @@ contract_interface_paths: ethereum: build/Vault.json dependencies: open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 web3: version: <7,>=6.0.0 eth_abi: diff --git a/packages/valory/contracts/balancer_weighted_pool/contract.yaml b/packages/valory/contracts/balancer_weighted_pool/contract.yaml index 17f56ad..06dde17 100644 --- a/packages/valory/contracts/balancer_weighted_pool/contract.yaml +++ b/packages/valory/contracts/balancer_weighted_pool/contract.yaml @@ -16,6 +16,6 @@ contract_interface_paths: ethereum: build/WeightedPool.json dependencies: open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/erc20/contract.yaml b/packages/valory/contracts/erc20/contract.yaml index 10da005..b84001f 100644 --- a/packages/valory/contracts/erc20/contract.yaml +++ b/packages/valory/contracts/erc20/contract.yaml @@ -21,9 +21,9 @@ dependencies: eth_typing: {} hexbytes: {} open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 open-aea-test-autonomy: - version: ==0.16.1 + version: ==0.18.2 packaging: {} requests: version: <2.31.2,>=2.28.1 diff --git a/packages/valory/contracts/merkl_distributor/contract.yaml b/packages/valory/contracts/merkl_distributor/contract.yaml index e117085..cac9d6f 100644 --- a/packages/valory/contracts/merkl_distributor/contract.yaml +++ b/packages/valory/contracts/merkl_distributor/contract.yaml @@ -16,7 +16,7 @@ contract_interface_paths: ethereum: build/Distributor.json dependencies: open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 web3: version: <7,>=6.0.0 eth_abi: diff --git a/packages/valory/contracts/staking_activity_checker/contract.yaml b/packages/valory/contracts/staking_activity_checker/contract.yaml index 023dfec..fe6301f 100644 --- a/packages/valory/contracts/staking_activity_checker/contract.yaml +++ b/packages/valory/contracts/staking_activity_checker/contract.yaml @@ -16,8 +16,8 @@ contract_interface_paths: ethereum: build/StakingActivityChecker.json dependencies: open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 open-aea-test-autonomy: - version: ==0.16.1 + version: ==0.18.2 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/staking_token/contract.yaml b/packages/valory/contracts/staking_token/contract.yaml index d02421a..142ac6c 100644 --- a/packages/valory/contracts/staking_token/contract.yaml +++ b/packages/valory/contracts/staking_token/contract.yaml @@ -16,8 +16,8 @@ contract_interface_paths: ethereum: build/StakingToken.json dependencies: open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 open-aea-test-autonomy: - version: ==0.16.1 + version: ==0.18.2 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml b/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml index f151fdd..fc5b5aa 100644 --- a/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml +++ b/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml @@ -16,6 +16,6 @@ contract_interface_paths: ethereum: build/NonfungiblePositionManager.json dependencies: open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/uniswap_v3_pool/contract.yaml b/packages/valory/contracts/uniswap_v3_pool/contract.yaml index 1908f68..7a2da01 100644 --- a/packages/valory/contracts/uniswap_v3_pool/contract.yaml +++ b/packages/valory/contracts/uniswap_v3_pool/contract.yaml @@ -16,6 +16,6 @@ contract_interface_paths: ethereum: build/UniswapV3Pool.json dependencies: open-aea-ledger-ethereum: - version: ==1.57.0 + version: ==1.59.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 76e499c..93b91ce 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeica22kkxurhf5htzhbdqdrvr5643mg4wpvawd7hn4ijnviqzkamyu +agent: valory/optimus:0.1.0:bafybeid2tv3uwndec4qmfjdqyq7pnvt7kkxvzwlqyiy47nii6wrxiytooe number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 9933ac8..5eac29c 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -23,15 +23,15 @@ fingerprint_ignore_patterns: [] connections: [] contracts: - valory/gnosis_safe:0.1.0:bafybeib375xmvcplw7ageic2np3hq4yqeijrvd5kl7rrdnyvswats6ngmm -- valory/balancer_weighted_pool:0.1.0:bafybeidyjlrlq3jrbackewedwt5irokhjupxgpqfgur2ri426cap2oqt7a -- valory/balancer_vault:0.1.0:bafybeie6twptrkqddget7pjijzob2c4jqmrrtpkwombneh35xx56djz4ru -- valory/erc20:0.1.0:bafybeiav4gh7lxfnwp4f7oorkbvjxrdsgjgyhl43rgbblaugtl76zlx7vy +- valory/balancer_weighted_pool:0.1.0:bafybeigqt5fofqh4jakrty5xkyap5jkuv4ib7oeyxprksb7xf4dqivxpcq +- valory/balancer_vault:0.1.0:bafybeib3gxzp73qpfenwei4w4lridam2sdnzwszwyjc6bn342d7tuwrttu +- valory/erc20:0.1.0:bafybeiemh4warjroyqwkuaso3jwfjfvobyuydj5xyppi7cepo7wtu5ab64 - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeigadr3nyx6tkrual7oqn2qiup35addfevromxjzzlvkiukpyhtz6y -- valory/uniswap_v3_pool:0.1.0:bafybeih64nqgwlverl2tubnkymtlvewngn2pthzzfjewvxpk7dt2im6gza -- valory/merkl_distributor:0.1.0:bafybeihaqsvmncuzmwv2r6iuzc5t7ur6ugdhephz7ydftypksjidpsylbq -- valory/staking_token:0.1.0:bafybeifrvtkofw5c26b3irm6izqfdpik6vpjhm6hqwcdzx333h6vhdanai -- valory/staking_activity_checker:0.1.0:bafybeibjzsi2r5b6xd4iwl4wbwldptnynryzsdpifym4mkv32ynswx22ou +- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeibza3bamh3dcuc5i3dysrhtb5lbuetd4s2hzbolqxkzywtkkhihva +- valory/uniswap_v3_pool:0.1.0:bafybeicvypbpkhshkuaiul35mojqupr6vxqinfqzypbebmmbxsvlil3hva +- valory/merkl_distributor:0.1.0:bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm +- valory/staking_token:0.1.0:bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y +- valory/staking_activity_checker:0.1.0:bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy protocols: - valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index cee58ee..64d6bff 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey - valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq - valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi -- valory/liquidity_trader_abci:0.1.0:bafybeihio7imf5ss6347irw2sd5crek2tq6vg2vy6z2nmwadmpnehvkpbi +- valory/liquidity_trader_abci:0.1.0:bafybeid6i25tn6xnpf2qljm2cr26tsqxlfrdgiyt4m3qpjpu25t77fgbmq - valory/transaction_settlement_abci:0.1.0:bafybeielv6eivt2z6nforq43xewl2vmpfwpdu2s2vfogobziljnwsclmlm behaviours: main: diff --git a/pyproject.toml b/pyproject.toml index 7d22e64..cf4fc93 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,10 +16,10 @@ include = "packages" [tool.poetry.dependencies] python = "<4.0,>=3.10" -open-autonomy = "==0.16.1" -open-aea-test-autonomy = "==0.16.1" -open-aea = "==1.57.0" -open-aea-ledger-ethereum = "==1.57.0" +open-autonomy = "==0.18.2" +open-aea-test-autonomy = "==0.18.2" +open-aea = "==1.59.0" +open-aea-ledger-ethereum = "==1.59.0" typing_extensions = ">=3.10.0.2" toml = "==0.10.2" tomte = {version = "==0.2.17", extras = ["cli", "tests"]} @@ -27,7 +27,7 @@ black = "==24.2.0" isort = "==5.13.2" grpcio = "==1.53.0" asn1crypto = "<1.5.0,>=1.4.0" -open-aea-ledger-cosmos = "==1.57.0" +open-aea-ledger-cosmos = "==1.59.0" py-ecc = "==6.0.0" pytz = "==2022.2.1" openapi-core = "==0.15.0" diff --git a/tox.ini b/tox.ini index 0e54d24..6403792 100644 --- a/tox.ini +++ b/tox.ini @@ -25,12 +25,12 @@ deps = grpcio==1.53.0 hypothesis==6.21.6 jsonschema<4.4.0,>=4.3.0 - open-autonomy==0.16.1 - open-aea==1.57.0 - open-aea-ledger-ethereum==1.57.0 - open-aea-ledger-cosmos==1.57.0 - open-aea-cli-ipfs==1.57.0 - open-aea-test-autonomy==0.16.1 + open-autonomy==0.18.2 + open-aea==1.59.0 + open-aea-ledger-ethereum==1.59.0 + open-aea-ledger-cosmos==1.59.0 + open-aea-cli-ipfs==1.59.0 + open-aea-test-autonomy==0.18.2 toml==0.10.2 typing_extensions>=3.10.0.2 py-ecc==6.0.0 From 6eeab47135e8c8e67f68d69d6254c93ac842dda8 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 30 Oct 2024 15:24:00 +0530 Subject: [PATCH 13/52] fix: update third party packages hash --- packages/packages.json | 8 +++--- .../valory/agents/optimus/aea-config.yaml | 26 +++++++++---------- packages/valory/services/optimus/service.yaml | 2 +- .../skills/liquidity_trader_abci/skill.yaml | 6 ++--- .../valory/skills/optimus_abci/skill.yaml | 12 ++++----- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 7571dbd..bd345ce 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm", "contract/valory/staking_token/0.1.0": "bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y", "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeid6i25tn6xnpf2qljm2cr26tsqxlfrdgiyt4m3qpjpu25t77fgbmq", - "skill/valory/optimus_abci/0.1.0": "bafybeigfrgx2ocrr4ujcwexsv2xvbfaawauef7lmrpvcjck5gqemubjqry", - "agent/valory/optimus/0.1.0": "bafybeid2tv3uwndec4qmfjdqyq7pnvt7kkxvzwlqyiy47nii6wrxiytooe", - "service/valory/optimus/0.1.0": "bafybeidwjk3ra52vuxolu6kgz7zzthxqtytkfamffwfc75nhq2fhnap4sq" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeifcfxijpk7ry6or7zxwhfztzn4puyhfbh7m5mxcu2xiucdgotqkji", + "skill/valory/optimus_abci/0.1.0": "bafybeih25ioiouuyhyva4djaiewa3ia27ila5ohahexs3oegreltkxolb4", + "agent/valory/optimus/0.1.0": "bafybeidaqh3dc3phcfkt7ny7qvtaa33lk3xbnnodbculyd3il6rkmibvim", + "service/valory/optimus/0.1.0": "bafybeicyi4htfakt6tkuxxyb3frj3jbecptkfkb4cuzh5iwpyns722gooa" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 554d516..bcea0de 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -8,17 +8,17 @@ fingerprint: __init__.py: bafybeigx5mdvnamsqfum5ut7htok2y5vsnu7lrvms5gfvqi7hmv7sfbo3a fingerprint_ignore_patterns: [] connections: -- valory/abci:0.1.0:bafybeiejymu4ul62zx6weoibnlsrfprfpjnplhjefz6sr6izgdr4sajlnu +- valory/abci:0.1.0:bafybeiavg4blopyq2mfojlfmsdxpk64ywpot25zi34wfmv4yeal6pbqbfy - valory/http_client:0.23.0:bafybeihi772xgzpqeipp3fhmvpct4y6e6tpjp4sogwqrnf3wqspgeilg4u - valory/http_server:0.22.0:bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m -- valory/ipfs:0.1.0:bafybeiegnapkvkamis47v5ioza2haerrjdzzb23rptpmcydyneas7jc2wm +- valory/ipfs:0.1.0:bafybeiay3g7ioixe5zxilb5vodvz3lpf3jhugvpdzisfzeqlxt2wejaira - valory/ledger:0.19.0:bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e - valory/p2p_libp2p_client:0.1.0:bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e contracts: -- valory/gnosis_safe:0.1.0:bafybeib375xmvcplw7ageic2np3hq4yqeijrvd5kl7rrdnyvswats6ngmm -- valory/gnosis_safe_proxy_factory:0.1.0:bafybeicpcpyurm7gxir2gnlsgzeirzomkhcbnzr5txk67zdf4mmg737rtu +- valory/gnosis_safe:0.1.0:bafybeiaw4yr7ubqlp63iz5wxqep3a5fokqs3kqva7sp2nsqg355zzucqgm +- valory/gnosis_safe_proxy_factory:0.1.0:bafybeidkqhw7smq4kbqryodom6maj7gubc5nbxwm4vi343xbkqxx3brjtm - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/service_registry:0.1.0:bafybeihafe524ilngwzavkhwz4er56p7nyar26lfm7lrksfiqvvzo3kdcq +- valory/service_registry:0.1.0:bafybeicky7duncl25yif5gduo7a3ccgbgfo4pkx6rvexooyvzgyomcfuy4 - valory/balancer_weighted_pool:0.1.0:bafybeigqt5fofqh4jakrty5xkyap5jkuv4ib7oeyxprksb7xf4dqivxpcq - valory/balancer_vault:0.1.0:bafybeib3gxzp73qpfenwei4w4lridam2sdnzwszwyjc6bn342d7tuwrttu - valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeibza3bamh3dcuc5i3dysrhtb5lbuetd4s2hzbolqxkzywtkkhihva @@ -33,14 +33,14 @@ protocols: - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni - valory/tendermint:0.1.0:bafybeig4mi3vmlv5zpbjbfuzcgida6j5f2nhrpedxicmrrfjweqc5r7cra skills: -- valory/abstract_abci:0.1.0:bafybeidz54kvxhbdmpruzguuzzq7bjg4pekjb5amqobkxoy4oqknnobopu -- valory/abstract_round_abci:0.1.0:bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm -- valory/liquidity_trader_abci:0.1.0:bafybeid6i25tn6xnpf2qljm2cr26tsqxlfrdgiyt4m3qpjpu25t77fgbmq -- valory/optimus_abci:0.1.0:bafybeigfrgx2ocrr4ujcwexsv2xvbfaawauef7lmrpvcjck5gqemubjqry -- valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey -- valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq -- valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi -- valory/transaction_settlement_abci:0.1.0:bafybeielv6eivt2z6nforq43xewl2vmpfwpdu2s2vfogobziljnwsclmlm +- valory/abstract_abci:0.1.0:bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu +- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti +- valory/liquidity_trader_abci:0.1.0:bafybeifcfxijpk7ry6or7zxwhfztzn4puyhfbh7m5mxcu2xiucdgotqkji +- valory/optimus_abci:0.1.0:bafybeih25ioiouuyhyva4djaiewa3ia27ila5ohahexs3oegreltkxolb4 +- valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq +- valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e +- valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy +- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy default_ledger: ethereum required_ledgers: - ethereum diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 93b91ce..901472c 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeid2tv3uwndec4qmfjdqyq7pnvt7kkxvzwlqyiy47nii6wrxiytooe +agent: valory/optimus:0.1.0:bafybeidaqh3dc3phcfkt7ny7qvtaa33lk3xbnnodbculyd3il6rkmibvim number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 5eac29c..4d24abe 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -22,7 +22,7 @@ fingerprint: fingerprint_ignore_patterns: [] connections: [] contracts: -- valory/gnosis_safe:0.1.0:bafybeib375xmvcplw7ageic2np3hq4yqeijrvd5kl7rrdnyvswats6ngmm +- valory/gnosis_safe:0.1.0:bafybeiaw4yr7ubqlp63iz5wxqep3a5fokqs3kqva7sp2nsqg355zzucqgm - valory/balancer_weighted_pool:0.1.0:bafybeigqt5fofqh4jakrty5xkyap5jkuv4ib7oeyxprksb7xf4dqivxpcq - valory/balancer_vault:0.1.0:bafybeib3gxzp73qpfenwei4w4lridam2sdnzwszwyjc6bn342d7tuwrttu - valory/erc20:0.1.0:bafybeiemh4warjroyqwkuaso3jwfjfvobyuydj5xyppi7cepo7wtu5ab64 @@ -36,8 +36,8 @@ protocols: - valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni skills: -- valory/abstract_round_abci:0.1.0:bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm -- valory/transaction_settlement_abci:0.1.0:bafybeielv6eivt2z6nforq43xewl2vmpfwpdu2s2vfogobziljnwsclmlm +- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti +- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy behaviours: main: args: {} diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 64d6bff..5d2d862 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -18,12 +18,12 @@ connections: [] contracts: [] protocols: [] skills: -- valory/abstract_round_abci:0.1.0:bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm -- valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey -- valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq -- valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi -- valory/liquidity_trader_abci:0.1.0:bafybeid6i25tn6xnpf2qljm2cr26tsqxlfrdgiyt4m3qpjpu25t77fgbmq -- valory/transaction_settlement_abci:0.1.0:bafybeielv6eivt2z6nforq43xewl2vmpfwpdu2s2vfogobziljnwsclmlm +- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti +- valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq +- valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e +- valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy +- valory/liquidity_trader_abci:0.1.0:bafybeifcfxijpk7ry6or7zxwhfztzn4puyhfbh7m5mxcu2xiucdgotqkji +- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy behaviours: main: args: {} From 2eade8dab11091fe624c31cfd6adef0921102266 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Tue, 5 Nov 2024 12:47:32 +0530 Subject: [PATCH 14/52] fix: add allowed chains in service config --- packages/packages.json | 2 +- packages/valory/services/optimus/service.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/packages.json b/packages/packages.json index bd345ce..7de83ce 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,7 +11,7 @@ "skill/valory/liquidity_trader_abci/0.1.0": "bafybeifcfxijpk7ry6or7zxwhfztzn4puyhfbh7m5mxcu2xiucdgotqkji", "skill/valory/optimus_abci/0.1.0": "bafybeih25ioiouuyhyva4djaiewa3ia27ila5ohahexs3oegreltkxolb4", "agent/valory/optimus/0.1.0": "bafybeidaqh3dc3phcfkt7ny7qvtaa33lk3xbnnodbculyd3il6rkmibvim", - "service/valory/optimus/0.1.0": "bafybeicyi4htfakt6tkuxxyb3frj3jbecptkfkb4cuzh5iwpyns722gooa" + "service/valory/optimus/0.1.0": "bafybeidwkzv7pylpstbrhwtlbwrxs3svumwfagxhp2eb7qqq6py6wbtrou" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 901472c..cb13bda 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -82,6 +82,7 @@ models: max_fee_percentage: ${MAX_FEE_PERCENTAGE:float:0.02} max_gas_percentage: ${MAX_GAS_PERCENTAGE:float:0.25} balancer_graphql_endpoints: ${BALANCER_GRAPHQL_ENDPOINTS:str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} + allowed_chains: ${ALLOWED_CHAINS:list:["base","optimism","mode"]} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} From b13251c9d1b668c4ee4ca8bd095f7f44b7307dc6 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Tue, 5 Nov 2024 16:31:40 +0530 Subject: [PATCH 15/52] fix: add params --- packages/packages.json | 8 ++--- .../valory/agents/optimus/aea-config.yaml | 6 ++-- packages/valory/services/optimus/service.yaml | 4 ++- .../liquidity_trader_abci/behaviours.py | 31 +++++++++---------- .../skills/liquidity_trader_abci/models.py | 4 +++ .../skills/liquidity_trader_abci/skill.yaml | 9 ++++-- .../valory/skills/optimus_abci/skill.yaml | 7 ++++- 7 files changed, 43 insertions(+), 26 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 7de83ce..e3927bd 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm", "contract/valory/staking_token/0.1.0": "bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y", "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeifcfxijpk7ry6or7zxwhfztzn4puyhfbh7m5mxcu2xiucdgotqkji", - "skill/valory/optimus_abci/0.1.0": "bafybeih25ioiouuyhyva4djaiewa3ia27ila5ohahexs3oegreltkxolb4", - "agent/valory/optimus/0.1.0": "bafybeidaqh3dc3phcfkt7ny7qvtaa33lk3xbnnodbculyd3il6rkmibvim", - "service/valory/optimus/0.1.0": "bafybeidwkzv7pylpstbrhwtlbwrxs3svumwfagxhp2eb7qqq6py6wbtrou" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiawabx5dukbxjdcwdglln2km4kv6evfq2gxug2o26w5iue2bagok4", + "skill/valory/optimus_abci/0.1.0": "bafybeih7qfkmjyge7tnhiuaj5hhi2xipirkcr5xqmtcxt7ownzqjxvrpq4", + "agent/valory/optimus/0.1.0": "bafybeihxsj7gt6eqmritqkfpc4ddylcqi6qvxumjwbxwitowiy7b3x2i24", + "service/valory/optimus/0.1.0": "bafybeiathc6kfimiro4qt4oldnfdrkxjeznudqlygvitfaoekgxnxx4nna" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index bcea0de..f321f03 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu - valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti -- valory/liquidity_trader_abci:0.1.0:bafybeifcfxijpk7ry6or7zxwhfztzn4puyhfbh7m5mxcu2xiucdgotqkji -- valory/optimus_abci:0.1.0:bafybeih25ioiouuyhyva4djaiewa3ia27ila5ohahexs3oegreltkxolb4 +- valory/liquidity_trader_abci:0.1.0:bafybeiawabx5dukbxjdcwdglln2km4kv6evfq2gxug2o26w5iue2bagok4 +- valory/optimus_abci:0.1.0:bafybeih7qfkmjyge7tnhiuaj5hhi2xipirkcr5xqmtcxt7ownzqjxvrpq4 - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy @@ -250,3 +250,5 @@ models: max_fee_percentage: ${float:0.02} max_gas_percentage: ${float:0.25} balancer_graphql_endpoints: ${str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} + target_investment_chains: ${list:["optimism","base","mode"]} + staking_chain: ${str:"optimism"} diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index cb13bda..21ec0d2 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeidaqh3dc3phcfkt7ny7qvtaa33lk3xbnnodbculyd3il6rkmibvim +agent: valory/optimus:0.1.0:bafybeihxsj7gt6eqmritqkfpc4ddylcqi6qvxumjwbxwitowiy7b3x2i24 number_of_agents: 1 deployment: {} --- @@ -83,6 +83,8 @@ models: max_gas_percentage: ${MAX_GAS_PERCENTAGE:float:0.25} balancer_graphql_endpoints: ${BALANCER_GRAPHQL_ENDPOINTS:str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} allowed_chains: ${ALLOWED_CHAINS:list:["base","optimism","mode"]} + target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} + staking_chain: ${STAKING_CHAIN:str:optimism} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index aa9e1c0..34f0751 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -113,7 +113,6 @@ MAX_RETRIES_FOR_ROUTES = 3 HTTP_OK = [200, 201] UTF8 = "utf-8" -STAKING_CHAIN = "optimism" CAMPAIGN_TYPES = [1, 2] INTEGRATOR = "valory" WAITING_PERIOD_FOR_BALANCE_TO_REFLECT = 5 @@ -458,7 +457,7 @@ def _calculate_min_num_of_safe_tx_required( self.round_sequence.last_round_transition_timestamp.timestamp() ) - last_ts_checkpoint = yield from self._get_ts_checkpoint(chain=STAKING_CHAIN) + last_ts_checkpoint = yield from self._get_ts_checkpoint(chain=self.params.staking_chain) if last_ts_checkpoint is None: return None @@ -545,8 +544,8 @@ def _is_staking_kpi_met(self) -> Generator[None, None, Optional[bool]]: multisig_nonces_since_last_cp = ( yield from self._get_multisig_nonces_since_last_cp( - chain=STAKING_CHAIN, - multisig=self.params.safe_contract_addresses.get(STAKING_CHAIN), + chain=self.params.staking_chain, + multisig=self.params.safe_contract_addresses.get(self.params.staking_chain), ) ) if multisig_nonces_since_last_cp is None: @@ -665,7 +664,7 @@ def async_act(self) -> Generator: if self.service_staking_state == StakingState.STAKED: min_num_of_safe_tx_required = ( yield from self._calculate_min_num_of_safe_tx_required( - chain=STAKING_CHAIN + chain=self.params.staking_chain ) ) if min_num_of_safe_tx_required is None: @@ -677,14 +676,14 @@ def async_act(self) -> Generator: f"The minimum number of safe tx required to unlock rewards are {min_num_of_safe_tx_required}" ) is_checkpoint_reached = yield from self._check_if_checkpoint_reached( - chain=STAKING_CHAIN + chain=self.params.staking_chain ) if is_checkpoint_reached: self.context.logger.info( "Checkpoint reached! Preparing checkpoint tx.." ) checkpoint_tx_hex = yield from self._prepare_checkpoint_tx( - chain=STAKING_CHAIN + chain=self.params.staking_chain ) elif self.service_staking_state == StakingState.EVICTED: self.context.logger.error("Service has been evicted!") @@ -697,8 +696,8 @@ def async_act(self) -> Generator: self.context.agent_address, tx_submitter, checkpoint_tx_hex, - self.params.safe_contract_addresses.get(STAKING_CHAIN), - STAKING_CHAIN, + self.params.safe_contract_addresses.get(self.params.staking_chain), + self.params.staking_chain, self.service_staking_state.value, min_num_of_safe_tx_required, ) @@ -797,9 +796,9 @@ def async_act(self) -> Generator: ) multisig_nonces_since_last_cp = ( yield from self._get_multisig_nonces_since_last_cp( - chain=STAKING_CHAIN, + chain=self.params.staking_chain, multisig=self.params.safe_contract_addresses.get( - STAKING_CHAIN + self.params.staking_chain ), ) ) @@ -816,7 +815,7 @@ def async_act(self) -> Generator: ) self.context.logger.info("Preparing vanity tx..") vanity_tx_hex = yield from self._prepare_vanity_tx( - chain=STAKING_CHAIN + chain=self.params.staking_chain ) self.context.logger.info(f"tx hash: {vanity_tx_hex}") @@ -825,8 +824,8 @@ def async_act(self) -> Generator: self.context.agent_address, tx_submitter, vanity_tx_hex, - self.params.safe_contract_addresses.get(STAKING_CHAIN), - STAKING_CHAIN, + self.params.safe_contract_addresses.get(self.params.staking_chain), + self.params.staking_chain, is_staking_kpi_met, ) @@ -951,7 +950,7 @@ def _fetch_all_pools(self) -> Generator[None, None, Optional[Dict[str, Any]]]: """Fetch all pools based on allowed chains.""" chain_ids = ",".join( str(self.params.chain_to_chain_id_mapping[chain]) - for chain in self.params.allowed_chains + for chain in self.params.target_investment_chains ) base_url = self.params.merkl_fetch_campaigns_args.get("url") creator = self.params.merkl_fetch_campaigns_args.get("creator") @@ -1255,7 +1254,7 @@ def get_order_of_transactions( if self._can_claim_rewards(): # check current reward - allowed_chains = self.params.allowed_chains + allowed_chains = self.params.target_investment_chains # we can claim all our token rewards at once # hence we build only one action per chain for chain in allowed_chains: diff --git a/packages/valory/skills/liquidity_trader_abci/models.py b/packages/valory/skills/liquidity_trader_abci/models.py index 06369e2..695cb8a 100644 --- a/packages/valory/skills/liquidity_trader_abci/models.py +++ b/packages/valory/skills/liquidity_trader_abci/models.py @@ -256,6 +256,10 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: self.balancer_graphql_endpoints = json.loads( self._ensure("balancer_graphql_endpoints", kwargs, str) ) + self.target_investment_chains: List[str] = self._ensure( + "target_investment_chains", kwargs, List[str] + ) + self.staking_chain = self._ensure("staking_chain", kwargs, str) super().__init__(*args, **kwargs) def get_store_path(self, kwargs: Dict) -> Path: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 4d24abe..3552cdc 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,11 +7,11 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeifnfyaa2jrvghprbhuscyacokcqglhqchtlq6grmvlr7xtvs7gnfu + behaviours.py: bafybeifa7le6ygiksyi6gcl72tezrfg4wqhjsesh4lv3dt6kg6ixpa22rm dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 - models.py: bafybeiatxcqswxjhipmubqwawqzncr7kckj4gwzawh7bp4rigepy4wirgy + models.py: bafybeibxenjsdjhcxdvvc4lhdggo77zpufewauqqhaztp3lqfoo6uyyfya payloads.py: bafybeihi42vbsr2xyhzsp55tl6mqecqyy52jrhwjfw4trvrjlhfxuyaz3u pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u @@ -188,6 +188,11 @@ models: max_fee_percentage: 0.02 max_gas_percentage: 0.1 balancer_graphql_endpoints: '{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}' + target_investment_chains: + - base + - optimism + - mode + staking_chain: optimism class_name: Params coingecko: args: diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 5d2d862..a682de8 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy -- valory/liquidity_trader_abci:0.1.0:bafybeifcfxijpk7ry6or7zxwhfztzn4puyhfbh7m5mxcu2xiucdgotqkji +- valory/liquidity_trader_abci:0.1.0:bafybeiawabx5dukbxjdcwdglln2km4kv6evfq2gxug2o26w5iue2bagok4 - valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy behaviours: main: @@ -178,6 +178,11 @@ models: max_gas_percentage: 0.1 merkl_fetch_campaigns_args: '{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"true"}' balancer_graphql_endpoints: '{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}' + target_investment_chains: + - base + - optimism + - mode + staking_chain: optimism class_name: Params coingecko: args: From e0fde34f2456a690e5ddf363da6450c6beef5d8e Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 6 Nov 2024 18:33:29 +0530 Subject: [PATCH 16/52] fix: add checks for step transaction data --- .../skills/liquidity_trader_abci/behaviours.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 34f0751..7b0b344 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -2040,9 +2040,15 @@ def _execute_route_step( routes[to_execute_route_index] ) if not is_profitable: - self.context.logger.error( - "Route not profitable. Switching to next route.." - ) + if is_profitable is None: + self.context.logger.error( + "Error calculating profitability of route. Switching to next route.." + ) + if is_profitable is False: + self.context.logger.error( + "Route not profitable. Switching to next route.." + ) + return Event.UPDATE.value, { "last_executed_route_index": to_execute_route_index, "last_executed_step_index": None, @@ -2592,6 +2598,9 @@ def check_if_route_is_profitable( ) -> Generator[None, None, Tuple[Optional[bool], Optional[float], Optional[float]]]: """Checks if the entire route is profitable""" step_transactions = yield from self._get_step_transactions_data(route) + if not step_transactions: + return None, None, None + total_gas_cost = 0 total_fee = 0 total_fee += sum(float(tx_info.get("fee", 0)) for tx_info in step_transactions) @@ -2762,6 +2771,9 @@ def _get_step_transactions_data( for step in steps: step = self._set_step_addresses(step) tx_info = yield from self._get_step_transaction(step) + if tx_info is None: + self.context.logger.error("Error fetching step transaction data") + return None step_transactions.append(tx_info) return step_transactions From 0db5ffd124dcbd424fe4738bcf4bec349d557cac Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 6 Nov 2024 18:34:21 +0530 Subject: [PATCH 17/52] fix: update packages hash --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- packages/valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index e3927bd..c2f3f58 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm", "contract/valory/staking_token/0.1.0": "bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y", "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiawabx5dukbxjdcwdglln2km4kv6evfq2gxug2o26w5iue2bagok4", - "skill/valory/optimus_abci/0.1.0": "bafybeih7qfkmjyge7tnhiuaj5hhi2xipirkcr5xqmtcxt7ownzqjxvrpq4", - "agent/valory/optimus/0.1.0": "bafybeihxsj7gt6eqmritqkfpc4ddylcqi6qvxumjwbxwitowiy7b3x2i24", - "service/valory/optimus/0.1.0": "bafybeiathc6kfimiro4qt4oldnfdrkxjeznudqlygvitfaoekgxnxx4nna" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeig2ab4tazrstrwpwt5ifoj6mda6rl76oiz35sszzmb565hurwpmz4", + "skill/valory/optimus_abci/0.1.0": "bafybeigfaq4lg2nv33xmx2xibxxf2t7ywd3rpbs7rhe6x4kkagqnz2jbfu", + "agent/valory/optimus/0.1.0": "bafybeidq73eu32frriil4p2a4w36xuaynjcu57j2cgxt6fxabt4u2lsnk4", + "service/valory/optimus/0.1.0": "bafybeihxoafmwupgzdbxhbcnftqh5wdjmntygb6eqymajyvfqmh6amx66a" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index f321f03..90fc5ee 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu - valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti -- valory/liquidity_trader_abci:0.1.0:bafybeiawabx5dukbxjdcwdglln2km4kv6evfq2gxug2o26w5iue2bagok4 -- valory/optimus_abci:0.1.0:bafybeih7qfkmjyge7tnhiuaj5hhi2xipirkcr5xqmtcxt7ownzqjxvrpq4 +- valory/liquidity_trader_abci:0.1.0:bafybeig2ab4tazrstrwpwt5ifoj6mda6rl76oiz35sszzmb565hurwpmz4 +- valory/optimus_abci:0.1.0:bafybeigfaq4lg2nv33xmx2xibxxf2t7ywd3rpbs7rhe6x4kkagqnz2jbfu - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 21ec0d2..5b46172 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeihxsj7gt6eqmritqkfpc4ddylcqi6qvxumjwbxwitowiy7b3x2i24 +agent: valory/optimus:0.1.0:bafybeidq73eu32frriil4p2a4w36xuaynjcu57j2cgxt6fxabt4u2lsnk4 number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 3552cdc..74d30b1 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeifa7le6ygiksyi6gcl72tezrfg4wqhjsesh4lv3dt6kg6ixpa22rm + behaviours.py: bafybeihyg23z4wu6yjkdef2xqd7ai2kneo6uqlqflc2dqewbn3drhoni2u dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index a682de8..8cc7fa2 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy -- valory/liquidity_trader_abci:0.1.0:bafybeiawabx5dukbxjdcwdglln2km4kv6evfq2gxug2o26w5iue2bagok4 +- valory/liquidity_trader_abci:0.1.0:bafybeig2ab4tazrstrwpwt5ifoj6mda6rl76oiz35sszzmb565hurwpmz4 - valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy behaviours: main: From c64d592e1782e0ef0e569a2701a0ac952b7a3519 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 6 Nov 2024 19:36:43 +0530 Subject: [PATCH 18/52] fix: add checks for routes --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- .../skills/liquidity_trader_abci/behaviours.py | 12 ++++++++---- .../valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index c2f3f58..e522b1a 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm", "contract/valory/staking_token/0.1.0": "bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y", "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeig2ab4tazrstrwpwt5ifoj6mda6rl76oiz35sszzmb565hurwpmz4", - "skill/valory/optimus_abci/0.1.0": "bafybeigfaq4lg2nv33xmx2xibxxf2t7ywd3rpbs7rhe6x4kkagqnz2jbfu", - "agent/valory/optimus/0.1.0": "bafybeidq73eu32frriil4p2a4w36xuaynjcu57j2cgxt6fxabt4u2lsnk4", - "service/valory/optimus/0.1.0": "bafybeihxoafmwupgzdbxhbcnftqh5wdjmntygb6eqymajyvfqmh6amx66a" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiamfv43qnnjifr7govh7sf7qntmqxcweysmwevd6fyhdxqk5qfpxq", + "skill/valory/optimus_abci/0.1.0": "bafybeihdmvky4hwbqb4ujejaitz77bg6qlwqln77n2uzzthaifzfgsc7ye", + "agent/valory/optimus/0.1.0": "bafybeig346cfrzpw7soodg7zlylj7y3zbimhbb7xbk5vuygsymmjydek6i", + "service/valory/optimus/0.1.0": "bafybeihktlp33naaqb6nnltydkfsb4yon6c7wct2r6fleh6nxmgokxolgm" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 90fc5ee..1ac1a41 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu - valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti -- valory/liquidity_trader_abci:0.1.0:bafybeig2ab4tazrstrwpwt5ifoj6mda6rl76oiz35sszzmb565hurwpmz4 -- valory/optimus_abci:0.1.0:bafybeigfaq4lg2nv33xmx2xibxxf2t7ywd3rpbs7rhe6x4kkagqnz2jbfu +- valory/liquidity_trader_abci:0.1.0:bafybeiamfv43qnnjifr7govh7sf7qntmqxcweysmwevd6fyhdxqk5qfpxq +- valory/optimus_abci:0.1.0:bafybeihdmvky4hwbqb4ujejaitz77bg6qlwqln77n2uzzthaifzfgsc7ye - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 5b46172..71cc935 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeidq73eu32frriil4p2a4w36xuaynjcu57j2cgxt6fxabt4u2lsnk4 +agent: valory/optimus:0.1.0:bafybeig346cfrzpw7soodg7zlylj7y3zbimhbb7xbk5vuygsymmjydek6i number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 7b0b344..3179047 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -2154,6 +2154,10 @@ def _prepare_next_action( elif next_action == Action.FIND_BRIDGE_ROUTE: routes = yield from self.fetch_routes(positions, next_action_details) + if not routes: + self.context.logger.error("Error fetching routes") + return Event.DONE.value, {} + if self.synchronized_data.max_allowed_steps_in_a_route: routes = [ route @@ -2161,11 +2165,11 @@ def _prepare_next_action( if len(route.get("steps", [])) <= self.synchronized_data.max_allowed_steps_in_a_route ] - + if not routes: + self.context.logger.error(f"Needed routes with equal to or less than {self.synchronized_data.max_allowed_steps_in_a_route} steps, none found!") + return Event.DONE.value, {} + serialized_routes = json.dumps(routes) - if not routes: - self.context.logger.error("Error fetching routes") - return Event.DONE.value, {} return Event.UPDATE.value, { "routes": serialized_routes, diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 74d30b1..a9d0c0e 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeihyg23z4wu6yjkdef2xqd7ai2kneo6uqlqflc2dqewbn3drhoni2u + behaviours.py: bafybeig3xzbg5kcl27yz4efssmsrqr7jhd6hlnkt2e6hpx5swphkjfpxim dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 8cc7fa2..b99da30 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy -- valory/liquidity_trader_abci:0.1.0:bafybeig2ab4tazrstrwpwt5ifoj6mda6rl76oiz35sszzmb565hurwpmz4 +- valory/liquidity_trader_abci:0.1.0:bafybeiamfv43qnnjifr7govh7sf7qntmqxcweysmwevd6fyhdxqk5qfpxq - valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy behaviours: main: From 7f301d6c1f689c7a6961089134272e07bc8b1854 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 6 Nov 2024 21:32:53 +0530 Subject: [PATCH 19/52] fix: add default priority fee --- packages/packages.json | 4 ++-- packages/valory/agents/optimus/aea-config.yaml | 1 + packages/valory/services/optimus/service.yaml | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index e522b1a..037fc9a 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -10,8 +10,8 @@ "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiamfv43qnnjifr7govh7sf7qntmqxcweysmwevd6fyhdxqk5qfpxq", "skill/valory/optimus_abci/0.1.0": "bafybeihdmvky4hwbqb4ujejaitz77bg6qlwqln77n2uzzthaifzfgsc7ye", - "agent/valory/optimus/0.1.0": "bafybeig346cfrzpw7soodg7zlylj7y3zbimhbb7xbk5vuygsymmjydek6i", - "service/valory/optimus/0.1.0": "bafybeihktlp33naaqb6nnltydkfsb4yon6c7wct2r6fleh6nxmgokxolgm" + "agent/valory/optimus/0.1.0": "bafybeievfj455motcwbazndaxgeynuzy5vvtaiulhk2ot6376aspfpjcfu", + "service/valory/optimus/0.1.0": "bafybeidrj3yzsk6dguxyancjau6q7pn6qaehvcymy2yclkelrb6nsdg6xm" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 1ac1a41..4b7e50b 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -110,6 +110,7 @@ config: gas_price_strategies: eip1559: fee_history_percentile: 50 + default_priority_fee: 2000000 --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 71cc935..b3e8af2 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeig346cfrzpw7soodg7zlylj7y3zbimhbb7xbk5vuygsymmjydek6i +agent: valory/optimus:0.1.0:bafybeievfj455motcwbazndaxgeynuzy5vvtaiulhk2ot6376aspfpjcfu number_of_agents: 1 deployment: {} --- @@ -122,6 +122,7 @@ config: gas_price_strategies: eip1559: fee_history_percentile: ${FEE_HISTORY_PERCENTILE:50} + default_priority_fee: ${DEFAULT_PRIORITY_FEE:2000000} --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection From 7482356a7df9b730bf3c924b87f39ffff329a4a1 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Tue, 12 Nov 2024 15:11:24 +0530 Subject: [PATCH 20/52] fix: use staking chain --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- .../valory/skills/liquidity_trader_abci/behaviours.py | 2 +- packages/valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 037fc9a..9545f11 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm", "contract/valory/staking_token/0.1.0": "bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y", "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiamfv43qnnjifr7govh7sf7qntmqxcweysmwevd6fyhdxqk5qfpxq", - "skill/valory/optimus_abci/0.1.0": "bafybeihdmvky4hwbqb4ujejaitz77bg6qlwqln77n2uzzthaifzfgsc7ye", - "agent/valory/optimus/0.1.0": "bafybeievfj455motcwbazndaxgeynuzy5vvtaiulhk2ot6376aspfpjcfu", - "service/valory/optimus/0.1.0": "bafybeidrj3yzsk6dguxyancjau6q7pn6qaehvcymy2yclkelrb6nsdg6xm" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicb6toml75gguui47wj2n7kgjqjvhn3sftwpspnysddnzdt5fsqzi", + "skill/valory/optimus_abci/0.1.0": "bafybeibkc5yh7xcps5ft7trtu56whlr2ixosh54wdo365nydxqvjwyngqa", + "agent/valory/optimus/0.1.0": "bafybeifuvn2jecplrpysaxpuipqck2xtdtdra6h6wip2g4vh4szzvb7esy", + "service/valory/optimus/0.1.0": "bafybeiaw3yy65ktsp5cg37d7mzci26akperpyvoreozwgyalvmntflo4ym" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 4b7e50b..0ffb24d 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu - valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti -- valory/liquidity_trader_abci:0.1.0:bafybeiamfv43qnnjifr7govh7sf7qntmqxcweysmwevd6fyhdxqk5qfpxq -- valory/optimus_abci:0.1.0:bafybeihdmvky4hwbqb4ujejaitz77bg6qlwqln77n2uzzthaifzfgsc7ye +- valory/liquidity_trader_abci:0.1.0:bafybeicb6toml75gguui47wj2n7kgjqjvhn3sftwpspnysddnzdt5fsqzi +- valory/optimus_abci:0.1.0:bafybeibkc5yh7xcps5ft7trtu56whlr2ixosh54wdo365nydxqvjwyngqa - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index b3e8af2..01fc798 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeievfj455motcwbazndaxgeynuzy5vvtaiulhk2ot6376aspfpjcfu +agent: valory/optimus:0.1.0:bafybeifuvn2jecplrpysaxpuipqck2xtdtdra6h6wip2g4vh4szzvb7esy number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 3179047..255c08f 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -658,7 +658,7 @@ class CallCheckpointBehaviour( def async_act(self) -> Generator: """Do the action.""" with self.context.benchmark_tool.measure(self.behaviour_id).local(): - yield from self._get_service_staking_state(chain="optimism") + yield from self._get_service_staking_state(chain=self.params.staking_chain) checkpoint_tx_hex = None min_num_of_safe_tx_required = None if self.service_staking_state == StakingState.STAKED: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index a9d0c0e..6b25708 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeig3xzbg5kcl27yz4efssmsrqr7jhd6hlnkt2e6hpx5swphkjfpxim + behaviours.py: bafybeihhyerpefhizbnffzsxxlht7hzp5jpgkncixdkvdhuwqhkufgs7ty dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index b99da30..f0ac8dc 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy -- valory/liquidity_trader_abci:0.1.0:bafybeiamfv43qnnjifr7govh7sf7qntmqxcweysmwevd6fyhdxqk5qfpxq +- valory/liquidity_trader_abci:0.1.0:bafybeicb6toml75gguui47wj2n7kgjqjvhn3sftwpspnysddnzdt5fsqzi - valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy behaviours: main: From c564613a3e3f364981f42f88b375834261a8a1ed Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Tue, 12 Nov 2024 17:17:52 +0530 Subject: [PATCH 21/52] fix: add initial assets param --- packages/packages.json | 2 +- packages/valory/services/optimus/service.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/packages.json b/packages/packages.json index 9545f11..6827a76 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,7 +11,7 @@ "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicb6toml75gguui47wj2n7kgjqjvhn3sftwpspnysddnzdt5fsqzi", "skill/valory/optimus_abci/0.1.0": "bafybeibkc5yh7xcps5ft7trtu56whlr2ixosh54wdo365nydxqvjwyngqa", "agent/valory/optimus/0.1.0": "bafybeifuvn2jecplrpysaxpuipqck2xtdtdra6h6wip2g4vh4szzvb7esy", - "service/valory/optimus/0.1.0": "bafybeiaw3yy65ktsp5cg37d7mzci26akperpyvoreozwgyalvmntflo4ym" + "service/valory/optimus/0.1.0": "bafybeihavnvrek6q33gvvdqd5zgnfpjlqp3tncs6bn4ma22njryoi2aod4" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 01fc798..93b8a90 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -85,6 +85,7 @@ models: allowed_chains: ${ALLOWED_CHAINS:list:["base","optimism","mode"]} target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:optimism} + initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} From 9cd63f5921c4cb13cc466ed9bab6a2ad8963e422 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 15 Nov 2024 17:46:53 +0530 Subject: [PATCH 22/52] fix: add check for staking chain --- packages/packages.json | 8 +-- .../valory/agents/optimus/aea-config.yaml | 4 +- packages/valory/services/optimus/service.yaml | 2 +- .../liquidity_trader_abci/behaviours.py | 60 +++++++++++-------- .../skills/liquidity_trader_abci/skill.yaml | 6 +- .../valory/skills/optimus_abci/skill.yaml | 6 +- 6 files changed, 47 insertions(+), 39 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 6827a76..c55b3bd 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm", "contract/valory/staking_token/0.1.0": "bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y", "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicb6toml75gguui47wj2n7kgjqjvhn3sftwpspnysddnzdt5fsqzi", - "skill/valory/optimus_abci/0.1.0": "bafybeibkc5yh7xcps5ft7trtu56whlr2ixosh54wdo365nydxqvjwyngqa", - "agent/valory/optimus/0.1.0": "bafybeifuvn2jecplrpysaxpuipqck2xtdtdra6h6wip2g4vh4szzvb7esy", - "service/valory/optimus/0.1.0": "bafybeihavnvrek6q33gvvdqd5zgnfpjlqp3tncs6bn4ma22njryoi2aod4" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeibvmoashunw42tego4cwwzbe7cqre5lpguhnegvlyz3glp4tv76mi", + "skill/valory/optimus_abci/0.1.0": "bafybeighljlwcdaa4x3rrfstchqkubs6wmvzosgthsql2bl7jrl6obnqxq", + "agent/valory/optimus/0.1.0": "bafybeig44ax7twbvzd2bbl56uju472xtj36e6mlzpc6vryuqynrrhlxmeu", + "service/valory/optimus/0.1.0": "bafybeiepzxit2bfcgqfr4xm64ykcc4id4pjmg5colqwryv342wdmcqsxrm" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 0ffb24d..5e4ecb5 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu - valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti -- valory/liquidity_trader_abci:0.1.0:bafybeicb6toml75gguui47wj2n7kgjqjvhn3sftwpspnysddnzdt5fsqzi -- valory/optimus_abci:0.1.0:bafybeibkc5yh7xcps5ft7trtu56whlr2ixosh54wdo365nydxqvjwyngqa +- valory/liquidity_trader_abci:0.1.0:bafybeibvmoashunw42tego4cwwzbe7cqre5lpguhnegvlyz3glp4tv76mi +- valory/optimus_abci:0.1.0:bafybeighljlwcdaa4x3rrfstchqkubs6wmvzosgthsql2bl7jrl6obnqxq - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 93b8a90..0565887 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeifuvn2jecplrpysaxpuipqck2xtdtdra6h6wip2g4vh4szzvb7esy +agent: valory/optimus:0.1.0:bafybeig44ax7twbvzd2bbl56uju472xtj36e6mlzpc6vryuqynrrhlxmeu number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 255c08f..84a3c4a 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -658,38 +658,47 @@ class CallCheckpointBehaviour( def async_act(self) -> Generator: """Do the action.""" with self.context.benchmark_tool.measure(self.behaviour_id).local(): - yield from self._get_service_staking_state(chain=self.params.staking_chain) checkpoint_tx_hex = None min_num_of_safe_tx_required = None - if self.service_staking_state == StakingState.STAKED: - min_num_of_safe_tx_required = ( - yield from self._calculate_min_num_of_safe_tx_required( - chain=self.params.staking_chain - ) - ) - if min_num_of_safe_tx_required is None: - self.context.logger.error( - "Error calculating min number of safe tx required." - ) - else: - self.context.logger.info( - f"The minimum number of safe tx required to unlock rewards are {min_num_of_safe_tx_required}" - ) - is_checkpoint_reached = yield from self._check_if_checkpoint_reached( + + if not self.params.staking_chain: + self.context.logger.warning("Service has not been staked on any chain!") + self.service_staking_state = StakingState.UNSTAKED + else: + yield from self._get_service_staking_state( chain=self.params.staking_chain ) - if is_checkpoint_reached: - self.context.logger.info( - "Checkpoint reached! Preparing checkpoint tx.." + if self.service_staking_state == StakingState.STAKED: + min_num_of_safe_tx_required = ( + yield from self._calculate_min_num_of_safe_tx_required( + chain=self.params.staking_chain + ) ) - checkpoint_tx_hex = yield from self._prepare_checkpoint_tx( - chain=self.params.staking_chain + if min_num_of_safe_tx_required is None: + self.context.logger.error( + "Error calculating min number of safe tx required." + ) + else: + self.context.logger.info( + f"The minimum number of safe tx required to unlock rewards are {min_num_of_safe_tx_required}" + ) + is_checkpoint_reached = ( + yield from self._check_if_checkpoint_reached( + chain=self.params.staking_chain + ) ) - elif self.service_staking_state == StakingState.EVICTED: - self.context.logger.error("Service has been evicted!") + if is_checkpoint_reached: + self.context.logger.info( + "Checkpoint reached! Preparing checkpoint tx.." + ) + checkpoint_tx_hex = yield from self._prepare_checkpoint_tx( + chain=self.params.staking_chain + ) + elif self.service_staking_state == StakingState.EVICTED: + self.context.logger.error("Service has been evicted!") - else: - self.context.logger.error("Service has not been staked") + else: + self.context.logger.error("Service has not been staked") tx_submitter = self.matching_round.auto_round_id() payload = CallCheckpointPayload( @@ -767,7 +776,6 @@ def _prepare_safe_tx( data=data, ) - class CheckStakingKPIMetBehaviour(LiquidityTraderBaseBehaviour): """Behaviour that checks if the staking KPI has been met and makes vanity transactions if necessary.""" diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 6b25708..c46faa7 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,16 +7,16 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeihhyerpefhizbnffzsxxlht7hzp5jpgkncixdkvdhuwqhkufgs7ty + behaviours.py: bafybeieu5kw3jht6ifben3mgmponjphfcpyjvkrl7zq3hc7oy5cvf6cq64 dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 models.py: bafybeibxenjsdjhcxdvvc4lhdggo77zpufewauqqhaztp3lqfoo6uyyfya - payloads.py: bafybeihi42vbsr2xyhzsp55tl6mqecqyy52jrhwjfw4trvrjlhfxuyaz3u + payloads.py: bafybeibozjbr4sxafd6aizge3hb5vn6gowdcszsdzbhwzzcbg6gmpy4pki pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u pools/uniswap.py: bafybeigmqptgmjaxscszohfusgxsexqyx4awuyw7p4g5l7k2qpeyq7vdcu - rounds.py: bafybeibgilm4ld2bvopruehepfcjn4xse7be62tszt74begusmpzrk2thu + rounds.py: bafybeicszrxtyssvycgradsylxbjpkgdngjnac6nopv2sd7xvklxefpjgu strategies/simple_strategy.py: bafybeiasu2nchowx6leksjllpuum4ckezxoj4o2m4sstavblplvvutmvzm strategy_behaviour.py: bafybeidk6sorg47kuuubamcccksi65x3txldyo7y2hm5opbye2ghmz2ljy fingerprint_ignore_patterns: [] diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index f0ac8dc..a81c805 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -11,8 +11,8 @@ fingerprint: composition.py: bafybeigxpycqh7xnqwdj5eg2ln6kqchbwvwuvzjtpwhgylr6qb56ooo7wu dialogues.py: bafybeiafoomno5pn6qrx43jxf2opxkil5eg4nod6jhd5oqwwplfz4x6dke fsm_specification.yaml: bafybeiehe6ps7xi7i7tu4mduid7vbvszhsiu5juyard24i3nhtqgljpcza - handlers.py: bafybeife4nrwqiwrx2ucza3vk6t5inpkncuewehtdnitax4lmqq2ptoona - models.py: bafybeibxpw4zmigtel3emgbz2jz6xgsfx7eavxvhqrqftwcsul6lwcpjou + handlers.py: bafybeih2mtdrorwy3csi73wcwpxiqznvmxqe2qfixkq75g5qlbxzvybmja + models.py: bafybeig7ytwxlfuhmwhksasidyoq6xeb3fb6vyihdbf5cmc4g7l73etq5e fingerprint_ignore_patterns: [] connections: [] contracts: [] @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq - valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e - valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy -- valory/liquidity_trader_abci:0.1.0:bafybeicb6toml75gguui47wj2n7kgjqjvhn3sftwpspnysddnzdt5fsqzi +- valory/liquidity_trader_abci:0.1.0:bafybeibvmoashunw42tego4cwwzbe7cqre5lpguhnegvlyz3glp4tv76mi - valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy behaviours: main: From 81b1807cc0944006c7d34bdddc781c3400f0452f Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Tue, 19 Nov 2024 17:17:56 +0530 Subject: [PATCH 23/52] fix: update user-oriented messages --- .../skills/liquidity_trader_abci/behaviours.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 84a3c4a..2122d93 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -303,11 +303,13 @@ def _get_asset_balances(self) -> Generator[None, None, Optional[Dict[str, Any]]] for asset_address, asset_symbol in assets.items(): if asset_address == ZERO_ADDRESS: balance = yield from self._get_native_balance(chain, account) + decimal = 18 else: balance = yield from self._get_token_balance( chain, account, asset_address ) balance = 0 if balance is None else balance + decimal = yield from self._get_token_decimals(chain, asset_address) asset_balances_dict[chain].append( { @@ -321,7 +323,7 @@ def _get_asset_balances(self) -> Generator[None, None, Optional[Dict[str, Any]]] ) self.context.logger.info( - f"Balance of account {account} on {chain} chain for {asset_symbol}: {balance}" + f"Balance of account {account} on {chain} for {asset_symbol}: {self._convert_to_token_units(balance, decimal)}" ) return asset_balances_dict @@ -387,6 +389,11 @@ def _get_token_decimals( ) return decimals + def _convert_to_token_units(self,amount: int, token_decimal: int = 18) -> str: + """Convert smallest unit to token's base unit.""" + value = amount / 10**token_decimal + return f"{value:.{token_decimal}f}" + def _store_data(self, data: Any, attribute: str, filepath: str) -> None: """Generic method to store data as JSON.""" if data is None: @@ -956,6 +963,10 @@ def find_highest_apr_pool(self) -> Generator[None, None, None]: def _fetch_all_pools(self) -> Generator[None, None, Optional[Dict[str, Any]]]: """Fetch all pools based on allowed chains.""" + if not self.params.target_investment_chains: + self.context.logger.warning("No chain selected for investment!") + return None + chain_ids = ",".join( str(self.params.chain_to_chain_id_mapping[chain]) for chain in self.params.target_investment_chains @@ -1314,6 +1325,7 @@ def get_order_of_transactions( def _get_top_tokens_by_value(self) -> Generator[None, None, Optional[List[Any]]]: """Get tokens over min balance""" token_balances = [] + eligibility_factor = 0.8 for position in self.synchronized_data.positions: chain = position.get("chain") for asset in position.get("assets", {}): @@ -1352,7 +1364,7 @@ def _get_top_tokens_by_value(self) -> Generator[None, None, Optional[List[Any]]] tokens = [] for token_data in token_balances: - if token_data["value"] >= self.params.min_swap_amount_threshold: + if token_data["value"] >= eligibility_factor * self.params.min_swap_amount_threshold: tokens.append(token_data) if len(tokens) == 2: self.context.logger.info( From 70f1bad61ecef39d2004e54b7ca396ebaaaa5531 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Tue, 19 Nov 2024 18:14:20 +0530 Subject: [PATCH 24/52] chore: bump to autonomy@v0.18.3 --- packages/packages.json | 46 +- .../valory/agents/optimus/aea-config.yaml | 36 +- .../contracts/balancer_vault/contract.yaml | 6 +- .../balancer_weighted_pool/contract.yaml | 8 +- packages/valory/contracts/erc20/contract.yaml | 12 +- .../contracts/merkl_distributor/contract.yaml | 8 +- .../staking_activity_checker/contract.yaml | 8 +- .../contracts/staking_token/contract.yaml | 10 +- .../contract.yaml | 8 +- .../contracts/uniswap_v3_pool/contract.yaml | 8 +- packages/valory/services/optimus/service.yaml | 2 +- .../skills/liquidity_trader_abci/rounds.py | 37 + .../skills/liquidity_trader_abci/skill.yaml | 26 +- .../valory/skills/optimus_abci/skill.yaml | 12 +- poetry.lock | 2286 +++++++++-------- pyproject.toml | 10 +- tox.ini | 12 +- 17 files changed, 1329 insertions(+), 1206 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index c55b3bd..dad4548 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,17 +1,17 @@ { "dev": { - "contract/valory/balancer_weighted_pool/0.1.0": "bafybeigqt5fofqh4jakrty5xkyap5jkuv4ib7oeyxprksb7xf4dqivxpcq", - "contract/valory/balancer_vault/0.1.0": "bafybeib3gxzp73qpfenwei4w4lridam2sdnzwszwyjc6bn342d7tuwrttu", - "contract/valory/erc20/0.1.0": "bafybeiemh4warjroyqwkuaso3jwfjfvobyuydj5xyppi7cepo7wtu5ab64", - "contract/valory/uniswap_v3_non_fungible_position_manager/0.1.0": "bafybeibza3bamh3dcuc5i3dysrhtb5lbuetd4s2hzbolqxkzywtkkhihva", - "contract/valory/uniswap_v3_pool/0.1.0": "bafybeicvypbpkhshkuaiul35mojqupr6vxqinfqzypbebmmbxsvlil3hva", - "contract/valory/merkl_distributor/0.1.0": "bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm", - "contract/valory/staking_token/0.1.0": "bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y", - "contract/valory/staking_activity_checker/0.1.0": "bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeibvmoashunw42tego4cwwzbe7cqre5lpguhnegvlyz3glp4tv76mi", - "skill/valory/optimus_abci/0.1.0": "bafybeighljlwcdaa4x3rrfstchqkubs6wmvzosgthsql2bl7jrl6obnqxq", - "agent/valory/optimus/0.1.0": "bafybeig44ax7twbvzd2bbl56uju472xtj36e6mlzpc6vryuqynrrhlxmeu", - "service/valory/optimus/0.1.0": "bafybeiepzxit2bfcgqfr4xm64ykcc4id4pjmg5colqwryv342wdmcqsxrm" + "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", + "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", + "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", + "contract/valory/uniswap_v3_non_fungible_position_manager/0.1.0": "bafybeihdnltmbhy7lcvqby324z4ttp4imnn3k7hctu4mwpkbpjodniudum", + "contract/valory/uniswap_v3_pool/0.1.0": "bafybeidtlsrza7ykhe5fo33pj3e3bq27b3i32igrmjyh35wnwd6tiuggcq", + "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", + "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", + "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeie3cjy3yeljgavlaq6c4clvsg7gtwnrpryn7nlsq6hs7rlmzfiyi4", + "skill/valory/optimus_abci/0.1.0": "bafybeier5s5gvdjxe7mrx44nxr2ohxqkkjizmtt44qvyan2jwnxnp4dkim", + "agent/valory/optimus/0.1.0": "bafybeiakqm6gtrjqkrwyyogamqvrenoi6ois6jk3zgetqs2jlrdt6conmy", + "service/valory/optimus/0.1.0": "bafybeihqdd3wqf7xgx4m4a4v5s4vy3duaj6eepfhohhbfq2opx2a5zmv4e" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", @@ -22,21 +22,21 @@ "protocol/valory/acn/1.1.0": "bafybeidluaoeakae3exseupaea4i3yvvk5vivyt227xshjlffywwxzcxqe", "protocol/valory/ipfs/0.1.0": "bafybeiftxi2qhreewgsc5wevogi7yc5g6hbcbo4uiuaibauhv3nhfcdtvm", "protocol/valory/tendermint/0.1.0": "bafybeig4mi3vmlv5zpbjbfuzcgida6j5f2nhrpedxicmrrfjweqc5r7cra", - "contract/valory/service_registry/0.1.0": "bafybeicky7duncl25yif5gduo7a3ccgbgfo4pkx6rvexooyvzgyomcfuy4", - "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeidkqhw7smq4kbqryodom6maj7gubc5nbxwm4vi343xbkqxx3brjtm", + "contract/valory/service_registry/0.1.0": "bafybeidipx4cmchxdu5i2v67rno7muie7ckjhmasaj64tv2vtj4fveklxi", + "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeifr4xpmzeb5hvpgd6h4nxlsu3ef2c3f6l5bgs34vym5ok6vllwhmy", "contract/valory/multisend/0.1.0": "bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y", - "contract/valory/gnosis_safe/0.1.0": "bafybeiaw4yr7ubqlp63iz5wxqep3a5fokqs3kqva7sp2nsqg355zzucqgm", - "connection/valory/abci/0.1.0": "bafybeiavg4blopyq2mfojlfmsdxpk64ywpot25zi34wfmv4yeal6pbqbfy", + "contract/valory/gnosis_safe/0.1.0": "bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi", + "connection/valory/abci/0.1.0": "bafybeie2bc44r2ddspeg4v7minuievvjykomcukuf5ryevom6fajno25gy", "connection/valory/http_client/0.23.0": "bafybeihi772xgzpqeipp3fhmvpct4y6e6tpjp4sogwqrnf3wqspgeilg4u", - "connection/valory/ipfs/0.1.0": "bafybeiay3g7ioixe5zxilb5vodvz3lpf3jhugvpdzisfzeqlxt2wejaira", + "connection/valory/ipfs/0.1.0": "bafybeias6633a2337nhq6nn5ikq4jaig47v63nxv2ixkjr6qqrqaywqara", "connection/valory/ledger/0.19.0": "bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e", "connection/valory/p2p_libp2p_client/0.1.0": "bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e", "connection/valory/http_server/0.22.0": "bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m", - "skill/valory/abstract_abci/0.1.0": "bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu", - "skill/valory/reset_pause_abci/0.1.0": "bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e", - "skill/valory/registration_abci/0.1.0": "bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq", - "skill/valory/abstract_round_abci/0.1.0": "bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti", - "skill/valory/termination_abci/0.1.0": "bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy", - "skill/valory/transaction_settlement_abci/0.1.0": "bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy" + "skill/valory/abstract_abci/0.1.0": "bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq", + "skill/valory/reset_pause_abci/0.1.0": "bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri", + "skill/valory/registration_abci/0.1.0": "bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny", + "skill/valory/abstract_round_abci/0.1.0": "bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm", + "skill/valory/termination_abci/0.1.0": "bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq", + "skill/valory/transaction_settlement_abci/0.1.0": "bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq" } } \ No newline at end of file diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 5e4ecb5..6063718 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -8,21 +8,21 @@ fingerprint: __init__.py: bafybeigx5mdvnamsqfum5ut7htok2y5vsnu7lrvms5gfvqi7hmv7sfbo3a fingerprint_ignore_patterns: [] connections: -- valory/abci:0.1.0:bafybeiavg4blopyq2mfojlfmsdxpk64ywpot25zi34wfmv4yeal6pbqbfy +- valory/abci:0.1.0:bafybeie2bc44r2ddspeg4v7minuievvjykomcukuf5ryevom6fajno25gy - valory/http_client:0.23.0:bafybeihi772xgzpqeipp3fhmvpct4y6e6tpjp4sogwqrnf3wqspgeilg4u - valory/http_server:0.22.0:bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m -- valory/ipfs:0.1.0:bafybeiay3g7ioixe5zxilb5vodvz3lpf3jhugvpdzisfzeqlxt2wejaira +- valory/ipfs:0.1.0:bafybeias6633a2337nhq6nn5ikq4jaig47v63nxv2ixkjr6qqrqaywqara - valory/ledger:0.19.0:bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e - valory/p2p_libp2p_client:0.1.0:bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e contracts: -- valory/gnosis_safe:0.1.0:bafybeiaw4yr7ubqlp63iz5wxqep3a5fokqs3kqva7sp2nsqg355zzucqgm -- valory/gnosis_safe_proxy_factory:0.1.0:bafybeidkqhw7smq4kbqryodom6maj7gubc5nbxwm4vi343xbkqxx3brjtm +- valory/gnosis_safe:0.1.0:bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi +- valory/gnosis_safe_proxy_factory:0.1.0:bafybeifr4xpmzeb5hvpgd6h4nxlsu3ef2c3f6l5bgs34vym5ok6vllwhmy - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/service_registry:0.1.0:bafybeicky7duncl25yif5gduo7a3ccgbgfo4pkx6rvexooyvzgyomcfuy4 -- valory/balancer_weighted_pool:0.1.0:bafybeigqt5fofqh4jakrty5xkyap5jkuv4ib7oeyxprksb7xf4dqivxpcq -- valory/balancer_vault:0.1.0:bafybeib3gxzp73qpfenwei4w4lridam2sdnzwszwyjc6bn342d7tuwrttu -- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeibza3bamh3dcuc5i3dysrhtb5lbuetd4s2hzbolqxkzywtkkhihva -- valory/uniswap_v3_pool:0.1.0:bafybeicvypbpkhshkuaiul35mojqupr6vxqinfqzypbebmmbxsvlil3hva +- valory/service_registry:0.1.0:bafybeidipx4cmchxdu5i2v67rno7muie7ckjhmasaj64tv2vtj4fveklxi +- valory/balancer_weighted_pool:0.1.0:bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq +- valory/balancer_vault:0.1.0:bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm +- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeihdnltmbhy7lcvqby324z4ttp4imnn3k7hctu4mwpkbpjodniudum +- valory/uniswap_v3_pool:0.1.0:bafybeidtlsrza7ykhe5fo33pj3e3bq27b3i32igrmjyh35wnwd6tiuggcq protocols: - open_aea/signing:1.0.0:bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi - valory/abci:0.1.0:bafybeiaqmp7kocbfdboksayeqhkbrynvlfzsx4uy4x6nohywnmaig4an7u @@ -33,14 +33,14 @@ protocols: - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni - valory/tendermint:0.1.0:bafybeig4mi3vmlv5zpbjbfuzcgida6j5f2nhrpedxicmrrfjweqc5r7cra skills: -- valory/abstract_abci:0.1.0:bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu -- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti -- valory/liquidity_trader_abci:0.1.0:bafybeibvmoashunw42tego4cwwzbe7cqre5lpguhnegvlyz3glp4tv76mi -- valory/optimus_abci:0.1.0:bafybeighljlwcdaa4x3rrfstchqkubs6wmvzosgthsql2bl7jrl6obnqxq -- valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq -- valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e -- valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy -- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy +- valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq +- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm +- valory/liquidity_trader_abci:0.1.0:bafybeie3cjy3yeljgavlaq6c4clvsg7gtwnrpryn7nlsq6hs7rlmzfiyi4 +- valory/optimus_abci:0.1.0:bafybeier5s5gvdjxe7mrx44nxr2ohxqkkjizmtt44qvyan2jwnxnp4dkim +- valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny +- valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri +- valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq +- valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq default_ledger: ethereum required_ledgers: - ethereum @@ -72,7 +72,7 @@ logging_config: skill_exception_policy: stop_and_exit dependencies: open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 default_connection: null --- public_id: valory/abci:0.1.0 diff --git a/packages/valory/contracts/balancer_vault/contract.yaml b/packages/valory/contracts/balancer_vault/contract.yaml index d1b43e9..d14234b 100644 --- a/packages/valory/contracts/balancer_vault/contract.yaml +++ b/packages/valory/contracts/balancer_vault/contract.yaml @@ -6,8 +6,8 @@ description: The contract package for the balancer Vault interface. license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeibily2cg2o4zkvol6amu2ewzdq5kmtzlml3qor45na3s7l5fmay2a - build/Vault.json: bafybeifbvxyx43jmtchbzerapzqeblmmsppfbvfkwrag4nsfydad6bqwje + __init__.py: bafybeie2yg7zz3lcxzvq4qsjydvp43epkpqwh72rsab5pthqdadmxewv6q + build/Vault.json: bafybeibsy2cxda42brenfs2qvhog7hbs5kokz2tr6daj5d4jcdadonlupy contract.py: bafybeicu7xsjywccqscshsfwe23kiimvhee74s3u7vpkunglfarszdttke fingerprint_ignore_patterns: [] contracts: [] @@ -16,7 +16,7 @@ contract_interface_paths: ethereum: build/Vault.json dependencies: open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 web3: version: <7,>=6.0.0 eth_abi: diff --git a/packages/valory/contracts/balancer_weighted_pool/contract.yaml b/packages/valory/contracts/balancer_weighted_pool/contract.yaml index 06dde17..846f032 100644 --- a/packages/valory/contracts/balancer_weighted_pool/contract.yaml +++ b/packages/valory/contracts/balancer_weighted_pool/contract.yaml @@ -6,9 +6,9 @@ description: The contract package for the balancer WeightedPool interface. license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeigdfk3th36mcaoew2of5zo2rrgyc2oqntzznjkii6a3zuafyvriou - build/WeightedPool.json: bafybeiclbkl3snzwo36nnbvjpge2jfcyo3a7lzzhfsfr4piv3n6djrs3le - contract.py: bafybeibojzlorprdqnbj4yp64ziheusdbvszijuk7xgeyjrcfzsw6z7koy + __init__.py: bafybeieabdck6osm6aeqonyflzx3oc2ytv6rdykjlltxkawcd5jwwm23uq + build/WeightedPool.json: bafybeicqma7gs5obx7oesmgqeqldos3oaz624d2llf6sft6tslvacn2tny + contract.py: bafybeiaqczbcnpojad4274mrtczi2ziljsmop3b5vtb6m6wz45s3443qyy fingerprint_ignore_patterns: [] contracts: [] class_name: WeightedPoolContract @@ -16,6 +16,6 @@ contract_interface_paths: ethereum: build/WeightedPool.json dependencies: open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/erc20/contract.yaml b/packages/valory/contracts/erc20/contract.yaml index b84001f..f4932ec 100644 --- a/packages/valory/contracts/erc20/contract.yaml +++ b/packages/valory/contracts/erc20/contract.yaml @@ -6,10 +6,10 @@ description: ERC20 token contract license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - README.md: bafybeifmfma6rglvpa22odtozyosnp5mwljum64utxip2wgmezuhnjjjyi - __init__.py: bafybeif5vpc3dfrlxlch7brbhmdwksabyzddpfqgm56vdbbkek3t3br6ke - build/ERC20.json: bafybeiemn5b5nszuss7xj6lmvmjuendltp6wz7ubihdvd7c6wqw4bohbpa - contract.py: bafybeibbgvpfy6cg5sivhfutdskwhts35qf5xb6sggpamgzcabz3jvwn5a + README.md: bafybeif7hmm6izsjzpricvczn6dgyky22g3fryjmni7qdf6gybaalgmv5a + __init__.py: bafybeiakinrsb2vekfckyvjewz2c3quhf5gq2556royhuxiu4uhhscgo6m + build/ERC20.json: bafybeidc2ciuhnallxjzy4pmq3xhlcm5sotszmwk4ekrhebzncowozxrpa + contract.py: bafybeibhq3g7qdolk5fsaqnsmhbfnewrqkwm6slrb5mamjffvac6e6hskm fingerprint_ignore_patterns: [] contracts: [] class_name: ERC20 @@ -21,9 +21,9 @@ dependencies: eth_typing: {} hexbytes: {} open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 open-aea-test-autonomy: - version: ==0.18.2 + version: ==0.18.3 packaging: {} requests: version: <2.31.2,>=2.28.1 diff --git a/packages/valory/contracts/merkl_distributor/contract.yaml b/packages/valory/contracts/merkl_distributor/contract.yaml index cac9d6f..2709596 100644 --- a/packages/valory/contracts/merkl_distributor/contract.yaml +++ b/packages/valory/contracts/merkl_distributor/contract.yaml @@ -6,9 +6,9 @@ description: The contract package for the Merkl Distributor interface. license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeigndinzenvr4gauojly3cieqscwf677i72di7nhfu3p3zxx6bmfyy - build/Distributor.json: bafybeihtbkqhzavgficpiikharncvtysmoyacmqbkntsilrvwph44fkm3a - contract.py: bafybeieq6hddnw6ib2ufwnrrfr6yo5g4hyidtpn3n2dl6si3yrloymjj3y + __init__.py: bafybeictnkdkelaghpkgodnjlfdqqextynue7ra3g5bz2ioxmk27yesaxu + build/Distributor.json: bafybeihzpteywhvuujzr2gjmmjfve6aqn6xfwd4k5iqlnwuulqeoyyyc44 + contract.py: bafybeibftqb6uj44nwq7cz4wa3jpy4allyb3llegypuwrw6l7brpjn24ce fingerprint_ignore_patterns: [] contracts: [] class_name: DistributorContract @@ -16,7 +16,7 @@ contract_interface_paths: ethereum: build/Distributor.json dependencies: open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 web3: version: <7,>=6.0.0 eth_abi: diff --git a/packages/valory/contracts/staking_activity_checker/contract.yaml b/packages/valory/contracts/staking_activity_checker/contract.yaml index fe6301f..4f64a09 100644 --- a/packages/valory/contracts/staking_activity_checker/contract.yaml +++ b/packages/valory/contracts/staking_activity_checker/contract.yaml @@ -6,8 +6,8 @@ description: Staking activity checker contract license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeigqm6q7kgfzgpcse7zer5uea3s7myolry2r3teovuzqgkn43j7bei - build/StakingActivityChecker.json: bafybeiety3kkkmdz2gdzktg54wvmhavftaw4wjnrddztt64jpknagrc6xa + __init__.py: bafybeigxhiwzlu2otgglu7wc7wcyprgbx3d56yswl6rnlohpzlhtob2o2y + build/StakingActivityChecker.json: bafybeieo4hgyetulkuolv7hxpjwgcvceqrzmg76f3gwhj5jkzt62aryzcy contract.py: bafybeiagtrdo6icjnzgap23xqaij2ptsdkqka4n25qg5srutoy6bfleqae fingerprint_ignore_patterns: [] contracts: [] @@ -16,8 +16,8 @@ contract_interface_paths: ethereum: build/StakingActivityChecker.json dependencies: open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 open-aea-test-autonomy: - version: ==0.18.2 + version: ==0.18.3 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/staking_token/contract.yaml b/packages/valory/contracts/staking_token/contract.yaml index 142ac6c..0baeef4 100644 --- a/packages/valory/contracts/staking_token/contract.yaml +++ b/packages/valory/contracts/staking_token/contract.yaml @@ -6,9 +6,9 @@ description: Service staking token contract license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeianiorzcfwfcty7xli6fytss2tsaj3qbzjhvwyi6whrlv2uoj5tfy - build/StakingToken.json: bafybeibhcwyawq377innrpq4ytpw5kotufjqo7cyd2rjhyit34mnbks5b4 - contract.py: bafybeigjt7a2biiorp4vmj4d3qkm3xbbohnawoetywojye5akhavlvkrxm + __init__.py: bafybeicocn2d7qhmemfevclum46bftxwve73gvhvtbybqsr6nwo7xi4cwa + build/StakingToken.json: bafybeig5fpbywcijoiu4wccefjqptgsg2tjc3fjud72js62sr54eihhoeu + contract.py: bafybeihu7kos735kxacc2yevjdorv3xlsol2jqexvcce6glt3vbqrfsjau fingerprint_ignore_patterns: [] contracts: [] class_name: StakingTokenContract @@ -16,8 +16,8 @@ contract_interface_paths: ethereum: build/StakingToken.json dependencies: open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 open-aea-test-autonomy: - version: ==0.18.2 + version: ==0.18.3 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml b/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml index fc5b5aa..1bdfdab 100644 --- a/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml +++ b/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml @@ -6,9 +6,9 @@ description: The contract package for the Uniswap V3 NonfungiblePositionManager license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeiefxsx4zo3eefe6iyxflho4l3gx2ge7hjm7c62eiyw7zaag4ifbty - build/NonfungiblePositionManager.json: bafybeihspdbkcgw2mo245bpblhgu3srl3ywynp7eeipzoczqlzcslu7t6y - contract.py: bafybeidiyhhxbpff27wmenq3tmhz6ytwkstw7zgi5jv4y6wndhlovoxvvq + __init__.py: bafybeiedo7rlzia74zpxmzr3f6clsmflrnmnutvbhv53enj7ubiixoq4wi + build/NonfungiblePositionManager.json: bafybeigbyk26vvml6p257jxlj2aarut7nywtcpsqfaes6uv3o4se6xcnvu + contract.py: bafybeihwpypxzoewm3cyndzvnc4bemhzr7bwfgmpseuh7kpc5p377aqmym fingerprint_ignore_patterns: [] contracts: [] class_name: UniswapV3NonfungiblePositionManagerContract @@ -16,6 +16,6 @@ contract_interface_paths: ethereum: build/NonfungiblePositionManager.json dependencies: open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/uniswap_v3_pool/contract.yaml b/packages/valory/contracts/uniswap_v3_pool/contract.yaml index 7a2da01..5b40256 100644 --- a/packages/valory/contracts/uniswap_v3_pool/contract.yaml +++ b/packages/valory/contracts/uniswap_v3_pool/contract.yaml @@ -6,9 +6,9 @@ description: The contract package for the Uniswap V3 Pool interface. license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeihdocjce5kvnpad5xhrc2ad7i3gftajix5z6f4zhpvmnk6blsmlza - build/UniswapV3Pool.json: bafybeids5lo3axsd6aplyywwi43xwdxj3njnrke5m7gsp3mg74svcodr4i - contract.py: bafybeigxpimjgflw5sszbz5tk4wxjktwuekcvbyfj7syqspwqpohugzdi4 + __init__.py: bafybeicea4t7ghcifni7ofn4x2en5etymgynzgfefu4yhawsfivr2q53ri + build/UniswapV3Pool.json: bafybeifr6yextwnnmyk7h4j3nlfu5ujj243enppkvv4irouy2snc2qqpri + contract.py: bafybeig6dvbuoac6kvxbj2ehejfgta3mesakvo2ilxbyovnefhdnauyxki fingerprint_ignore_patterns: [] contracts: [] class_name: UniswapV3PoolContract @@ -16,6 +16,6 @@ contract_interface_paths: ethereum: build/UniswapV3Pool.json dependencies: open-aea-ledger-ethereum: - version: ==1.59.0 + version: ==1.60.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 0565887..3743d4a 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeig44ax7twbvzd2bbl56uju472xtj36e6mlzpc6vryuqynrrhlxmeu +agent: valory/optimus:0.1.0:bafybeiakqm6gtrjqkrwyyogamqvrenoi6ois6jk3zgetqs2jlrdt6conmy number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/rounds.py b/packages/valory/skills/liquidity_trader_abci/rounds.py index a4d9d2a..ea17eda 100644 --- a/packages/valory/skills/liquidity_trader_abci/rounds.py +++ b/packages/valory/skills/liquidity_trader_abci/rounds.py @@ -60,6 +60,7 @@ class Event(Enum): ERROR = "error" NEXT_CHECKPOINT_NOT_REACHED_YET = "next_checkpoint_not_reached_yet" NO_MAJORITY = "no_majority" + NONE = "none" ROUND_TIMEOUT = "round_timeout" SERVICE_EVICTED = "service_evicted" SERVICE_NOT_STAKED = "service_not_staked" @@ -161,7 +162,17 @@ def participant_to_checkpoint(self) -> DeserializedCollection: def participant_to_staking_kpi(self) -> DeserializedCollection: """Get the participants to the CheckStakingKPIMet round.""" return self._get_deserialized("participant_to_staking_kpi") + + @property + def participant_to_decision_making(self) -> DeserializedCollection: + """Get the participants to the DecisionMaking round.""" + return self._get_deserialized("participant_to_decision_making") + @property + def participant_to_post_tx_settlement(self) -> DeserializedCollection: + """Get the participants to the PostTxSettlement round.""" + return self._get_deserialized("participant_to_post_tx_settlement") + @property def is_staking_kpi_met(self) -> Optional[bool]: """Get kpi met for the day.""" @@ -223,6 +234,7 @@ class CallCheckpointRound(CollectSameUntilThresholdRound): payload_class = CallCheckpointPayload done_event: Enum = Event.DONE no_majority_event: Enum = Event.NO_MAJORITY + none_event: Enum = Event.NONE selection_key = ( get_name(SynchronizedData.tx_submitter), get_name(SynchronizedData.most_voted_tx_hash), @@ -273,6 +285,7 @@ class CheckStakingKPIMetRound(CollectSameUntilThresholdRound): synchronized_data_class = SynchronizedData done_event: Enum = Event.DONE no_majority_event: Enum = Event.NO_MAJORITY + none_event: Enum = Event.NONE collection_key = get_name(SynchronizedData.participant_to_staking_kpi) selection_key = ( get_name(SynchronizedData.tx_submitter), @@ -312,6 +325,7 @@ class GetPositionsRound(CollectSameUntilThresholdRound): synchronized_data_class = SynchronizedData done_event = Event.DONE no_majority_event = Event.NO_MAJORITY + none_event: Enum = Event.NONE collection_key = get_name(SynchronizedData.participant_to_positions_round) selection_key = get_name(SynchronizedData.positions) @@ -326,6 +340,8 @@ class EvaluateStrategyRound(CollectSameUntilThresholdRound): payload_class = EvaluateStrategyPayload synchronized_data_class = SynchronizedData done_event = Event.DONE + none_event: Enum = Event.NONE + no_majority_event = Event.NO_MAJORITY collection_key = get_name(SynchronizedData.participant_to_actions_round) selection_key = get_name(SynchronizedData.actions) @@ -356,6 +372,12 @@ class DecisionMakingRound(CollectSameUntilThresholdRound): settle_event = Event.SETTLE update_event = Event.UPDATE error_event = Event.ERROR + none_event: Enum = Event.NONE + no_majority_event = Event.NO_MAJORITY + collection_key = get_name(SynchronizedData.participant_to_decision_making) + selection_key = ( + get_name(SynchronizedData.chain_id), + ) def end_block(self) -> Optional[Tuple[BaseSynchronizedData, Event]]: """Process the end of the block.""" @@ -399,6 +421,13 @@ class PostTxSettlementRound(CollectSameUntilThresholdRound): payload_class: Any = object() synchronized_data_class = SynchronizedData + done_event = Event.DONE + none_event: Enum = Event.NONE + no_majority_event = Event.NO_MAJORITY + collection_key = get_name(SynchronizedData.participant_to_post_tx_settlement) + selection_key = ( + get_name(SynchronizedData.chain_id), + ) def end_block(self) -> Optional[Tuple[BaseSynchronizedData, Enum]]: """ @@ -473,6 +502,7 @@ class LiquidityTraderAbciApp(AbciApp[Event]): Event.SERVICE_EVICTED: GetPositionsRound, Event.ROUND_TIMEOUT: CallCheckpointRound, Event.NO_MAJORITY: CallCheckpointRound, + Event.NONE: CallCheckpointRound, }, CheckStakingKPIMetRound: { Event.DONE: GetPositionsRound, @@ -482,17 +512,20 @@ class LiquidityTraderAbciApp(AbciApp[Event]): Event.NO_MAJORITY: CheckStakingKPIMetRound, Event.STAKING_KPI_NOT_MET: GetPositionsRound, Event.ERROR: GetPositionsRound, + Event.NONE: CheckStakingKPIMetRound, }, GetPositionsRound: { Event.DONE: EvaluateStrategyRound, Event.NO_MAJORITY: GetPositionsRound, Event.ROUND_TIMEOUT: GetPositionsRound, + Event.NONE: GetPositionsRound, }, EvaluateStrategyRound: { Event.DONE: DecisionMakingRound, Event.NO_MAJORITY: EvaluateStrategyRound, Event.ROUND_TIMEOUT: EvaluateStrategyRound, Event.WAIT: FinishedEvaluateStrategyRound, + Event.NONE: EvaluateStrategyRound, }, DecisionMakingRound: { Event.DONE: FinishedDecisionMakingRound, @@ -501,6 +534,7 @@ class LiquidityTraderAbciApp(AbciApp[Event]): Event.ROUND_TIMEOUT: DecisionMakingRound, Event.SETTLE: FinishedTxPreparationRound, Event.UPDATE: DecisionMakingRound, + Event.NONE: DecisionMakingRound, }, PostTxSettlementRound: { Event.ACTION_EXECUTED: DecisionMakingRound, @@ -508,6 +542,9 @@ class LiquidityTraderAbciApp(AbciApp[Event]): Event.VANITY_TX_EXECUTED: CheckStakingKPIMetRound, Event.ROUND_TIMEOUT: PostTxSettlementRound, Event.UNRECOGNIZED: FailedMultiplexerRound, + Event.DONE: PostTxSettlementRound, + Event.NONE: PostTxSettlementRound, + Event.NO_MAJORITY: PostTxSettlementRound, }, FinishedEvaluateStrategyRound: {}, FinishedTxPreparationRound: {}, diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index c46faa7..82336f9 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeieu5kw3jht6ifben3mgmponjphfcpyjvkrl7zq3hc7oy5cvf6cq64 + behaviours.py: bafybeidcrldmbhnyh36efjbmhoexqx4vfcvjdhgmsmejgxxtlxwjs6xhka dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 @@ -16,28 +16,28 @@ fingerprint: pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u pools/uniswap.py: bafybeigmqptgmjaxscszohfusgxsexqyx4awuyw7p4g5l7k2qpeyq7vdcu - rounds.py: bafybeicszrxtyssvycgradsylxbjpkgdngjnac6nopv2sd7xvklxefpjgu + rounds.py: bafybeig4pqddfq6ukbxgl5kqsuwlscjzocymusz7adctnt7vakprmvow5u strategies/simple_strategy.py: bafybeiasu2nchowx6leksjllpuum4ckezxoj4o2m4sstavblplvvutmvzm strategy_behaviour.py: bafybeidk6sorg47kuuubamcccksi65x3txldyo7y2hm5opbye2ghmz2ljy fingerprint_ignore_patterns: [] connections: [] contracts: -- valory/gnosis_safe:0.1.0:bafybeiaw4yr7ubqlp63iz5wxqep3a5fokqs3kqva7sp2nsqg355zzucqgm -- valory/balancer_weighted_pool:0.1.0:bafybeigqt5fofqh4jakrty5xkyap5jkuv4ib7oeyxprksb7xf4dqivxpcq -- valory/balancer_vault:0.1.0:bafybeib3gxzp73qpfenwei4w4lridam2sdnzwszwyjc6bn342d7tuwrttu -- valory/erc20:0.1.0:bafybeiemh4warjroyqwkuaso3jwfjfvobyuydj5xyppi7cepo7wtu5ab64 +- valory/gnosis_safe:0.1.0:bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi +- valory/balancer_weighted_pool:0.1.0:bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq +- valory/balancer_vault:0.1.0:bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm +- valory/erc20:0.1.0:bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4 - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeibza3bamh3dcuc5i3dysrhtb5lbuetd4s2hzbolqxkzywtkkhihva -- valory/uniswap_v3_pool:0.1.0:bafybeicvypbpkhshkuaiul35mojqupr6vxqinfqzypbebmmbxsvlil3hva -- valory/merkl_distributor:0.1.0:bafybeig2dedt2lrvhpvpifhgv3j3v7v62iwu6jzi36zs2dldm5alst2wpm -- valory/staking_token:0.1.0:bafybeiaxmfmcmya6ece6sjsmpk5oorfpetkxj264jkkwmpoue7d5zgia7y -- valory/staking_activity_checker:0.1.0:bafybeih73uqolwmfxcagqxlaoyutmfwvzjg5lwknmahu5oipnmbyicjbcy +- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeihdnltmbhy7lcvqby324z4ttp4imnn3k7hctu4mwpkbpjodniudum +- valory/uniswap_v3_pool:0.1.0:bafybeidtlsrza7ykhe5fo33pj3e3bq27b3i32igrmjyh35wnwd6tiuggcq +- valory/merkl_distributor:0.1.0:bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e +- valory/staking_token:0.1.0:bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y +- valory/staking_activity_checker:0.1.0:bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi protocols: - valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni skills: -- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti -- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy +- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm +- valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: args: {} diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index a81c805..0b0dfb9 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -18,12 +18,12 @@ connections: [] contracts: [] protocols: [] skills: -- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti -- valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq -- valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e -- valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy -- valory/liquidity_trader_abci:0.1.0:bafybeibvmoashunw42tego4cwwzbe7cqre5lpguhnegvlyz3glp4tv76mi -- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy +- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm +- valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny +- valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri +- valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq +- valory/liquidity_trader_abci:0.1.0:bafybeie3cjy3yeljgavlaq6c4clvsg7gtwnrpryn7nlsq6hs7rlmzfiyi4 +- valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: args: {} diff --git a/poetry.lock b/poetry.lock index b0082ed..89ced69 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,123 +2,109 @@ [[package]] name = "aiohappyeyeballs" -version = "2.4.0" +version = "2.4.3" description = "Happy Eyeballs for asyncio" optional = false python-versions = ">=3.8" files = [ - {file = "aiohappyeyeballs-2.4.0-py3-none-any.whl", hash = "sha256:7ce92076e249169a13c2f49320d1967425eaf1f407522d707d59cac7628d62bd"}, - {file = "aiohappyeyeballs-2.4.0.tar.gz", hash = "sha256:55a1714f084e63d49639800f95716da97a1f173d46a16dfcfda0016abb93b6b2"}, + {file = "aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"}, + {file = "aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586"}, ] [[package]] name = "aiohttp" -version = "3.10.6" +version = "3.11.4" description = "Async http client/server framework (asyncio)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "aiohttp-3.10.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:682836fc672972cc3101cc9e30d49c5f7e8f1d010478d46119fe725a4545acfd"}, - {file = "aiohttp-3.10.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:289fa8a20018d0d5aa9e4b35d899bd51bcb80f0d5f365d9a23e30dac3b79159b"}, - {file = "aiohttp-3.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8617c96a20dd57e7e9d398ff9d04f3d11c4d28b1767273a5b1a018ada5a654d3"}, - {file = "aiohttp-3.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdbeff1b062751c2a2a55b171f7050fb7073633c699299d042e962aacdbe1a07"}, - {file = "aiohttp-3.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ea35d849cdd4a9268f910bff4497baebbc1aa3f2f625fd8ccd9ac99c860c621"}, - {file = "aiohttp-3.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:473961b3252f3b949bb84873d6e268fb6d8aa0ccc6eb7404fa58c76a326bb8e1"}, - {file = "aiohttp-3.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d2665c5df629eb2f981dab244c01bfa6cdc185f4ffa026639286c4d56fafb54"}, - {file = "aiohttp-3.10.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25d92f794f1332f656e3765841fc2b7ad5c26c3f3d01e8949eeb3495691cf9f4"}, - {file = "aiohttp-3.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9bd6b2033993d5ae80883bb29b83fb2b432270bbe067c2f53cc73bb57c46065f"}, - {file = "aiohttp-3.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d7f408c43f5e75ea1edc152fb375e8f46ef916f545fb66d4aebcbcfad05e2796"}, - {file = "aiohttp-3.10.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:cf8b8560aa965f87bf9c13bf9fed7025993a155ca0ce8422da74bf46d18c2f5f"}, - {file = "aiohttp-3.10.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14477c4e52e2f17437b99893fd220ffe7d7ee41df5ebf931a92b8ca82e6fd094"}, - {file = "aiohttp-3.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fb138fbf9f53928e779650f5ed26d0ea1ed8b2cab67f0ea5d63afa09fdc07593"}, - {file = "aiohttp-3.10.6-cp310-cp310-win32.whl", hash = "sha256:9843d683b8756971797be171ead21511d2215a2d6e3c899c6e3107fbbe826791"}, - {file = "aiohttp-3.10.6-cp310-cp310-win_amd64.whl", hash = "sha256:f8b8e49fe02f744d38352daca1dbef462c3874900bd8166516f6ea8e82b5aacf"}, - {file = "aiohttp-3.10.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f52e54fd776ad0da1006708762213b079b154644db54bcfc62f06eaa5b896402"}, - {file = "aiohttp-3.10.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:995ab1a238fd0d19dc65f2d222e5eb064e409665c6426a3e51d5101c1979ee84"}, - {file = "aiohttp-3.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0749c4d5a08a802dd66ecdf59b2df4d76b900004017468a7bb736c3b5a3dd902"}, - {file = "aiohttp-3.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e05b39158f2af0e2438cc2075cfc271f4ace0c3cc4a81ec95b27a0432e161951"}, - {file = "aiohttp-3.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a9f196c970db2dcde4f24317e06615363349dc357cf4d7a3b0716c20ac6d7bcd"}, - {file = "aiohttp-3.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:47647c8af04a70e07a2462931b0eba63146a13affa697afb4ecbab9d03a480ce"}, - {file = "aiohttp-3.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c0efe7e99f6d94d63274c06344bd0e9c8daf184ce5602a29bc39e00a18720"}, - {file = "aiohttp-3.10.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9721cdd83a994225352ca84cd537760d41a9da3c0eacb3ff534747ab8fba6d0"}, - {file = "aiohttp-3.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0b82c8ebed66ce182893e7c0b6b60ba2ace45b1df104feb52380edae266a4850"}, - {file = "aiohttp-3.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b169f8e755e541b72e714b89a831b315bbe70db44e33fead28516c9e13d5f931"}, - {file = "aiohttp-3.10.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0be3115753baf8b4153e64f9aa7bf6c0c64af57979aa900c31f496301b374570"}, - {file = "aiohttp-3.10.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e1f80cd17d81a404b6e70ef22bfe1870bafc511728397634ad5f5efc8698df56"}, - {file = "aiohttp-3.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6419728b08fb6380c66a470d2319cafcec554c81780e2114b7e150329b9a9a7f"}, - {file = "aiohttp-3.10.6-cp311-cp311-win32.whl", hash = "sha256:bd294dcdc1afdc510bb51d35444003f14e327572877d016d576ac3b9a5888a27"}, - {file = "aiohttp-3.10.6-cp311-cp311-win_amd64.whl", hash = "sha256:bf861da9a43d282d6dd9dcd64c23a0fccf2c5aa5cd7c32024513c8c79fb69de3"}, - {file = "aiohttp-3.10.6-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:2708baccdc62f4b1251e59c2aac725936a900081f079b88843dabcab0feeeb27"}, - {file = "aiohttp-3.10.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7475da7a5e2ccf1a1c86c8fee241e277f4874c96564d06f726d8df8e77683ef7"}, - {file = "aiohttp-3.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:02108326574ff60267b7b35b17ac5c0bbd0008ccb942ce4c48b657bb90f0b8aa"}, - {file = "aiohttp-3.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:029a019627b37fa9eac5c75cc54a6bb722c4ebbf5a54d8c8c0fb4dd8facf2702"}, - {file = "aiohttp-3.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a637d387db6fdad95e293fab5433b775fd104ae6348d2388beaaa60d08b38c4"}, - {file = "aiohttp-3.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dc1a16f3fc1944c61290d33c88dc3f09ba62d159b284c38c5331868425aca426"}, - {file = "aiohttp-3.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81b292f37969f9cc54f4643f0be7dacabf3612b3b4a65413661cf6c350226787"}, - {file = "aiohttp-3.10.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0754690a3a26e819173a34093798c155bafb21c3c640bff13be1afa1e9d421f9"}, - {file = "aiohttp-3.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:164ecd32e65467d86843dbb121a6666c3deb23b460e3f8aefdcaacae79eb718a"}, - {file = "aiohttp-3.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:438c5863feb761f7ca3270d48c292c334814459f61cc12bab5ba5b702d7c9e56"}, - {file = "aiohttp-3.10.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ba18573bb1de1063d222f41de64a0d3741223982dcea863b3f74646faf618ec7"}, - {file = "aiohttp-3.10.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:c82a94ddec996413a905f622f3da02c4359952aab8d817c01cf9915419525e95"}, - {file = "aiohttp-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92351aa5363fc3c1f872ca763f86730ced32b01607f0c9662b1fa711087968d0"}, - {file = "aiohttp-3.10.6-cp312-cp312-win32.whl", hash = "sha256:3e15e33bfc73fa97c228f72e05e8795e163a693fd5323549f49367c76a6e5883"}, - {file = "aiohttp-3.10.6-cp312-cp312-win_amd64.whl", hash = "sha256:fe517113fe4d35d9072b826c3e147d63c5f808ca8167d450b4f96c520c8a1d8d"}, - {file = "aiohttp-3.10.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:482f74057ea13d387a7549d7a7ecb60e45146d15f3e58a2d93a0ad2d5a8457cd"}, - {file = "aiohttp-3.10.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:03fa40d1450ee5196e843315ddf74a51afc7e83d489dbfc380eecefea74158b1"}, - {file = "aiohttp-3.10.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1e52e59ed5f4cc3a3acfe2a610f8891f216f486de54d95d6600a2c9ba1581f4d"}, - {file = "aiohttp-3.10.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b3935a22c9e41a8000d90588bed96cf395ef572dbb409be44c6219c61d900d"}, - {file = "aiohttp-3.10.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bef1480ee50f75abcfcb4b11c12de1005968ca9d0172aec4a5057ba9f2b644f"}, - {file = "aiohttp-3.10.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:671745ea7db19693ce867359d503772177f0b20fa8f6ee1e74e00449f4c4151d"}, - {file = "aiohttp-3.10.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b50b367308ca8c12e0b50cba5773bc9abe64c428d3fd2bbf5cd25aab37c77bf"}, - {file = "aiohttp-3.10.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a504d7cdb431a777d05a124fd0b21efb94498efa743103ea01b1e3136d2e4fb"}, - {file = "aiohttp-3.10.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:66bc81361131763660b969132a22edce2c4d184978ba39614e8f8f95db5c95f8"}, - {file = "aiohttp-3.10.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:27cf19a38506e2e9f12fc17e55f118f04897b0a78537055d93a9de4bf3022e3d"}, - {file = "aiohttp-3.10.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3468b39f977a11271517c6925b226720e148311039a380cc9117b1e2258a721f"}, - {file = "aiohttp-3.10.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:9d26da22a793dfd424be1050712a70c0afd96345245c29aced1e35dbace03413"}, - {file = "aiohttp-3.10.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:844d48ff9173d0b941abed8b2ea6a412f82b56d9ab1edb918c74000c15839362"}, - {file = "aiohttp-3.10.6-cp313-cp313-win32.whl", hash = "sha256:2dd56e3c43660ed3bea67fd4c5025f1ac1f9ecf6f0b991a6e5efe2e678c490c5"}, - {file = "aiohttp-3.10.6-cp313-cp313-win_amd64.whl", hash = "sha256:c91781d969fbced1993537f45efe1213bd6fccb4b37bfae2a026e20d6fbed206"}, - {file = "aiohttp-3.10.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4407a80bca3e694f2d2a523058e20e1f9f98a416619e04f6dc09dc910352ac8b"}, - {file = "aiohttp-3.10.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1cb045ec5961f51af3e2c08cd6fe523f07cc6e345033adee711c49b7b91bb954"}, - {file = "aiohttp-3.10.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4fabdcdc781a36b8fd7b2ca9dea8172f29a99e11d00ca0f83ffeb50958da84a1"}, - {file = "aiohttp-3.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a9f42efcc2681790595ab3d03c0e52d01edc23a0973ea09f0dc8d295e12b8e"}, - {file = "aiohttp-3.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cca776a440795db437d82c07455761c85bbcf3956221c3c23b8c93176c278ce7"}, - {file = "aiohttp-3.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5582de171f0898139cf51dd9fcdc79b848e28d9abd68e837f0803fc9f30807b1"}, - {file = "aiohttp-3.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:370e2d47575c53c817ee42a18acc34aad8da4dbdaac0a6c836d58878955f1477"}, - {file = "aiohttp-3.10.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:444d1704e2af6b30766debed9be8a795958029e552fe77551355badb1944012c"}, - {file = "aiohttp-3.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:40271a2a375812967401c9ca8077de9368e09a43a964f4dce0ff603301ec9358"}, - {file = "aiohttp-3.10.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f3af26f86863fad12e25395805bb0babbd49d512806af91ec9708a272b696248"}, - {file = "aiohttp-3.10.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4752df44df48fd42b80f51d6a97553b482cda1274d9dc5df214a3a1aa5d8f018"}, - {file = "aiohttp-3.10.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:2cd5290ab66cfca2f90045db2cc6434c1f4f9fbf97c9f1c316e785033782e7d2"}, - {file = "aiohttp-3.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3427031064b0d5c95647e6369c4aa3c556402f324a3e18107cb09517abe5f962"}, - {file = "aiohttp-3.10.6-cp38-cp38-win32.whl", hash = "sha256:614fc21e86adc28e4165a6391f851a6da6e9cbd7bb232d0df7718b453a89ee98"}, - {file = "aiohttp-3.10.6-cp38-cp38-win_amd64.whl", hash = "sha256:58c5d7318a136a3874c78717dd6de57519bc64f6363c5827c2b1cb775bea71dd"}, - {file = "aiohttp-3.10.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5db26bbca8e7968c4c977a0c640e0b9ce7224e1f4dcafa57870dc6ee28e27de6"}, - {file = "aiohttp-3.10.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3fb4216e3ec0dbc01db5ba802f02ed78ad8f07121be54eb9e918448cc3f61b7c"}, - {file = "aiohttp-3.10.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a976ef488f26e224079deb3d424f29144c6d5ba4ded313198169a8af8f47fb82"}, - {file = "aiohttp-3.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a86610174de8a85a920e956e2d4f9945e7da89f29a00e95ac62a4a414c4ef4e"}, - {file = "aiohttp-3.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:217791c6a399cc4f2e6577bb44344cba1f5714a2aebf6a0bea04cfa956658284"}, - {file = "aiohttp-3.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ba3662d41abe2eab0eeec7ee56f33ef4e0b34858f38abf24377687f9e1fb00a5"}, - {file = "aiohttp-3.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4dfa5ad4bce9ca30a76117fbaa1c1decf41ebb6c18a4e098df44298941566f9"}, - {file = "aiohttp-3.10.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0009258e97502936d3bd5bf2ced15769629097d0abb81e6495fba1047824fe0"}, - {file = "aiohttp-3.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0a75d5c9fb4f06c41d029ae70ad943c3a844c40c0a769d12be4b99b04f473d3d"}, - {file = "aiohttp-3.10.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:8198b7c002aae2b40b2d16bfe724b9a90bcbc9b78b2566fc96131ef4e382574d"}, - {file = "aiohttp-3.10.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4611db8c907f90fe86be112efdc2398cd7b4c8eeded5a4f0314b70fdea8feab0"}, - {file = "aiohttp-3.10.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ff99ae06eef85c7a565854826114ced72765832ee16c7e3e766c5e4c5b98d20e"}, - {file = "aiohttp-3.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7641920bdcc7cd2d3ddfb8bb9133a6c9536b09dbd49490b79e125180b2d25b93"}, - {file = "aiohttp-3.10.6-cp39-cp39-win32.whl", hash = "sha256:e2e7d5591ea868d5ec82b90bbeb366a198715672841d46281b623e23079593db"}, - {file = "aiohttp-3.10.6-cp39-cp39-win_amd64.whl", hash = "sha256:b504c08c45623bf5c7ca41be380156d925f00199b3970efd758aef4a77645feb"}, - {file = "aiohttp-3.10.6.tar.gz", hash = "sha256:d2578ef941be0c2ba58f6f421a703527d08427237ed45ecb091fed6f83305336"}, + {file = "aiohttp-3.11.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60f8206818e3582c999c999c799ab068e14f1870ade47d1fe8536dbfd88010b"}, + {file = "aiohttp-3.11.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e5786e5926f888ce3a996d38d9c9b8f9306f399edb1f1ca3ce7760dab9b1043c"}, + {file = "aiohttp-3.11.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:262e45dbd7f1829bcb024259f65b2cf69d1ef5b37626af6955a1c487613aeb3a"}, + {file = "aiohttp-3.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:696adff3594bd449e0fe287441062bdc6f5300928426275b39ed27884ba083a7"}, + {file = "aiohttp-3.11.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dd1411ecfc070af4df129e81fe42c799d95d81c29c22d2c3e4341d974c38f1a"}, + {file = "aiohttp-3.11.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:06defa9017ab50d215446ebbee294e07eb2fcee72d9a909a08192cfacbd43a08"}, + {file = "aiohttp-3.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bc936d10b8fa3f2aa66e59e034085208b588442263400ddb042703d0db99421"}, + {file = "aiohttp-3.11.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:769457243dc4bc902d376cd14c5c7ec234a4faadb4f283dc2738f004cce9a9e1"}, + {file = "aiohttp-3.11.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a360c18b2cb391fec9585ba1efc55150e2fbc6100308113117dfea521e810d8"}, + {file = "aiohttp-3.11.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3e9fd9c11299d6d230eb2669fd1ed0238d33970e36b495b0432ace7f157fc931"}, + {file = "aiohttp-3.11.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0ccbe8ece8a7796ef41b86a3240034c5918d9b324c2ae48fa0be33565e297c64"}, + {file = "aiohttp-3.11.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:9a8b6b3c788a8a6f88f5ce23d729cfde7a2ccebbeb09db0822ef266de0445a27"}, + {file = "aiohttp-3.11.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cbe3e356523d0b336543996f92a0e65f760be82447db21c95c60392c8075ff5c"}, + {file = "aiohttp-3.11.4-cp310-cp310-win32.whl", hash = "sha256:a54424050d1eb36edfef913b1bc8552d52a37864c0ea7df3e1e764663e11053a"}, + {file = "aiohttp-3.11.4-cp310-cp310-win_amd64.whl", hash = "sha256:a51f983d91edae7777b5a2af8e5d83224ba01284502c6874a17647ad6cbf0211"}, + {file = "aiohttp-3.11.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:89261fee04715083ef3b5a0d222b094021793c1728b8ff21da361c79f6384095"}, + {file = "aiohttp-3.11.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4ef6eb1367046fb22085f10c5c84ea2efd0d836ad8088306d652ab1d743faf9e"}, + {file = "aiohttp-3.11.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d68bb99bc6a4b0a3eceb95a246f5a0262e600e094b5178c2b1ab0f4bcbae6729"}, + {file = "aiohttp-3.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a550b4ff70d06c15057d75ddad89a3e7c496e0609d28c567c20b61cd1265c0a6"}, + {file = "aiohttp-3.11.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9b41e0fb3b415beccd6d0c6e5f3ee34b7952cd76120a1db3e45507b83dc5ef81"}, + {file = "aiohttp-3.11.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8feffa8396724116be5bc05bf4fcba0c738cbe908c82a95f71371e32b28cd2ca"}, + {file = "aiohttp-3.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dd5b7947e23a08c70d4c1924809b91211f14136ffd13d303dc487913cfebfeb"}, + {file = "aiohttp-3.11.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab5c6a521b156edef13a57a6d524903c547573ff8101e3d1bbe9ee1b97267973"}, + {file = "aiohttp-3.11.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:010bc9606f798eda8ef071759c7b163893071502bcaedc7d5dc49f9d8f12e553"}, + {file = "aiohttp-3.11.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e7d182164aebad4e2faf2742ee7486d4af73d933461adbd8f183ac9b1837323c"}, + {file = "aiohttp-3.11.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:88e681c0d17bb285d2ccbb73ae77ef86339b632ee7967044c2284411120b9730"}, + {file = "aiohttp-3.11.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0d2cea21ec05b832e9f6a2390b23d32ce5575f6cf4812bd171d4493f59c101fe"}, + {file = "aiohttp-3.11.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:635397b5b4de2397f8136f8fd15c8ebee560e36473195c7aa992ffb8e46acdd3"}, + {file = "aiohttp-3.11.4-cp311-cp311-win32.whl", hash = "sha256:cb2d5a24586b508f658ddd710f7d4b7e4f5656cb5d569aeb1f432c1c3704347a"}, + {file = "aiohttp-3.11.4-cp311-cp311-win_amd64.whl", hash = "sha256:ee081375d10fa2f3f7b0d050c8b9c1ae23190e1d9be256035bf8a41059c4df3a"}, + {file = "aiohttp-3.11.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5cd60673be31449c63f59886f3581478bbdfaddd87e7394a4d73ad134d9be9b9"}, + {file = "aiohttp-3.11.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4ff6105856ae688b29d5daaede1256f5e02e9d5cb3059f8f5ef55d975c2e6992"}, + {file = "aiohttp-3.11.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b169507c98b924fd68b82ae366c285daf6d22456835294c329c3226d61e1f69d"}, + {file = "aiohttp-3.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec84106c8b7ff347be06bf579c298a23b6d1d2225c57273a8cd502f257125d4"}, + {file = "aiohttp-3.11.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:03d53b0888f984f4f0c216a37577ee7e7b1ed1dac89cdd2fde61bf2ccb32009b"}, + {file = "aiohttp-3.11.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:822dedad93947fcb1096cc41ee8fd32e9f652777561a37c740e5335699f01cea"}, + {file = "aiohttp-3.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aef239c307f3a3f830933d612c0aef4ad4b3aa9ce5233a0954262a00f5c379f1"}, + {file = "aiohttp-3.11.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49eb5a0338f141ef32299d48f1415486f47953d37b0c7fa6d778b73b66f3a7e2"}, + {file = "aiohttp-3.11.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7be4efe60e9bddf78ee165a296e80170147282081e1366f0580cf4cc0fb1182f"}, + {file = "aiohttp-3.11.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:66e83a9a1131f0060aaedcc57f1a7e489898b6c3607eededccc7a9f80b95bdb4"}, + {file = "aiohttp-3.11.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a7986fb988314fd2225c1ecab45fd457e1f2c097dcc3c0aacd2a7aec7486beb6"}, + {file = "aiohttp-3.11.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a34c30e1461da3a69c5bdcfce44418b6f969e1e68ebf367edfa5eaab380abf7a"}, + {file = "aiohttp-3.11.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cb4c676ab99ca2dd231928d481e19cd540155dff36e70e613179c4927bd520b8"}, + {file = "aiohttp-3.11.4-cp312-cp312-win32.whl", hash = "sha256:d40d9a740053cb7fef72442fa7bd699060ff4c710971ebdb8dd7c8b36417570f"}, + {file = "aiohttp-3.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:365df6cf2ad144479ba0e0b58abdc5276923676d34da4c1c45613a80d2aac130"}, + {file = "aiohttp-3.11.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f307632f3eaa676f8c2f5df11e4c00ad47dfa79b06cb2fa39156a4e9c6821bdb"}, + {file = "aiohttp-3.11.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:cc2d64b1747efa183ced57b6bce53c9ea8e16e53419e389051b2a214ad0ed051"}, + {file = "aiohttp-3.11.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f37ece590451ecffc815f2eb41f07191d1a31a0404361d1ae2ed532e05c86da4"}, + {file = "aiohttp-3.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b10b316413c80a4dcc5228c092a8d019e4b75d4efbca8988cb5b67ae9fa56881"}, + {file = "aiohttp-3.11.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:beaed1b2d03033dd301a7b67430f03c8255d6856a269c20995a0292de596519e"}, + {file = "aiohttp-3.11.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:518578d6821c942362daa14a56f26b739abeede6e408b0b83e27dfcde17730f7"}, + {file = "aiohttp-3.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e09bc44a1abbd96f55d15330d6cab80459cb8b06a0b656efd712ce47a3710d"}, + {file = "aiohttp-3.11.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae8480148d696dae49126e97568333fc01493069ad46a94b82f69c7a33197ea"}, + {file = "aiohttp-3.11.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b71aab89800fa2eaeb28923ee05e7e56c28dab4ebdba524db06e963431bf6192"}, + {file = "aiohttp-3.11.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:821c9c640d3dc456c6a7b005e38bc5af05326b6a08ce91a068719934d108a1bb"}, + {file = "aiohttp-3.11.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d60255f3ed71aa14a2e75383543ca31bd362fdc7f0d2eafc060d85a9051598df"}, + {file = "aiohttp-3.11.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:9788781f57fb732426ae74b9955b899e677ce42b848e60a11be29358fb20c976"}, + {file = "aiohttp-3.11.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:94acecf2eee13a45f627ed25a28f5a7f2db66b90ff94cd7a1e9cc1ad32cddd43"}, + {file = "aiohttp-3.11.4-cp313-cp313-win32.whl", hash = "sha256:d0fd6510c6d67d08ec80d9ba10cd340a8cfb0dd33436c858ed38d4564abb27c7"}, + {file = "aiohttp-3.11.4-cp313-cp313-win_amd64.whl", hash = "sha256:474f7266a61d1c3218ef4ec0325747884b2d5a13fab5bff5dd3b55d9c849406a"}, + {file = "aiohttp-3.11.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cfe8646a24856624c1eb7649da99333f0d7e75d9cf7c155ea870957d24b7c63c"}, + {file = "aiohttp-3.11.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e69d9869df50dd591228c62fbb3923d6124517d6bfc47a804492813888b497be"}, + {file = "aiohttp-3.11.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb4f1fe110332651c00d2df160978cf1be70896ed9e612ff7c7e67955091b2c4"}, + {file = "aiohttp-3.11.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d97668595bf03299148ea968fed2195cc76ad063aeec8161731aa6a5dbc2f675"}, + {file = "aiohttp-3.11.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c0b3378dc294ad6ec6c038ed57164165e0b83ef5f61eee72f6eefccd7df34b8"}, + {file = "aiohttp-3.11.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0898a77298dc24eef368511d98e551e0b2db293fa9b40c982f4d5ab4d8d2a3a"}, + {file = "aiohttp-3.11.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ecdf43ddde709c336a655c8b3858c56af8f7402de2572001a5a99f7bebf2f78"}, + {file = "aiohttp-3.11.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12bf9c139dfa004b65d2d71906abc593dcafe78a508f33d56c1ca9d87b18337f"}, + {file = "aiohttp-3.11.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2d978a95e4b58ef1fd937fbe347ab397c79ba24e17912595b54faafb88b9b937"}, + {file = "aiohttp-3.11.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e32517c01905e0f4e665c3f3a495868ad996a32c243fcd917587d740253d589"}, + {file = "aiohttp-3.11.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4275160583df18158e0d6789797ad314a14ae611b98933fbe7d7a1c3dcc6bad4"}, + {file = "aiohttp-3.11.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1ff7afc3c461bd9217e2b8a90ddbe5edd94687d5a331c4ae6166dca5876d1a4b"}, + {file = "aiohttp-3.11.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:83bd5aa621b732a0ca1aa3490abd2b010247c4677371a804431935aeedf26e74"}, + {file = "aiohttp-3.11.4-cp39-cp39-win32.whl", hash = "sha256:542a4610571b0affc6e13dda9357235f5f1f2ad9859acc69b188eb53901292d6"}, + {file = "aiohttp-3.11.4-cp39-cp39-win_amd64.whl", hash = "sha256:a468b1b9d5499cbfd0411f5d28adbe651c90508540fdaefb4b7a2171a837a88d"}, + {file = "aiohttp-3.11.4.tar.gz", hash = "sha256:9d95cce8bb010597b3f2217155befe4708e0538d3548aa08d640ebf54e3f57cb"}, ] [package.dependencies] aiohappyeyeballs = ">=2.3.0" aiosignal = ">=1.1.2" -async-timeout = {version = ">=4.0,<5.0", markers = "python_version < \"3.11\""} +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" -yarl = ">=1.12.0,<2.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" [package.extras] speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] @@ -139,13 +125,13 @@ frozenlist = ">=1.1.0" [[package]] name = "anyio" -version = "4.6.0" +version = "4.6.2.post1" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.9" files = [ - {file = "anyio-4.6.0-py3-none-any.whl", hash = "sha256:c7d2e9d63e31599eeb636c8c5c03a7e108d73b345f064f1c19fdc87b79036a9a"}, - {file = "anyio-4.6.0.tar.gz", hash = "sha256:137b4559cbb034c477165047febb6ff83f390fc3b20bf181c1fc0a728cb8beeb"}, + {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"}, + {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"}, ] [package.dependencies] @@ -156,7 +142,7 @@ typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.21.0b1)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] trio = ["trio (>=0.26.1)"] [[package]] @@ -172,13 +158,13 @@ files = [ [[package]] name = "async-timeout" -version = "4.0.3" +version = "5.0.1" description = "Timeout context manager for asyncio programs" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, - {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, ] [[package]] @@ -278,133 +264,148 @@ files = [ [[package]] name = "bitarray" -version = "2.9.2" +version = "2.9.3" description = "efficient arrays of booleans -- C extension" optional = false python-versions = "*" files = [ - {file = "bitarray-2.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:917905de565d9576eb20f53c797c15ba88b9f4f19728acabec8d01eee1d3756a"}, - {file = "bitarray-2.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b35bfcb08b7693ab4bf9059111a6e9f14e07d57ac93cd967c420db58ab9b71e1"}, - {file = "bitarray-2.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea1923d2e7880f9e1959e035da661767b5a2e16a45dfd57d6aa831e8b65ee1bf"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e0b63a565e8a311cc8348ff1262d5784df0f79d64031d546411afd5dd7ef67d"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cf0620da2b81946d28c0b16f3e3704d38e9837d85ee4f0652816e2609aaa4fed"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79a9b8b05f2876c7195a2b698c47528e86a73c61ea203394ff8e7a4434bda5c8"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:345c76b349ff145549652436235c5532e5bfe9db690db6f0a6ad301c62b9ef21"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e2936f090bf3f4d1771f44f9077ebccdbc0415d2b598d51a969afcb519df505"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f9346e98fc2abcef90b942973087e2462af6d3e3710e82938078d3493f7fef52"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e6ec283d4741befb86e8c3ea2e9ac1d17416c956d392107e45263e736954b1f7"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:962892646599529917ef26266091e4cb3077c88b93c3833a909d68dcc971c4e3"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e8da5355d7d75a52df5b84750989e34e39919ec7e59fafc4c104cc1607ab2d31"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:603e7d640e54ad764d2b4da6b61e126259af84f253a20f512dd10689566e5478"}, - {file = "bitarray-2.9.2-cp310-cp310-win32.whl", hash = "sha256:f00079f8e69d75c2a417de7961a77612bb77ef46c09bc74607d86de4740771ef"}, - {file = "bitarray-2.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:1bb33673e7f7190a65f0a940c1ef63266abdb391f4a3e544a47542d40a81f536"}, - {file = "bitarray-2.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fe71fd4b76380c2772f96f1e53a524da7063645d647a4fcd3b651bdd80ca0f2e"}, - {file = "bitarray-2.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d527172919cdea1e13994a66d9708a80c3d33dedcf2f0548e4925e600fef3a3a"}, - {file = "bitarray-2.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:052c5073bdcaa9dd10628d99d37a2f33ec09364b86dd1f6281e2d9f8d3db3060"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e064caa55a6ed493aca1eda06f8b3f689778bc780a75e6ad7724642ba5dc62f7"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:508069a04f658210fdeee85a7a0ca84db4bcc110cbb1d21f692caa13210f24a7"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4da73ebd537d75fa7bccfc2228fcaedea0803f21dd9d0bf0d3b67fef3c4af294"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cb378eaa65cd43098f11ff5d27e48ee3b956d2c00d2d6b5bfc2a09fe183be47"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d14c790b91f6cbcd9b718f88ed737c78939980c69ac8c7f03dd7e60040c12951"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eea9318293bc0ea6447e9ebfba600a62f3428bea7e9c6d42170ae4f481dbab3"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b76ffec27c7450b8a334f967366a9ebadaea66ee43f5b530c12861b1a991f503"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:76b76a07d4ee611405045c6950a1e24c4362b6b44808d4ad6eea75e0dbc59af4"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:c7d16beeaaab15b075990cd26963d6b5b22e8c5becd131781514a00b8bdd04bd"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60df43e868a615c7e15117a1e1c2e5e11f48f6457280eba6ddf8fbefbec7da99"}, - {file = "bitarray-2.9.2-cp311-cp311-win32.whl", hash = "sha256:e788608ed7767b7b3bbde6d49058bccdf94df0de9ca75d13aa99020cc7e68095"}, - {file = "bitarray-2.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:a23397da092ef0a8cfe729571da64c2fc30ac18243caa82ac7c4f965087506ff"}, - {file = "bitarray-2.9.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:90e3a281ffe3897991091b7c46fca38c2675bfd4399ffe79dfeded6c52715436"}, - {file = "bitarray-2.9.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bed637b674db5e6c8a97a4a321e3e4d73e72d50b5c6b29950008a93069cc64cd"}, - {file = "bitarray-2.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e49066d251dbbe4e6e3a5c3937d85b589e40e2669ad0eef41a00f82ec17d844b"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c4344e96642e2211fb3a50558feff682c31563a4c64529a931769d40832ca79"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aeb60962ec4813c539a59fbd4f383509c7222b62c3fb1faa76b54943a613e33a"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed0f7982f10581bb16553719e5e8f933e003f5b22f7d25a68bdb30fac630a6ff"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c71d1cabdeee0cdda4669168618f0e46b7dace207b29da7b63aaa1adc2b54081"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0ef2d0a6f1502d38d911d25609b44c6cc27bee0a4363dd295df78b075041b60"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6f71d92f533770fb027388b35b6e11988ab89242b883f48a6fe7202d238c61f8"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ba0734aa300757c924f3faf8148e1b8c247176a0ac8e16aefdf9c1eb19e868f7"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:d91406f413ccbf4af6ab5ae7bc78f772a95609f9ddd14123db36ef8c37116d95"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:87abb7f80c0a042f3fe8e5264da1a2756267450bb602110d5327b8eaff7682e7"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b558ce85579b51a2e38703877d1e93b7728a7af664dd45a34e833534f0b755d"}, - {file = "bitarray-2.9.2-cp312-cp312-win32.whl", hash = "sha256:dac2399ee2889fbdd3472bfc2ede74c34cceb1ccf29a339964281a16eb1d3188"}, - {file = "bitarray-2.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:48a30d718d1a6dfc22a49547450107abe8f4afdf2abdcbe76eb9ed88edc49498"}, - {file = "bitarray-2.9.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2c6be1b651fad8f3adb7a5aa12c65b612cd9b89530969af941844ae680f7d981"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5b399ae6ab975257ec359f03b48fc00b1c1cd109471e41903548469b8feae5c"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0b3543c8a1cb286ad105f11c25d8d0f712f41c5c55f90be39f0e5a1376c7d0b0"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:03adaacb79e2fb8f483ab3a67665eec53bb3fd0cd5dbd7358741aef124688db3"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ae5b0657380d2581e13e46864d147a52c1e2bbac9f59b59c576e42fa7d10cf0"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c1f4bf6ea8eb9d7f30808c2e9894237a96650adfecbf5f3643862dc5982f89e"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a8873089be2aa15494c0f81af1209f6e1237d762c5065bc4766c1b84321e1b50"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:677e67f50e2559efc677a4366707070933ad5418b8347a603a49a070890b19bc"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:a620d8ce4ea2f1c73c6b6b1399e14cb68c6915e2be3fad5808c2998ed55b4acf"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:64115ccabbdbe279c24c367b629c6b1d3da9ed36c7420129e27c338a3971bfee"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:5d6fb422772e75385b76ad1c52f45a68bd4efafd8be8d0061c11877be74c4d43"}, - {file = "bitarray-2.9.2-cp36-cp36m-win32.whl", hash = "sha256:852e202875dd6dfd6139ce7ec4e98dac2b17d8d25934dc99900831e81c3adaef"}, - {file = "bitarray-2.9.2-cp36-cp36m-win_amd64.whl", hash = "sha256:7dfefdcb0dc6a3ba9936063cec65a74595571b375beabe18742b3d91d087eefd"}, - {file = "bitarray-2.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b306c4cf66912511422060f7f5e1149c8bdb404f8e00e600561b0749fdd45659"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a09c4f81635408e3387348f415521d4b94198c562c23330f560596a6aaa26eaf"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5361413fd2ecfdf44dc8f065177dc6aba97fa80a91b815586cb388763acf7f8d"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e8a9475d415ef1eaae7942df6f780fa4dcd48fce32825eda591a17abba869299"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9b87baa7bfff9a5878fcc1bffe49ecde6e647a72a64b39a69cd8a2992a43a34"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb6b86cfdfc503e92cb71c68766a24565359136961642504a7cc9faf936d9c88"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cd56b8ae87ebc71bcacbd73615098e8a8de952ecbb5785b6b4e2b07da8a06e1f"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3fa909cfd675004aed8b4cc9df352415933656e0155a6209d878b7cb615c787e"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b069ca9bf728e0c5c5b60e00a89df9af34cc170c695c3bfa3b372d8f40288efb"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:6067f2f07a7121749858c7daa93c8774325c91590b3e81a299621e347740c2ae"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:321841cdad1dd0f58fe62e80e9c9c7531f8ebf8be93f047401e930dc47425b1e"}, - {file = "bitarray-2.9.2-cp37-cp37m-win32.whl", hash = "sha256:54e16e32e60973bb83c315de9975bc1bcfc9bd50bb13001c31da159bc49b0ca1"}, - {file = "bitarray-2.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:f4dcadb7b8034aa3491ee8f5a69b3d9ba9d7d1e55c3cc1fc45be313e708277f8"}, - {file = "bitarray-2.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c8919fdbd3bb596b104388b56ae4b266eb28da1f2f7dff2e1f9334a21840fe96"}, - {file = "bitarray-2.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eb7a9d8a2e400a1026de341ad48e21670a6261a75b06df162c5c39b0d0e7c8f4"}, - {file = "bitarray-2.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6ec84668dd7b937874a2b2c293cd14ba84f37be0d196dead852e0ada9815d807"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2de9a31c34e543ae089fd2a5ced01292f725190e379921384f695e2d7184bd3"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9521f49ae121a17c0a41e5112249e6fa7f6a571245b1118de81fb86e7c1bc1ce"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6cc6545d6d76542aee3d18c1c9485fb7b9812b8df4ebe52c4535ec42081b48f"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:856bbe1616425f71c0df5ef2e8755e878d9504d5a531acba58ab4273c52c117a"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4bba8042ea6ab331ade91bc435d81ad72fddb098e49108610b0ce7780c14e68"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a035da89c959d98afc813e3c62f052690d67cfd55a36592f25d734b70de7d4b0"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6d70b1579da7fb71be5a841a1f965d19aca0ef27f629cfc07d06b09aafd0a333"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:405b83bed28efaae6d86b6ab287c75712ead0adbfab2a1075a1b7ab47dad4d62"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:7eb8be687c50da0b397d5e0ab7ca200b5ebb639e79a9f5e285851d1944c94be9"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eceb551dfeaf19c609003a69a0cf8264b0efd7abc3791a11dfabf4788daf0d19"}, - {file = "bitarray-2.9.2-cp38-cp38-win32.whl", hash = "sha256:bb198c6ed1edbcdaf3d1fa3c9c9d1cdb7e179a5134ef5ee660b53cdec43b34e7"}, - {file = "bitarray-2.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:648d2f2685590b0103c67a937c2fb9e09bcc8dfb166f0c7c77bd341902a6f5b3"}, - {file = "bitarray-2.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ea816dc8f8e65841a8bbdd30e921edffeeb6f76efe6a1eb0da147b60d539d1cf"}, - {file = "bitarray-2.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4d0e32530f941c41eddfc77600ec89b65184cb909c549336463a738fab3ed285"}, - {file = "bitarray-2.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4a22266fb416a3b6c258bf7f83c9fe531ba0b755a56986a81ad69dc0f3bcc070"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc6d3e80dd8239850f2604833ff3168b28909c8a9357abfed95632cccd17e3e7"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f135e804986b12bf14f2cd1eb86674c47dea86c4c5f0fa13c88978876b97ebe6"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87580c7f7d14f7ec401eda7adac1e2a25e95153e9c339872c8ae61b3208819a1"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64b433e26993127732ac7b66a7821b2537c3044355798de7c5fcb0af34b8296f"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e497c535f2a9b68c69d36631bf2dba243e05eb343b00b9c7bbdc8c601c6802d"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e40b3cb9fa1edb4e0175d7c06345c49c7925fe93e39ef55ecb0bc40c906b0c09"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f2f8692f95c9e377eb19ca519d30d1f884b02feb7e115f798de47570a359e43f"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f0b84fc50b6dbeced4fa390688c07c10a73222810fb0e08392bd1a1b8259de36"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d656ad38c942e38a470ddbce26b5020e08e1a7ea86b8fd413bb9024b5189993a"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6ab0f1dbfe5070db98771a56aa14797595acd45a1af9eadfb193851a270e7996"}, - {file = "bitarray-2.9.2-cp39-cp39-win32.whl", hash = "sha256:0a99b23ac845a9ea3157782c97465e6ae026fe0c7c4c1ed1d88f759fd6ea52d9"}, - {file = "bitarray-2.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:9bbcfc7c279e8d74b076e514e669b683f77b4a2a328585b3f16d4c5259c91222"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:43847799461d8ba71deb4d97b47250c2c2fb66d82cd3cb8b4caf52bb97c03034"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4f44381b0a4bdf64416082f4f0e7140377ae962c0ced6f983c6d7bbfc034040"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a484061616fb4b158b80789bd3cb511f399d2116525a8b29b6334c68abc2310f"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1ff9e38356cc803e06134cf8ae9758e836ccd1b793135ef3db53c7c5d71e93bc"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b44105792fbdcfbda3e26ee88786790fda409da4c71f6c2b73888108cf8f062f"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7e913098de169c7fc890638ce5e171387363eb812579e637c44261460ac00aa2"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6fe315355cdfe3ed22ef355b8bdc81a805ca4d0949d921576560e5b227a1112"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f708e91fdbe443f3bec2df394ed42328fb9b0446dff5cb4199023ac6499e09fd"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b7b09489b71f9f1f64c0fa0977e250ec24500767dab7383ba9912495849cadf"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:128cc3488176145b9b137fdcf54c1c201809bbb8dd30b260ee40afe915843b43"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:21f21e7f56206be346bdbda2a6bdb2165a5e6a11821f88fd4911c5a6bbbdc7e2"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f4dd3af86dd8a617eb6464622fb64ca86e61ce99b59b5c35d8cd33f9c30603d"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6465de861aff7a2559f226b37982007417eab8c3557543879987f58b453519bd"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbaf2bb71d6027152d603f1d5f31e0dfd5e50173d06f877bec484e5396d4594b"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2f32948c86e0d230a296686db28191b67ed229756f84728847daa0c7ab7406e3"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be94e5a685e60f9d24532af8fe5c268002e9016fa80272a94727f435de3d1003"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5cc9381fd54f3c23ae1039f977bfd6d041a5c3c1518104f616643c3a5a73b15"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd926e8ae4d1ed1ac4a8f37212a62886292f692bc1739fde98013bf210c2d175"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:461a3dafb9d5fda0bb3385dc507d78b1984b49da3fe4c6d56c869a54373b7008"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:393cb27fd859af5fd9c16eb26b1c59b17b390ff66b3ae5d0dd258270191baf13"}, - {file = "bitarray-2.9.2.tar.gz", hash = "sha256:a8f286a51a32323715d77755ed959f94bef13972e9a2fe71b609e40e6d27957e"}, + {file = "bitarray-2.9.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2cf5f5400636c7dda797fd681795ce63932458620fe8c40955890380acba9f62"}, + {file = "bitarray-2.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3487b4718ffa5942fab777835ee36085f8dda7ec4bd0b28433efb117f84852b6"}, + {file = "bitarray-2.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:10f44b1e4994035408bea54d7bf0aec79744cad709706bedf28091a48bb7f1a4"}, + {file = "bitarray-2.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb5c16f97c65add6535748a9c98c70e7ca79759c38a2eb990127fef72f76111a"}, + {file = "bitarray-2.9.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13dbfc42971ba84e9c4ba070f720df6570285a3f89187f07ef422efcb611c19f"}, + {file = "bitarray-2.9.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c28076acfbe7f9a5494d7ae98094a6e209c390c340938845f294818ebf5e4d3"}, + {file = "bitarray-2.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7cdd21835936d9a66477836ca23b2cb63295142cb9d9158883e2c0f1f8f6bd"}, + {file = "bitarray-2.9.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f60887ab3a46e507fa6f8544d8d4b0748da48718591dfe3fe80c62bdea60f10"}, + {file = "bitarray-2.9.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f75e1abd4a37cba3002521d3f5e2b50ef4f4a74342207cad3f52468411d5d8ba"}, + {file = "bitarray-2.9.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dc63da9695383c048b83f5ab77eab35a55bbb2e77c7b6e762eba219929b45b84"}, + {file = "bitarray-2.9.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:6fe5a57b859d9bc9c2fd27c78c4b7b83158faf984202de6fb44618caeebfff10"}, + {file = "bitarray-2.9.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1fe5a37bd9441a5ecc2f6e71b43df7176fa376a542ef97484310b8b46a45649a"}, + {file = "bitarray-2.9.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8a16e42c169ca818d6a15b5dd5acd5d2a26af0fa0588e1036e0e58d01f8387d4"}, + {file = "bitarray-2.9.3-cp310-cp310-win32.whl", hash = "sha256:5e6b5e7940af3474ffaa930cd1ce8215181cbe864d6b5ddb67a15d3c15e935cd"}, + {file = "bitarray-2.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:c63dbb99ef2ab1281871678624f9c9a5f1682b826e668ce559275ec488b3fa8b"}, + {file = "bitarray-2.9.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:49fb93b488d180f5c84b79fe687c585a84bf0295ff035d63e09ee24ce1da0558"}, + {file = "bitarray-2.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c2944fb83bbc2aa7f29a713bc4f8c1318e54fa0d06a72bedd350a3fb4a4b91d8"}, + {file = "bitarray-2.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3612d9d3788dc62f1922c917b1539f1cdf02cecc9faef8ae213a8b36093136ca"}, + {file = "bitarray-2.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90a9300cdb7c99b1e692bb790cba8acecee1a345a83e58e28c94a0d87c522237"}, + {file = "bitarray-2.9.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1211ed66acbbb221fd7554abf4206a384d79e6192d5cb95325c5c361bbb52a74"}, + {file = "bitarray-2.9.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67757279386accf93eba76b8f97b5acf1664a3e350cbea5f300f53490f8764fd"}, + {file = "bitarray-2.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64e19c6a99c32f460c2613f797f77aa37d8e298891d00ea5355158cce80e11ec"}, + {file = "bitarray-2.9.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72734bd3775f43c5a75385730abb9f84fee6c627eb14f579de4be478f1615c8c"}, + {file = "bitarray-2.9.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a92703471b5d3316c7481bc1852f620f42f7a1b62be27f39d13694827635786f"}, + {file = "bitarray-2.9.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d5d77c81300ca430d4b195ccfbb629d6858258f541b6e96c6b11ec1563cd2681"}, + {file = "bitarray-2.9.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3ba8a29c0d091c952ced1607ce715f5e0524899f24333a493807d00f5938463d"}, + {file = "bitarray-2.9.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:418171d035b191dbe5e86cd2bfb5c3e1ae7d947edc22857a897d1c7251674ae5"}, + {file = "bitarray-2.9.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e0bd272eba256183be2a17488f9cb096d2e6d3435ecf2e28c1e0857c6d20749"}, + {file = "bitarray-2.9.3-cp311-cp311-win32.whl", hash = "sha256:cc3fd2b0637a619cf13e122bbcf4729ae214d5f25623675597e67c25f9edfe61"}, + {file = "bitarray-2.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:e1fc2a81a585dbe5e367682156e6350d908a56e2ffd6ca651b0af01994db596f"}, + {file = "bitarray-2.9.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dc47be026f76f1728af00dc7140cec8483fe2f0c476bbf2a59ef47865e00ff96"}, + {file = "bitarray-2.9.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:82b091742ff511cdb06f90af0d2c22e7af3dbff9b8212e2e0d88dfef6a8570b3"}, + {file = "bitarray-2.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d5edb4302a0e3a3d1d0eeb891de3c615d4cb7a446fb41c21eecdcfb29400a6f"}, + {file = "bitarray-2.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4786c5525069c19820549dd2f42d33632bc42959ad167138bd8ee5024b922b"}, + {file = "bitarray-2.9.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bfe2de2b4df61ccb9244871a0fdf1fff83be0c1bd7187048c3cf7f81c5fe631"}, + {file = "bitarray-2.9.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31e4f69538f95d2934587d957eea0d283162322dd1af29e57122b20b8cd60f92"}, + {file = "bitarray-2.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca44908b2bc08d8995770018638d62626706864f9c599b7818225a12f3dbc2c"}, + {file = "bitarray-2.9.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:279f8de5d251ee521e365df29c927d9b5732f1ed4f373d2dbbd278fcbad94ff5"}, + {file = "bitarray-2.9.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c49bb631b38431c09ecd534d56ef04264397d24d18c4ee6653c84e14ae09d92d"}, + {file = "bitarray-2.9.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:192bffc93ee9a5b6c833c98d1dcc81f5633ddd726b85e18341387d0c1d51f691"}, + {file = "bitarray-2.9.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c516cec28c6511df51d87033f40ec420324a2247469b0c989d344f4d27ea37d2"}, + {file = "bitarray-2.9.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:66241cb9a1c1db294f46cd440141e57e8242874e38f3f61877f72d92ae14768a"}, + {file = "bitarray-2.9.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ab1f0e7631110c89bea7b605c0c35832333eb9cc97e5de05d71c76d42a1858c9"}, + {file = "bitarray-2.9.3-cp312-cp312-win32.whl", hash = "sha256:42aa5bee6fe8ad3385eaf5c6585016bbc38a7b75efb52ce5c6f8e00e05237dfa"}, + {file = "bitarray-2.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:dc3fd647d845b94fac3652390866f921f914a17f3807a031c826f68dae3f43e3"}, + {file = "bitarray-2.9.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fcfcc1989e3e021a282624017b7fb754210f5332e933b1c3ebc79643727b6551"}, + {file = "bitarray-2.9.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:71b1e229a706798a9e106ca7b03d4c63455deb40b18c92950ec073a05a8f8285"}, + {file = "bitarray-2.9.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4bb49556d3d505d24c942a4206ad4d0d40e89fa3016a7ea6edc994d5c08d4a8e"}, + {file = "bitarray-2.9.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4466aa1e533a59d5f7fd37219d154ec3f2ba73fce3d8a2e11080ec475bc15fb"}, + {file = "bitarray-2.9.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a9b75adc0fd0bf278bea89dc3d679d74e10d2df98d3d074b7f3d36f323138818"}, + {file = "bitarray-2.9.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:701582bbbeac372b1cd8a3c9daf6c2336dc2d22e14373a6271d788bc4f2b6edc"}, + {file = "bitarray-2.9.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ea1f119668bbdbd68008031491515e84441e505163918819994b28f295f762c"}, + {file = "bitarray-2.9.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f400bc18a70bfdb073532c3054ecd78a0e64f96ff7b6140adde5b122580ec2b"}, + {file = "bitarray-2.9.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:aacff5656fb3e15cede7d02903da2634d376aa928d7a81ec8df19b0724d7972a"}, + {file = "bitarray-2.9.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8a2ae42a14cbf766d4478d7101da6359b0648dd813e60eb3486ac56ad2f5add3"}, + {file = "bitarray-2.9.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:616698edb547d10f0b960cb9f2e8629c55a420dd4c2b1ab46706f49a1815621d"}, + {file = "bitarray-2.9.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f277c50ba184929dfeed39b6cf9468e3446093521b0aeb52bd54a21ca08f5473"}, + {file = "bitarray-2.9.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:661237739b385c90d8837d5e96b06de093cc6e610236977e198f88f5a979686e"}, + {file = "bitarray-2.9.3-cp313-cp313-win32.whl", hash = "sha256:68acec6c19d798051f178a1197b76f891985f683f95a4b12811b68e58b080f5a"}, + {file = "bitarray-2.9.3-cp313-cp313-win_amd64.whl", hash = "sha256:3055720afdcfd7e8f630fa16db7bed7e55c9d0a1f4756195e3b250e203f3b436"}, + {file = "bitarray-2.9.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:72bf17d0e7d8a4f645655a07999d23e42472cbf2100b8dad7ce26586075241d7"}, + {file = "bitarray-2.9.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cfd332b5f1ad8c4dc3cc79ecef33c19b42d8d8e6a39fd5c9ecb5855be0b9723"}, + {file = "bitarray-2.9.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5b466ef1e48f25621c9d27e95deb5e33b8656827ed8aa530b972de73870bd1f"}, + {file = "bitarray-2.9.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:938cf26fdaf4d0adfac82d830c025523c5d36ddead0470b735286028231c1784"}, + {file = "bitarray-2.9.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0f766669e768ef9a2b23ecfa710b38b6a48da3f91755113c79320b207ae255d"}, + {file = "bitarray-2.9.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b6337c0c64044f35ddfb241143244aac707a68f34ae31a71dad115f773ccc8b"}, + {file = "bitarray-2.9.3-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:731b59540167f8b2b20f69f487ecee2339fc4657059906a16cb51acac17f89c3"}, + {file = "bitarray-2.9.3-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:4feed0539a9d6432361fc4d3820eea3a81fa631d542f166cf8430aad81a971da"}, + {file = "bitarray-2.9.3-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:eb65c96a42e73f35175ec738d67992ffdf054c20abee3933cfcfa2343fa1187d"}, + {file = "bitarray-2.9.3-cp36-cp36m-musllinux_1_2_s390x.whl", hash = "sha256:4f40ceac94d182de6135759d81289683ff3e4cf0da709bc5826a7fe00d754114"}, + {file = "bitarray-2.9.3-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:5b29f7844080a281635a231a37e99f0bd6f567af6cf19f4f6d212137f99a9cdf"}, + {file = "bitarray-2.9.3-cp36-cp36m-win32.whl", hash = "sha256:947cf522a3b339b73114d12417fd848fa01303dbaa7883ced4c87688dba5637c"}, + {file = "bitarray-2.9.3-cp36-cp36m-win_amd64.whl", hash = "sha256:ea794ea60d514d68777a87a74106110db7a4bbc2c46720e67010e3071afefb95"}, + {file = "bitarray-2.9.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c7bc7cb79dcac8bdce23b305e671c06eaeffb012fa065b8c33bc51df7e1733f0"}, + {file = "bitarray-2.9.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6380ad0f929ad9220abadd1c9b7234271c4b6ea9c753a88611d489e93a8f2e"}, + {file = "bitarray-2.9.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05f4e2451e2ad450b41ede8440e52c1fd798e81027e1dc2256292ec0787d3bf1"}, + {file = "bitarray-2.9.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7267885c98138f3707c710d5b08eedef150a3e5112c760cfe1200f3366fd7064"}, + {file = "bitarray-2.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:976957423cb41df8fe0eb811dbb53d8c5ab1ca3beec7a3ca7ff679be44a72714"}, + {file = "bitarray-2.9.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c0ec5141a69f73ed6ff17ea7344d5cc166e087095bfe3661dbb42b519e76aa16"}, + {file = "bitarray-2.9.3-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:218a1b7c0652a3c1020f903ded0f9768c3719fb6d43a6e9d346e985292992d35"}, + {file = "bitarray-2.9.3-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:cf0c9ebf2df280794244e1e12ed626357506ddaa2f0d6f69efe493ae7bbf4bf7"}, + {file = "bitarray-2.9.3-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:c450a04a7e091b57d4c0bd1531648522cd0ef26913ad0e5dea0432ea29b0e5c1"}, + {file = "bitarray-2.9.3-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:a212eb89a50e32ef4969387e44a7410447dc59587615e3966d090edc338a1b85"}, + {file = "bitarray-2.9.3-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:4269232026212ee6b73379b88a578107a6b36a6182307a49d5509686c7495261"}, + {file = "bitarray-2.9.3-cp37-cp37m-win32.whl", hash = "sha256:8a0fb358e6a43f216c3fb0871e2ac14c16563aec363c23bc2fbbb18f6201285d"}, + {file = "bitarray-2.9.3-cp37-cp37m-win_amd64.whl", hash = "sha256:a8368774cdc737eec8fce6f28d0abc095fbc0edccf8fab8d29fddc264b68def9"}, + {file = "bitarray-2.9.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7d0724a4fef6ded914075a3385ea2d05afdeed567902f83490ed4e7e7e75d9bf"}, + {file = "bitarray-2.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0e11b37c6dff6f41ebc49914628824ceb8c8d6ebd0fda2ebe3c0fe0c63e8621e"}, + {file = "bitarray-2.9.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:085f4081d72c7468f82f722a9f113e03a1f7a4c132ef4c2a4e680c5d78b7db00"}, + {file = "bitarray-2.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b530b5fbed2900634fbc43f546e384abd72ad9c49795ff5bd6a93cac1aa9c4d8"}, + {file = "bitarray-2.9.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09ff88e4385967571146fb0d270442de39393d44198f4d108f3350cfd6486f0b"}, + {file = "bitarray-2.9.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344bb212ddf87db4976a6711d274660a5d887da4fd3faafcdaa092152f85a6d"}, + {file = "bitarray-2.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc569c96b990f92fd5946d5b50501fee48b01a116a286d1de7961ebd9c6f06f3"}, + {file = "bitarray-2.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2fbbe7938ef8a7abe3e8519fa0578b51d2787f7171d3144e7d373551b5851fd"}, + {file = "bitarray-2.9.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0b5912fab904507b47217509b01aa903d7f98b6e725e490a7f01661f4d9a4fa7"}, + {file = "bitarray-2.9.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:0c836ccfca9cf60927256738ef234dfe500565492eff269610cdd1bca56801d0"}, + {file = "bitarray-2.9.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:af0e4441ebf51c18fc450962f1e201c96f444d63b17cc8dcf7c0b05111bd4486"}, + {file = "bitarray-2.9.3-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:9e9b57175fb6fe76d7ddd0647e06a25f6e23f4b54b5febf337c5a840ab37dc3b"}, + {file = "bitarray-2.9.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:7f7de81721ae9492926bd067007ac974692182bb83fc8f0ba330a67f37a018bd"}, + {file = "bitarray-2.9.3-cp38-cp38-win32.whl", hash = "sha256:4beafb6b6e344385480df6611fdebfcb3579bbb40636ce1ddf5e72fb744e095f"}, + {file = "bitarray-2.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:d8eaeca98900bd6f06a29cdef57999813a67d314f661d14901d71e04f4cf9f00"}, + {file = "bitarray-2.9.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:413965d9d384aef90e58b959f4a39f1d5060b145c26080297b7b4cf23cf38faa"}, + {file = "bitarray-2.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2fbb56f2bb89c3a15304a6c0ea56013dc340a98337d9bbd7fc5c21451dc05f8c"}, + {file = "bitarray-2.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b8a84f39f7885627711473872d8fc58fc7a0a1e4ecd9ddf42daf9a3643432742"}, + {file = "bitarray-2.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45147a9c8580e857c1344d15bd49d2b4387777bd582a2ede11be2ba740653f28"}, + {file = "bitarray-2.9.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed255423dc60c6b2d5c0d90c13dea2962a31929767fdf1c525ab3210269e75c5"}, + {file = "bitarray-2.9.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4f5bd02671ea5c4ad52bbfe0e8e8197b6e8fa85dec1e93a4a05448c19354cc65"}, + {file = "bitarray-2.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1c99c58f044549c93fb6d4cda22678deccaed19845eaa2e6917b5b7ca058f2d"}, + {file = "bitarray-2.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:921ee87681e32e17d1849e11c96eb6a8a7edaa1269dd26831013daf8546bde05"}, + {file = "bitarray-2.9.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2ed97d8ec40c4658d9f9aa8f26cb473f44fa1dbccba3fa3fbe4a102e38c6a8d7"}, + {file = "bitarray-2.9.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:9d7f7db37edb9c50c9aad6a18f2e87dd7dc5ff2a33406821804a03263fedb2ca"}, + {file = "bitarray-2.9.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:292f726cdb9efc744ed0a1d7453c44151526648148a28d9a2495cc7c7b2c62a8"}, + {file = "bitarray-2.9.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2cc94784238782a9376f307b1aa9a85ce77b6eded9f82d2fe062db7fdb02c645"}, + {file = "bitarray-2.9.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5051436b1d318f6ce0df3b2f8a60bfa66a54c1d9e8719d6cb6b448140e7061f2"}, + {file = "bitarray-2.9.3-cp39-cp39-win32.whl", hash = "sha256:a3d436c686ce59fd0b93438ed2c0e1d3e1716e56bce64b874d05b9f49f1ca5d1"}, + {file = "bitarray-2.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:f168fc45664266a560f2cb28a327041b7f69d4a7faad8ab89e0a1dd7c270a70d"}, + {file = "bitarray-2.9.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ae36787299cff41f212aee33cfe1defee13979a41552665a412b6ca3fa8f7eb8"}, + {file = "bitarray-2.9.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42afe48abb8eeb386d93e7f1165ace1dd027f136a8a31edd2b20bc57a0c071d7"}, + {file = "bitarray-2.9.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451ceecdb86bb95ae101b0d65c8c4524d692ae3666662fef8c89877ce17748c5"}, + {file = "bitarray-2.9.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4d67d3e3de2aede737b12cd75a84963700c941b77b579c14bd05517e05d7a9f"}, + {file = "bitarray-2.9.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2406d13ded84049b4238815a5821e44d6f58ba00fbb6b705b6ef8ccd88be8f03"}, + {file = "bitarray-2.9.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0db944fc2a048020fc940841ef46c0295b045d45a5a582cba69f78962a49a384"}, + {file = "bitarray-2.9.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25c603f141171a7d108773d5136d14e572c473e4cdb3fb464c39c8a138522eb2"}, + {file = "bitarray-2.9.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86c06b02705305cab0914d209caa24effda81316e2f2555a71a9aa399b75c5a5"}, + {file = "bitarray-2.9.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ddda45b24a802eaaca8f794e6267ff2b62de5fe7b900b76d6f662d95192bebf"}, + {file = "bitarray-2.9.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:81490623950d04870c6dd4d7e6df2eb68dd04eca8bec327895ebee8bbe0cc3c7"}, + {file = "bitarray-2.9.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a9e69ac6a514cc574891c24a50847022dac2fef8c3f4df530f92820a07337755"}, + {file = "bitarray-2.9.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:545c695ee69d26b41351ced4c76244d8b6225669fc0af3652ff8ed5a6b28325d"}, + {file = "bitarray-2.9.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbb2e6daabd2a64d091ac7460b0c5c5f9268199ae9a8ce32737cf5273987f1fa"}, + {file = "bitarray-2.9.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a969e5cf63144b944ee8d0a0739f53ef1ae54725b5e01258d690a8995d880526"}, + {file = "bitarray-2.9.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:73bbb9301ac9000f869c51db2cc5fcc6541985d3fcdcfe6e02f90c9e672a00be"}, + {file = "bitarray-2.9.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c07e346926488a85a48542d898f4168f3587ec42379fef0d18be301e08a3f27"}, + {file = "bitarray-2.9.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a26d8a14cd8ee496306f2afac34833502dd1ae826355af309333b6f252b23fe"}, + {file = "bitarray-2.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cef148ed37c892395ca182d6a235524165a9f765f4283d0a1ced891e7c43c67a"}, + {file = "bitarray-2.9.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94f35a8f0c8a50ee98a8bef9a070d0b68ecf623f20a2148cc039aba5557346a6"}, + {file = "bitarray-2.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b03207460daae828e2743874c84264e8d96a8c6156490279092b624cd5d2de08"}, + {file = "bitarray-2.9.3.tar.gz", hash = "sha256:9eff55cf189b0c37ba97156a00d640eb7392db58a8049be6f26ff2712b93fa89"}, ] [[package]] @@ -556,101 +557,116 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "3.3.2" +version = "3.4.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, + {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, + {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, ] [[package]] @@ -796,83 +812,73 @@ requests = "*" [[package]] name = "coverage" -version = "7.6.1" +version = "7.6.7" description = "Code coverage measurement for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, - {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, - {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, - {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, - {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, - {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, - {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, - {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, - {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, - {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, - {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, - {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, - {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, - {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, - {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, - {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, - {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, - {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, + {file = "coverage-7.6.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:108bb458827765d538abcbf8288599fee07d2743357bdd9b9dad456c287e121e"}, + {file = "coverage-7.6.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c973b2fe4dc445cb865ab369df7521df9c27bf40715c837a113edaa2aa9faf45"}, + {file = "coverage-7.6.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c6b24007c4bcd0b19fac25763a7cac5035c735ae017e9a349b927cfc88f31c1"}, + {file = "coverage-7.6.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:acbb8af78f8f91b3b51f58f288c0994ba63c646bc1a8a22ad072e4e7e0a49f1c"}, + {file = "coverage-7.6.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad32a981bcdedb8d2ace03b05e4fd8dace8901eec64a532b00b15217d3677dd2"}, + {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:34d23e28ccb26236718a3a78ba72744212aa383141961dd6825f6595005c8b06"}, + {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e25bacb53a8c7325e34d45dddd2f2fbae0dbc230d0e2642e264a64e17322a777"}, + {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af05bbba896c4472a29408455fe31b3797b4d8648ed0a2ccac03e074a77e2314"}, + {file = "coverage-7.6.7-cp310-cp310-win32.whl", hash = "sha256:796c9b107d11d2d69e1849b2dfe41730134b526a49d3acb98ca02f4985eeff7a"}, + {file = "coverage-7.6.7-cp310-cp310-win_amd64.whl", hash = "sha256:987a8e3da7da4eed10a20491cf790589a8e5e07656b6dc22d3814c4d88faf163"}, + {file = "coverage-7.6.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7e61b0e77ff4dddebb35a0e8bb5a68bf0f8b872407d8d9f0c726b65dfabe2469"}, + {file = "coverage-7.6.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1a5407a75ca4abc20d6252efeb238377a71ce7bda849c26c7a9bece8680a5d99"}, + {file = "coverage-7.6.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df002e59f2d29e889c37abd0b9ee0d0e6e38c24f5f55d71ff0e09e3412a340ec"}, + {file = "coverage-7.6.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:673184b3156cba06154825f25af33baa2671ddae6343f23175764e65a8c4c30b"}, + {file = "coverage-7.6.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69ad502f1a2243f739f5bd60565d14a278be58be4c137d90799f2c263e7049a"}, + {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60dcf7605c50ea72a14490d0756daffef77a5be15ed1b9fea468b1c7bda1bc3b"}, + {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9c2eb378bebb2c8f65befcb5147877fc1c9fbc640fc0aad3add759b5df79d55d"}, + {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c0317288f032221d35fa4cbc35d9f4923ff0dfd176c79c9b356e8ef8ef2dff4"}, + {file = "coverage-7.6.7-cp311-cp311-win32.whl", hash = "sha256:951aade8297358f3618a6e0660dc74f6b52233c42089d28525749fc8267dccd2"}, + {file = "coverage-7.6.7-cp311-cp311-win_amd64.whl", hash = "sha256:5e444b8e88339a2a67ce07d41faabb1d60d1004820cee5a2c2b54e2d8e429a0f"}, + {file = "coverage-7.6.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f07ff574986bc3edb80e2c36391678a271d555f91fd1d332a1e0f4b5ea4b6ea9"}, + {file = "coverage-7.6.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:49ed5ee4109258973630c1f9d099c7e72c5c36605029f3a91fe9982c6076c82b"}, + {file = "coverage-7.6.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3e8796434a8106b3ac025fd15417315d7a58ee3e600ad4dbcfddc3f4b14342c"}, + {file = "coverage-7.6.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3b925300484a3294d1c70f6b2b810d6526f2929de954e5b6be2bf8caa1f12c1"}, + {file = "coverage-7.6.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c42ec2c522e3ddd683dec5cdce8e62817afb648caedad9da725001fa530d354"}, + {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0266b62cbea568bd5e93a4da364d05de422110cbed5056d69339bd5af5685433"}, + {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e5f2a0f161d126ccc7038f1f3029184dbdf8f018230af17ef6fd6a707a5b881f"}, + {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c132b5a22821f9b143f87446805e13580b67c670a548b96da945a8f6b4f2efbb"}, + {file = "coverage-7.6.7-cp312-cp312-win32.whl", hash = "sha256:7c07de0d2a110f02af30883cd7dddbe704887617d5c27cf373362667445a4c76"}, + {file = "coverage-7.6.7-cp312-cp312-win_amd64.whl", hash = "sha256:fd49c01e5057a451c30c9b892948976f5d38f2cbd04dc556a82743ba8e27ed8c"}, + {file = "coverage-7.6.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:46f21663e358beae6b368429ffadf14ed0a329996248a847a4322fb2e35d64d3"}, + {file = "coverage-7.6.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:40cca284c7c310d622a1677f105e8507441d1bb7c226f41978ba7c86979609ab"}, + {file = "coverage-7.6.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77256ad2345c29fe59ae861aa11cfc74579c88d4e8dbf121cbe46b8e32aec808"}, + {file = "coverage-7.6.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87ea64b9fa52bf395272e54020537990a28078478167ade6c61da7ac04dc14bc"}, + {file = "coverage-7.6.7-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d608a7808793e3615e54e9267519351c3ae204a6d85764d8337bd95993581a8"}, + {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdd94501d65adc5c24f8a1a0eda110452ba62b3f4aeaba01e021c1ed9cb8f34a"}, + {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82c809a62e953867cf57e0548c2b8464207f5f3a6ff0e1e961683e79b89f2c55"}, + {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb684694e99d0b791a43e9fc0fa58efc15ec357ac48d25b619f207c41f2fd384"}, + {file = "coverage-7.6.7-cp313-cp313-win32.whl", hash = "sha256:963e4a08cbb0af6623e61492c0ec4c0ec5c5cf74db5f6564f98248d27ee57d30"}, + {file = "coverage-7.6.7-cp313-cp313-win_amd64.whl", hash = "sha256:14045b8bfd5909196a90da145a37f9d335a5d988a83db34e80f41e965fb7cb42"}, + {file = "coverage-7.6.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f2c7a045eef561e9544359a0bf5784b44e55cefc7261a20e730baa9220c83413"}, + {file = "coverage-7.6.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5dd4e4a49d9c72a38d18d641135d2fb0bdf7b726ca60a103836b3d00a1182acd"}, + {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c95e0fa3d1547cb6f021ab72f5c23402da2358beec0a8e6d19a368bd7b0fb37"}, + {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f63e21ed474edd23f7501f89b53280014436e383a14b9bd77a648366c81dce7b"}, + {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead9b9605c54d15be228687552916c89c9683c215370c4a44f1f217d2adcc34d"}, + {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:0573f5cbf39114270842d01872952d301027d2d6e2d84013f30966313cadb529"}, + {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e2c8e3384c12dfa19fa9a52f23eb091a8fad93b5b81a41b14c17c78e23dd1d8b"}, + {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:70a56a2ec1869e6e9fa69ef6b76b1a8a7ef709972b9cc473f9ce9d26b5997ce3"}, + {file = "coverage-7.6.7-cp313-cp313t-win32.whl", hash = "sha256:dbba8210f5067398b2c4d96b4e64d8fb943644d5eb70be0d989067c8ca40c0f8"}, + {file = "coverage-7.6.7-cp313-cp313t-win_amd64.whl", hash = "sha256:dfd14bcae0c94004baba5184d1c935ae0d1231b8409eb6c103a5fd75e8ecdc56"}, + {file = "coverage-7.6.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37a15573f988b67f7348916077c6d8ad43adb75e478d0910957394df397d2874"}, + {file = "coverage-7.6.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b6cce5c76985f81da3769c52203ee94722cd5d5889731cd70d31fee939b74bf0"}, + {file = "coverage-7.6.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ab9763d291a17b527ac6fd11d1a9a9c358280adb320e9c2672a97af346ac2c"}, + {file = "coverage-7.6.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6cf96ceaa275f071f1bea3067f8fd43bec184a25a962c754024c973af871e1b7"}, + {file = "coverage-7.6.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aee9cf6b0134d6f932d219ce253ef0e624f4fa588ee64830fcba193269e4daa3"}, + {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2bc3e45c16564cc72de09e37413262b9f99167803e5e48c6156bccdfb22c8327"}, + {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:623e6965dcf4e28a3debaa6fcf4b99ee06d27218f46d43befe4db1c70841551c"}, + {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:850cfd2d6fc26f8346f422920ac204e1d28814e32e3a58c19c91980fa74d8289"}, + {file = "coverage-7.6.7-cp39-cp39-win32.whl", hash = "sha256:c296263093f099da4f51b3dff1eff5d4959b527d4f2f419e16508c5da9e15e8c"}, + {file = "coverage-7.6.7-cp39-cp39-win_amd64.whl", hash = "sha256:90746521206c88bdb305a4bf3342b1b7316ab80f804d40c536fc7d329301ee13"}, + {file = "coverage-7.6.7-pp39.pp310-none-any.whl", hash = "sha256:0ddcb70b3a3a57581b450571b31cb774f23eb9519c2aaa6176d3a84c9fc57671"}, + {file = "coverage-7.6.7.tar.gz", hash = "sha256:d79d4826e41441c9a118ff045e4bccb9fdbdcb1d02413e7ea6eb5c87b5439d24"}, ] [package.dependencies] @@ -883,38 +889,38 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "43.0.1" +version = "43.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"}, - {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"}, - {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"}, - {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"}, - {file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"}, - {file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"}, - {file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"}, - {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"}, - {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"}, - {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"}, - {file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"}, - {file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"}, - {file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"}, - {file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"}, - {file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"}, + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, ] [package.dependencies] @@ -927,120 +933,102 @@ nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.1)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] name = "cytoolz" -version = "0.12.3" +version = "1.0.0" description = "Cython implementation of Toolz: High performance functional utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "cytoolz-0.12.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bbe58e26c84b163beba0fbeacf6b065feabc8f75c6d3fe305550d33f24a2d346"}, - {file = "cytoolz-0.12.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c51b66ada9bfdb88cf711bf350fcc46f82b83a4683cf2413e633c31a64df6201"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e70d9c615e5c9dc10d279d1e32e846085fe1fd6f08d623ddd059a92861f4e3dd"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a83f4532707963ae1a5108e51fdfe1278cc8724e3301fee48b9e73e1316de64f"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d028044524ee2e815f36210a793c414551b689d4f4eda28f8bbb0883ad78bf5f"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c2875bcd1397d0627a09a4f9172fa513185ad302c63758efc15b8eb33cc2a98"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:131ff4820e5d64a25d7ad3c3556f2d8aa65c66b3f021b03f8a8e98e4180dd808"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:04afa90d9d9d18394c40d9bed48c51433d08b57c042e0e50c8c0f9799735dcbd"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:dc1ca9c610425f9854323669a671fc163300b873731584e258975adf50931164"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:bfa3f8e01bc423a933f2e1c510cbb0632c6787865b5242857cc955cae220d1bf"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:f702e295dddef5f8af4a456db93f114539b8dc2a7a9bc4de7c7e41d169aa6ec3"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0fbad1fb9bb47e827d00e01992a099b0ba79facf5e5aa453be066033232ac4b5"}, - {file = "cytoolz-0.12.3-cp310-cp310-win32.whl", hash = "sha256:8587c3c3dbe78af90c5025288766ac10dc2240c1e76eb0a93a4e244c265ccefd"}, - {file = "cytoolz-0.12.3-cp310-cp310-win_amd64.whl", hash = "sha256:9e45803d9e75ef90a2f859ef8f7f77614730f4a8ce1b9244375734567299d239"}, - {file = "cytoolz-0.12.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3ac4f2fb38bbc67ff1875b7d2f0f162a247f43bd28eb7c9d15e6175a982e558d"}, - {file = "cytoolz-0.12.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0cf1e1e96dd86829a0539baf514a9c8473a58fbb415f92401a68e8e52a34ecd5"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08a438701c6141dd34eaf92e9e9a1f66e23a22f7840ef8a371eba274477de85d"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6b6f11b0d7ed91be53166aeef2a23a799e636625675bb30818f47f41ad31821"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7fde09384d23048a7b4ac889063761e44b89a0b64015393e2d1d21d5c1f534a"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d3bfe45173cc8e6c76206be3a916d8bfd2214fb2965563e288088012f1dabfc"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27513a5d5b6624372d63313574381d3217a66e7a2626b056c695179623a5cb1a"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d294e5e81ff094fe920fd545052ff30838ea49f9e91227a55ecd9f3ca19774a0"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:727b01a2004ddb513496507a695e19b5c0cfebcdfcc68349d3efd92a1c297bf4"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:fe1e1779a39dbe83f13886d2b4b02f8c4b10755e3c8d9a89b630395f49f4f406"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:de74ef266e2679c3bf8b5fc20cee4fc0271ba13ae0d9097b1491c7a9bcadb389"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e04d22049233394e0b08193aca9737200b4a2afa28659d957327aa780ddddf2"}, - {file = "cytoolz-0.12.3-cp311-cp311-win32.whl", hash = "sha256:20d36430d8ac809186736fda735ee7d595b6242bdb35f69b598ef809ebfa5605"}, - {file = "cytoolz-0.12.3-cp311-cp311-win_amd64.whl", hash = "sha256:780c06110f383344d537f48d9010d79fa4f75070d214fc47f389357dd4f010b6"}, - {file = "cytoolz-0.12.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:86923d823bd19ce35805953b018d436f6b862edd6a7c8b747a13d52b39ed5716"}, - {file = "cytoolz-0.12.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3e61acfd029bfb81c2c596249b508dfd2b4f72e31b7b53b62e5fb0507dd7293"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd728f4e6051af6af234651df49319da1d813f47894d4c3c8ab7455e01703a37"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fe8c6267caa7ec67bcc37e360f0d8a26bc3bdce510b15b97f2f2e0143bdd3673"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99462abd8323c52204a2a0ce62454ce8fa0f4e94b9af397945c12830de73f27e"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da125221b1fa25c690fcd030a54344cecec80074df018d906fc6a99f46c1e3a6"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c18e351956f70db9e2d04ff02f28e9a41839250d3f936a4c8a1eabd1c3094d2"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:921e6d2440ac758c4945c587b1d1d9b781b72737ac0c0ca5d5e02ca1db8bded2"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1651a9bd591a8326329ce1d6336f3129161a36d7061a4d5ea9e5377e033364cf"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:8893223b87c2782bd59f9c4bd5c7bf733edd8728b523c93efb91d7468b486528"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:e4d2961644153c5ae186db964aa9f6109da81b12df0f1d3494b4e5cf2c332ee2"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:71b6eb97f6695f7ba8ce69c49b707a351c5f46fd97f5aeb5f6f2fb0d6e72b887"}, - {file = "cytoolz-0.12.3-cp312-cp312-win32.whl", hash = "sha256:cee3de65584e915053412cd178729ff510ad5f8f585c21c5890e91028283518f"}, - {file = "cytoolz-0.12.3-cp312-cp312-win_amd64.whl", hash = "sha256:9eef0d23035fa4dcfa21e570961e86c375153a7ee605cdd11a8b088c24f707f6"}, - {file = "cytoolz-0.12.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9a38332cfad2a91e89405b7c18b3f00e2edc951c225accbc217597d3e4e9fde"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f501ae1353071fa5d6677437bbeb1aeb5622067dce0977cedc2c5ec5843b202"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56f899758146a52e2f8cfb3fb6f4ca19c1e5814178c3d584de35f9e4d7166d91"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:800f0526adf9e53d3c6acda748f4def1f048adaa780752f154da5cf22aa488a2"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0976a3fcb81d065473173e9005848218ce03ddb2ec7d40dd6a8d2dba7f1c3ae"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c835eab01466cb67d0ce6290601ebef2d82d8d0d0a285ed0d6e46989e4a7a71a"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4fba0616fcd487e34b8beec1ad9911d192c62e758baa12fcb44448b9b6feae22"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6f6e8207d732651e0204779e1ba5a4925c93081834570411f959b80681f8d333"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:8119bf5961091cfe644784d0bae214e273b3b3a479f93ee3baab97bbd995ccfe"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:7ad1331cb68afeec58469c31d944a2100cee14eac221553f0d5218ace1a0b25d"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:92c53d508fb8a4463acc85b322fa24734efdc66933a5c8661bdc862103a3373d"}, - {file = "cytoolz-0.12.3-cp37-cp37m-win32.whl", hash = "sha256:2c6dd75dae3d84fa8988861ab8b1189d2488cb8a9b8653828f9cd6126b5e7abd"}, - {file = "cytoolz-0.12.3-cp37-cp37m-win_amd64.whl", hash = "sha256:caf07a97b5220e6334dd32c8b6d8b2bd255ca694eca5dfe914bb5b880ee66cdb"}, - {file = "cytoolz-0.12.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ed0cfb9326747759e2ad81cb6e45f20086a273b67ac3a4c00b19efcbab007c60"}, - {file = "cytoolz-0.12.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:96a5a0292575c3697121f97cc605baf2fd125120c7dcdf39edd1a135798482ca"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b76f2f50a789c44d6fd7f773ec43d2a8686781cd52236da03f7f7d7998989bee"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2905fdccacc64b4beba37f95cab9d792289c80f4d70830b70de2fc66c007ec01"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ebe23028eac51251f22ba01dba6587d30aa9c320372ca0c14eeab67118ec3f"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96c715404a3825e37fe3966fe84c5f8a1f036e7640b2a02dbed96cac0c933451"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bac0adffc1b6b6a4c5f1fd1dd2161afb720bcc771a91016dc6bdba59af0a5d3"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:37441bf4a2a4e2e0fe9c3b0ea5e72db352f5cca03903977ffc42f6f6c5467be9"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:f04037302049cb30033f7fa4e1d0e44afe35ed6bfcf9b380fc11f2a27d3ed697"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:f37b60e66378e7a116931d7220f5352186abfcc950d64856038aa2c01944929c"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ec9be3e4b6f86ea8b294d34c990c99d2ba6c526ef1e8f46f1d52c263d4f32cd7"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0e9199c9e3fbf380a92b8042c677eb9e7ed4bccb126de5e9c0d26f5888d96788"}, - {file = "cytoolz-0.12.3-cp38-cp38-win32.whl", hash = "sha256:18cd61e078bd6bffe088e40f1ed02001387c29174750abce79499d26fa57f5eb"}, - {file = "cytoolz-0.12.3-cp38-cp38-win_amd64.whl", hash = "sha256:765b8381d4003ceb1a07896a854eee2c31ebc950a4ae17d1e7a17c2a8feb2a68"}, - {file = "cytoolz-0.12.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b4a52dd2a36b0a91f7aa50ca6c8509057acc481a24255f6cb07b15d339a34e0f"}, - {file = "cytoolz-0.12.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:581f1ce479769fe7eeb9ae6d87eadb230df8c7c5fff32138162cdd99d7fb8fc3"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46f505d4c6eb79585c8ad0b9dc140ef30a138c880e4e3b40230d642690e36366"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59276021619b432a5c21c01cda8320b9cc7dbc40351ffc478b440bfccd5bbdd3"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e44f4c25e1e7cf6149b499c74945a14649c8866d36371a2c2d2164e4649e7755"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c64f8e60c1dd69e4d5e615481f2d57937746f4a6be2d0f86e9e7e3b9e2243b5e"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33c63186f3bf9d7ef1347bc0537bb9a0b4111a0d7d6e619623cabc18fef0dc3b"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fdddb9d988405f24035234f1e8d1653ab2e48cc2404226d21b49a129aefd1d25"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6986632d8a969ea1e720990c818dace1a24c11015fd7c59b9fea0b65ef71f726"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0ba1cbc4d9cd7571c917f88f4a069568e5121646eb5d82b2393b2cf84712cf2a"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7d267ffc9a36c0a9a58c7e0adc9fa82620f22e4a72533e15dd1361f57fc9accf"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:95e878868a172a41fbf6c505a4b967309e6870e22adc7b1c3b19653d062711fa"}, - {file = "cytoolz-0.12.3-cp39-cp39-win32.whl", hash = "sha256:8e21932d6d260996f7109f2a40b2586070cb0a0cf1d65781e156326d5ebcc329"}, - {file = "cytoolz-0.12.3-cp39-cp39-win_amd64.whl", hash = "sha256:0d8edfbc694af6c9bda4db56643fb8ed3d14e47bec358c2f1417de9a12d6d1fb"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:55f9bd1ae6c2a27eda5abe2a0b65a83029d2385c5a1da7b8ef47af5905d7e905"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2d271393c378282727f1231d40391ae93b93ddc0997448acc21dd0cb6a1e56d"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee98968d6a66ee83a8ceabf31182189ab5d8598998c8ce69b6d5843daeb2db60"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01cfb8518828c1189200c02a5010ea404407fb18fd5589e29c126e84bbeadd36"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:456395d7aec01db32bf9e6db191d667347c78d8d48e77234521fa1078f60dabb"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:cd88028bb897fba99ddd84f253ca6bef73ecb7bdf3f3cf25bc493f8f97d3c7c5"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59b19223e7f7bd7a73ec3aa6fdfb73b579ff09c2bc0b7d26857eec2d01a58c76"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a79d72b08048a0980a59457c239555f111ac0c8bdc140c91a025f124104dbb4"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dd70141b32b717696a72b8876e86bc9c6f8eff995c1808e299db3541213ff82"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a1445c91009eb775d479e88954c51d0b4cf9a1e8ce3c503c2672d17252882647"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ca6a9a9300d5bda417d9090107c6d2b007683efc59d63cc09aca0e7930a08a85"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be6feb903d2a08a4ba2e70e950e862fd3be9be9a588b7c38cee4728150a52918"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b6f43f086e5a965d33d62a145ae121b4ccb6e0789ac0acc895ce084fec8c65"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:534fa66db8564d9b13872d81d54b6b09ae592c585eb826aac235bd6f1830f8ad"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:fea649f979def23150680de1bd1d09682da3b54932800a0f90f29fc2a6c98ba8"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a447247ed312dd64e3a8d9483841ecc5338ee26d6e6fbd29cd373ed030db0240"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba3f843aa89f35467b38c398ae5b980a824fdbdb94065adc6ec7c47a0a22f4c7"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:582c22f97a380211fb36a7b65b1beeb84ea11d82015fa84b054be78580390082"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47feb089506fc66e1593cd9ade3945693a9d089a445fbe9a11385cab200b9f22"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ba9002d2f043943744a9dc8e50a47362bcb6e6f360dc0a1abcb19642584d87bb"}, - {file = "cytoolz-0.12.3.tar.gz", hash = "sha256:4503dc59f4ced53a54643272c61dc305d1dbbfbd7d6bdf296948de9f34c3a282"}, + {file = "cytoolz-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ecf5a887acb8f079ab1b81612b1c889bcbe6611aa7804fd2df46ed310aa5a345"}, + {file = "cytoolz-1.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef0ef30c1e091d4d59d14d8108a16d50bd227be5d52a47da891da5019ac2f8e4"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7df2dfd679f0517a96ced1cdd22f5c6c6aeeed28d928a82a02bf4c3fd6fd7ac4"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c51452c938e610f57551aa96e34924169c9100c0448bac88c2fb395cbd3538c"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6433f03910c5e5345d82d6299457c26bf33821224ebb837c6b09d9cdbc414a6c"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:389ec328bb535f09e71dfe658bf0041f17194ca4cedaacd39bafe7893497a819"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c64658e1209517ce4b54c1c9269a508b289d8d55fc742760e4b8579eacf09a33"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f6039a9bd5bb988762458b9ca82b39e60ca5e5baae2ba93913990dcc5d19fa88"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85c9c8c4465ed1b2c8d67003809aec9627b129cb531d2f6cf0bbfe39952e7e4d"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:49375aad431d76650f94877afb92f09f58b6ff9055079ef4f2cd55313f5a1b39"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4c45106171c824a61e755355520b646cb35a1987b34bbf5789443823ee137f63"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3b319a7f0fed5db07d189db4046162ebc183c108df3562a65ba6ebe862d1f634"}, + {file = "cytoolz-1.0.0-cp310-cp310-win32.whl", hash = "sha256:9770e1b09748ad0d751853d994991e2592a9f8c464a87014365f80dac2e83faa"}, + {file = "cytoolz-1.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:20194dd02954c00c1f0755e636be75a20781f91a4ac9270c7f747e82d3c7f5a5"}, + {file = "cytoolz-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dffc22fd2c91be64dbdbc462d0786f8e8ac9a275cfa1869a1084d1867d4f67e0"}, + {file = "cytoolz-1.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a99e7e29274e293f4ffe20e07f76c2ac753a78f1b40c1828dfc54b2981b2f6c4"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c507a3e0a45c41d66b43f96797290d75d1e7a8549aa03a4a6b8854fdf3f7b8d8"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:643a593ec272ef7429099e1182a22f64ec2696c00d295d2a5be390db1b7ff176"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6ce38e2e42cbae30446190c59b92a8a9029e1806fd79eaf88f48b0fe33003893"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810a6a168b8c5ecb412fbae3dd6f7ed6c6253a63caf4174ee9794ebd29b2224f"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ce8a2a85c0741c1b19b16e6782c4a5abc54c3caecda66793447112ab2fa9884"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ea4ac72e6b830861035c4c7999af8e55813f57c6d1913a3d93cc4a6babc27bf7"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a09cdfb21dfb38aa04df43e7546a41f673377eb5485da88ceb784e327ec7603b"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:658dd85deb375ff7af990a674e5c9058cef1c9d1f5dc89bc87b77be499348144"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9715d1ff5576919d10b68f17241375f6a1eec8961c25b78a83e6ef1487053f39"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f370a1f1f1afc5c1c8cc5edc1cfe0ba444263a0772af7ce094be8e734f41769d"}, + {file = "cytoolz-1.0.0-cp311-cp311-win32.whl", hash = "sha256:dbb2ec1177dca700f3db2127e572da20de280c214fc587b2a11c717fc421af56"}, + {file = "cytoolz-1.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:0983eee73df86e54bb4a79fcc4996aa8b8368fdbf43897f02f9c3bf39c4dc4fb"}, + {file = "cytoolz-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:10e3986066dc379e30e225b230754d9f5996aa8d84c2accc69c473c21d261e46"}, + {file = "cytoolz-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:16576f1bb143ee2cb9f719fcc4b845879fb121f9075c7c5e8a5ff4854bd02fc6"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3faa25a1840b984315e8b3ae517312375f4273ffc9a2f035f548b7f916884f37"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:781fce70a277b20fd95dc66811d1a97bb07b611ceea9bda8b7dd3c6a4b05d59a"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7a562c25338eb24d419d1e80a7ae12133844ce6fdeb4ab54459daf250088a1b2"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f29d8330aaf070304f7cd5cb7e73e198753624eb0aec278557cccd460c699b5b"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98a96c54aa55ed9c7cdb23c2f0df39a7b4ee518ac54888480b5bdb5ef69c7ef0"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:287d6d7f475882c2ddcbedf8da9a9b37d85b77690779a2d1cdceb5ae3998d52e"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:05a871688df749b982839239fcd3f8ec3b3b4853775d575ff9cd335fa7c75035"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:28bb88e1e2f7d6d4b8e0890b06d292c568984d717de3e8381f2ca1dd12af6470"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:576a4f1fc73d8836b10458b583f915849da6e4f7914f4ecb623ad95c2508cad5"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:509ed3799c47e4ada14f63e41e8f540ac6e2dab97d5d7298934e6abb9d3830ec"}, + {file = "cytoolz-1.0.0-cp312-cp312-win32.whl", hash = "sha256:9ce25f02b910630f6dc2540dd1e26c9326027ddde6c59f8cab07c56acc70714c"}, + {file = "cytoolz-1.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:7e53cfcce87e05b7f0ae2fb2b3e5820048cd0bb7b701e92bd8f75c9fbb7c9ae9"}, + {file = "cytoolz-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7d56569dfe67a39ce74ffff0dc12cf0a3d1aae709667a303fe8f2dd5fd004fdf"}, + {file = "cytoolz-1.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:035c8bb4706dcf93a89fb35feadff67e9301935bf6bb864cd2366923b69d9a29"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27c684799708bdc7ee7acfaf464836e1b4dec0996815c1d5efd6a92a4356a562"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44ab57cfc922b15d94899f980d76759ef9e0256912dfab70bf2561bea9cd5b19"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:478af5ecc066da093d7660b23d0b465a7f44179739937afbded8af00af412eb6"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da1f82a7828a42468ea2820a25b6e56461361390c29dcd4d68beccfa1b71066b"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c371b3114d38ee717780b239179e88d5d358fe759a00dcf07691b8922bbc762"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:90b343b2f3b3e77c3832ba19b0b17e95412a5b2e715b05c23a55ba525d1fca49"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89a554a9ba112403232a54e15e46ff218b33020f3f45c4baf6520ab198b7ad93"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:0d603f5e2b1072166745ecdd81384a75757a96a704a5642231eb51969f919d5f"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:122ef2425bd3c0419e6e5260d0b18cd25cf74de589cd0184e4a63b24a4641e2e"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:8819f1f97ebe36efcaf4b550e21677c46ac8a41bed482cf66845f377dd20700d"}, + {file = "cytoolz-1.0.0-cp38-cp38-win32.whl", hash = "sha256:fcddbb853770dd6e270d89ea8742f0aa42c255a274b9e1620eb04e019b79785e"}, + {file = "cytoolz-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:ca526905a014a38cc23ae78635dc51d0462c5c24425b22c08beed9ff2ee03845"}, + {file = "cytoolz-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:05df5ff1cdd198fb57e7368623662578c950be0b14883cadfb9ee4098415e1e5"}, + {file = "cytoolz-1.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04a84778f48ebddb26948971dc60948907c876ba33b13f9cbb014fe65b341fc2"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f65283b618b4c4df759f57bcf8483865a73f7f268e6d76886c743407c8d26c1c"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:388cd07ee9a9e504c735a0a933e53c98586a1c301a64af81f7aa7ff40c747520"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:06d09e9569cfdfc5c082806d4b4582db8023a3ce034097008622bcbac7236f38"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9502bd9e37779cc9893cbab515a474c2ab6af61ed22ac2f7e16033db18fcaa85"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:364c2fda148def38003b2c86e8adde1d2aab12411dd50872c244a815262e2fda"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9b2e945617325242687189966335e785dc0fae316f4c1825baacf56e5a97e65f"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0f16907fdc724c55b16776bdb7e629deae81d500fe48cfc3861231753b271355"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d3206c81ca3ba2d7b8fe78f2e116e3028e721148be753308e88dcbbc370bca52"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:becce4b13e110b5ac6b23753dcd0c977f4fdccffa31898296e13fd1109e517e3"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:69a7e5e98fd446079b8b8ec5987aec9a31ec3570a6f494baefa6800b783eaf22"}, + {file = "cytoolz-1.0.0-cp39-cp39-win32.whl", hash = "sha256:b1707b6c3a91676ac83a28a231a14b337dbb4436b937e6b3e4fd44209852a48b"}, + {file = "cytoolz-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:11d48b8521ef5fe92e099f4fc00717b5d0789c3c90d5d84031b6d3b17dee1700"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e672712d5dc3094afc6fb346dd4e9c18c1f3c69608ddb8cf3b9f8428f9c26a5c"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86fb208bfb7420e1d0d20065d661310e4a8a6884851d4044f47d37ed4cd7410e"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dbe5fe3b835859fc559eb59bf2775b5a108f7f2cfab0966f3202859d787d8fd"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cace092dfda174eed09ed871793beb5b65633963bcda5b1632c73a5aceea1ce"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f7a9d816af3be9725c70efe0a6e4352a45d3877751b395014b8eb2f79d7d8d9d"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:caa7ef840847a23b379e6146760e3a22f15f445656af97e55a435c592125cfa5"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:921082fff09ff6e40c12c87b49be044492b2d6bb01d47783995813b76680c7b2"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a32f1356f3b64dda883583383966948604ac69ca0b7fbcf5f28856e5f9133b4e"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af793b1738e4191d15a92e1793f1ffea9f6461022c7b2442f3cb1ea0a4f758a"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:51dfda3983fcc59075c534ce54ca041bb3c80e827ada5d4f25ff7b4049777f94"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:acfb8780c04d29423d14aaab74cd1b7b4beaba32f676e7ace02c9acfbf532aba"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99f39dcc46416dca3eb23664b73187b77fb52cd8ba2ddd8020a292d8f449db67"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c0d56b3721977806dcf1a68b0ecd56feb382fdb0f632af1a9fc5ab9b662b32c6"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d346620abc8c83ae634136e700432ad6202faffcc24c5ab70b87392dcda8a1"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:df0c81197fc130de94c09fc6f024a6a19c98ba8fe55c17f1e45ebba2e9229079"}, + {file = "cytoolz-1.0.0.tar.gz", hash = "sha256:eb453b30182152f9917a5189b7d99046b6ce90cdf8aeb0feff4b2683e600defd"}, ] [package.dependencies] @@ -1051,13 +1039,13 @@ cython = ["cython"] [[package]] name = "distlib" -version = "0.3.8" +version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, - {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] [[package]] @@ -1292,13 +1280,13 @@ test = ["pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"] [[package]] name = "eth-utils" -version = "2.3.1" +version = "2.3.2" description = "eth-utils: Common utility functions for python code that interacts with Ethereum" optional = false -python-versions = ">=3.7,<4" +python-versions = "<4,>=3.7" files = [ - {file = "eth-utils-2.3.1.tar.gz", hash = "sha256:56a969b0536d4969dcb27e580521de35abf2dbed8b1bf072b5c80770c4324e27"}, - {file = "eth_utils-2.3.1-py3-none-any.whl", hash = "sha256:614eedc5ffcaf4e6708ca39e23b12bd69526a312068c1170c773bd1307d13972"}, + {file = "eth_utils-2.3.2-py3-none-any.whl", hash = "sha256:4470be372674a25b8440b69cb35bda634a079876930853814ea307248c3d198b"}, + {file = "eth_utils-2.3.2.tar.gz", hash = "sha256:1986d704b29202386c9bc4b27b948a134320c11c8104c45ca367e4663ae7d10e"}, ] [package.dependencies] @@ -1308,10 +1296,10 @@ eth-typing = ">=3.0.0" toolz = {version = ">0.8.2", markers = "implementation_name == \"pypy\""} [package.extras] -dev = ["black (>=23)", "build (>=0.9.0)", "bumpversion (>=0.5.3)", "eth-hash[pycryptodome]", "flake8 (==3.8.3)", "hypothesis (>=4.43.0)", "ipython", "isort (>=5.11.0)", "mypy (==0.971)", "pydocstyle (>=5.0.0)", "pytest (>=7.0.0)", "pytest-watch (>=4.1.0)", "pytest-xdist (>=2.4.0)", "sphinx (>=5.0.0)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=21,<22)", "tox (>=4.0.0)", "twine", "types-setuptools", "wheel"] +dev = ["black (>=23)", "build (>=0.9.0)", "bumpversion (>=0.5.3)", "eth-hash[pycryptodome]", "flake8 (==3.8.3)", "hypothesis (>=4.43.0)", "ipython", "isort (>=5.11.0)", "mypy (==0.991)", "pydocstyle (>=5.0.0)", "pytest (>=7.0.0)", "pytest-watch (>=4.1.0)", "pytest-xdist (>=2.4.0)", "sphinx (>=5.0.0)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=21,<22)", "tox (>=4.0.0)", "twine", "types-setuptools", "wheel"] docs = ["sphinx (>=5.0.0)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=21,<22)"] -lint = ["black (>=23)", "flake8 (==3.8.3)", "isort (>=5.11.0)", "mypy (==0.971)", "pydocstyle (>=5.0.0)", "types-setuptools"] -test = ["hypothesis (>=4.43.0)", "mypy (==0.971)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)", "types-setuptools"] +lint = ["black (>=23)", "flake8 (==3.8.3)", "isort (>=5.11.0)", "mypy (==0.991)", "pydocstyle (>=5.0.0)", "types-setuptools"] +test = ["hypothesis (>=4.43.0)", "mypy (==0.991)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)", "types-setuptools"] [[package]] name = "exceptiongroup" @@ -1366,99 +1354,114 @@ dotenv = ["python-dotenv"] [[package]] name = "frozenlist" -version = "1.4.1" +version = "1.5.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.8" files = [ - {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, - {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, - {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"}, - {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"}, - {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"}, - {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"}, - {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"}, - {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"}, - {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"}, - {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"}, - {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"}, - {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"}, - {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"}, - {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, - {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, ] [[package]] name = "googleapis-common-protos" -version = "1.65.0" +version = "1.66.0" description = "Common protobufs used in Google APIs" optional = false python-versions = ">=3.7" files = [ - {file = "googleapis_common_protos-1.65.0-py2.py3-none-any.whl", hash = "sha256:2972e6c496f435b92590fd54045060867f3fe9be2c82ab148fc8885035479a63"}, - {file = "googleapis_common_protos-1.65.0.tar.gz", hash = "sha256:334a29d07cddc3aa01dee4988f9afd9b2916ee2ff49d6b757155dc0d197852c0"}, + {file = "googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed"}, + {file = "googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c"}, ] [package.dependencies] @@ -1497,13 +1500,13 @@ websockets = ["websockets (>=10,<12)"] [[package]] name = "graphql-core" -version = "3.2.4" +version = "3.2.5" description = "GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL." optional = false python-versions = "<4,>=3.6" files = [ - {file = "graphql-core-3.2.4.tar.gz", hash = "sha256:acbe2e800980d0e39b4685dd058c2f4042660b89ebca38af83020fd872ff1264"}, - {file = "graphql_core-3.2.4-py3-none-any.whl", hash = "sha256:1604f2042edc5f3114f49cac9d77e25863be51b23a54a61a23245cf32f6476f0"}, + {file = "graphql_core-3.2.5-py3-none-any.whl", hash = "sha256:2f150d5096448aa4f8ab26268567bbfeef823769893b39c1a2e1409590939c8a"}, + {file = "graphql_core-3.2.5.tar.gz", hash = "sha256:e671b90ed653c808715645e3998b7ab67d382d55467b7e2978549111bbabf8d5"}, ] [[package]] @@ -1653,18 +1656,15 @@ requests = ">=2.11" [[package]] name = "isodate" -version = "0.6.1" +version = "0.7.2" description = "An ISO 8601 date/time/duration parser and formatter" optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, - {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, + {file = "isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15"}, + {file = "isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6"}, ] -[package.dependencies] -six = "*" - [[package]] name = "isort" version = "5.13.2" @@ -1822,71 +1822,72 @@ test = ["pytest"] [[package]] name = "markupsafe" -version = "2.1.5" +version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] [[package]] @@ -2058,18 +2059,18 @@ nicer-shell = ["ipython"] [[package]] name = "open-aea" -version = "1.57.0" +version = "1.60.0" description = "Open Autonomous Economic Agent framework (without vendor lock-in)" optional = false python-versions = ">=3.8" files = [ - {file = "open_aea-1.57.0-py3-none-any.whl", hash = "sha256:19714577414fa7ce7c9a43e4dd9d7849189b77b158a3d60e75cb43a7ea0eecd5"}, - {file = "open_aea-1.57.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:a56d0b6dfa5bcdcf24d0edd167bf0e90c205bb6f20b59bcee0975a8dbd1811fe"}, - {file = "open_aea-1.57.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:a03df0c0e8354a8a0d940969252dbdf633f9b5698ce499e1cd30f694f7635151"}, - {file = "open_aea-1.57.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:1fb3c78c7877bcd41d33b3bd5ee51f2cfe62efa2a07f193838133c771fff5237"}, - {file = "open_aea-1.57.0-py3-none-win32.whl", hash = "sha256:a068d8710d3e235499ae866d167825bca1b56314f255b05591b2e362c1f9b3a6"}, - {file = "open_aea-1.57.0-py3-none-win_amd64.whl", hash = "sha256:eb2ef61a7e7d74f4b99fc27fdbad7350320c18528f85678fe1a6503736ef2de5"}, - {file = "open_aea-1.57.0.tar.gz", hash = "sha256:7cef260f56a4214752ea6242d43cf20a7488815f7e2de53ff2836b57a650a385"}, + {file = "open_aea-1.60.0-py3-none-any.whl", hash = "sha256:7463b95973d1594bfc6aa8bd5f561f9a683dcec2adb06c44084c896325f2f5ea"}, + {file = "open_aea-1.60.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:bf3ca4803a61d78133e130d74e0a7c02007318ff4ec4450a980e604ee83d8941"}, + {file = "open_aea-1.60.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:e94db427beb8f77e51cc2c8f0482fcb0b12464d62a59b3a50bd5594d21d22d6a"}, + {file = "open_aea-1.60.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:85b7695f80c528336d3af4c052c7bcd3413101e9034c507d6246304de9d16220"}, + {file = "open_aea-1.60.0-py3-none-win32.whl", hash = "sha256:fc3d49277f526d709340ef6d8839d7a7293ef948e01b7eaaf875ffb302d8d3aa"}, + {file = "open_aea-1.60.0-py3-none-win_amd64.whl", hash = "sha256:ee5a2584adc9cd7508903796e9b34fd6ca54f194449ad0da2ebf003226a0144b"}, + {file = "open_aea-1.60.0.tar.gz", hash = "sha256:531a1a985bdf385b3332232920876c9056c88b8d6d3ab37c7b5c10a15493cce6"}, ] [package.dependencies] @@ -2097,13 +2098,13 @@ test-tools = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>= [[package]] name = "open-aea-cli-ipfs" -version = "1.57.0" +version = "1.60.0" description = "CLI extension for open AEA framework wrapping IPFS functionality." optional = false python-versions = "*" files = [ - {file = "open_aea_cli_ipfs-1.57.0-py3-none-any.whl", hash = "sha256:6cbefd42a682f1f0c116e527f728998f61a9bc930995acdd754b5335e54ad97d"}, - {file = "open_aea_cli_ipfs-1.57.0.tar.gz", hash = "sha256:8254a1ecef4e7e3dbc9ba990243413963a0d5055b336c1ce6f2e0ae4ddaa25ce"}, + {file = "open_aea_cli_ipfs-1.60.0-py3-none-any.whl", hash = "sha256:d32493650d4d86210cfd56848748d8a3ef9eb439cd064153a3efd4a961eaf31a"}, + {file = "open_aea_cli_ipfs-1.60.0.tar.gz", hash = "sha256:e90bc224ebc47bfd56a5f34739300ab8b8615e077072b5a202af398b92028d50"}, ] [package.dependencies] @@ -2113,13 +2114,13 @@ pytest = ">=7.0.0,<7.3.0" [[package]] name = "open-aea-ledger-cosmos" -version = "1.57.0" +version = "1.60.0" description = "Python package wrapping the public and private key cryptography and ledger api of Cosmos." optional = false python-versions = "*" files = [ - {file = "open_aea_ledger_cosmos-1.57.0-py3-none-any.whl", hash = "sha256:dfedc58ae4cebd938b51834f3eca5e2c8ffce95661a84212c3c4b6341e8952d4"}, - {file = "open_aea_ledger_cosmos-1.57.0.tar.gz", hash = "sha256:35ae99e188a256bfcb06d510d161643922d6ed1e639eed92b3b5f7ee3576d5bf"}, + {file = "open_aea_ledger_cosmos-1.60.0-py3-none-any.whl", hash = "sha256:53a1c8a04a12a9e18a03a7ecc1988efef6e3712cf6408ae4c46c18d8d66fba31"}, + {file = "open_aea_ledger_cosmos-1.60.0.tar.gz", hash = "sha256:df48bf695de632b768baf968e6de66e27d7350af2edfac715a5635389d891b75"}, ] [package.dependencies] @@ -2131,13 +2132,13 @@ pycryptodome = ">=3.10.1,<4.0.0" [[package]] name = "open-aea-ledger-ethereum" -version = "1.57.0" +version = "1.60.0" description = "Python package wrapping the public and private key cryptography and ledger api of Ethereum." optional = false python-versions = "*" files = [ - {file = "open_aea_ledger_ethereum-1.57.0-py3-none-any.whl", hash = "sha256:8ad775344baa77fc6b8e5a92edfa6d7e32f3361a885113379733e7ce4e4d6405"}, - {file = "open_aea_ledger_ethereum-1.57.0.tar.gz", hash = "sha256:7c16858ad751db3906ec72046c821ad5b057c5e47edbc951da99c52714fb8c5e"}, + {file = "open_aea_ledger_ethereum-1.60.0-py3-none-any.whl", hash = "sha256:0026ae8faa987f651234d3d125998a445b414a65847a121fd033f49b99de0bf0"}, + {file = "open_aea_ledger_ethereum-1.60.0.tar.gz", hash = "sha256:932219edff66500f29f17ab47d487f2995e4770456031cfbacfc0eea94571c6c"}, ] [package.dependencies] @@ -2148,30 +2149,30 @@ web3 = ">=6.0.0,<7" [[package]] name = "open-aea-test-autonomy" -version = "0.16.1" +version = "0.18.3" description = "Plugin containing test tools for open-autonomy packages." optional = false python-versions = "*" files = [ - {file = "open_aea_test_autonomy-0.16.1-py3-none-any.whl", hash = "sha256:4d6538604d4f93dc5d35782e19c5732357cc09c63ac62551895fb441a2153af3"}, - {file = "open_aea_test_autonomy-0.16.1.tar.gz", hash = "sha256:041630e24bb5fe88fd9eaddca5c4c6f268338fbd3561f6867f33c3aea5a99d5a"}, + {file = "open_aea_test_autonomy-0.18.3-py3-none-any.whl", hash = "sha256:e5a188220b8dc10268e7f7d28159cc63d97dea2a9ff3b533dbf83e0ac9bd184e"}, + {file = "open_aea_test_autonomy-0.18.3.tar.gz", hash = "sha256:72c400cae3bf38035964bfc2befe65502d63fabe2139f3375ca299e08cc2d9ee"}, ] [package.dependencies] docker = "6.1.2" -open-aea = {version = ">=1.57.0,<2.0.0", extras = ["all"]} -open-aea-ledger-ethereum = ">=1.57.0,<2.0.0" +open-aea = {version = ">=1.60.0,<2.0.0", extras = ["all"]} +open-aea-ledger-ethereum = ">=1.60.0,<2.0.0" pytest = "7.2.1" [[package]] name = "open-autonomy" -version = "0.16.1" +version = "0.18.3" description = "A framework for the creation of autonomous agent services." optional = false python-versions = ">=3.8" files = [ - {file = "open_autonomy-0.16.1-py3-none-any.whl", hash = "sha256:fec8611e0730d24debf53ed1f6a238a178eb8afc6ada422fbbb027b628e5ef72"}, - {file = "open_autonomy-0.16.1.tar.gz", hash = "sha256:bc670251a5d5859a807f9a7f5a1437c073a0a4b4060378f713a63d6fcb6930e7"}, + {file = "open_autonomy-0.18.3-py3-none-any.whl", hash = "sha256:bc26908a73c8a72c42ec44cdd7d8ddbc6a52688fddd02328aedf83cfc7e5bbc2"}, + {file = "open_autonomy-0.18.3.tar.gz", hash = "sha256:50d6fd431061630f783a90d957a674bbbabb74ff85c3b58857f42d52b79ae892"}, ] [package.dependencies] @@ -2183,8 +2184,8 @@ Flask = ">=2.0.2,<3.0.0" gql = "3.5.0" hexbytes = "*" jsonschema = ">=4.3.0,<4.4.0" -open-aea = {version = "1.57.0", extras = ["all"]} -open-aea-cli-ipfs = "1.57.0" +open-aea = {version = "1.60.0", extras = ["all"]} +open-aea-cli-ipfs = "1.60.0" protobuf = ">=4.21.6,<4.25.0" pytest = "7.2.1" python-dotenv = ">=0.14.5,<0.22.0" @@ -2197,8 +2198,8 @@ watchdog = ">=2.1.6" werkzeug = "2.0.3" [package.extras] -all = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.57.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"] -cli = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.57.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"] +all = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.60.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"] +cli = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.60.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"] [[package]] name = "openapi-core" @@ -2376,6 +2377,113 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "propcache" +version = "0.2.0" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.8" +files = [ + {file = "propcache-0.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c5869b8fd70b81835a6f187c5fdbe67917a04d7e52b6e7cc4e5fe39d55c39d58"}, + {file = "propcache-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:952e0d9d07609d9c5be361f33b0d6d650cd2bae393aabb11d9b719364521984b"}, + {file = "propcache-0.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:33ac8f098df0585c0b53009f039dfd913b38c1d2edafed0cedcc0c32a05aa110"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e48e8875e6c13909c800fa344cd54cc4b2b0db1d5f911f840458a500fde2c2"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:388f3217649d6d59292b722d940d4d2e1e6a7003259eb835724092a1cca0203a"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f571aea50ba5623c308aa146eb650eebf7dbe0fd8c5d946e28343cb3b5aad577"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3dfafb44f7bb35c0c06eda6b2ab4bfd58f02729e7c4045e179f9a861b07c9850"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3ebe9a75be7ab0b7da2464a77bb27febcb4fab46a34f9288f39d74833db7f61"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d2f0d0f976985f85dfb5f3d685697ef769faa6b71993b46b295cdbbd6be8cc37"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a3dc1a4b165283bd865e8f8cb5f0c64c05001e0718ed06250d8cac9bec115b48"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e0f07b42d2a50c7dd2d8675d50f7343d998c64008f1da5fef888396b7f84630"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e63e3e1e0271f374ed489ff5ee73d4b6e7c60710e1f76af5f0e1a6117cd26394"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:56bb5c98f058a41bb58eead194b4db8c05b088c93d94d5161728515bd52b052b"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7665f04d0c7f26ff8bb534e1c65068409bf4687aa2534faf7104d7182debb336"}, + {file = "propcache-0.2.0-cp310-cp310-win32.whl", hash = "sha256:7cf18abf9764746b9c8704774d8b06714bcb0a63641518a3a89c7f85cc02c2ad"}, + {file = "propcache-0.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:cfac69017ef97db2438efb854edf24f5a29fd09a536ff3a992b75990720cdc99"}, + {file = "propcache-0.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:63f13bf09cc3336eb04a837490b8f332e0db41da66995c9fd1ba04552e516354"}, + {file = "propcache-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608cce1da6f2672a56b24a015b42db4ac612ee709f3d29f27a00c943d9e851de"}, + {file = "propcache-0.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:466c219deee4536fbc83c08d09115249db301550625c7fef1c5563a584c9bc87"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc2db02409338bf36590aa985a461b2c96fce91f8e7e0f14c50c5fcc4f229016"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6ed8db0a556343d566a5c124ee483ae113acc9a557a807d439bcecc44e7dfbb"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91997d9cb4a325b60d4e3f20967f8eb08dfcb32b22554d5ef78e6fd1dda743a2"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c7dde9e533c0a49d802b4f3f218fa9ad0a1ce21f2c2eb80d5216565202acab4"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffcad6c564fe6b9b8916c1aefbb37a362deebf9394bd2974e9d84232e3e08504"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:97a58a28bcf63284e8b4d7b460cbee1edaab24634e82059c7b8c09e65284f178"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:945db8ee295d3af9dbdbb698cce9bbc5c59b5c3fe328bbc4387f59a8a35f998d"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:39e104da444a34830751715f45ef9fc537475ba21b7f1f5b0f4d71a3b60d7fe2"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c5ecca8f9bab618340c8e848d340baf68bcd8ad90a8ecd7a4524a81c1764b3db"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c436130cc779806bdf5d5fae0d848713105472b8566b75ff70048c47d3961c5b"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:191db28dc6dcd29d1a3e063c3be0b40688ed76434622c53a284e5427565bbd9b"}, + {file = "propcache-0.2.0-cp311-cp311-win32.whl", hash = "sha256:5f2564ec89058ee7c7989a7b719115bdfe2a2fb8e7a4543b8d1c0cc4cf6478c1"}, + {file = "propcache-0.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6e2e54267980349b723cff366d1e29b138b9a60fa376664a157a342689553f71"}, + {file = "propcache-0.2.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ee7606193fb267be4b2e3b32714f2d58cad27217638db98a60f9efb5efeccc2"}, + {file = "propcache-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:91ee8fc02ca52e24bcb77b234f22afc03288e1dafbb1f88fe24db308910c4ac7"}, + {file = "propcache-0.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2e900bad2a8456d00a113cad8c13343f3b1f327534e3589acc2219729237a2e8"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f52a68c21363c45297aca15561812d542f8fc683c85201df0bebe209e349f793"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e41d67757ff4fbc8ef2af99b338bfb955010444b92929e9e55a6d4dcc3c4f09"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a64e32f8bd94c105cc27f42d3b658902b5bcc947ece3c8fe7bc1b05982f60e89"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55346705687dbd7ef0d77883ab4f6fabc48232f587925bdaf95219bae072491e"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00181262b17e517df2cd85656fcd6b4e70946fe62cd625b9d74ac9977b64d8d9"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6994984550eaf25dd7fc7bd1b700ff45c894149341725bb4edc67f0ffa94efa4"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:56295eb1e5f3aecd516d91b00cfd8bf3a13991de5a479df9e27dd569ea23959c"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:439e76255daa0f8151d3cb325f6dd4a3e93043e6403e6491813bcaaaa8733887"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f6475a1b2ecb310c98c28d271a30df74f9dd436ee46d09236a6b750a7599ce57"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3444cdba6628accf384e349014084b1cacd866fbb88433cd9d279d90a54e0b23"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a9d9b4d0a9b38d1c391bb4ad24aa65f306c6f01b512e10a8a34a2dc5675d348"}, + {file = "propcache-0.2.0-cp312-cp312-win32.whl", hash = "sha256:69d3a98eebae99a420d4b28756c8ce6ea5a29291baf2dc9ff9414b42676f61d5"}, + {file = "propcache-0.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ad9c9b99b05f163109466638bd30ada1722abb01bbb85c739c50b6dc11f92dc3"}, + {file = "propcache-0.2.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ecddc221a077a8132cf7c747d5352a15ed763b674c0448d811f408bf803d9ad7"}, + {file = "propcache-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0e53cb83fdd61cbd67202735e6a6687a7b491c8742dfc39c9e01e80354956763"}, + {file = "propcache-0.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92fe151145a990c22cbccf9ae15cae8ae9eddabfc949a219c9f667877e40853d"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6a21ef516d36909931a2967621eecb256018aeb11fc48656e3257e73e2e247a"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f88a4095e913f98988f5b338c1d4d5d07dbb0b6bad19892fd447484e483ba6b"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a5b3bb545ead161be780ee85a2b54fdf7092815995661947812dde94a40f6fb"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67aeb72e0f482709991aa91345a831d0b707d16b0257e8ef88a2ad246a7280bf"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c997f8c44ec9b9b0bcbf2d422cc00a1d9b9c681f56efa6ca149a941e5560da2"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a66df3d4992bc1d725b9aa803e8c5a66c010c65c741ad901e260ece77f58d2f"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3ebbcf2a07621f29638799828b8d8668c421bfb94c6cb04269130d8de4fb7136"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1235c01ddaa80da8235741e80815ce381c5267f96cc49b1477fdcf8c047ef325"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3947483a381259c06921612550867b37d22e1df6d6d7e8361264b6d037595f44"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d5bed7f9805cc29c780f3aee05de3262ee7ce1f47083cfe9f77471e9d6777e83"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4a91d44379f45f5e540971d41e4626dacd7f01004826a18cb048e7da7e96544"}, + {file = "propcache-0.2.0-cp313-cp313-win32.whl", hash = "sha256:f902804113e032e2cdf8c71015651c97af6418363bea8d78dc0911d56c335032"}, + {file = "propcache-0.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:8f188cfcc64fb1266f4684206c9de0e80f54622c3f22a910cbd200478aeae61e"}, + {file = "propcache-0.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:53d1bd3f979ed529f0805dd35ddaca330f80a9a6d90bc0121d2ff398f8ed8861"}, + {file = "propcache-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:83928404adf8fb3d26793665633ea79b7361efa0287dfbd372a7e74311d51ee6"}, + {file = "propcache-0.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:77a86c261679ea5f3896ec060be9dc8e365788248cc1e049632a1be682442063"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:218db2a3c297a3768c11a34812e63b3ac1c3234c3a086def9c0fee50d35add1f"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7735e82e3498c27bcb2d17cb65d62c14f1100b71723b68362872bca7d0913d90"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:20a617c776f520c3875cf4511e0d1db847a076d720714ae35ffe0df3e440be68"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67b69535c870670c9f9b14a75d28baa32221d06f6b6fa6f77a0a13c5a7b0a5b9"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4569158070180c3855e9c0791c56be3ceeb192defa2cdf6a3f39e54319e56b89"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:db47514ffdbd91ccdc7e6f8407aac4ee94cc871b15b577c1c324236b013ddd04"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:2a60ad3e2553a74168d275a0ef35e8c0a965448ffbc3b300ab3a5bb9956c2162"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:662dd62358bdeaca0aee5761de8727cfd6861432e3bb828dc2a693aa0471a563"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:25a1f88b471b3bc911d18b935ecb7115dff3a192b6fef46f0bfaf71ff4f12418"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:f60f0ac7005b9f5a6091009b09a419ace1610e163fa5deaba5ce3484341840e7"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:74acd6e291f885678631b7ebc85d2d4aec458dd849b8c841b57ef04047833bed"}, + {file = "propcache-0.2.0-cp38-cp38-win32.whl", hash = "sha256:d9b6ddac6408194e934002a69bcaadbc88c10b5f38fb9307779d1c629181815d"}, + {file = "propcache-0.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:676135dcf3262c9c5081cc8f19ad55c8a64e3f7282a21266d05544450bffc3a5"}, + {file = "propcache-0.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:25c8d773a62ce0451b020c7b29a35cfbc05de8b291163a7a0f3b7904f27253e6"}, + {file = "propcache-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:375a12d7556d462dc64d70475a9ee5982465fbb3d2b364f16b86ba9135793638"}, + {file = "propcache-0.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1ec43d76b9677637a89d6ab86e1fef70d739217fefa208c65352ecf0282be957"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f45eec587dafd4b2d41ac189c2156461ebd0c1082d2fe7013571598abb8505d1"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc092ba439d91df90aea38168e11f75c655880c12782facf5cf9c00f3d42b562"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa1076244f54bb76e65e22cb6910365779d5c3d71d1f18b275f1dfc7b0d71b4d"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:682a7c79a2fbf40f5dbb1eb6bfe2cd865376deeac65acf9beb607505dced9e12"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e40876731f99b6f3c897b66b803c9e1c07a989b366c6b5b475fafd1f7ba3fb8"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:363ea8cd3c5cb6679f1c2f5f1f9669587361c062e4899fce56758efa928728f8"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:140fbf08ab3588b3468932974a9331aff43c0ab8a2ec2c608b6d7d1756dbb6cb"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e70fac33e8b4ac63dfc4c956fd7d85a0b1139adcfc0d964ce288b7c527537fea"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:b33d7a286c0dc1a15f5fc864cc48ae92a846df287ceac2dd499926c3801054a6"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f6d5749fdd33d90e34c2efb174c7e236829147a2713334d708746e94c4bde40d"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22aa8f2272d81d9317ff5756bb108021a056805ce63dd3630e27d042c8092798"}, + {file = "propcache-0.2.0-cp39-cp39-win32.whl", hash = "sha256:73e4b40ea0eda421b115248d7e79b59214411109a5bc47d0d48e4c73e3b8fcf9"}, + {file = "propcache-0.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:9517d5e9e0731957468c29dbfd0f976736a0e55afaea843726e887f36fe017df"}, + {file = "propcache-0.2.0-py3-none-any.whl", hash = "sha256:2ccc28197af5313706511fab3a8b66dcd6da067a1331372c82ea1cb74285e036"}, + {file = "propcache-0.2.0.tar.gz", hash = "sha256:df81779732feb9d01e5d513fad0122efb3d53bbc75f61b2a4f29a020bc985e70"}, +] + [[package]] name = "protobuf" version = "4.24.4" @@ -2476,43 +2584,43 @@ files = [ [[package]] name = "pycryptodome" -version = "3.20.0" +version = "3.21.0" description = "Cryptographic library for Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "pycryptodome-3.20.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:f0e6d631bae3f231d3634f91ae4da7a960f7ff87f2865b2d2b831af1dfb04e9a"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:baee115a9ba6c5d2709a1e88ffe62b73ecc044852a925dcb67713a288c4ec70f"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:417a276aaa9cb3be91f9014e9d18d10e840a7a9b9a9be64a42f553c5b50b4d1d"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a1250b7ea809f752b68e3e6f3fd946b5939a52eaeea18c73bdab53e9ba3c2dd"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:d5954acfe9e00bc83ed9f5cb082ed22c592fbbef86dc48b907238be64ead5c33"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-win32.whl", hash = "sha256:06d6de87c19f967f03b4cf9b34e538ef46e99a337e9a61a77dbe44b2cbcf0690"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ec0bb1188c1d13426039af8ffcb4dbe3aad1d7680c35a62d8eaf2a529b5d3d4f"}, - {file = "pycryptodome-3.20.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5601c934c498cd267640b57569e73793cb9a83506f7c73a8ec57a516f5b0b091"}, - {file = "pycryptodome-3.20.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d29daa681517f4bc318cd8a23af87e1f2a7bad2fe361e8aa29c77d652a065de4"}, - {file = "pycryptodome-3.20.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3427d9e5310af6680678f4cce149f54e0bb4af60101c7f2c16fdf878b39ccccc"}, - {file = "pycryptodome-3.20.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:3cd3ef3aee1079ae44afaeee13393cf68b1058f70576b11439483e34f93cf818"}, - {file = "pycryptodome-3.20.0-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac1c7c0624a862f2e53438a15c9259d1655325fc2ec4392e66dc46cdae24d044"}, - {file = "pycryptodome-3.20.0-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:76658f0d942051d12a9bd08ca1b6b34fd762a8ee4240984f7c06ddfb55eaf15a"}, - {file = "pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f35d6cee81fa145333137009d9c8ba90951d7d77b67c79cbe5f03c7eb74d8fe2"}, - {file = "pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76cb39afede7055127e35a444c1c041d2e8d2f1f9c121ecef573757ba4cd2c3c"}, - {file = "pycryptodome-3.20.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49a4c4dc60b78ec41d2afa392491d788c2e06edf48580fbfb0dd0f828af49d25"}, - {file = "pycryptodome-3.20.0-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fb3b87461fa35afa19c971b0a2b7456a7b1db7b4eba9a8424666104925b78128"}, - {file = "pycryptodome-3.20.0-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:acc2614e2e5346a4a4eab6e199203034924313626f9620b7b4b38e9ad74b7e0c"}, - {file = "pycryptodome-3.20.0-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:210ba1b647837bfc42dd5a813cdecb5b86193ae11a3f5d972b9a0ae2c7e9e4b4"}, - {file = "pycryptodome-3.20.0-cp35-abi3-win32.whl", hash = "sha256:8d6b98d0d83d21fb757a182d52940d028564efe8147baa9ce0f38d057104ae72"}, - {file = "pycryptodome-3.20.0-cp35-abi3-win_amd64.whl", hash = "sha256:9b3ae153c89a480a0ec402e23db8d8d84a3833b65fa4b15b81b83be9d637aab9"}, - {file = "pycryptodome-3.20.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:4401564ebf37dfde45d096974c7a159b52eeabd9969135f0426907db367a652a"}, - {file = "pycryptodome-3.20.0-pp27-pypy_73-win32.whl", hash = "sha256:ec1f93feb3bb93380ab0ebf8b859e8e5678c0f010d2d78367cf6bc30bfeb148e"}, - {file = "pycryptodome-3.20.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:acae12b9ede49f38eb0ef76fdec2df2e94aad85ae46ec85be3648a57f0a7db04"}, - {file = "pycryptodome-3.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f47888542a0633baff535a04726948e876bf1ed880fddb7c10a736fa99146ab3"}, - {file = "pycryptodome-3.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e0e4a987d38cfc2e71b4a1b591bae4891eeabe5fa0f56154f576e26287bfdea"}, - {file = "pycryptodome-3.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c18b381553638414b38705f07d1ef0a7cf301bc78a5f9bc17a957eb19446834b"}, - {file = "pycryptodome-3.20.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a60fedd2b37b4cb11ccb5d0399efe26db9e0dd149016c1cc6c8161974ceac2d6"}, - {file = "pycryptodome-3.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:405002eafad114a2f9a930f5db65feef7b53c4784495dd8758069b89baf68eab"}, - {file = "pycryptodome-3.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ab6ab0cb755154ad14e507d1df72de9897e99fd2d4922851a276ccc14f4f1a5"}, - {file = "pycryptodome-3.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:acf6e43fa75aca2d33e93409f2dafe386fe051818ee79ee8a3e21de9caa2ac9e"}, - {file = "pycryptodome-3.20.0.tar.gz", hash = "sha256:09609209ed7de61c2b560cc5c8c4fbf892f8b15b1faf7e4cbffac97db1fffda7"}, +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pycryptodome-3.21.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:dad9bf36eda068e89059d1f07408e397856be9511d7113ea4b586642a429a4fd"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:a1752eca64c60852f38bb29e2c86fca30d7672c024128ef5d70cc15868fa10f4"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ba4cc304eac4d4d458f508d4955a88ba25026890e8abff9b60404f76a62c55e"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cb087b8612c8a1a14cf37dd754685be9a8d9869bed2ffaaceb04850a8aeef7e"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:26412b21df30b2861424a6c6d5b1d8ca8107612a4cfa4d0183e71c5d200fb34a"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-win32.whl", hash = "sha256:cc2269ab4bce40b027b49663d61d816903a4bd90ad88cb99ed561aadb3888dd3"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-win_amd64.whl", hash = "sha256:0fa0a05a6a697ccbf2a12cec3d6d2650b50881899b845fac6e87416f8cb7e87d"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6cce52e196a5f1d6797ff7946cdff2038d3b5f0aba4a43cb6bf46b575fd1b5bb"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:a915597ffccabe902e7090e199a7bf7a381c5506a747d5e9d27ba55197a2c568"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4e74c522d630766b03a836c15bff77cb657c5fdf098abf8b1ada2aebc7d0819"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:a3804675283f4764a02db05f5191eb8fec2bb6ca34d466167fc78a5f05bbe6b3"}, + {file = "pycryptodome-3.21.0-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:2480ec2c72438430da9f601ebc12c518c093c13111a5c1644c82cdfc2e50b1e4"}, + {file = "pycryptodome-3.21.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:de18954104667f565e2fbb4783b56667f30fb49c4d79b346f52a29cb198d5b6b"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de4b7263a33947ff440412339cb72b28a5a4c769b5c1ca19e33dd6cd1dcec6e"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0714206d467fc911042d01ea3a1847c847bc10884cf674c82e12915cfe1649f8"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d85c1b613121ed3dbaa5a97369b3b757909531a959d229406a75b912dd51dd1"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:8898a66425a57bcf15e25fc19c12490b87bd939800f39a03ea2de2aea5e3611a"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_2_i686.whl", hash = "sha256:932c905b71a56474bff8a9c014030bc3c882cee696b448af920399f730a650c2"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:18caa8cfbc676eaaf28613637a89980ad2fd96e00c564135bf90bc3f0b34dd93"}, + {file = "pycryptodome-3.21.0-cp36-abi3-win32.whl", hash = "sha256:280b67d20e33bb63171d55b1067f61fbd932e0b1ad976b3a184303a3dad22764"}, + {file = "pycryptodome-3.21.0-cp36-abi3-win_amd64.whl", hash = "sha256:b7aa25fc0baa5b1d95b7633af4f5f1838467f1815442b22487426f94e0d66c53"}, + {file = "pycryptodome-3.21.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:2cb635b67011bc147c257e61ce864879ffe6d03342dc74b6045059dfbdedafca"}, + {file = "pycryptodome-3.21.0-pp27-pypy_73-win32.whl", hash = "sha256:4c26a2f0dc15f81ea3afa3b0c87b87e501f235d332b7f27e2225ecb80c0b1cdd"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d5ebe0763c982f069d3877832254f64974139f4f9655058452603ff559c482e8"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ee86cbde706be13f2dec5a42b52b1c1d1cbb90c8e405c68d0755134735c8dc6"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fd54003ec3ce4e0f16c484a10bc5d8b9bd77fa662a12b85779a2d2d85d67ee0"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5dfafca172933506773482b0e18f0cd766fd3920bd03ec85a283df90d8a17bc6"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:590ef0898a4b0a15485b05210b4a1c9de8806d3ad3d47f74ab1dc07c67a6827f"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35e442630bc4bc2e1878482d6f59ea22e280d7121d7adeaedba58c23ab6386b"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff99f952db3db2fbe98a0b355175f93ec334ba3d01bbde25ad3a5a33abc02b58"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8acd7d34af70ee63f9a849f957558e49a98f8f1634f86a59d2be62bb8e93f71c"}, + {file = "pycryptodome-3.21.0.tar.gz", hash = "sha256:f7787e0d469bdae763b876174cf2e6c0f7be79808af26b1da96f1a64bcf47297"}, ] [[package]] @@ -2747,25 +2855,29 @@ files = [ [[package]] name = "pywin32" -version = "306" +version = "308" description = "Python for Window Extensions" optional = false python-versions = "*" files = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, ] [[package]] @@ -2830,105 +2942,105 @@ files = [ [[package]] name = "regex" -version = "2024.9.11" +version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a"}, - {file = "regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0"}, - {file = "regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1"}, - {file = "regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9"}, - {file = "regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a"}, - {file = "regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776"}, - {file = "regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8"}, - {file = "regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8"}, - {file = "regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd"}, - {file = "regex-2024.9.11-cp38-cp38-win32.whl", hash = "sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771"}, - {file = "regex-2024.9.11-cp38-cp38-win_amd64.whl", hash = "sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35"}, - {file = "regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142"}, - {file = "regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919"}, - {file = "regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] [[package]] @@ -3000,23 +3112,23 @@ files = [ [[package]] name = "setuptools" -version = "75.1.0" +version = "75.5.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"}, - {file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"}, + {file = "setuptools-75.5.0-py3-none-any.whl", hash = "sha256:87cb777c3b96d638ca02031192d40390e0ad97737e27b6b4fa831bea86f2f829"}, + {file = "setuptools-75.5.0.tar.gz", hash = "sha256:5c4ccb41111392671f02bb5f8436dfc5a9a7185e80500531b133f5775c4163ef"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] +core = ["importlib-metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] [[package]] name = "six" @@ -3075,13 +3187,13 @@ files = [ [[package]] name = "tomli" -version = "2.0.1" +version = "2.1.0" description = "A lil' TOML parser" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, + {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, + {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, ] [[package]] @@ -3123,13 +3235,13 @@ vulture = ["vulture (==2.7)"] [[package]] name = "toolz" -version = "0.12.1" +version = "1.0.0" description = "List processing tools and functional utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, - {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, + {file = "toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236"}, + {file = "toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02"}, ] [[package]] @@ -3225,13 +3337,13 @@ files = [ [[package]] name = "virtualenv" -version = "20.26.5" +version = "20.27.1" description = "Virtual Python Environment builder" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "virtualenv-20.26.5-py3-none-any.whl", hash = "sha256:4f3ac17b81fba3ce3bd6f4ead2749a72da5929c01774948e243db9ba41df4ff6"}, - {file = "virtualenv-20.26.5.tar.gz", hash = "sha256:ce489cac131aa58f4b25e321d6d186171f78e6cb13fafbf32a840cee67733ff4"}, + {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, + {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, ] [package.dependencies] @@ -3245,41 +3357,41 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "watchdog" -version = "5.0.2" +version = "6.0.0" description = "Filesystem events monitoring" optional = false python-versions = ">=3.9" files = [ - {file = "watchdog-5.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d961f4123bb3c447d9fcdcb67e1530c366f10ab3a0c7d1c0c9943050936d4877"}, - {file = "watchdog-5.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72990192cb63872c47d5e5fefe230a401b87fd59d257ee577d61c9e5564c62e5"}, - {file = "watchdog-5.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6bec703ad90b35a848e05e1b40bf0050da7ca28ead7ac4be724ae5ac2653a1a0"}, - {file = "watchdog-5.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dae7a1879918f6544201d33666909b040a46421054a50e0f773e0d870ed7438d"}, - {file = "watchdog-5.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c4a440f725f3b99133de610bfec93d570b13826f89616377715b9cd60424db6e"}, - {file = "watchdog-5.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8b2918c19e0d48f5f20df458c84692e2a054f02d9df25e6c3c930063eca64c1"}, - {file = "watchdog-5.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:aa9cd6e24126d4afb3752a3e70fce39f92d0e1a58a236ddf6ee823ff7dba28ee"}, - {file = "watchdog-5.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f627c5bf5759fdd90195b0c0431f99cff4867d212a67b384442c51136a098ed7"}, - {file = "watchdog-5.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d7594a6d32cda2b49df3fd9abf9b37c8d2f3eab5df45c24056b4a671ac661619"}, - {file = "watchdog-5.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba32efcccfe2c58f4d01115440d1672b4eb26cdd6fc5b5818f1fb41f7c3e1889"}, - {file = "watchdog-5.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:963f7c4c91e3f51c998eeff1b3fb24a52a8a34da4f956e470f4b068bb47b78ee"}, - {file = "watchdog-5.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8c47150aa12f775e22efff1eee9f0f6beee542a7aa1a985c271b1997d340184f"}, - {file = "watchdog-5.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:14dd4ed023d79d1f670aa659f449bcd2733c33a35c8ffd88689d9d243885198b"}, - {file = "watchdog-5.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b84bff0391ad4abe25c2740c7aec0e3de316fdf7764007f41e248422a7760a7f"}, - {file = "watchdog-5.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e8d5ff39f0a9968952cce548e8e08f849141a4fcc1290b1c17c032ba697b9d7"}, - {file = "watchdog-5.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fb223456db6e5f7bd9bbd5cd969f05aae82ae21acc00643b60d81c770abd402b"}, - {file = "watchdog-5.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9814adb768c23727a27792c77812cf4e2fd9853cd280eafa2bcfa62a99e8bd6e"}, - {file = "watchdog-5.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:901ee48c23f70193d1a7bc2d9ee297df66081dd5f46f0ca011be4f70dec80dab"}, - {file = "watchdog-5.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:638bcca3d5b1885c6ec47be67bf712b00a9ab3d4b22ec0881f4889ad870bc7e8"}, - {file = "watchdog-5.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:5597c051587f8757798216f2485e85eac583c3b343e9aa09127a3a6f82c65ee8"}, - {file = "watchdog-5.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:53ed1bf71fcb8475dd0ef4912ab139c294c87b903724b6f4a8bd98e026862e6d"}, - {file = "watchdog-5.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:29e4a2607bd407d9552c502d38b45a05ec26a8e40cc7e94db9bb48f861fa5abc"}, - {file = "watchdog-5.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:b6dc8f1d770a8280997e4beae7b9a75a33b268c59e033e72c8a10990097e5fde"}, - {file = "watchdog-5.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:d2ab34adc9bf1489452965cdb16a924e97d4452fcf88a50b21859068b50b5c3b"}, - {file = "watchdog-5.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:7d1aa7e4bb0f0c65a1a91ba37c10e19dabf7eaaa282c5787e51371f090748f4b"}, - {file = "watchdog-5.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:726eef8f8c634ac6584f86c9c53353a010d9f311f6c15a034f3800a7a891d941"}, - {file = "watchdog-5.0.2-py3-none-win32.whl", hash = "sha256:bda40c57115684d0216556671875e008279dea2dc00fcd3dde126ac8e0d7a2fb"}, - {file = "watchdog-5.0.2-py3-none-win_amd64.whl", hash = "sha256:d010be060c996db725fbce7e3ef14687cdcc76f4ca0e4339a68cc4532c382a73"}, - {file = "watchdog-5.0.2-py3-none-win_ia64.whl", hash = "sha256:3960136b2b619510569b90f0cd96408591d6c251a75c97690f4553ca88889769"}, - {file = "watchdog-5.0.2.tar.gz", hash = "sha256:dcebf7e475001d2cdeb020be630dc5b687e9acdd60d16fea6bb4508e7b94cf76"}, + {file = "watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26"}, + {file = "watchdog-6.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112"}, + {file = "watchdog-6.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2"}, + {file = "watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860"}, + {file = "watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134"}, + {file = "watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a"}, + {file = "watchdog-6.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c"}, + {file = "watchdog-6.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881"}, + {file = "watchdog-6.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11"}, + {file = "watchdog-6.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa"}, + {file = "watchdog-6.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c"}, + {file = "watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2"}, + {file = "watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a"}, + {file = "watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680"}, + {file = "watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f"}, + {file = "watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282"}, ] [package.extras] @@ -3336,97 +3448,80 @@ six = "*" [[package]] name = "websockets" -version = "13.1" +version = "14.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, - {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, - {file = "websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa"}, - {file = "websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0"}, - {file = "websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f"}, - {file = "websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe"}, - {file = "websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a"}, - {file = "websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19"}, - {file = "websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5"}, - {file = "websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7"}, - {file = "websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3"}, - {file = "websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9"}, - {file = "websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f"}, - {file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"}, - {file = "websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc"}, - {file = "websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49"}, - {file = "websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6"}, - {file = "websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14"}, - {file = "websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf"}, - {file = "websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c"}, - {file = "websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3"}, - {file = "websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6"}, - {file = "websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708"}, - {file = "websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f"}, - {file = "websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2"}, - {file = "websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6"}, - {file = "websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d"}, - {file = "websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2"}, - {file = "websockets-13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c7934fd0e920e70468e676fe7f1b7261c1efa0d6c037c6722278ca0228ad9d0d"}, - {file = "websockets-13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:149e622dc48c10ccc3d2760e5f36753db9cacf3ad7bc7bbbfd7d9c819e286f23"}, - {file = "websockets-13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a569eb1b05d72f9bce2ebd28a1ce2054311b66677fcd46cf36204ad23acead8c"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95df24ca1e1bd93bbca51d94dd049a984609687cb2fb08a7f2c56ac84e9816ea"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8dbb1bf0c0a4ae8b40bdc9be7f644e2f3fb4e8a9aca7145bfa510d4a374eeb7"}, - {file = "websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:035233b7531fb92a76beefcbf479504db8c72eb3bff41da55aecce3a0f729e54"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e4450fc83a3df53dec45922b576e91e94f5578d06436871dce3a6be38e40f5db"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:463e1c6ec853202dd3657f156123d6b4dad0c546ea2e2e38be2b3f7c5b8e7295"}, - {file = "websockets-13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6d6855bbe70119872c05107e38fbc7f96b1d8cb047d95c2c50869a46c65a8e96"}, - {file = "websockets-13.1-cp38-cp38-win32.whl", hash = "sha256:204e5107f43095012b00f1451374693267adbb832d29966a01ecc4ce1db26faf"}, - {file = "websockets-13.1-cp38-cp38-win_amd64.whl", hash = "sha256:485307243237328c022bc908b90e4457d0daa8b5cf4b3723fd3c4a8012fce4c6"}, - {file = "websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d"}, - {file = "websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7"}, - {file = "websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa"}, - {file = "websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6"}, - {file = "websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5"}, - {file = "websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c"}, - {file = "websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d"}, - {file = "websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238"}, - {file = "websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6"}, - {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a"}, - {file = "websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23"}, - {file = "websockets-13.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9156c45750b37337f7b0b00e6248991a047be4aa44554c9886fe6bdd605aab3b"}, - {file = "websockets-13.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80c421e07973a89fbdd93e6f2003c17d20b69010458d3a8e37fb47874bd67d51"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82d0ba76371769d6a4e56f7e83bb8e81846d17a6190971e38b5de108bde9b0d7"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9875a0143f07d74dc5e1ded1c4581f0d9f7ab86c78994e2ed9e95050073c94d"}, - {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11e38ad8922c7961447f35c7b17bffa15de4d17c70abd07bfbe12d6faa3e027"}, - {file = "websockets-13.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4059f790b6ae8768471cddb65d3c4fe4792b0ab48e154c9f0a04cefaabcd5978"}, - {file = "websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e"}, - {file = "websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb"}, - {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20"}, - {file = "websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678"}, - {file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"}, - {file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"}, + {file = "websockets-14.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a0adf84bc2e7c86e8a202537b4fd50e6f7f0e4a6b6bf64d7ccb96c4cd3330b29"}, + {file = "websockets-14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90b5d9dfbb6d07a84ed3e696012610b6da074d97453bd01e0e30744b472c8179"}, + {file = "websockets-14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2177ee3901075167f01c5e335a6685e71b162a54a89a56001f1c3e9e3d2ad250"}, + {file = "websockets-14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f14a96a0034a27f9d47fd9788913924c89612225878f8078bb9d55f859272b0"}, + {file = "websockets-14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f874ba705deea77bcf64a9da42c1f5fc2466d8f14daf410bc7d4ceae0a9fcb0"}, + {file = "websockets-14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9607b9a442392e690a57909c362811184ea429585a71061cd5d3c2b98065c199"}, + {file = "websockets-14.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bea45f19b7ca000380fbd4e02552be86343080120d074b87f25593ce1700ad58"}, + {file = "websockets-14.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:219c8187b3ceeadbf2afcf0f25a4918d02da7b944d703b97d12fb01510869078"}, + {file = "websockets-14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad2ab2547761d79926effe63de21479dfaf29834c50f98c4bf5b5480b5838434"}, + {file = "websockets-14.1-cp310-cp310-win32.whl", hash = "sha256:1288369a6a84e81b90da5dbed48610cd7e5d60af62df9851ed1d1d23a9069f10"}, + {file = "websockets-14.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0744623852f1497d825a49a99bfbec9bea4f3f946df6eb9d8a2f0c37a2fec2e"}, + {file = "websockets-14.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:449d77d636f8d9c17952628cc7e3b8faf6e92a17ec581ec0c0256300717e1512"}, + {file = "websockets-14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a35f704be14768cea9790d921c2c1cc4fc52700410b1c10948511039be824aac"}, + {file = "websockets-14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b1f3628a0510bd58968c0f60447e7a692933589b791a6b572fcef374053ca280"}, + {file = "websockets-14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c3deac3748ec73ef24fc7be0b68220d14d47d6647d2f85b2771cb35ea847aa1"}, + {file = "websockets-14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7048eb4415d46368ef29d32133134c513f507fff7d953c18c91104738a68c3b3"}, + {file = "websockets-14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6cf0ad281c979306a6a34242b371e90e891bce504509fb6bb5246bbbf31e7b6"}, + {file = "websockets-14.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cc1fc87428c1d18b643479caa7b15db7d544652e5bf610513d4a3478dbe823d0"}, + {file = "websockets-14.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f95ba34d71e2fa0c5d225bde3b3bdb152e957150100e75c86bc7f3964c450d89"}, + {file = "websockets-14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9481a6de29105d73cf4515f2bef8eb71e17ac184c19d0b9918a3701c6c9c4f23"}, + {file = "websockets-14.1-cp311-cp311-win32.whl", hash = "sha256:368a05465f49c5949e27afd6fbe0a77ce53082185bbb2ac096a3a8afaf4de52e"}, + {file = "websockets-14.1-cp311-cp311-win_amd64.whl", hash = "sha256:6d24fc337fc055c9e83414c94e1ee0dee902a486d19d2a7f0929e49d7d604b09"}, + {file = "websockets-14.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed907449fe5e021933e46a3e65d651f641975a768d0649fee59f10c2985529ed"}, + {file = "websockets-14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:87e31011b5c14a33b29f17eb48932e63e1dcd3fa31d72209848652310d3d1f0d"}, + {file = "websockets-14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bc6ccf7d54c02ae47a48ddf9414c54d48af9c01076a2e1023e3b486b6e72c707"}, + {file = "websockets-14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9777564c0a72a1d457f0848977a1cbe15cfa75fa2f67ce267441e465717dcf1a"}, + {file = "websockets-14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a655bde548ca98f55b43711b0ceefd2a88a71af6350b0c168aa77562104f3f45"}, + {file = "websockets-14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3dfff83ca578cada2d19e665e9c8368e1598d4e787422a460ec70e531dbdd58"}, + {file = "websockets-14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6a6c9bcf7cdc0fd41cc7b7944447982e8acfd9f0d560ea6d6845428ed0562058"}, + {file = "websockets-14.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4b6caec8576e760f2c7dd878ba817653144d5f369200b6ddf9771d64385b84d4"}, + {file = "websockets-14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb6d38971c800ff02e4a6afd791bbe3b923a9a57ca9aeab7314c21c84bf9ff05"}, + {file = "websockets-14.1-cp312-cp312-win32.whl", hash = "sha256:1d045cbe1358d76b24d5e20e7b1878efe578d9897a25c24e6006eef788c0fdf0"}, + {file = "websockets-14.1-cp312-cp312-win_amd64.whl", hash = "sha256:90f4c7a069c733d95c308380aae314f2cb45bd8a904fb03eb36d1a4983a4993f"}, + {file = "websockets-14.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3630b670d5057cd9e08b9c4dab6493670e8e762a24c2c94ef312783870736ab9"}, + {file = "websockets-14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36ebd71db3b89e1f7b1a5deaa341a654852c3518ea7a8ddfdf69cc66acc2db1b"}, + {file = "websockets-14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5b918d288958dc3fa1c5a0b9aa3256cb2b2b84c54407f4813c45d52267600cd3"}, + {file = "websockets-14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00fe5da3f037041da1ee0cf8e308374e236883f9842c7c465aa65098b1c9af59"}, + {file = "websockets-14.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8149a0f5a72ca36720981418eeffeb5c2729ea55fa179091c81a0910a114a5d2"}, + {file = "websockets-14.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77569d19a13015e840b81550922056acabc25e3f52782625bc6843cfa034e1da"}, + {file = "websockets-14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cf5201a04550136ef870aa60ad3d29d2a59e452a7f96b94193bee6d73b8ad9a9"}, + {file = "websockets-14.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:88cf9163ef674b5be5736a584c999e98daf3aabac6e536e43286eb74c126b9c7"}, + {file = "websockets-14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:836bef7ae338a072e9d1863502026f01b14027250a4545672673057997d5c05a"}, + {file = "websockets-14.1-cp313-cp313-win32.whl", hash = "sha256:0d4290d559d68288da9f444089fd82490c8d2744309113fc26e2da6e48b65da6"}, + {file = "websockets-14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8621a07991add373c3c5c2cf89e1d277e49dc82ed72c75e3afc74bd0acc446f0"}, + {file = "websockets-14.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:01bb2d4f0a6d04538d3c5dfd27c0643269656c28045a53439cbf1c004f90897a"}, + {file = "websockets-14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:414ffe86f4d6f434a8c3b7913655a1a5383b617f9bf38720e7c0799fac3ab1c6"}, + {file = "websockets-14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8fda642151d5affdee8a430bd85496f2e2517be3a2b9d2484d633d5712b15c56"}, + {file = "websockets-14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd7c11968bc3860d5c78577f0dbc535257ccec41750675d58d8dc66aa47fe52c"}, + {file = "websockets-14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a032855dc7db987dff813583d04f4950d14326665d7e714d584560b140ae6b8b"}, + {file = "websockets-14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7e7ea2f782408c32d86b87a0d2c1fd8871b0399dd762364c731d86c86069a78"}, + {file = "websockets-14.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:39450e6215f7d9f6f7bc2a6da21d79374729f5d052333da4d5825af8a97e6735"}, + {file = "websockets-14.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ceada5be22fa5a5a4cdeec74e761c2ee7db287208f54c718f2df4b7e200b8d4a"}, + {file = "websockets-14.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3fc753451d471cff90b8f467a1fc0ae64031cf2d81b7b34e1811b7e2691bc4bc"}, + {file = "websockets-14.1-cp39-cp39-win32.whl", hash = "sha256:14839f54786987ccd9d03ed7f334baec0f02272e7ec4f6e9d427ff584aeea8b4"}, + {file = "websockets-14.1-cp39-cp39-win_amd64.whl", hash = "sha256:d9fd19ecc3a4d5ae82ddbfb30962cf6d874ff943e56e0c81f5169be2fda62979"}, + {file = "websockets-14.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e5dc25a9dbd1a7f61eca4b7cb04e74ae4b963d658f9e4f9aad9cd00b688692c8"}, + {file = "websockets-14.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:04a97aca96ca2acedf0d1f332c861c5a4486fdcba7bcef35873820f940c4231e"}, + {file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df174ece723b228d3e8734a6f2a6febbd413ddec39b3dc592f5a4aa0aff28098"}, + {file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:034feb9f4286476f273b9a245fb15f02c34d9586a5bc936aff108c3ba1b21beb"}, + {file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c308dabd2b380807ab64b62985eaccf923a78ebc572bd485375b9ca2b7dc7"}, + {file = "websockets-14.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5a42d3ecbb2db5080fc578314439b1d79eef71d323dc661aa616fb492436af5d"}, + {file = "websockets-14.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ddaa4a390af911da6f680be8be4ff5aaf31c4c834c1a9147bc21cbcbca2d4370"}, + {file = "websockets-14.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a4c805c6034206143fbabd2d259ec5e757f8b29d0a2f0bf3d2fe5d1f60147a4a"}, + {file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:205f672a6c2c671a86d33f6d47c9b35781a998728d2c7c2a3e1cf3333fcb62b7"}, + {file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef440054124728cc49b01c33469de06755e5a7a4e83ef61934ad95fc327fbb0"}, + {file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7591d6f440af7f73c4bd9404f3772bfee064e639d2b6cc8c94076e71b2471c1"}, + {file = "websockets-14.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:25225cc79cfebc95ba1d24cd3ab86aaa35bcd315d12fa4358939bd55e9bd74a5"}, + {file = "websockets-14.1-py3-none-any.whl", hash = "sha256:4d4fc827a20abe6d544a119896f6b78ee13fe81cbfef416f3f2ddf09a03f0e2e"}, + {file = "websockets-14.1.tar.gz", hash = "sha256:398b10c77d471c0aab20a845e7a60076b6390bfdaac7a6d2edb0d2c59d75e8d8"}, ] [[package]] @@ -3445,110 +3540,101 @@ watchdog = ["watchdog"] [[package]] name = "yarl" -version = "1.12.1" +version = "1.17.2" description = "Yet another URL library" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "yarl-1.12.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:64c5b0f2b937fe40d0967516eee5504b23cb247b8b7ffeba7213a467d9646fdc"}, - {file = "yarl-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2e430ac432f969ef21770645743611c1618362309e3ad7cab45acd1ad1a540ff"}, - {file = "yarl-1.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3e26e64f42bce5ddf9002092b2c37b13071c2e6413d5c05f9fa9de58ed2f7749"}, - {file = "yarl-1.12.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0103c52f8dfe5d573c856322149ddcd6d28f51b4d4a3ee5c4b3c1b0a05c3d034"}, - {file = "yarl-1.12.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b63465b53baeaf2122a337d4ab57d6bbdd09fcadceb17a974cfa8a0300ad9c67"}, - {file = "yarl-1.12.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17d4dc4ff47893a06737b8788ed2ba2f5ac4e8bb40281c8603920f7d011d5bdd"}, - {file = "yarl-1.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b54949267bd5704324397efe9fbb6aa306466dee067550964e994d309db5f1"}, - {file = "yarl-1.12.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10b690cd78cbaca2f96a7462f303fdd2b596d3978b49892e4b05a7567c591572"}, - {file = "yarl-1.12.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c85ab016e96a975afbdb9d49ca90f3bca9920ef27c64300843fe91c3d59d8d20"}, - {file = "yarl-1.12.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c1caa5763d1770216596e0a71b5567f27aac28c95992110212c108ec74589a48"}, - {file = "yarl-1.12.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:595bbcdbfc4a9c6989d7489dca8510cba053ff46b16c84ffd95ac8e90711d419"}, - {file = "yarl-1.12.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e64f0421892a207d3780903085c1b04efeb53b16803b23d947de5a7261b71355"}, - {file = "yarl-1.12.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:319c206e83e46ec2421b25b300c8482b6fe8a018baca246be308c736d9dab267"}, - {file = "yarl-1.12.1-cp310-cp310-win32.whl", hash = "sha256:da045bd1147d12bd43fb032296640a7cc17a7f2eaba67495988362e99db24fd2"}, - {file = "yarl-1.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:aebbd47df77190ada603157f0b3670d578c110c31746ecc5875c394fdcc59a99"}, - {file = "yarl-1.12.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:28389a68981676bf74e2e199fe42f35d1aa27a9c98e3a03e6f58d2d3d054afe1"}, - {file = "yarl-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f736f54565f8dd7e3ab664fef2bc461d7593a389a7f28d4904af8d55a91bd55f"}, - {file = "yarl-1.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dee0496d5f1a8f57f0f28a16f81a2033fc057a2cf9cd710742d11828f8c80e2"}, - {file = "yarl-1.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8981a94a27ac520a398302afb74ae2c0be1c3d2d215c75c582186a006c9e7b0"}, - {file = "yarl-1.12.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff54340fc1129e8e181827e2234af3ff659b4f17d9bbe77f43bc19e6577fadec"}, - {file = "yarl-1.12.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:54c8cee662b5f8c30ad7eedfc26123f845f007798e4ff1001d9528fe959fd23c"}, - {file = "yarl-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e97a29b37830ba1262d8dfd48ddb5b28ad4d3ebecc5d93a9c7591d98641ec737"}, - {file = "yarl-1.12.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c89894cc6f6ddd993813e79244b36b215c14f65f9e4f1660b1f2ba9e5594b95"}, - {file = "yarl-1.12.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:712ba8722c0699daf186de089ddc4677651eb9875ed7447b2ad50697522cbdd9"}, - {file = "yarl-1.12.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6e9a9f50892153bad5046c2a6df153224aa6f0573a5a8ab44fc54a1e886f6e21"}, - {file = "yarl-1.12.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1d4017e78fb22bc797c089b746230ad78ecd3cdb215bc0bd61cb72b5867da57e"}, - {file = "yarl-1.12.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f494c01b28645c431239863cb17af8b8d15b93b0d697a0320d5dd34cd9d7c2fa"}, - {file = "yarl-1.12.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:de4544b1fb29cf14870c4e2b8a897c0242449f5dcebd3e0366aa0aa3cf58a23a"}, - {file = "yarl-1.12.1-cp311-cp311-win32.whl", hash = "sha256:7564525a4673fde53dee7d4c307a961c0951918f0b8c7f09b2c9e02067cf6504"}, - {file = "yarl-1.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:f23bb1a7a6e8e8b612a164fdd08e683bcc16c76f928d6dbb7bdbee2374fbfee6"}, - {file = "yarl-1.12.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a3e2aff8b822ab0e0bdbed9f50494b3a35629c4b9488ae391659973a37a9f53f"}, - {file = "yarl-1.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:22dda2799c8d39041d731e02bf7690f0ef34f1691d9ac9dfcb98dd1e94c8b058"}, - {file = "yarl-1.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:18c2a7757561f05439c243f517dbbb174cadfae3a72dee4ae7c693f5b336570f"}, - {file = "yarl-1.12.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:835010cc17d0020e7931d39e487d72c8e01c98e669b6896a8b8c9aa8ca69a949"}, - {file = "yarl-1.12.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2254fe137c4a360b0a13173a56444f756252c9283ba4d267ca8e9081cd140ea"}, - {file = "yarl-1.12.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6a071d2c3d39b4104f94fc08ab349e9b19b951ad4b8e3b6d7ea92d6ef7ccaf8"}, - {file = "yarl-1.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73a183042ae0918c82ce2df38c3db2409b0eeae88e3afdfc80fb67471a95b33b"}, - {file = "yarl-1.12.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:326b8a079a9afcac0575971e56dabdf7abb2ea89a893e6949b77adfeb058b50e"}, - {file = "yarl-1.12.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:126309c0f52a2219b3d1048aca00766429a1346596b186d51d9fa5d2070b7b13"}, - {file = "yarl-1.12.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ba1c779b45a399cc25f511c681016626f69e51e45b9d350d7581998722825af9"}, - {file = "yarl-1.12.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:af1107299cef049ad00a93df4809517be432283a0847bcae48343ebe5ea340dc"}, - {file = "yarl-1.12.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:20d817c0893191b2ab0ba30b45b77761e8dfec30a029b7c7063055ca71157f84"}, - {file = "yarl-1.12.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d4f818f6371970d6a5d1e42878389bbfb69dcde631e4bbac5ec1cb11158565ca"}, - {file = "yarl-1.12.1-cp312-cp312-win32.whl", hash = "sha256:0ac33d22b2604b020569a82d5f8a03ba637ba42cc1adf31f616af70baf81710b"}, - {file = "yarl-1.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:fd24996e12e1ba7c397c44be75ca299da14cde34d74bc5508cce233676cc68d0"}, - {file = "yarl-1.12.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dea360778e0668a7ad25d7727d03364de8a45bfd5d808f81253516b9f2217765"}, - {file = "yarl-1.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1f50a37aeeb5179d293465e522fd686080928c4d89e0ff215e1f963405ec4def"}, - {file = "yarl-1.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0274b1b7a9c9c32b7bf250583e673ff99fb9fccb389215841e2652d9982de740"}, - {file = "yarl-1.12.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4f3ab9eb8ab2d585ece959c48d234f7b39ac0ca1954a34d8b8e58a52064bdb3"}, - {file = "yarl-1.12.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8d31dd0245d88cf7239e96e8f2a99f815b06e458a5854150f8e6f0e61618d41b"}, - {file = "yarl-1.12.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a96198d5d26f40557d986c1253bfe0e02d18c9d9b93cf389daf1a3c9f7c755fa"}, - {file = "yarl-1.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddae504cfb556fe220efae65e35be63cd11e3c314b202723fc2119ce19f0ca2e"}, - {file = "yarl-1.12.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bce00f3b1f7f644faae89677ca68645ed5365f1c7f874fdd5ebf730a69640d38"}, - {file = "yarl-1.12.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eee5ff934b0c9f4537ff9596169d56cab1890918004791a7a06b879b3ba2a7ef"}, - {file = "yarl-1.12.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4ea99e64b2ad2635e0f0597b63f5ea6c374791ff2fa81cdd4bad8ed9f047f56f"}, - {file = "yarl-1.12.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c667b383529520b8dd6bd496fc318678320cb2a6062fdfe6d3618da6b8790f6"}, - {file = "yarl-1.12.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d920401941cb898ef089422e889759dd403309eb370d0e54f1bdf6ca07fef603"}, - {file = "yarl-1.12.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:501a1576716032cc6d48c7c47bcdc42d682273415a8f2908e7e72cb4625801f3"}, - {file = "yarl-1.12.1-cp313-cp313-win32.whl", hash = "sha256:24416bb5e221e29ddf8aac5b97e94e635ca2c5be44a1617ad6fe32556df44294"}, - {file = "yarl-1.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:71af3766bb46738d12cc288d9b8de7ef6f79c31fd62757e2b8a505fe3680b27f"}, - {file = "yarl-1.12.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c924deab8105f86980983eced740433fb7554a7f66db73991affa4eda99d5402"}, - {file = "yarl-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5fb475a4cdde582c9528bb412b98f899680492daaba318231e96f1a0a1bb0d53"}, - {file = "yarl-1.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:36ee0115b9edca904153a66bb74a9ff1ce38caff015de94eadfb9ba8e6ecd317"}, - {file = "yarl-1.12.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2631c9d7386bd2d4ce24ecc6ebf9ae90b3efd713d588d90504eaa77fec4dba01"}, - {file = "yarl-1.12.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2376d8cf506dffd0e5f2391025ae8675b09711016656590cb03b55894161fcfa"}, - {file = "yarl-1.12.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:24197ba3114cc85ddd4091e19b2ddc62650f2e4a899e51b074dfd52d56cf8c72"}, - {file = "yarl-1.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfdf419bf5d3644f94cd7052954fc233522f5a1b371fc0b00219ebd9c14d5798"}, - {file = "yarl-1.12.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8112f640a4f7e7bf59f7cabf0d47a29b8977528c521d73a64d5cc9e99e48a174"}, - {file = "yarl-1.12.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:607d12f0901f6419a8adceb139847c42c83864b85371f58270e42753f9780fa6"}, - {file = "yarl-1.12.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:664380c7ed524a280b6a2d5d9126389c3e96cd6e88986cdb42ca72baa27421d6"}, - {file = "yarl-1.12.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:0d0a5e87bc48d76dfcfc16295201e9812d5f33d55b4a0b7cad1025b92bf8b91b"}, - {file = "yarl-1.12.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:eff6bac402719c14e17efe845d6b98593c56c843aca6def72080fbede755fd1f"}, - {file = "yarl-1.12.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:22839d1d1eab9e4b427828a88a22beb86f67c14d8ff81175505f1cc8493f3500"}, - {file = "yarl-1.12.1-cp38-cp38-win32.whl", hash = "sha256:717f185086bb9d817d4537dd18d5df5d657598cd00e6fc22e4d54d84de266c1d"}, - {file = "yarl-1.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:71978ba778948760cff528235c951ea0ef7a4f9c84ac5a49975f8540f76c3f73"}, - {file = "yarl-1.12.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:30ffc046ebddccb3c4cac72c1a3e1bc343492336f3ca86d24672e90ccc5e788a"}, - {file = "yarl-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f10954b233d4df5cc3137ffa5ced97f8894152df817e5d149bf05a0ef2ab8134"}, - {file = "yarl-1.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2e912b282466444023610e4498e3795c10e7cfd641744524876239fcf01d538d"}, - {file = "yarl-1.12.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6af871f70cfd5b528bd322c65793b5fd5659858cdfaa35fbe563fb99b667ed1f"}, - {file = "yarl-1.12.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3e4e1f7b08d1ec6b685ccd3e2d762219c550164fbf524498532e39f9413436e"}, - {file = "yarl-1.12.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9a7ee79183f0b17dcede8b6723e7da2ded529cf159a878214be9a5d3098f5b1e"}, - {file = "yarl-1.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96c8ff1e1dd680e38af0887927cab407a4e51d84a5f02ae3d6eb87233036c763"}, - {file = "yarl-1.12.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e9905fc2dc1319e4c39837b906a024cf71b1261cc66b0cd89678f779c0c61f5"}, - {file = "yarl-1.12.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:01549468858b87d36f967c97d02e6e54106f444aeb947ed76f8f71f85ed07cec"}, - {file = "yarl-1.12.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:96b34830bd6825ca0220bf005ea99ac83eb9ce51301ddb882dcf613ae6cd95fb"}, - {file = "yarl-1.12.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2aee7594d2c2221c717a8e394bbed4740029df4c0211ceb0f04815686e99c795"}, - {file = "yarl-1.12.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:15871130439ad10abb25a4631120d60391aa762b85fcab971411e556247210a0"}, - {file = "yarl-1.12.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:838dde2cb570cfbb4cab8a876a0974e8b90973ea40b3ac27a79b8a74c8a2db15"}, - {file = "yarl-1.12.1-cp39-cp39-win32.whl", hash = "sha256:eacbcf30efaca7dc5cb264228ffecdb95fdb1e715b1ec937c0ce6b734161e0c8"}, - {file = "yarl-1.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:76a59d1b63de859398bc7764c860a769499511463c1232155061fe0147f13e01"}, - {file = "yarl-1.12.1-py3-none-any.whl", hash = "sha256:dc3192a81ecd5ff954cecd690327badd5a84d00b877e1573f7c9097ce13e5bfb"}, - {file = "yarl-1.12.1.tar.gz", hash = "sha256:5b860055199aec8d6fe4dcee3c5196ce506ca198a50aab0059ffd26e8e815828"}, + {file = "yarl-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93771146ef048b34201bfa382c2bf74c524980870bb278e6df515efaf93699ff"}, + {file = "yarl-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8281db240a1616af2f9c5f71d355057e73a1409c4648c8949901396dc0a3c151"}, + {file = "yarl-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:170ed4971bf9058582b01a8338605f4d8c849bd88834061e60e83b52d0c76870"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc61b005f6521fcc00ca0d1243559a5850b9dd1e1fe07b891410ee8fe192d0c0"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:871e1b47eec7b6df76b23c642a81db5dd6536cbef26b7e80e7c56c2fd371382e"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3a58a2f2ca7aaf22b265388d40232f453f67a6def7355a840b98c2d547bd037f"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:736bb076f7299c5c55dfef3eb9e96071a795cb08052822c2bb349b06f4cb2e0a"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8fd51299e21da709eabcd5b2dd60e39090804431292daacbee8d3dabe39a6bc0"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:358dc7ddf25e79e1cc8ee16d970c23faee84d532b873519c5036dbb858965795"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:50d866f7b1a3f16f98603e095f24c0eeba25eb508c85a2c5939c8b3870ba2df8"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8b9c4643e7d843a0dca9cd9d610a0876e90a1b2cbc4c5ba7930a0d90baf6903f"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d63123bfd0dce5f91101e77c8a5427c3872501acece8c90df457b486bc1acd47"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4e76381be3d8ff96a4e6c77815653063e87555981329cf8f85e5be5abf449021"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:734144cd2bd633a1516948e477ff6c835041c0536cef1d5b9a823ae29899665b"}, + {file = "yarl-1.17.2-cp310-cp310-win32.whl", hash = "sha256:26bfb6226e0c157af5da16d2d62258f1ac578d2899130a50433ffee4a5dfa673"}, + {file = "yarl-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:76499469dcc24759399accd85ec27f237d52dec300daaca46a5352fcbebb1071"}, + {file = "yarl-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:792155279dc093839e43f85ff7b9b6493a8eaa0af1f94f1f9c6e8f4de8c63500"}, + {file = "yarl-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:38bc4ed5cae853409cb193c87c86cd0bc8d3a70fd2268a9807217b9176093ac6"}, + {file = "yarl-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4a8c83f6fcdc327783bdc737e8e45b2e909b7bd108c4da1892d3bc59c04a6d84"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6d5fed96f0646bfdf698b0a1cebf32b8aae6892d1bec0c5d2d6e2df44e1e2d"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:782ca9c58f5c491c7afa55518542b2b005caedaf4685ec814fadfcee51f02493"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff6af03cac0d1a4c3c19e5dcc4c05252411bf44ccaa2485e20d0a7c77892ab6e"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a3f47930fbbed0f6377639503848134c4aa25426b08778d641491131351c2c8"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1fa68a3c921365c5745b4bd3af6221ae1f0ea1bf04b69e94eda60e57958907f"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:187df91395c11e9f9dc69b38d12406df85aa5865f1766a47907b1cc9855b6303"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:93d1c8cc5bf5df401015c5e2a3ce75a5254a9839e5039c881365d2a9dcfc6dc2"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:11d86c6145ac5c706c53d484784cf504d7d10fa407cb73b9d20f09ff986059ef"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c42774d1d1508ec48c3ed29e7b110e33f5e74a20957ea16197dbcce8be6b52ba"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8e589379ef0407b10bed16cc26e7392ef8f86961a706ade0a22309a45414d7"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1056cadd5e850a1c026f28e0704ab0a94daaa8f887ece8dfed30f88befb87bb0"}, + {file = "yarl-1.17.2-cp311-cp311-win32.whl", hash = "sha256:be4c7b1c49d9917c6e95258d3d07f43cfba2c69a6929816e77daf322aaba6628"}, + {file = "yarl-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:ac8eda86cc75859093e9ce390d423aba968f50cf0e481e6c7d7d63f90bae5c9c"}, + {file = "yarl-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dd90238d3a77a0e07d4d6ffdebc0c21a9787c5953a508a2231b5f191455f31e9"}, + {file = "yarl-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c74f0b0472ac40b04e6d28532f55cac8090e34c3e81f118d12843e6df14d0909"}, + {file = "yarl-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d486ddcaca8c68455aa01cf53d28d413fb41a35afc9f6594a730c9779545876"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25b7e93f5414b9a983e1a6c1820142c13e1782cc9ed354c25e933aebe97fcf2"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a0baff7827a632204060f48dca9e63fbd6a5a0b8790c1a2adfb25dc2c9c0d50"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:460024cacfc3246cc4d9f47a7fc860e4fcea7d1dc651e1256510d8c3c9c7cde0"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5870d620b23b956f72bafed6a0ba9a62edb5f2ef78a8849b7615bd9433384171"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2941756754a10e799e5b87e2319bbec481ed0957421fba0e7b9fb1c11e40509f"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9611b83810a74a46be88847e0ea616794c406dbcb4e25405e52bff8f4bee2d0a"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cd7e35818d2328b679a13268d9ea505c85cd773572ebb7a0da7ccbca77b6a52e"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6b981316fcd940f085f646b822c2ff2b8b813cbd61281acad229ea3cbaabeb6b"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:688058e89f512fb7541cb85c2f149c292d3fa22f981d5a5453b40c5da49eb9e8"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56afb44a12b0864d17b597210d63a5b88915d680f6484d8d202ed68ade38673d"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:17931dfbb84ae18b287279c1f92b76a3abcd9a49cd69b92e946035cff06bcd20"}, + {file = "yarl-1.17.2-cp312-cp312-win32.whl", hash = "sha256:ff8d95e06546c3a8c188f68040e9d0360feb67ba8498baf018918f669f7bc39b"}, + {file = "yarl-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:4c840cc11163d3c01a9d8aad227683c48cd3e5be5a785921bcc2a8b4b758c4f3"}, + {file = "yarl-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3294f787a437cb5d81846de3a6697f0c35ecff37a932d73b1fe62490bef69211"}, + {file = "yarl-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f1e7fedb09c059efee2533119666ca7e1a2610072076926fa028c2ba5dfeb78c"}, + {file = "yarl-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:da9d3061e61e5ae3f753654813bc1cd1c70e02fb72cf871bd6daf78443e9e2b1"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91c012dceadc695ccf69301bfdccd1fc4472ad714fe2dd3c5ab4d2046afddf29"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f11fd61d72d93ac23718d393d2a64469af40be2116b24da0a4ca6922df26807e"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46c465ad06971abcf46dd532f77560181387b4eea59084434bdff97524444032"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef6eee1a61638d29cd7c85f7fd3ac7b22b4c0fabc8fd00a712b727a3e73b0685"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4434b739a8a101a837caeaa0137e0e38cb4ea561f39cb8960f3b1e7f4967a3fc"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:752485cbbb50c1e20908450ff4f94217acba9358ebdce0d8106510859d6eb19a"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:17791acaa0c0f89323c57da7b9a79f2174e26d5debbc8c02d84ebd80c2b7bff8"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5c6ea72fe619fee5e6b5d4040a451d45d8175f560b11b3d3e044cd24b2720526"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db5ac3871ed76340210fe028f535392f097fb31b875354bcb69162bba2632ef4"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7a1606ba68e311576bcb1672b2a1543417e7e0aa4c85e9e718ba6466952476c0"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9bc27dd5cfdbe3dc7f381b05e6260ca6da41931a6e582267d5ca540270afeeb2"}, + {file = "yarl-1.17.2-cp313-cp313-win32.whl", hash = "sha256:52492b87d5877ec405542f43cd3da80bdcb2d0c2fbc73236526e5f2c28e6db28"}, + {file = "yarl-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:8e1bf59e035534ba4077f5361d8d5d9194149f9ed4f823d1ee29ef3e8964ace3"}, + {file = "yarl-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c556fbc6820b6e2cda1ca675c5fa5589cf188f8da6b33e9fc05b002e603e44fa"}, + {file = "yarl-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f2f44a4247461965fed18b2573f3a9eb5e2c3cad225201ee858726cde610daca"}, + {file = "yarl-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3a3ede8c248f36b60227eb777eac1dbc2f1022dc4d741b177c4379ca8e75571a"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2654caaf5584449d49c94a6b382b3cb4a246c090e72453493ea168b931206a4d"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d41c684f286ce41fa05ab6af70f32d6da1b6f0457459a56cf9e393c1c0b2217"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2270d590997445a0dc29afa92e5534bfea76ba3aea026289e811bf9ed4b65a7f"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18662443c6c3707e2fc7fad184b4dc32dd428710bbe72e1bce7fe1988d4aa654"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:75ac158560dec3ed72f6d604c81090ec44529cfb8169b05ae6fcb3e986b325d9"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1fee66b32e79264f428dc8da18396ad59cc48eef3c9c13844adec890cd339db5"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:585ce7cd97be8f538345de47b279b879e091c8b86d9dbc6d98a96a7ad78876a3"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c019abc2eca67dfa4d8fb72ba924871d764ec3c92b86d5b53b405ad3d6aa56b0"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c6e659b9a24d145e271c2faf3fa6dd1fcb3e5d3f4e17273d9e0350b6ab0fe6e2"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:d17832ba39374134c10e82d137e372b5f7478c4cceeb19d02ae3e3d1daed8721"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bc3003710e335e3f842ae3fd78efa55f11a863a89a72e9a07da214db3bf7e1f8"}, + {file = "yarl-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f5ffc6b7ace5b22d9e73b2a4c7305740a339fbd55301d52735f73e21d9eb3130"}, + {file = "yarl-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:48e424347a45568413deec6f6ee2d720de2cc0385019bedf44cd93e8638aa0ed"}, + {file = "yarl-1.17.2-py3-none-any.whl", hash = "sha256:dd7abf4f717e33b7487121faf23560b3a50924f80e4bef62b22dab441ded8f3b"}, + {file = "yarl-1.17.2.tar.gz", hash = "sha256:753eaaa0c7195244c84b5cc159dc8204b7fd99f716f11198f999f2332a86b178"}, ] [package.dependencies] idna = ">=2.0" multidict = ">=4.0" +propcache = ">=0.2.0" [metadata] lock-version = "2.0" python-versions = "<4.0,>=3.10" -content-hash = "7614f75bf08ad0550598113d72597e5a88323f917d800814e2db02a2c3a9c90b" +content-hash = "074dd9e15da206b9fec58ae93b6d6da478dcced57381dbc25273a66a94aaf125" diff --git a/pyproject.toml b/pyproject.toml index cf4fc93..278f257 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,10 +16,10 @@ include = "packages" [tool.poetry.dependencies] python = "<4.0,>=3.10" -open-autonomy = "==0.18.2" -open-aea-test-autonomy = "==0.18.2" -open-aea = "==1.59.0" -open-aea-ledger-ethereum = "==1.59.0" +open-autonomy = "==0.18.3" +open-aea-test-autonomy = "==0.18.3" +open-aea = "==1.60.0" +open-aea-ledger-ethereum = "==1.60.0" typing_extensions = ">=3.10.0.2" toml = "==0.10.2" tomte = {version = "==0.2.17", extras = ["cli", "tests"]} @@ -27,7 +27,7 @@ black = "==24.2.0" isort = "==5.13.2" grpcio = "==1.53.0" asn1crypto = "<1.5.0,>=1.4.0" -open-aea-ledger-cosmos = "==1.59.0" +open-aea-ledger-cosmos = "==1.60.0" py-ecc = "==6.0.0" pytz = "==2022.2.1" openapi-core = "==0.15.0" diff --git a/tox.ini b/tox.ini index 6403792..5c4910c 100644 --- a/tox.ini +++ b/tox.ini @@ -25,12 +25,12 @@ deps = grpcio==1.53.0 hypothesis==6.21.6 jsonschema<4.4.0,>=4.3.0 - open-autonomy==0.18.2 - open-aea==1.59.0 - open-aea-ledger-ethereum==1.59.0 - open-aea-ledger-cosmos==1.59.0 - open-aea-cli-ipfs==1.59.0 - open-aea-test-autonomy==0.18.2 + open-autonomy==0.18.3 + open-aea==1.60.0 + open-aea-ledger-ethereum==1.60.0 + open-aea-ledger-cosmos==1.60.0 + open-aea-cli-ipfs==1.60.0 + open-aea-test-autonomy==0.18.3 toml==0.10.2 typing_extensions>=3.10.0.2 py-ecc==6.0.0 From e6510eadf6efabfcc933ff795faf2b3c3328e565 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Tue, 19 Nov 2024 18:17:08 +0530 Subject: [PATCH 25/52] fix: uodate error message --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- .../valory/skills/liquidity_trader_abci/behaviours.py | 6 +++--- packages/valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index dad4548..3dd821b 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeie3cjy3yeljgavlaq6c4clvsg7gtwnrpryn7nlsq6hs7rlmzfiyi4", - "skill/valory/optimus_abci/0.1.0": "bafybeier5s5gvdjxe7mrx44nxr2ohxqkkjizmtt44qvyan2jwnxnp4dkim", - "agent/valory/optimus/0.1.0": "bafybeiakqm6gtrjqkrwyyogamqvrenoi6ois6jk3zgetqs2jlrdt6conmy", - "service/valory/optimus/0.1.0": "bafybeihqdd3wqf7xgx4m4a4v5s4vy3duaj6eepfhohhbfq2opx2a5zmv4e" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicbsx4lfpvqzqsx25qh3cy5iorystmfs4djqwz2sf6ev25l66hlmi", + "skill/valory/optimus_abci/0.1.0": "bafybeicms3q4frgtlvrx4adec6cf4jk2b5m3o4wy3xaxcrb3q26eot5kvi", + "agent/valory/optimus/0.1.0": "bafybeiduidgrosn3ihrfvkcefzctmhyjspsbka2fe2s5dtcyuha5jhdhcq", + "service/valory/optimus/0.1.0": "bafybeiheu4gmrcertxqgspkk3nx6pfq4i2wjw4edmz3z7khic62tktttq4" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 6063718..5498023 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeie3cjy3yeljgavlaq6c4clvsg7gtwnrpryn7nlsq6hs7rlmzfiyi4 -- valory/optimus_abci:0.1.0:bafybeier5s5gvdjxe7mrx44nxr2ohxqkkjizmtt44qvyan2jwnxnp4dkim +- valory/liquidity_trader_abci:0.1.0:bafybeicbsx4lfpvqzqsx25qh3cy5iorystmfs4djqwz2sf6ev25l66hlmi +- valory/optimus_abci:0.1.0:bafybeicms3q4frgtlvrx4adec6cf4jk2b5m3o4wy3xaxcrb3q26eot5kvi - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 3743d4a..6291aa9 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeiakqm6gtrjqkrwyyogamqvrenoi6ois6jk3zgetqs2jlrdt6conmy +agent: valory/optimus:0.1.0:bafybeiduidgrosn3ihrfvkcefzctmhyjspsbka2fe2s5dtcyuha5jhdhcq number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 2122d93..40a85d6 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -2819,7 +2819,7 @@ def _get_step_transaction( if response.status_code not in HTTP_OK: response = json.loads(response.body) - self.context.logger.error(f"Error encountered: {response['message']}") + self.context.logger.error(f"[LiFi API Error Message] Error encountered: {response['message']}") return None try: @@ -2993,7 +2993,7 @@ def round_down_amount(amount: int, decimals: int) -> int: if routes_response.status_code != 200: response = json.loads(routes_response.body) - self.context.logger.error(f"Error encountered: {response['message']}") + self.context.logger.error(f"[LiFi API Error Message] Error encountered: {response['message']}") return None try: @@ -3007,7 +3007,7 @@ def round_down_amount(amount: int, decimals: int) -> int: routes = routes_response.get("routes", []) if not routes: - self.context.logger.error("No routes available for this pair") + self.context.logger.error("[LiFi API Error Message] No routes available for this pair") return None return routes diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 82336f9..c144c49 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeidcrldmbhnyh36efjbmhoexqx4vfcvjdhgmsmejgxxtlxwjs6xhka + behaviours.py: bafybeidumf2rfnckzwpuwxf366sphmrjfvh5vsy5s5mzdhbjo6sw5ewgp4 dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 0b0dfb9..3032ad2 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeie3cjy3yeljgavlaq6c4clvsg7gtwnrpryn7nlsq6hs7rlmzfiyi4 +- valory/liquidity_trader_abci:0.1.0:bafybeicbsx4lfpvqzqsx25qh3cy5iorystmfs4djqwz2sf6ev25l66hlmi - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From 9f1b893d1a9f0a7a48a0352288178adb994cefe9 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Tue, 19 Nov 2024 19:09:05 +0530 Subject: [PATCH 26/52] fix: remove default priority fee override --- packages/packages.json | 4 ++-- packages/valory/agents/optimus/aea-config.yaml | 1 - packages/valory/services/optimus/service.yaml | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 3dd821b..d672655 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -10,8 +10,8 @@ "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicbsx4lfpvqzqsx25qh3cy5iorystmfs4djqwz2sf6ev25l66hlmi", "skill/valory/optimus_abci/0.1.0": "bafybeicms3q4frgtlvrx4adec6cf4jk2b5m3o4wy3xaxcrb3q26eot5kvi", - "agent/valory/optimus/0.1.0": "bafybeiduidgrosn3ihrfvkcefzctmhyjspsbka2fe2s5dtcyuha5jhdhcq", - "service/valory/optimus/0.1.0": "bafybeiheu4gmrcertxqgspkk3nx6pfq4i2wjw4edmz3z7khic62tktttq4" + "agent/valory/optimus/0.1.0": "bafybeihkag6vngj56vas2vziqpekvzgwlcqyfdaexl5kke2seh5lohcllq", + "service/valory/optimus/0.1.0": "bafybeicsbfw2g6gp3fyp434qgqjcy6gwe4fgz4kjhgg4gy5bb7lpt5w6n4" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 5498023..2dcaab2 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -110,7 +110,6 @@ config: gas_price_strategies: eip1559: fee_history_percentile: 50 - default_priority_fee: 2000000 --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 6291aa9..969a53a 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeiduidgrosn3ihrfvkcefzctmhyjspsbka2fe2s5dtcyuha5jhdhcq +agent: valory/optimus:0.1.0:bafybeihkag6vngj56vas2vziqpekvzgwlcqyfdaexl5kke2seh5lohcllq number_of_agents: 1 deployment: {} --- @@ -123,7 +123,6 @@ config: gas_price_strategies: eip1559: fee_history_percentile: ${FEE_HISTORY_PERCENTILE:50} - default_priority_fee: ${DEFAULT_PRIORITY_FEE:2000000} --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection From 841617b0488e8fcc899b50c565d1ac61d0f68550 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 21 Nov 2024 14:53:35 +0530 Subject: [PATCH 27/52] fix: remove unused params --- packages/packages.json | 8 ++-- .../valory/agents/optimus/aea-config.yaml | 9 ++-- packages/valory/services/optimus/service.yaml | 4 +- .../liquidity_trader_abci/behaviours.py | 44 +++++++++++++------ .../skills/liquidity_trader_abci/rounds.py | 12 ++--- .../skills/liquidity_trader_abci/skill.yaml | 5 +-- .../valory/skills/optimus_abci/skill.yaml | 6 +-- 7 files changed, 45 insertions(+), 43 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index d672655..867947b 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicbsx4lfpvqzqsx25qh3cy5iorystmfs4djqwz2sf6ev25l66hlmi", - "skill/valory/optimus_abci/0.1.0": "bafybeicms3q4frgtlvrx4adec6cf4jk2b5m3o4wy3xaxcrb3q26eot5kvi", - "agent/valory/optimus/0.1.0": "bafybeihkag6vngj56vas2vziqpekvzgwlcqyfdaexl5kke2seh5lohcllq", - "service/valory/optimus/0.1.0": "bafybeicsbfw2g6gp3fyp434qgqjcy6gwe4fgz4kjhgg4gy5bb7lpt5w6n4" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeib5sdafxjifu7rlldc573hruohzihorihjftmi3mvnc7oxrta54q4", + "skill/valory/optimus_abci/0.1.0": "bafybeiebiredielcxi44ea6cqftxqvykxo3zz5f5agbeltmgzhhbfazkyi", + "agent/valory/optimus/0.1.0": "bafybeiein5emjdfetob2dc5nkfketimy7kes22oaflcpnqjznkoatiwjiq", + "service/valory/optimus/0.1.0": "bafybeiedibw4eixbimgz57ihtyq4ktroehdfwcvtqki6aeks3cgwp2xeyy" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 2dcaab2..b5406ec 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeicbsx4lfpvqzqsx25qh3cy5iorystmfs4djqwz2sf6ev25l66hlmi -- valory/optimus_abci:0.1.0:bafybeicms3q4frgtlvrx4adec6cf4jk2b5m3o4wy3xaxcrb3q26eot5kvi +- valory/liquidity_trader_abci:0.1.0:bafybeib5sdafxjifu7rlldc573hruohzihorihjftmi3mvnc7oxrta54q4 +- valory/optimus_abci:0.1.0:bafybeiebiredielcxi44ea6cqftxqvykxo3zz5f5agbeltmgzhhbfazkyi - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq @@ -207,9 +207,6 @@ models: slash_threshold_amount: ${int:10000000000000000} light_slash_unit_amount: ${int:5000000000000000} serious_slash_unit_amount: ${int:8000000000000000} - multisend_batch_size: ${int:50} - ipfs_address: ${str:https://gateway.autonolas.tech/ipfs/} - default_chain_id: ${str:optimism} termination_from_block: ${int:34088325} allowed_dexs: ${list:["balancerPool", "UniswapV3"]} initial_assets: ${str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} @@ -251,4 +248,4 @@ models: max_gas_percentage: ${float:0.25} balancer_graphql_endpoints: ${str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} target_investment_chains: ${list:["optimism","base","mode"]} - staking_chain: ${str:"optimism"} + staking_chain: ${str:optimism} diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 969a53a..559a8ae 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeihkag6vngj56vas2vziqpekvzgwlcqyfdaexl5kke2seh5lohcllq +agent: valory/optimus:0.1.0:bafybeiein5emjdfetob2dc5nkfketimy7kes22oaflcpnqjznkoatiwjiq number_of_agents: 1 deployment: {} --- @@ -68,8 +68,6 @@ models: tenderly_account_slug: ${TENDERLY_ACCOUNT_SLUG:str:account_slug} tenderly_project_slug: ${TENDERLY_PROJECT_SLUG:str:project_slug} tendermint_p2p_url: ${TENDERMINT_P2P_URL_0:str:optimism_tm_0:26656} - service_endpoint_base: ${SERVICE_ENDPOINT_BASE:str:https://optimism.autonolas.tech/} - multisend_batch_size: ${MULTISEND_BATCH_SIZE:int:5} safe_contract_addresses: ${SAFE_CONTRACT_ADDRESSES:str:{"ethereum":"0x0000000000000000000000000000000000000000","base":"0x0000000000000000000000000000000000000000","optimism":"0x0000000000000000000000000000000000000000","mode":"0x0000000000000000000000000000000000000000"}} staking_token_contract_address: ${STAKING_TOKEN_CONTRACT_ADDRESS:str:0x88996bbdE7f982D93214881756840cE2c77C4992} staking_activity_checker_contract_address: ${STAKING_ACTIVITY_CHECKER_CONTRACT_ADDRESS:str:0x7Fd1F4b764fA41d19fe3f63C85d12bf64d2bbf68} diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 40a85d6..bb14560 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -389,11 +389,11 @@ def _get_token_decimals( ) return decimals - def _convert_to_token_units(self,amount: int, token_decimal: int = 18) -> str: + def _convert_to_token_units(self, amount: int, token_decimal: int = 18) -> str: """Convert smallest unit to token's base unit.""" value = amount / 10**token_decimal return f"{value:.{token_decimal}f}" - + def _store_data(self, data: Any, attribute: str, filepath: str) -> None: """Generic method to store data as JSON.""" if data is None: @@ -464,7 +464,9 @@ def _calculate_min_num_of_safe_tx_required( self.round_sequence.last_round_transition_timestamp.timestamp() ) - last_ts_checkpoint = yield from self._get_ts_checkpoint(chain=self.params.staking_chain) + last_ts_checkpoint = yield from self._get_ts_checkpoint( + chain=self.params.staking_chain + ) if last_ts_checkpoint is None: return None @@ -552,7 +554,9 @@ def _is_staking_kpi_met(self) -> Generator[None, None, Optional[bool]]: multisig_nonces_since_last_cp = ( yield from self._get_multisig_nonces_since_last_cp( chain=self.params.staking_chain, - multisig=self.params.safe_contract_addresses.get(self.params.staking_chain), + multisig=self.params.safe_contract_addresses.get( + self.params.staking_chain + ), ) ) if multisig_nonces_since_last_cp is None: @@ -783,6 +787,7 @@ def _prepare_safe_tx( data=data, ) + class CheckStakingKPIMetBehaviour(LiquidityTraderBaseBehaviour): """Behaviour that checks if the staking KPI has been met and makes vanity transactions if necessary.""" @@ -966,7 +971,7 @@ def _fetch_all_pools(self) -> Generator[None, None, Optional[Dict[str, Any]]]: if not self.params.target_investment_chains: self.context.logger.warning("No chain selected for investment!") return None - + chain_ids = ",".join( str(self.params.chain_to_chain_id_mapping[chain]) for chain in self.params.target_investment_chains @@ -1364,7 +1369,10 @@ def _get_top_tokens_by_value(self) -> Generator[None, None, Optional[List[Any]]] tokens = [] for token_data in token_balances: - if token_data["value"] >= eligibility_factor * self.params.min_swap_amount_threshold: + if ( + token_data["value"] + >= eligibility_factor * self.params.min_swap_amount_threshold + ): tokens.append(token_data) if len(tokens) == 2: self.context.logger.info( @@ -2177,7 +2185,7 @@ def _prepare_next_action( if not routes: self.context.logger.error("Error fetching routes") return Event.DONE.value, {} - + if self.synchronized_data.max_allowed_steps_in_a_route: routes = [ route @@ -2186,9 +2194,11 @@ def _prepare_next_action( <= self.synchronized_data.max_allowed_steps_in_a_route ] if not routes: - self.context.logger.error(f"Needed routes with equal to or less than {self.synchronized_data.max_allowed_steps_in_a_route} steps, none found!") + self.context.logger.error( + f"Needed routes with equal to or less than {self.synchronized_data.max_allowed_steps_in_a_route} steps, none found!" + ) return Event.DONE.value, {} - + serialized_routes = json.dumps(routes) return Event.UPDATE.value, { @@ -2624,7 +2634,7 @@ def check_if_route_is_profitable( step_transactions = yield from self._get_step_transactions_data(route) if not step_transactions: return None, None, None - + total_gas_cost = 0 total_fee = 0 total_fee += sum(float(tx_info.get("fee", 0)) for tx_info in step_transactions) @@ -2747,7 +2757,7 @@ def _build_multisend_tx( self, positions, tx_info ) -> Generator[None, None, Optional[str]]: multisend_txs = [] - amount= tx_info.get("amount") + amount = tx_info.get("amount") if tx_info.get("source_token") != ZERO_ADDRESS: approval_tx_payload = yield from self.get_approval_tx_hash( @@ -2819,7 +2829,9 @@ def _get_step_transaction( if response.status_code not in HTTP_OK: response = json.loads(response.body) - self.context.logger.error(f"[LiFi API Error Message] Error encountered: {response['message']}") + self.context.logger.error( + f"[LiFi API Error Message] Error encountered: {response['message']}" + ) return None try: @@ -2993,7 +3005,9 @@ def round_down_amount(amount: int, decimals: int) -> int: if routes_response.status_code != 200: response = json.loads(routes_response.body) - self.context.logger.error(f"[LiFi API Error Message] Error encountered: {response['message']}") + self.context.logger.error( + f"[LiFi API Error Message] Error encountered: {response['message']}" + ) return None try: @@ -3007,7 +3021,9 @@ def round_down_amount(amount: int, decimals: int) -> int: routes = routes_response.get("routes", []) if not routes: - self.context.logger.error("[LiFi API Error Message] No routes available for this pair") + self.context.logger.error( + "[LiFi API Error Message] No routes available for this pair" + ) return None return routes diff --git a/packages/valory/skills/liquidity_trader_abci/rounds.py b/packages/valory/skills/liquidity_trader_abci/rounds.py index ea17eda..47f2e37 100644 --- a/packages/valory/skills/liquidity_trader_abci/rounds.py +++ b/packages/valory/skills/liquidity_trader_abci/rounds.py @@ -162,7 +162,7 @@ def participant_to_checkpoint(self) -> DeserializedCollection: def participant_to_staking_kpi(self) -> DeserializedCollection: """Get the participants to the CheckStakingKPIMet round.""" return self._get_deserialized("participant_to_staking_kpi") - + @property def participant_to_decision_making(self) -> DeserializedCollection: """Get the participants to the DecisionMaking round.""" @@ -172,7 +172,7 @@ def participant_to_decision_making(self) -> DeserializedCollection: def participant_to_post_tx_settlement(self) -> DeserializedCollection: """Get the participants to the PostTxSettlement round.""" return self._get_deserialized("participant_to_post_tx_settlement") - + @property def is_staking_kpi_met(self) -> Optional[bool]: """Get kpi met for the day.""" @@ -375,9 +375,7 @@ class DecisionMakingRound(CollectSameUntilThresholdRound): none_event: Enum = Event.NONE no_majority_event = Event.NO_MAJORITY collection_key = get_name(SynchronizedData.participant_to_decision_making) - selection_key = ( - get_name(SynchronizedData.chain_id), - ) + selection_key = (get_name(SynchronizedData.chain_id),) def end_block(self) -> Optional[Tuple[BaseSynchronizedData, Event]]: """Process the end of the block.""" @@ -425,9 +423,7 @@ class PostTxSettlementRound(CollectSameUntilThresholdRound): none_event: Enum = Event.NONE no_majority_event = Event.NO_MAJORITY collection_key = get_name(SynchronizedData.participant_to_post_tx_settlement) - selection_key = ( - get_name(SynchronizedData.chain_id), - ) + selection_key = (get_name(SynchronizedData.chain_id),) def end_block(self) -> Optional[Tuple[BaseSynchronizedData, Enum]]: """ diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index c144c49..ecdfb7d 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeidumf2rfnckzwpuwxf366sphmrjfvh5vsy5s5mzdhbjo6sw5ewgp4 + behaviours.py: bafybeigjgayywhoae2uaqpm5m4nxxh4fhd7yealypeo7oeiyf6ufas4p2u dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 @@ -16,7 +16,7 @@ fingerprint: pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u pools/uniswap.py: bafybeigmqptgmjaxscszohfusgxsexqyx4awuyw7p4g5l7k2qpeyq7vdcu - rounds.py: bafybeig4pqddfq6ukbxgl5kqsuwlscjzocymusz7adctnt7vakprmvow5u + rounds.py: bafybeihsfsgt4mamb47hg5ylphydy7lcftdtbvyhxnqz3j7sfzqtzvbzje strategies/simple_strategy.py: bafybeiasu2nchowx6leksjllpuum4ckezxoj4o2m4sstavblplvvutmvzm strategy_behaviour.py: bafybeidk6sorg47kuuubamcccksi65x3txldyo7y2hm5opbye2ghmz2ljy fingerprint_ignore_patterns: [] @@ -143,7 +143,6 @@ models: serious_slash_unit_amount: 8000000000000000 tx_timeout: 10.0 validate_timeout: 1205 - multisend_batch_size: 50 multisend_address: '0x80f29f3f7e10C80CBcF11A74B1AC631397C5a385' allowed_dexs: - balancerPool diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 3032ad2..132e07d 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeicbsx4lfpvqzqsx25qh3cy5iorystmfs4djqwz2sf6ev25l66hlmi +- valory/liquidity_trader_abci:0.1.0:bafybeib5sdafxjifu7rlldc573hruohzihorihjftmi3mvnc7oxrta54q4 - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: @@ -129,12 +129,8 @@ models: slash_threshold_amount: 10000000000000000 light_slash_unit_amount: 5000000000000000 serious_slash_unit_amount: 8000000000000000 - default_chain_id: ethereum - multisend_batch_size: 50 multisend_address: '0x80f29f3f7e10C80CBcF11A74B1AC631397C5a385' tx_timeout: 10.0 - ipfs_address: https://gateway.autonolas.tech/ipfs/ - service_endpoint_base: https://optimus.staging.autonolas.tech/ allowed_dexs: - balancerPool initial_assets: '{"ethereum":{"0x0000000000000000000000000000000000000000":"eth","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"usdc"}}' From ad2162e28d2aa833393e4574feb1b8bd0fea7b99 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 21 Nov 2024 17:10:54 +0530 Subject: [PATCH 28/52] chore: add workflow for pushing docker images --- .github/workflows/publish_docker_images.yml | 104 ++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 .github/workflows/publish_docker_images.yml diff --git a/.github/workflows/publish_docker_images.yml b/.github/workflows/publish_docker_images.yml new file mode 100644 index 0000000..867e74f --- /dev/null +++ b/.github/workflows/publish_docker_images.yml @@ -0,0 +1,104 @@ +name: Temporary Push Docker Images + +on: + workflow_dispatch: + inputs: + branch: + description: 'Branch to build from' + required: true + default: 'main' + push: + tags: + - 'dev.*' + pull_request: + branches: + - main + +jobs: + publish-packages: + name: Push Packages + runs-on: ubuntu-20.04 + strategy: + matrix: + os: [ubuntu-latest] + python-version: ["3.10"] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-versions }} + - uses: addnab/docker-run-action@v3 + with: + image: valory/open-autonomy-user:latest + options: -v ${{ github.workspace }}:/work + run: | + echo "Pushing Packages" + cd /work + export AUTHOR=$(grep 'service' packages/packages.json | awk -F/ '{print $2}' | head -1) + autonomy init --reset --author $AUTHOR --ipfs --remote + autonomy push-all + publish-images: + name: Publish Docker Images + runs-on: ubuntu-20.04 + needs: + - "publish-packages" + strategy: + matrix: + os: [ubuntu-latest] + python-version: ["3.10"] + env: + DOCKER_USER: ${{secrets.DOCKER_USER}} + DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up tag and vars + uses: addnab/docker-run-action@v3 + with: + image: valory/open-autonomy-user:latest + options: -v ${{ github.workspace }}:/work + run: | + echo "Setting Tag Images" + cd /work + apt-get update && apt-get install git -y || exit 1 + git config --global --add safe.directory /work + export TAG=$(git describe --exact-match --tags $(git rev-parse HEAD)) || exit 1 + if [ $? -eq 0 ]; then + export TAG=`echo $TAG | sed 's/^v//'` + else + echo "You are not on a tagged branch" + exit 1 + fi + echo VERSION=$TAG> env.sh + echo AUTHOR=$(grep 'service/' packages/packages.json | awk -F/ '{print $2}' | head -1) >> env.sh + echo SERVICE=$(grep 'service/' packages/packages.json | awk -F/ '{print $3}' | head -1) >> env.sh + echo AGENT=$(grep 'agent/' packages/packages.json | awk -F/ '{print $3}' | head -1) >> env.sh + echo DEFAULT_IMAGE_TAG=$(cat packages/packages.json | grep agent/ | awk -F: '{print $2}' | tr -d '", ' | head -n 1) >> env.sh + cat env.sh + - uses: addnab/docker-run-action@v3 + name: Build Images + with: + image: valory/open-autonomy-user:latest + options: -v ${{ github.workspace }}:/work + shell: bash + run: | + echo "Building Docker Images" + cd /work + source env.sh || exit 1 + echo "Building images for $AUTHOR for service $SERVICE" + autonomy init --reset --author $AUTHOR --ipfs --remote + autonomy fetch $AUTHOR/$SERVICE --service --local || exit 1 + cd $SERVICE || exit 1 + autonomy build-image || exit 1 + autonomy build-image --version $VERSION || exit 1 + - name: Docker login + run: | + echo $DOCKER_PASSWORD | docker login -u $DOCKER_USER --password-stdin + - name: Docker Push + run: | + source env.sh + echo "Pushing $DOCKER_USER/oar-$AGENT:$VERSION" + echo "Pushing $DOCKER_USER/oar-$AGENT:$DEFAULT_IMAGE_TAG" + docker push $DOCKER_USER/oar-$AGENT:$VERSION + docker push $DOCKER_USER/oar-$AGENT:$DEFAULT_IMAGE_TAG \ No newline at end of file From 2f8d8692bbff5585585b7d4804a3069da5b3e5b7 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 21 Nov 2024 17:32:02 +0530 Subject: [PATCH 29/52] fix: update staking chain param --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 6 +++--- packages/valory/services/optimus/service.yaml | 4 ++-- packages/valory/skills/liquidity_trader_abci/models.py | 2 +- packages/valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 867947b..9bdd2ed 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeib5sdafxjifu7rlldc573hruohzihorihjftmi3mvnc7oxrta54q4", - "skill/valory/optimus_abci/0.1.0": "bafybeiebiredielcxi44ea6cqftxqvykxo3zz5f5agbeltmgzhhbfazkyi", - "agent/valory/optimus/0.1.0": "bafybeiein5emjdfetob2dc5nkfketimy7kes22oaflcpnqjznkoatiwjiq", - "service/valory/optimus/0.1.0": "bafybeiedibw4eixbimgz57ihtyq4ktroehdfwcvtqki6aeks3cgwp2xeyy" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeic4lrfkju6btm45msbzibuvcokbyycwfnazkvbb4fsnyh7ti4sh2y", + "skill/valory/optimus_abci/0.1.0": "bafybeicjmhnxpniwjkysppw5mrfowlwebdusp6w3euw43oih4crnt2v43e", + "agent/valory/optimus/0.1.0": "bafybeidsx3mjdvh3n27zlbtfl6vhwo3lcqj3ddnnhz6yrdddv7mpai3sbq", + "service/valory/optimus/0.1.0": "bafybeifokbnipvf4epclritybmfjteqpyqhdhtyrol65j75qq5cv47he2m" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index b5406ec..6039d8a 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeib5sdafxjifu7rlldc573hruohzihorihjftmi3mvnc7oxrta54q4 -- valory/optimus_abci:0.1.0:bafybeiebiredielcxi44ea6cqftxqvykxo3zz5f5agbeltmgzhhbfazkyi +- valory/liquidity_trader_abci:0.1.0:bafybeic4lrfkju6btm45msbzibuvcokbyycwfnazkvbb4fsnyh7ti4sh2y +- valory/optimus_abci:0.1.0:bafybeicjmhnxpniwjkysppw5mrfowlwebdusp6w3euw43oih4crnt2v43e - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq @@ -248,4 +248,4 @@ models: max_gas_percentage: ${float:0.25} balancer_graphql_endpoints: ${str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} target_investment_chains: ${list:["optimism","base","mode"]} - staking_chain: ${str:optimism} + staking_chain: ${str:""} diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 559a8ae..58eeae1 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeiein5emjdfetob2dc5nkfketimy7kes22oaflcpnqjznkoatiwjiq +agent: valory/optimus:0.1.0:bafybeidsx3mjdvh3n27zlbtfl6vhwo3lcqj3ddnnhz6yrdddv7mpai3sbq number_of_agents: 1 deployment: {} --- @@ -82,7 +82,7 @@ models: balancer_graphql_endpoints: ${BALANCER_GRAPHQL_ENDPOINTS:str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} allowed_chains: ${ALLOWED_CHAINS:list:["base","optimism","mode"]} target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} - staking_chain: ${STAKING_CHAIN:str:optimism} + staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} coingecko: args: diff --git a/packages/valory/skills/liquidity_trader_abci/models.py b/packages/valory/skills/liquidity_trader_abci/models.py index 695cb8a..a470bf8 100644 --- a/packages/valory/skills/liquidity_trader_abci/models.py +++ b/packages/valory/skills/liquidity_trader_abci/models.py @@ -259,7 +259,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: self.target_investment_chains: List[str] = self._ensure( "target_investment_chains", kwargs, List[str] ) - self.staking_chain = self._ensure("staking_chain", kwargs, str) + self.staking_chain: Optional[str] = self._ensure("staking_chain", kwargs, Optional[str]) super().__init__(*args, **kwargs) def get_store_path(self, kwargs: Dict) -> Path: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index ecdfb7d..08f47fa 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -11,7 +11,7 @@ fingerprint: dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 - models.py: bafybeibxenjsdjhcxdvvc4lhdggo77zpufewauqqhaztp3lqfoo6uyyfya + models.py: bafybeifo5cvwazahd77jcx76rnz73egmgt27g7tmcjji4rdh4xehixfuxy payloads.py: bafybeibozjbr4sxafd6aizge3hb5vn6gowdcszsdzbhwzzcbg6gmpy4pki pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 132e07d..a0a18de 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeib5sdafxjifu7rlldc573hruohzihorihjftmi3mvnc7oxrta54q4 +- valory/liquidity_trader_abci:0.1.0:bafybeic4lrfkju6btm45msbzibuvcokbyycwfnazkvbb4fsnyh7ti4sh2y - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From a8b85cadbc7ce128fb364115c6dbee04df95de74 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 22 Nov 2024 18:12:29 +0530 Subject: [PATCH 30/52] fix: add gas overrides --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 8 ++++++-- packages/valory/services/optimus/service.yaml | 6 +++++- packages/valory/skills/liquidity_trader_abci/skill.yaml | 4 ++++ packages/valory/skills/optimus_abci/skill.yaml | 6 +++++- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 9bdd2ed..5bc2250 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeic4lrfkju6btm45msbzibuvcokbyycwfnazkvbb4fsnyh7ti4sh2y", - "skill/valory/optimus_abci/0.1.0": "bafybeicjmhnxpniwjkysppw5mrfowlwebdusp6w3euw43oih4crnt2v43e", - "agent/valory/optimus/0.1.0": "bafybeidsx3mjdvh3n27zlbtfl6vhwo3lcqj3ddnnhz6yrdddv7mpai3sbq", - "service/valory/optimus/0.1.0": "bafybeifokbnipvf4epclritybmfjteqpyqhdhtyrol65j75qq5cv47he2m" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiceo2vyyc5xc4f5juortmwrxanopyqlgfduiwudjqkgewzbh6t4h4", + "skill/valory/optimus_abci/0.1.0": "bafybeideo5mt4mtihrrgsvwvg5n5lbmtbrsotmhk3hj7nmovzdgxtdu5gm", + "agent/valory/optimus/0.1.0": "bafybeibfrqs46nxoigc7pnyht25krp4y4vkkotgtdpgu7qlq3j77bellmy", + "service/valory/optimus/0.1.0": "bafybeibwo7bduh67esoxw72ok2cn6qneog7sivb66i6rhhew3hqgbnn4fe" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 6039d8a..762de93 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeic4lrfkju6btm45msbzibuvcokbyycwfnazkvbb4fsnyh7ti4sh2y -- valory/optimus_abci:0.1.0:bafybeicjmhnxpniwjkysppw5mrfowlwebdusp6w3euw43oih4crnt2v43e +- valory/liquidity_trader_abci:0.1.0:bafybeiceo2vyyc5xc4f5juortmwrxanopyqlgfduiwudjqkgewzbh6t4h4 +- valory/optimus_abci:0.1.0:bafybeideo5mt4mtihrrgsvwvg5n5lbmtbrsotmhk3hj7nmovzdgxtdu5gm - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq @@ -249,3 +249,7 @@ models: balancer_graphql_endpoints: ${str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}} target_investment_chains: ${list:["optimism","base","mode"]} staking_chain: ${str:""} + gas_params: + gas_price: ${int:null} + max_fee_per_gas: ${int:20000000} + max_priority_fee_per_gas: ${int:3000000} diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 58eeae1..1131336 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeidsx3mjdvh3n27zlbtfl6vhwo3lcqj3ddnnhz6yrdddv7mpai3sbq +agent: valory/optimus:0.1.0:bafybeibfrqs46nxoigc7pnyht25krp4y4vkkotgtdpgu7qlq3j77bellmy number_of_agents: 1 deployment: {} --- @@ -84,6 +84,10 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} + gas_params: + gas_price: ${GAS_PRICE:int:null} + max_fee_per_gas: ${MAX_FEE_PER_GAS:int:20000000} + max_priority_fee_per_gas: ${MAX_PRIORITY_FEE_PER_GAS:int:3000000} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 08f47fa..95b97cd 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -192,6 +192,10 @@ models: - optimism - mode staking_chain: optimism + gas_params: + gas_price: null + max_fee_per_gas: 20000000 + max_priority_fee_per_gas: 3000000 class_name: Params coingecko: args: diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index a0a18de..e6fafb0 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeic4lrfkju6btm45msbzibuvcokbyycwfnazkvbb4fsnyh7ti4sh2y +- valory/liquidity_trader_abci:0.1.0:bafybeiceo2vyyc5xc4f5juortmwrxanopyqlgfduiwudjqkgewzbh6t4h4 - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: @@ -178,6 +178,10 @@ models: - base - optimism - mode + gas_params: + gas_price: null + max_fee_per_gas: 20000000 + max_priority_fee_per_gas: 3000000 staking_chain: optimism class_name: Params coingecko: From 717bdeb1ed18694aa907d6effe9e835ff64b1cea Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 22 Nov 2024 20:07:28 +0530 Subject: [PATCH 31/52] fix: remove gas price override --- packages/packages.json | 2 +- packages/valory/services/optimus/service.yaml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 5bc2250..3cddb58 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,7 +11,7 @@ "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiceo2vyyc5xc4f5juortmwrxanopyqlgfduiwudjqkgewzbh6t4h4", "skill/valory/optimus_abci/0.1.0": "bafybeideo5mt4mtihrrgsvwvg5n5lbmtbrsotmhk3hj7nmovzdgxtdu5gm", "agent/valory/optimus/0.1.0": "bafybeibfrqs46nxoigc7pnyht25krp4y4vkkotgtdpgu7qlq3j77bellmy", - "service/valory/optimus/0.1.0": "bafybeibwo7bduh67esoxw72ok2cn6qneog7sivb66i6rhhew3hqgbnn4fe" + "service/valory/optimus/0.1.0": "bafybeif5n2dt2syo6tgmyc5spn6ncn4aletrqzguizcziiuyadvqyzwk6m" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 1131336..513be05 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -85,7 +85,6 @@ models: staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} gas_params: - gas_price: ${GAS_PRICE:int:null} max_fee_per_gas: ${MAX_FEE_PER_GAS:int:20000000} max_priority_fee_per_gas: ${MAX_PRIORITY_FEE_PER_GAS:int:3000000} coingecko: From 2726b51b1b52f223271e6fde1ad5fa1cab82b9f1 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 22 Nov 2024 20:17:46 +0530 Subject: [PATCH 32/52] fix: remove gas price override from config --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 5 ++--- packages/valory/services/optimus/service.yaml | 2 +- packages/valory/skills/liquidity_trader_abci/skill.yaml | 1 - packages/valory/skills/optimus_abci/skill.yaml | 3 +-- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 3cddb58..470c6c5 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -8,10 +8,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiceo2vyyc5xc4f5juortmwrxanopyqlgfduiwudjqkgewzbh6t4h4", - "skill/valory/optimus_abci/0.1.0": "bafybeideo5mt4mtihrrgsvwvg5n5lbmtbrsotmhk3hj7nmovzdgxtdu5gm", - "agent/valory/optimus/0.1.0": "bafybeibfrqs46nxoigc7pnyht25krp4y4vkkotgtdpgu7qlq3j77bellmy", - "service/valory/optimus/0.1.0": "bafybeif5n2dt2syo6tgmyc5spn6ncn4aletrqzguizcziiuyadvqyzwk6m" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeidu3ybo5ppjkyzme5dzglsw4af6fb2j4ccoufoj3knd5mjf2qaksm", + "skill/valory/optimus_abci/0.1.0": "bafybeieyktk53rsdyvedivsdktdxd55m2p6lz2eblwpq63rmj3ihfqnray", + "agent/valory/optimus/0.1.0": "bafybeifmuejp362bgfw5t4dlwjtpd3qfsbgfrw5g7armaijiicrswz4xfy", + "service/valory/optimus/0.1.0": "bafybeig7b4ca7l6ae54x6cmp4ltyyqnuhsyggw3bpswbznjzkmgytbv4pa" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 762de93..449a430 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeiceo2vyyc5xc4f5juortmwrxanopyqlgfduiwudjqkgewzbh6t4h4 -- valory/optimus_abci:0.1.0:bafybeideo5mt4mtihrrgsvwvg5n5lbmtbrsotmhk3hj7nmovzdgxtdu5gm +- valory/liquidity_trader_abci:0.1.0:bafybeidu3ybo5ppjkyzme5dzglsw4af6fb2j4ccoufoj3knd5mjf2qaksm +- valory/optimus_abci:0.1.0:bafybeieyktk53rsdyvedivsdktdxd55m2p6lz2eblwpq63rmj3ihfqnray - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq @@ -250,6 +250,5 @@ models: target_investment_chains: ${list:["optimism","base","mode"]} staking_chain: ${str:""} gas_params: - gas_price: ${int:null} max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 513be05..69c1fd7 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeibfrqs46nxoigc7pnyht25krp4y4vkkotgtdpgu7qlq3j77bellmy +agent: valory/optimus:0.1.0:bafybeifmuejp362bgfw5t4dlwjtpd3qfsbgfrw5g7armaijiicrswz4xfy number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 95b97cd..948a02f 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -193,7 +193,6 @@ models: - mode staking_chain: optimism gas_params: - gas_price: null max_fee_per_gas: 20000000 max_priority_fee_per_gas: 3000000 class_name: Params diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index e6fafb0..49e6183 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeiceo2vyyc5xc4f5juortmwrxanopyqlgfduiwudjqkgewzbh6t4h4 +- valory/liquidity_trader_abci:0.1.0:bafybeidu3ybo5ppjkyzme5dzglsw4af6fb2j4ccoufoj3knd5mjf2qaksm - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: @@ -179,7 +179,6 @@ models: - optimism - mode gas_params: - gas_price: null max_fee_per_gas: 20000000 max_priority_fee_per_gas: 3000000 staking_chain: optimism From 53c708dc1b601b80cdb64020c122206307028796 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 22 Nov 2024 23:09:53 +0530 Subject: [PATCH 33/52] fix: remove gas override from service config --- packages/packages.json | 2 +- packages/valory/services/optimus/service.yaml | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 470c6c5..f30ee99 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,7 +11,7 @@ "skill/valory/liquidity_trader_abci/0.1.0": "bafybeidu3ybo5ppjkyzme5dzglsw4af6fb2j4ccoufoj3knd5mjf2qaksm", "skill/valory/optimus_abci/0.1.0": "bafybeieyktk53rsdyvedivsdktdxd55m2p6lz2eblwpq63rmj3ihfqnray", "agent/valory/optimus/0.1.0": "bafybeifmuejp362bgfw5t4dlwjtpd3qfsbgfrw5g7armaijiicrswz4xfy", - "service/valory/optimus/0.1.0": "bafybeig7b4ca7l6ae54x6cmp4ltyyqnuhsyggw3bpswbznjzkmgytbv4pa" + "service/valory/optimus/0.1.0": "bafybeiazaphqrn65tvscbubjvuh6mzmodqp3inwayjmye2jjweu3uea7wi" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 69c1fd7..d011c99 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -84,9 +84,6 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - gas_params: - max_fee_per_gas: ${MAX_FEE_PER_GAS:int:20000000} - max_priority_fee_per_gas: ${MAX_PRIORITY_FEE_PER_GAS:int:3000000} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} From abc579e5ea3b2f15223c422a219285c817d87a50 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 27 Nov 2024 15:27:24 +0530 Subject: [PATCH 34/52] chore: build strategy component --- packages/packages.json | 9 +- .../valory/agents/optimus/aea-config.yaml | 10 +- packages/valory/customs/__init__.py | 20 + .../valory/customs/lp_strategy/__init__.py | 20 + .../valory/customs/lp_strategy/component.yaml | 15 + .../valory/customs/lp_strategy/lp_strategy.py | 310 +++++++++++++ packages/valory/services/optimus/service.yaml | 6 +- .../liquidity_trader_abci/behaviours.py | 428 +++++------------- .../skills/liquidity_trader_abci/handlers.py | 38 +- .../liquidity_trader_abci/io_/__init__.py | 19 + .../liquidity_trader_abci/io_/loader.py | 66 +++ .../skills/liquidity_trader_abci/models.py | 59 ++- .../skills/liquidity_trader_abci/skill.yaml | 19 +- .../valory/skills/optimus_abci/handlers.py | 2 +- .../valory/skills/optimus_abci/skill.yaml | 13 +- scripts/aea-config-replace.py | 4 + 16 files changed, 705 insertions(+), 333 deletions(-) create mode 100644 packages/valory/customs/__init__.py create mode 100644 packages/valory/customs/lp_strategy/__init__.py create mode 100644 packages/valory/customs/lp_strategy/component.yaml create mode 100644 packages/valory/customs/lp_strategy/lp_strategy.py create mode 100644 packages/valory/skills/liquidity_trader_abci/io_/__init__.py create mode 100644 packages/valory/skills/liquidity_trader_abci/io_/loader.py diff --git a/packages/packages.json b/packages/packages.json index f30ee99..c9b8586 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,5 +1,6 @@ { "dev": { + "custom/valory/lp_strategy/0.1.0": "bafybeifpjqi6zfm3alltnz6fscjas4tatqlezqwpok2mxmfyroe2ncpkc4", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", @@ -8,10 +9,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeidu3ybo5ppjkyzme5dzglsw4af6fb2j4ccoufoj3knd5mjf2qaksm", - "skill/valory/optimus_abci/0.1.0": "bafybeieyktk53rsdyvedivsdktdxd55m2p6lz2eblwpq63rmj3ihfqnray", - "agent/valory/optimus/0.1.0": "bafybeifmuejp362bgfw5t4dlwjtpd3qfsbgfrw5g7armaijiicrswz4xfy", - "service/valory/optimus/0.1.0": "bafybeiazaphqrn65tvscbubjvuh6mzmodqp3inwayjmye2jjweu3uea7wi" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeigxr3ur7c32q6v5beod5a7wkvozj52a4z73fkbuhi5xvsqfr2xqpu", + "skill/valory/optimus_abci/0.1.0": "bafybeicjsl5f7apa3hr6pn4zribogffzz7obmphp6vc7uw7zva7g4hh7ke", + "agent/valory/optimus/0.1.0": "bafybeicqiie6qzsy5fispogrk5jjoadwyjrauqqx4dpaes3f23uwttcedq", + "service/valory/optimus/0.1.0": "bafybeib5zum6ldt56u7fhhp5zhrwfrxyp6eh5acvikj7e56nnm2g5nkoxq" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 449a430..fac8e36 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,12 +35,14 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeidu3ybo5ppjkyzme5dzglsw4af6fb2j4ccoufoj3knd5mjf2qaksm -- valory/optimus_abci:0.1.0:bafybeieyktk53rsdyvedivsdktdxd55m2p6lz2eblwpq63rmj3ihfqnray +- valory/liquidity_trader_abci:0.1.0:bafybeigxr3ur7c32q6v5beod5a7wkvozj52a4z73fkbuhi5xvsqfr2xqpu +- valory/optimus_abci:0.1.0:bafybeicjsl5f7apa3hr6pn4zribogffzz7obmphp6vc7uw7zva7g4hh7ke - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq +customs: +- valory/lp_strategy:0.1.0:bafybeifpjqi6zfm3alltnz6fscjas4tatqlezqwpok2mxmfyroe2ncpkc4 default_ledger: ethereum required_ledgers: - ethereum @@ -252,3 +254,7 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} + file_hash_to_strategies_json: ${list:[["bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy",["lp_strategy"]]]} + strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}}}} + selected_strategies: ${list:["lp_strategy"]} + selected_protocols: ${list:["balancer","uniswap"]} diff --git a/packages/valory/customs/__init__.py b/packages/valory/customs/__init__.py new file mode 100644 index 0000000..4a216a6 --- /dev/null +++ b/packages/valory/customs/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------------------------ +# +# Copyright 2024 Valory AG +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ------------------------------------------------------------------------------ + +"""This module contains the custom packages authored by Valory AG.""" diff --git a/packages/valory/customs/lp_strategy/__init__.py b/packages/valory/customs/lp_strategy/__init__.py new file mode 100644 index 0000000..37c57fd --- /dev/null +++ b/packages/valory/customs/lp_strategy/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------------------------ +# +# Copyright 2023-2024 Valory AG +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ------------------------------------------------------------------------------ + +"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap""" diff --git a/packages/valory/customs/lp_strategy/component.yaml b/packages/valory/customs/lp_strategy/component.yaml new file mode 100644 index 0000000..01668c5 --- /dev/null +++ b/packages/valory/customs/lp_strategy/component.yaml @@ -0,0 +1,15 @@ +name: lp_strategy +author: valory +version: 0.1.0 +type: custom +description: A strategy that returns the highest APR yielding liquidity pool over + Balancer and Uniswap +license: Apache-2.0 +aea_version: '>=1.0.0, <2.0.0' +fingerprint: + __init__.py: bafybeicpapvukcglcti76a5ggwx2sb6xjrjq5a425tialt2cljc3qo5jpy + lp_strategy.py: bafybeidd5lupfaxbyx3zi5q3duwnyjy4d3j4qz2cty4wst7chcaoogqdde +fingerprint_ignore_patterns: [] +entry_point: lp_strategy.py +callable: run +dependencies: {} diff --git a/packages/valory/customs/lp_strategy/lp_strategy.py b/packages/valory/customs/lp_strategy/lp_strategy.py new file mode 100644 index 0000000..a957a20 --- /dev/null +++ b/packages/valory/customs/lp_strategy/lp_strategy.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------------------------ +# +# Copyright 2023-2024 Valory AG +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ------------------------------------------------------------------------------ + +"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap.""" + +import json +import requests +from collections import defaultdict +from enum import Enum +from typing import ( + Any, + Dict, + List, + Optional, + Union, +) +from urllib.parse import urlencode + +CAMPAIGN_TYPES = [1, 2] +HTTP_OK = [200, 201] +REQUIRED_FIELDS = ("chains", "apr_threshold", "protocols", "balancer_graphql_endpoints", "merkl_fetch_campaign_args", "chain_to_chain_id_mapping") + +class DexTypes(Enum): + """DexTypes""" + + BALANCER = "balancerPool" + UNISWAP_V3 = "UniswapV3" + +def check_missing_fields(kwargs: Dict[str, Any]) -> List[str]: + """Check for missing fields and return them, if any.""" + missing = [] + for field in REQUIRED_FIELDS: + if kwargs.get(field, None) is None: + missing.append(field) + return missing + + +def remove_irrelevant_fields(kwargs: Dict[str, Any]) -> Dict[str, Any]: + """Remove the irrelevant fields from the given kwargs.""" + return {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} + +def highest_apr_opportunity( + chains: List[str], + apr_threshold: float, + merkl_fetch_campaigns_args: Dict[str, Any], + protocols: List[str], + balancer_graphql_endpoints: Dict[str, Any], + chain_to_chain_id_mapping: Dict[str, Any] + +) -> Dict[str, Union[bool, str]]: + """Get the highest APR yielding opportunity over Balancer using Merkl API.""" + + def fetch_all_pools() -> Optional[Dict[str, Any]]: + """Fetch all pools based on allowed chains.""" + if not chains: + return { + "error": ( + "No chain selected for investment!", + ) + } + + chain_ids = ",".join( + str(chain_to_chain_id_mapping[chain]) + for chain in chains + ) + base_url = merkl_fetch_campaigns_args.get("url") + creator = merkl_fetch_campaigns_args.get("creator") + live = merkl_fetch_campaigns_args.get("live", "true") + + query_params = { + "chainIds": chain_ids, + "creatorTag": creator, + "live": live, + "types": CAMPAIGN_TYPES, + } + api_url = f"{base_url}?{urlencode(query_params, doseq=True)}" + + response = requests.get(api_url, headers={"accept": "application/json"}) + + if response.status_code not in HTTP_OK: + return { + "error": ( + f"Could not retrieve data from url {api_url}. Status code {response.status_code}. Error Message: {response.text}", + ) + } + + try: + return json.loads(response.text) + except (ValueError, TypeError) as e: + return { + "error": ( + f"Could not parse response from api, the following error was encountered {type(e).__name__}: {e}", + ) + } + + def filter_eligible_pools(all_pools: Dict[str, Any]) -> Dict[str, Any]: + """Filter pools based on allowed assets and LP pools.""" + eligible_pools = defaultdict(lambda: defaultdict(list)) + allowed_dex_types = [DexTypes[protocol.upper()].value for protocol in protocols] + + for chain_id, campaigns in all_pools.items(): + for campaign_list in campaigns.values(): + for campaign in campaign_list.values(): + dex_type = campaign.get("type") or campaign.get("ammName") + if dex_type not in allowed_dex_types: + continue + + campaign_apr = campaign.get("apr", 0) + if not campaign_apr or campaign_apr <= 0 or campaign_apr <= apr_threshold: + continue + + campaign_pool_address = campaign.get("mainParameter") + if not campaign_pool_address: + continue + + chain = next( + ( + k + for k, v in "chain_to_chain_id_mapping".items() + if v == int(chain_id) + ), + None, + ) + eligible_pools[dex_type][chain].append(campaign) + + return eligible_pools + + def determine_highest_apr_pool(eligible_pools: Dict[str, Any]) -> Optional[Dict[str, Any]]: + """Determine the pool with the highest APR from the eligible pools.""" + highest_apr_pool = None + highest_apr_pool_info = None + while eligible_pools: + highest_apr = -float("inf") + for dex_type, chains in eligible_pools.items(): + for chain, campaigns in chains.items(): + for campaign in campaigns: + apr = campaign.get("apr", 0) or 0 + if apr > highest_apr: + highest_apr = apr + highest_apr_pool_info = (dex_type, chain, campaign) + + if highest_apr_pool_info: + dex_type, chain, campaign = highest_apr_pool_info + highest_apr_pool = extract_pool_info(dex_type, chain, highest_apr, campaign) + + # Check the number of tokens for the highest APR pool if it's a Balancer pool + if dex_type == DexTypes.BALANCER.value: + pool_id = highest_apr_pool.get("pool_id") + if highest_apr_pool.get("pool_type") is None: + continue + tokensList = fetch_balancer_pool_info(pool_id, chain, detail="tokensList") + if not tokensList or len(tokensList) != 2: + highest_apr_pool = None + highest_apr_pool_info = None + eligible_pools[dex_type][chain].remove(campaign) + if not eligible_pools[dex_type][chain]: + del eligible_pools[dex_type][chain] + + if not eligible_pools[dex_type]: + del eligible_pools[dex_type] + + continue + + return highest_apr_pool + + return None + + def extract_pool_info(dex_type, chain, apr, campaign) -> Optional[Dict[str, Any]]: + """Extract pool info from campaign data.""" + pool_address = campaign.get("mainParameter") + if not pool_address: + return None + + pool_token_dict = {} + pool_id = None + pool_type = None + + if dex_type == DexTypes.BALANCER.value: + type_info = campaign.get("typeInfo", {}) + pool_id = type_info.get("poolId") + pool_tokens = type_info.get("poolTokens", {}) + pool_token_items = list(pool_tokens.items()) + if len(pool_token_items) < 2 or any( + token.get("symbol") is None for _, token in pool_token_items + ): + return None + + pool_type = fetch_balancer_pool_info(pool_id, chain, detail="poolType") + pool_token_dict = { + "token0": pool_token_items[0][0], + "token1": pool_token_items[1][0], + "token0_symbol": pool_token_items[0][1].get("symbol"), + "token1_symbol": pool_token_items[1][1].get("symbol"), + } + + elif dex_type == DexTypes.UNISWAP_V3.value: + pool_info = campaign.get("campaignParameters", {}) + if not pool_info: + return { + "error": ( + f"No pool tokens info present in campaign {campaign}", + ) + } + + pool_token_dict = { + "token0": pool_info.get("token0"), + "token1": pool_info.get("token1"), + "token0_symbol": pool_info.get("symbolToken0"), + "token1_symbol": pool_info.get("symbolToken1"), + "pool_fee": pool_info.get("poolFee"), + } + + if any(v is None for v in pool_token_dict.values()): + return { + "error": ( + f"Invalid pool tokens found in campaign {pool_token_dict}", + ) + } + + return { + "dex_type": dex_type, + "chain": chain, + "apr": apr, + "pool_address": pool_address, + "pool_id": pool_id, + "pool_type": pool_type, + **pool_token_dict + } + + def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Optional[Any]: + """Fetch the pool type for a Balancer pool using a GraphQL query.""" + query = f""" + query {{ + pools(where: {{ id: "{pool_id}" }}) {{ + id + {detail} + }} + }} + """ + + url = balancer_graphql_endpoints.get(chain) + if not url: + return None + + response = requests.post( + url, + json={"query": query}, + headers={"Content-Type": "application/json"}, + ) + if response.status_code not in HTTP_OK: + return None + + try: + res = json.loads(response.text) + if res is None: + return None + + pools = res.get("data", {}).get("pools", []) + if pools: + return pools[0].get(detail) + return None + except json.JSONDecodeError: + return None + + all_pools = fetch_all_pools() + if "error" in all_pools: + return all_pools + + eligible_pools = filter_eligible_pools(all_pools) + if not eligible_pools: + return { + "error": ( + "No eligible pools found.", + ) + } + + highest_apr_pool = determine_highest_apr_pool(eligible_pools) + if highest_apr_pool: + return {"highest_apr_pool": highest_apr_pool} + else: + return { + "error": ( + "No pools with APR found.", + ) + } + +def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: + """Run the strategy.""" + missing = check_missing_fields(kwargs) + if len(missing) > 0: + return {"error": f"Required kwargs {missing} were not provided."} + + kwargs = remove_irrelevant_fields(kwargs) + return highest_apr_opportunity(**kwargs) \ No newline at end of file diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index d011c99..32046b7 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeifmuejp362bgfw5t4dlwjtpd3qfsbgfrw5g7armaijiicrswz4xfy +agent: valory/optimus:0.1.0:bafybeicqiie6qzsy5fispogrk5jjoadwyjrauqqx4dpaes3f23uwttcedq number_of_agents: 1 deployment: {} --- @@ -84,6 +84,10 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} + file_hash_to_strategies_json: ${FILE_HASH_TO_STRATEGIES_JSON:list:[["bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy",["lp_strategy"]]]} + strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}}}} + selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy"]} + selected_protocols: ${SELECTED_PROTOCOLS:list:["balancer","uniswap"]} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index bb14560..36f967b 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -42,6 +42,10 @@ from eth_abi import decode from eth_utils import keccak, to_bytes, to_hex +from aea.protocols.base import Message +from aea.protocols.dialogue.base import Dialogue +from packages.valory.skills.liquidity_trader_abci.io_.loader import ComponentPackageLoader +from packages.valory.protocols.ipfs import IpfsMessage from packages.valory.contracts.erc20.contract import ERC20 from packages.valory.contracts.gnosis_safe.contract import ( GnosisSafeContract, @@ -120,7 +124,7 @@ WaitableConditionType = Generator[None, None, Any] HTTP_NOT_FOUND = [400, 404] ERC20_DECIMALS = 18 - +HIGHEST_APR_POOL = "highest_apr_pool" class DexTypes(Enum): """DexTypes""" @@ -189,6 +193,7 @@ def __init__(self, **kwargs: Any) -> None: self.pools[DexTypes.UNISWAP_V3.value] = UniswapPoolBehaviour self.service_staking_state = StakingState.UNSTAKED self.strategy = SimpleStrategyBehaviour + self._inflight_strategy_req: Optional[str] = None # Read the assets and current pool self.read_current_pool() self.read_assets() @@ -928,12 +933,8 @@ def async_act(self) -> Generator: with self.context.benchmark_tool.measure(self.behaviour_id).local(): yield from self.find_highest_apr_pool() actions = [] - if self.highest_apr_pool is not None: - invest_in_pool = self.strategy.get_decision( - self, pool_apr=self.highest_apr_pool.get("apr") - ) - if invest_in_pool: - actions = yield from self.get_order_of_transactions() + if self.highest_apr_pool is not None: + actions = yield from self.get_order_of_transactions() self.context.logger.info(f"Actions: {actions}") serialized_actions = json.dumps(actions) @@ -947,328 +948,129 @@ def async_act(self) -> Generator: self.set_done() def find_highest_apr_pool(self) -> Generator[None, None, None]: - """Find the pool with the highest APR.""" - all_pools = yield from self._fetch_all_pools() - if not all_pools: - self.context.logger.info("No pools found.") - return + """Find the pool with the highest APR using the hyper strategy.""" + yield from self.download_strategies() - eligible_pools = self._filter_eligible_pools(all_pools) - if not eligible_pools: - self.context.logger.info("No eligible pools found.") - return - self.highest_apr_pool = yield from self._determine_highest_apr_pool( - eligible_pools - ) + strategies = self.params.selected_strategies + tried_strategies: Set[str] = set() + highest_apr_pool = None + highest_apr = -float("inf") - if self.highest_apr_pool: + while True: + next_strategy = strategies.pop(0) + self.context.logger.info(f"Evaluating strategy: {next_strategy}") + kwargs: Dict[str, Any] = self.params.strategies_kwargs.get(next_strategy, {}) + kwargs.update( + { + "strategy": next_strategy, + "chains": self.params.target_investment_chains, + "protocols": self.params.selected_protocols, + "chain_to_chain_id_mapping": self.params.chain_to_chain_id_mapping, + "apr_threshold": self.params.apr_threshold + } + ) + self.context.logger.info(f"KWARGS: {kwargs}") + pool = self.execute_strategy(**kwargs) + if pool is not None: + apr = pool.get("apr", 0) + if apr > highest_apr: + highest_apr = apr + highest_apr_pool = pool + + tried_strategies.add(next_strategy) + remaining_strategies = set(strategies) - tried_strategies + if len(remaining_strategies) == 0: + break + + next_strategy = remaining_strategies.pop() + + if highest_apr_pool: + self.highest_apr_pool = highest_apr_pool self.context.logger.info(f"Highest APR pool found: {self.highest_apr_pool}") else: self.context.logger.warning("No pools with APR found.") - def _fetch_all_pools(self) -> Generator[None, None, Optional[Dict[str, Any]]]: - """Fetch all pools based on allowed chains.""" - if not self.params.target_investment_chains: - self.context.logger.warning("No chain selected for investment!") - return None - - chain_ids = ",".join( - str(self.params.chain_to_chain_id_mapping[chain]) - for chain in self.params.target_investment_chains - ) - base_url = self.params.merkl_fetch_campaigns_args.get("url") - creator = self.params.merkl_fetch_campaigns_args.get("creator") - live = self.params.merkl_fetch_campaigns_args.get("live", "true") - - params = { - "chainIds": chain_ids, - "creatorTag": creator, - "live": live, - "types": CAMPAIGN_TYPES, - } - api_url = f"{base_url}?{urlencode(params, doseq=True)}" - self.context.logger.info(f"Fetching campaigns from {api_url}") - - response = yield from self.get_http_response( - method="GET", - url=api_url, - headers={"accept": "application/json"}, - ) - - if response.status_code not in HTTP_OK: - self.context.logger.error( - f"Could not retrieve data from url {api_url}. Status code {response.status_code}. Error Message: {response.body}" - ) - return None + def download_next_strategy(self) -> None: + """Download the strategies one by one.""" + if self._inflight_strategy_req is not None: + # there already is a req in flight + return + if len(self.shared_state.strategy_to_filehash) == 0: + # no strategies pending to be fetched + return + for strategy, file_hash in self.shared_state.strategy_to_filehash.items(): + self.context.logger.info(f"{strategy} {file_hash}") + self.context.logger.info(f"Fetching {strategy} strategy...") + ipfs_msg, message = self._build_ipfs_get_file_req(file_hash) + self._inflight_strategy_req = strategy + self.send_message(ipfs_msg, message, self._handle_get_strategy) + return - try: - return json.loads(response.body) - except (ValueError, TypeError) as e: + def download_strategies(self) -> Generator: + """Download all the strategies, if not yet downloaded.""" + while len(self.shared_state.strategy_to_filehash) > 0: + self.download_next_strategy() + yield from self.sleep(self.params.sleep_time) + + def execute_strategy(self, *args: Any, **kwargs: Any) -> Dict[str, Any]: + """Execute the strategy and return the results.""" + strategy = kwargs.pop("strategy", None) + if strategy is None: + self.context.logger.error(f"No trading strategy was given in {kwargs=}!") + return {HIGHEST_APR_POOL: {}} + + strategy = self.strategy_exec(strategy) + if strategy is None: self.context.logger.error( - f"Could not parse response from api, the following error was encountered {type(e).__name__}: {e}" - ) - return None - - def _filter_eligible_pools(self, all_pools: Dict[str, Any]) -> Dict[str, Any]: - """Filter pools based on allowed assets and LP pools.""" - eligible_pools = defaultdict(lambda: defaultdict(list)) - allowed_dexs = self.params.allowed_dexs - - for chain_id, campaigns in all_pools.items(): - for campaign_list in campaigns.values(): - for campaign in campaign_list.values(): - dex_type = campaign.get("type") or campaign.get("ammName") - if not dex_type or dex_type not in allowed_dexs: - continue - - campaign_apr = campaign.get("apr", 0) - if ( - not campaign_apr - or campaign_apr <= 0 - or campaign_apr <= self.current_pool.get("apr", 0) - ): - continue - - campaign_pool_address = campaign.get("mainParameter") - if ( - not campaign_pool_address - or campaign_pool_address == self.current_pool.get("address") - ): - continue - - chain = next( - ( - k - for k, v in self.params.chain_to_chain_id_mapping.items() - if v == int(chain_id) - ), - None, - ) - eligible_pools[dex_type][chain].append(campaign) - - return eligible_pools - - def _determine_highest_apr_pool( - self, eligible_pools: Dict[str, Any] - ) -> Generator[None, None, Optional[Dict[str, Any]]]: - """Determine the pool with the highest APR from the eligible pools.""" - - highest_apr_pool = None - highest_apr_pool_info = None - while eligible_pools: - highest_apr = -float("inf") - for dex_type, chains in eligible_pools.items(): - for chain, campaigns in chains.items(): - for campaign in campaigns: - apr = campaign.get("apr", 0) or 0 - if apr > highest_apr: - highest_apr = apr - highest_apr_pool_info = (dex_type, chain, campaign) - - if highest_apr_pool_info: - dex_type, chain, campaign = highest_apr_pool_info - highest_apr_pool = yield from self._extract_pool_info( - dex_type, chain, highest_apr, campaign - ) - - # Check the number of tokens for the highest APR pool if it's a Balancer pool - if dex_type == DexTypes.BALANCER.value: - pool_id = highest_apr_pool.get("pool_id") - if highest_apr_pool.get("pool_type") is None: - self.context.logger.error( - f"Pool type not found for pool {pool_id}" - ) - continue - tokensList = yield from self._fetch_balancer_pool_info( - pool_id, chain, detail="tokensList" - ) - if not tokensList or len(tokensList) != 2: - num_of_tokens = len(tokensList) if tokensList else None - self.context.logger.warning( - f"Balancer pool {pool_id} has {num_of_tokens} tokens, currently we support pools with only 2 tokens" - ) - self.context.logger.info("Searching for another pool") - highest_apr_pool = None - highest_apr_pool_info = None - - # Remove the invalid pool from eligible pools and continue searching - eligible_pools[dex_type][chain].remove(campaign) - if not eligible_pools[dex_type][chain]: - del eligible_pools[dex_type][chain] - - if not eligible_pools[dex_type]: - del eligible_pools[dex_type] - - continue - - return highest_apr_pool - - self.context.logger.warning("No eligible pools found.") - return None - - def _extract_pool_info( - self, dex_type, chain, apr, campaign - ) -> Generator[None, None, Optional[Dict[str, Any]]]: - """Extract pool info from campaign data.""" - pool_address = campaign.get("mainParameter") - if not pool_address: - self.context.logger.error(f"Missing pool address in campaign {campaign}") - return None - - pool_token_dict = {} - pool_id = None - pool_type = None - - if dex_type == DexTypes.BALANCER.value: - type_info = campaign.get("typeInfo", {}) - pool_id = type_info.get("poolId") - pool_tokens = type_info.get("poolTokens", {}) - pool_token_items = list(pool_tokens.items()) - if len(pool_token_items) < 2 or any( - token.get("symbol") is None for _, token in pool_token_items - ): - self.context.logger.error( - f"Invalid pool tokens found in campaign {pool_token_items}" - ) - return None - - pool_type = yield from self._fetch_balancer_pool_info( - pool_id, chain, detail="poolType" + f"No executable was found for {strategy=}!" ) - pool_token_dict = { - "token0": pool_token_items[0][0], - "token1": pool_token_items[1][0], - "token0_symbol": pool_token_items[0][1].get("symbol"), - "token1_symbol": pool_token_items[1][1].get("symbol"), - } + return {HIGHEST_APR_POOL: {}} - elif dex_type == DexTypes.UNISWAP_V3.value: - pool_info = campaign.get("campaignParameters", {}) - if not pool_info: - self.context.logger.error( - f"No pool tokens info present in campaign {campaign}" - ) - return None + strategy_exec, callable_method = strategy + if callable_method in globals(): + del globals()[callable_method] - pool_token_dict = { - "token0": pool_info.get("token0"), - "token1": pool_info.get("token1"), - "token0_symbol": pool_info.get("symbolToken0"), - "token1_symbol": pool_info.get("symbolToken1"), - "pool_fee": pool_info.get("poolFee"), - } - - if any(v is None for v in pool_token_dict.values()): + exec(strategy_exec, globals()) # pylint: disable=W0122 # nosec + method = globals().get(callable_method, None) + if method is None: self.context.logger.error( - f"Invalid pool tokens found in campaign {pool_token_dict}" + f"No {callable_method!r} method was found in {strategy} executable." ) - return None - - return { - "dex_type": dex_type, - "chain": chain, - "apr": apr, - "pool_address": pool_address, - "pool_id": pool_id, - "pool_type": pool_type, - **pool_token_dict, - } - - def _fetch_balancer_pool_info( - self, pool_id: str, chain: str, detail: str - ) -> Generator[None, None, Optional[Any]]: - """Fetch the pool type for a Balancer pool using a GraphQL query.""" - - def to_content(query: str) -> bytes: - """Convert the given query string to payload content.""" - finalized_query = {"query": query} - encoded_query = json.dumps(finalized_query, sort_keys=True).encode("utf-8") - return encoded_query - - query = f""" - query {{ - pools(where: {{ id: "{pool_id}" }}) {{ # noqa: B028 - id - {detail} - }} - }} - """ - - url = self.params.balancer_graphql_endpoints.get(chain) - if not url: - self.context.logger.error(f"No graphql endpoint found for chain {chain}") - return None + return {HIGHEST_APR_POOL: {}} + + return method(*args, **kwargs) + + def strategy_exec(self, strategy: str) -> Optional[Tuple[str, str]]: + """Get the executable strategy file's content.""" + return self.shared_state.strategies_executables.get(strategy, None) + + def send_message( + self, msg: Message, dialogue: Dialogue, callback: Callable + ) -> None: + """Send a message.""" + self.context.outbox.put_message(message=msg) + nonce = dialogue.dialogue_label.dialogue_reference[0] + self.shared_state.req_to_callback[nonce] = callback + self.shared_state.in_flight_req = True + + def _handle_get_strategy(self, message: IpfsMessage, _: Dialogue) -> None: + """Handle get strategy response.""" + strategy_req = self._inflight_strategy_req + if strategy_req is None: + self.context.logger.error(f"No strategy request to handle for {message=}.") + return - response = yield from self.get_http_response( - content=to_content(query), - method="POST", - url=url, - headers={"Content-Type": "application/json"}, + # store the executable and remove the hash from the mapping because we have downloaded it + _component_yaml, strategy_exec, callable_method = ComponentPackageLoader.load( + message.files ) - if response.status_code not in HTTP_OK: - self.context.logger.error( - f"Received status code {response.status_code} from the API. Response: {response.body}" - ) - return None - try: - res = json.loads(response.body) - if res is None: - self.context.logger.error( - f"Could not get pool type for pool ID {pool_id}" - ) - return None - - pools = res.get("data", {}).get("pools", []) - if pools: - self.context.logger.info( - f"{detail} for pool {pool_id}: {pools[0].get(detail)}" - ) - return pools[0].get(detail) - return None - except json.JSONDecodeError as e: - self.context.logger.error(f"Error decoding JSON response: {str(e)}") - return None - - def _filter_campaigns(self, chain, campaigns, filtered_pools): - """Filter campaigns based on allowed assets and LP pools""" - allowed_dexs = self.params.allowed_dexs - - for campaign_list in campaigns.values(): - for campaign in campaign_list.values(): - dex_type = ( - campaign.get("type") - if campaign.get("type") - else campaign.get("ammName") - ) - if not dex_type: - continue - - campaign_apr = campaign.get("apr") - if not campaign_apr: - continue - - campaign_type = campaign.get("campaignType") - if not campaign_type: - continue - - # The pool apr should be greater than the current pool apr - if dex_type in allowed_dexs: - # type 1 and 2 stand for ERC20 and Concentrated liquidity campaigns respectively - # https://docs.merkl.xyz/integrate-merkl/integrate-merkl-to-your-app#merkl-api - if campaign_type in CAMPAIGN_TYPES: - if not campaign_apr > self.current_pool.get("apr", 0.0): - self.context.logger.info( - "APR does not exceed the current pool APR" - ) - continue - campaign_pool_address = campaign.get("mainParameter") - if not campaign_pool_address: - continue - current_pool_address = self.current_pool.get("address") - # The pool should not be the current pool - if campaign_pool_address != current_pool_address: - filtered_pools[dex_type][chain].append(campaign) + self.shared_state.strategies_executables[strategy_req] = ( + strategy_exec, + callable_method, + ) + self.shared_state.strategy_to_filehash.pop(strategy_req) + self._inflight_strategy_req = None def get_order_of_transactions( self, diff --git a/packages/valory/skills/liquidity_trader_abci/handlers.py b/packages/valory/skills/liquidity_trader_abci/handlers.py index 8ea78f6..dbfd9f7 100644 --- a/packages/valory/skills/liquidity_trader_abci/handlers.py +++ b/packages/valory/skills/liquidity_trader_abci/handlers.py @@ -19,6 +19,7 @@ """This module contains the handlers for the skill of LiquidityTraderAbciApp.""" +from typing import cast from packages.valory.skills.abstract_round_abci.handlers import ( ABCIRoundHandler as BaseABCIRoundHandler, ) @@ -28,9 +29,8 @@ from packages.valory.skills.abstract_round_abci.handlers import ( HttpHandler as BaseHttpHandler, ) -from packages.valory.skills.abstract_round_abci.handlers import ( - IpfsHandler as BaseIpfsHandler, -) +from packages.valory.skills.abstract_round_abci.handlers import AbstractResponseHandler +from packages.valory.protocols.ipfs import IpfsMessage from packages.valory.skills.abstract_round_abci.handlers import ( LedgerApiHandler as BaseLedgerApiHandler, ) @@ -41,6 +41,7 @@ TendermintHandler as BaseTendermintHandler, ) +from packages.valory.skills.liquidity_trader_abci.models import SharedState ABCIHandler = BaseABCIRoundHandler HttpHandler = BaseHttpHandler @@ -48,4 +49,33 @@ LedgerApiHandler = BaseLedgerApiHandler ContractApiHandler = BaseContractApiHandler TendermintHandler = BaseTendermintHandler -IpfsHandler = BaseIpfsHandler + +class IpfsHandler(AbstractResponseHandler): + """IPFS message handler.""" + + SUPPORTED_PROTOCOL = IpfsMessage.protocol_id + allowed_response_performatives = frozenset({IpfsMessage.Performative.IPFS_HASH}) + custom_support_performative = IpfsMessage.Performative.FILES + + @property + def shared_state(self) -> SharedState: + """Get the parameters.""" + return cast(SharedState, self.context.state) + + def handle(self, message: IpfsMessage) -> None: + """ + Implement the reaction to an IPFS message. + + :param message: the message + :return: None + """ + self.context.logger.debug(f"Received message: {message}") + self.shared_state.in_flight_req = False + + if message.performative != self.custom_support_performative: + return super().handle(message) + + dialogue = self.context.ipfs_dialogues.update(message) + nonce = dialogue.dialogue_label.dialogue_reference[0] + callback = self.shared_state.req_to_callback.pop(nonce) + callback(message, dialogue) diff --git a/packages/valory/skills/liquidity_trader_abci/io_/__init__.py b/packages/valory/skills/liquidity_trader_abci/io_/__init__.py new file mode 100644 index 0000000..fd05584 --- /dev/null +++ b/packages/valory/skills/liquidity_trader_abci/io_/__init__.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------------------------ +# +# Copyright 2023 Valory AG +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ------------------------------------------------------------------------------ +"""This module contains helper classes for IPFS interaction.""" diff --git a/packages/valory/skills/liquidity_trader_abci/io_/loader.py b/packages/valory/skills/liquidity_trader_abci/io_/loader.py new file mode 100644 index 0000000..885b321 --- /dev/null +++ b/packages/valory/skills/liquidity_trader_abci/io_/loader.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------------------------ +# +# Copyright 2023 Valory AG +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ------------------------------------------------------------------------------ +"""This module contains helper classes for IPFS interaction.""" +from typing import Dict + +import yaml + +from packages.valory.skills.abstract_round_abci.io_.store import SupportedObjectType + + +class ComponentPackageLoader: + """Component package loader.""" + + @staticmethod + def load(serialized_objects: Dict[str, str]) -> SupportedObjectType: + """ + Load a custom component package. + + :param serialized_objects: the serialized objects. + :return: the component.yaml, entry_point.py and callable as tuple. + """ + # the package MUST contain a component.yaml file + if "component.yaml" not in serialized_objects: + raise ValueError( + "Invalid component package. " + "The package MUST contain a component.yaml." + ) + + # load the component.yaml file + component_yaml = yaml.safe_load(serialized_objects["component.yaml"]) + if "entry_point" not in component_yaml or "callable" not in component_yaml: + raise ValueError( + "Invalid component package. " + "The component.yaml file MUST contain the 'entry_point' and 'callable' keys." + ) + + # the name of the script that needs to be executed + entry_point_name = component_yaml["entry_point"] + + # load the script + if entry_point_name not in serialized_objects: + raise ValueError( + f"Invalid component package. " + f"{entry_point_name} is not present in the component package." + ) + entry_point = serialized_objects[entry_point_name] + # the method that needs to be called + callable_method = component_yaml["callable"] + + return component_yaml, entry_point, callable_method diff --git a/packages/valory/skills/liquidity_trader_abci/models.py b/packages/valory/skills/liquidity_trader_abci/models.py index a470bf8..d929d47 100644 --- a/packages/valory/skills/liquidity_trader_abci/models.py +++ b/packages/valory/skills/liquidity_trader_abci/models.py @@ -23,9 +23,9 @@ from datetime import datetime from pathlib import Path from time import time -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List, Optional, Tuple, Callable, Iterable -from aea.skills.base import Model +from aea.skills.base import Model, SkillContext from packages.valory.skills.abstract_round_abci.models import BaseParams from packages.valory.skills.abstract_round_abci.models import ( @@ -46,7 +46,30 @@ class SharedState(BaseSharedState): """Keep the current shared state of the skill.""" abci_app_cls = LiquidityTraderAbciApp - + def __init__(self, *args: Any, skill_context: SkillContext, **kwargs: Any) -> None: + """Initialize the state.""" + super().__init__(*args, skill_context=skill_context, **kwargs) + self.strategy_to_filehash: Dict[str, str] = {} + self.strategies_executables: Dict[str, Tuple[str, str]] = {} + self.in_flight_req: bool = False + self.req_to_callback: Dict[str, Callable] = {} + + def setup(self) -> None: + """Set up the model.""" + super().setup() + params = self.context.params + self.strategy_to_filehash = { + value: key + for key, values in params.file_hash_to_strategies.items() + for value in values + } + strategy_exec = self.strategy_to_filehash.keys() + for selected_strategy in params.selected_strategies: + if selected_strategy not in strategy_exec: + raise ValueError( + f"The selected trading strategy {selected_strategy} " + f"is not in the strategies' executables {strategy_exec}." + ) Requests = BaseRequests BenchmarkTool = BaseBenchmarkTool @@ -260,6 +283,15 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: "target_investment_chains", kwargs, List[str] ) self.staking_chain: Optional[str] = self._ensure("staking_chain", kwargs, Optional[str]) + self.selected_strategies: List[str] = self._ensure("selected_strategies", kwargs, List[str]) + self.file_hash_to_strategies: Dict[ + str, List[str] + ] = nested_list_todict_workaround( + kwargs, + "file_hash_to_strategies_json" + ) + self.strategies_kwargs: str = json.loads(self._ensure("strategies_kwargs", kwargs, str)) + self.selected_protocols = self._ensure("selected_protocols", kwargs, List[str]) super().__init__(*args, **kwargs) def get_store_path(self, kwargs: Dict) -> Path: @@ -275,3 +307,24 @@ def get_store_path(self, kwargs: Dict) -> Path: f"Policy store path {path!r} is not a directory or is not writable." ) return Path(path) + +def _raise_incorrect_config(key: str, values: Any) -> None: + """Raise a `ValueError` for incorrect configuration of a nested_list workaround.""" + raise ValueError( + f"The given configuration for {key!r} is incorrectly formatted: {values}!" + "The value is expected to be a list of lists that can be represented as a dictionary." + ) + +def nested_list_todict_workaround( + kwargs: Dict, + key: str, +) -> Dict: + """Get a nested list from the kwargs and convert it to a dictionary.""" + values = list(kwargs.get(key, [])) + if len(values) == 0: + raise ValueError(f"No {key!r} specified in agent's configurations: {kwargs}!") + if any(not issubclass(type(nested_values), Iterable) for nested_values in values): + _raise_incorrect_config(key, values) + if any(len(nested_values) % 2 == 1 for nested_values in values): + _raise_incorrect_config(key, values) + return {value[0]: value[1] for value in values} diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 948a02f..7f5af34 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,11 +7,13 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeigjgayywhoae2uaqpm5m4nxxh4fhd7yealypeo7oeiyf6ufas4p2u + behaviours.py: bafybeihpqaxusybxhgzhvdonjzu7tudg5crbpujsx6d5itploi5x4gd4ui dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq - handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4 - models.py: bafybeifo5cvwazahd77jcx76rnz73egmgt27g7tmcjji4rdh4xehixfuxy + handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne + io_/__init__.py: bafybeifxgmmwjqzezzn3e6keh2bfo4cyo7y5dq2ept3stfmgglbrzfl5rq + io_/loader.py: bafybeiaoi7rnmpoyreuhwdo3biudqnjnrc25eu54ehyvsnynlkbzk7r6ti + models.py: bafybeicorkpapvtrk3zmhnoyqiihiy5bvr36os4lgv2ji5nnexavw57sa4 payloads.py: bafybeibozjbr4sxafd6aizge3hb5vn6gowdcszsdzbhwzzcbg6gmpy4pki pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u @@ -35,6 +37,7 @@ contracts: protocols: - valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni +- valory/ipfs:0.1.0:bafybeiftxi2qhreewgsc5wevogi7yc5g6hbcbo4uiuaibauhv3nhfcdtvm skills: - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq @@ -109,6 +112,7 @@ models: voting_power: '10' history_check_timeout: 1205 ipfs_domain_name: null + ipfs_address: https://gateway.autonolas.tech/ipfs/ keeper_allowed_retries: 3 keeper_timeout: 30.0 max_attempts: 10 @@ -195,6 +199,15 @@ models: gas_params: max_fee_per_gas: 20000000 max_priority_fee_per_gas: 3000000 + file_hash_to_strategies_json: + - - bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24 + - - lp_strategy + strategies_kwargs: '{"lp_strategy":[["balancer_graphql_endpoints",{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}],["merkl_fetch_campaign_args",{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}]]}' + selected_strategies: + - lp_strategy + selected_protocols: + - balancer + - uniswap class_name: Params coingecko: args: diff --git a/packages/valory/skills/optimus_abci/handlers.py b/packages/valory/skills/optimus_abci/handlers.py index e53e8e1..1efd905 100644 --- a/packages/valory/skills/optimus_abci/handlers.py +++ b/packages/valory/skills/optimus_abci/handlers.py @@ -28,7 +28,7 @@ from packages.valory.skills.abstract_round_abci.handlers import ( HttpHandler as BaseHttpHandler, ) -from packages.valory.skills.abstract_round_abci.handlers import ( +from packages.valory.skills.liquidity_trader_abci.handlers import ( IpfsHandler as BaseIpfsHandler, ) from packages.valory.skills.abstract_round_abci.handlers import ( diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 49e6183..c3290dc 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -11,7 +11,7 @@ fingerprint: composition.py: bafybeigxpycqh7xnqwdj5eg2ln6kqchbwvwuvzjtpwhgylr6qb56ooo7wu dialogues.py: bafybeiafoomno5pn6qrx43jxf2opxkil5eg4nod6jhd5oqwwplfz4x6dke fsm_specification.yaml: bafybeiehe6ps7xi7i7tu4mduid7vbvszhsiu5juyard24i3nhtqgljpcza - handlers.py: bafybeih2mtdrorwy3csi73wcwpxiqznvmxqe2qfixkq75g5qlbxzvybmja + handlers.py: bafybeiejq6jvb5a6ixorj34qpyw7vmowtgvr2drifhl63ifqqvrn2audhm models.py: bafybeig7ytwxlfuhmwhksasidyoq6xeb3fb6vyihdbf5cmc4g7l73etq5e fingerprint_ignore_patterns: [] connections: [] @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeidu3ybo5ppjkyzme5dzglsw4af6fb2j4ccoufoj3knd5mjf2qaksm +- valory/liquidity_trader_abci:0.1.0:bafybeigxr3ur7c32q6v5beod5a7wkvozj52a4z73fkbuhi5xvsqfr2xqpu - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: @@ -182,6 +182,15 @@ models: max_fee_per_gas: 20000000 max_priority_fee_per_gas: 3000000 staking_chain: optimism + file_hash_to_strategies_json: + - - bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24 + - - lp_strategy + strategies_kwargs: '{"lp_strategy":[["balancer_graphql_endpoints",{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}],["merkl_fetch_campaign_args",{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}]]}' + selected_strategies: + - lp_strategy + selected_protocols: + - balancer + - uniswap class_name: Params coingecko: args: diff --git a/scripts/aea-config-replace.py b/scripts/aea-config-replace.py index bcf249b..294ca61 100644 --- a/scripts/aea-config-replace.py +++ b/scripts/aea-config-replace.py @@ -84,6 +84,10 @@ def main() -> None: "api_key" ] = f"${{str:{os.getenv('COINGECKO_API_KEY')}}}" + config[5]["models"]["params"]["args"][ + "staking_chain" + ] = f"${{str:{os.getenv('STAKING_CHAIN')}}}" + with open(Path("optimus", "aea-config.yaml"), "w", encoding="utf-8") as file: yaml.dump_all(config, file, sort_keys=False) From ac28cdfcdb075c0c86a226a11f0959a65a039469 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Wed, 27 Nov 2024 19:05:28 +0530 Subject: [PATCH 35/52] chore: add hyper strategy selection --- packages/packages.json | 11 +-- .../valory/agents/optimus/aea-config.yaml | 10 ++- .../apr_based_selection/__init__.py} | 26 +----- .../apr_based_selection.py | 73 ++++++++++++++++ .../apr_based_selection/component.yaml | 14 +++ .../valory/customs/lp_strategy/component.yaml | 2 +- .../valory/customs/lp_strategy/lp_strategy.py | 27 +++--- packages/valory/services/optimus/service.yaml | 5 +- .../liquidity_trader_abci/behaviours.py | 86 +++++++++---------- .../skills/liquidity_trader_abci/models.py | 34 +------- .../skills/liquidity_trader_abci/skill.yaml | 11 +-- .../strategies/simple_strategy.py | 45 ---------- .../valory/skills/optimus_abci/skill.yaml | 7 +- 13 files changed, 172 insertions(+), 179 deletions(-) rename packages/valory/{skills/liquidity_trader_abci/strategy_behaviour.py => customs/apr_based_selection/__init__.py} (51%) create mode 100644 packages/valory/customs/apr_based_selection/apr_based_selection.py create mode 100644 packages/valory/customs/apr_based_selection/component.yaml delete mode 100644 packages/valory/skills/liquidity_trader_abci/strategies/simple_strategy.py diff --git a/packages/packages.json b/packages/packages.json index c9b8586..728b4b0 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,6 +1,7 @@ { "dev": { - "custom/valory/lp_strategy/0.1.0": "bafybeifpjqi6zfm3alltnz6fscjas4tatqlezqwpok2mxmfyroe2ncpkc4", + "custom/valory/lp_strategy/0.1.0": "bafybeickvpuibzudphykhvuus2a6vyhdf7f4annoljary2jftje6bwmj2u", + "custom/valory/apr_based_selection/0.1.0": "bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", @@ -9,10 +10,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeigxr3ur7c32q6v5beod5a7wkvozj52a4z73fkbuhi5xvsqfr2xqpu", - "skill/valory/optimus_abci/0.1.0": "bafybeicjsl5f7apa3hr6pn4zribogffzz7obmphp6vc7uw7zva7g4hh7ke", - "agent/valory/optimus/0.1.0": "bafybeicqiie6qzsy5fispogrk5jjoadwyjrauqqx4dpaes3f23uwttcedq", - "service/valory/optimus/0.1.0": "bafybeib5zum6ldt56u7fhhp5zhrwfrxyp6eh5acvikj7e56nnm2g5nkoxq" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeidxs24ujiott6byhwcdcavuhtppz7d67lz5u4cio3cvr3whgenqs4", + "skill/valory/optimus_abci/0.1.0": "bafybeicycfuzmm2am7wvdpk3pyceuvwwr5vodenwf2w2sgiukfqp2sorre", + "agent/valory/optimus/0.1.0": "bafybeieks3i7pitgt7rzguo4stlfssp7kgtje6uvpxwxl355pmjsgbqxfm", + "service/valory/optimus/0.1.0": "bafybeicgkhjewlt7iqwq2izsfhh22roxnxjeou3y2ltxc3xsl3u6gidubi" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index fac8e36..2396970 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,14 +35,15 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeigxr3ur7c32q6v5beod5a7wkvozj52a4z73fkbuhi5xvsqfr2xqpu -- valory/optimus_abci:0.1.0:bafybeicjsl5f7apa3hr6pn4zribogffzz7obmphp6vc7uw7zva7g4hh7ke +- valory/liquidity_trader_abci:0.1.0:bafybeidxs24ujiott6byhwcdcavuhtppz7d67lz5u4cio3cvr3whgenqs4 +- valory/optimus_abci:0.1.0:bafybeicycfuzmm2am7wvdpk3pyceuvwwr5vodenwf2w2sgiukfqp2sorre - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/lp_strategy:0.1.0:bafybeifpjqi6zfm3alltnz6fscjas4tatqlezqwpok2mxmfyroe2ncpkc4 +- valory/lp_strategy:0.1.0:bafybeickvpuibzudphykhvuus2a6vyhdf7f4annoljary2jftje6bwmj2u +- valory/apr_based_selection:0.1.0:bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha default_ledger: ethereum required_ledgers: - ethereum @@ -254,7 +255,8 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies_json: ${list:[["bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy",["lp_strategy"]]]} + file_hash_to_strategies: ${str:{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"lp_strategy","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"apr_based_selection"}} strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}}}} selected_strategies: ${list:["lp_strategy"]} selected_protocols: ${list:["balancer","uniswap"]} + selected_hyper_strategy: ${str:"apr_based_selection"} diff --git a/packages/valory/skills/liquidity_trader_abci/strategy_behaviour.py b/packages/valory/customs/apr_based_selection/__init__.py similarity index 51% rename from packages/valory/skills/liquidity_trader_abci/strategy_behaviour.py rename to packages/valory/customs/apr_based_selection/__init__.py index adf8a82..97c7b4e 100644 --- a/packages/valory/skills/liquidity_trader_abci/strategy_behaviour.py +++ b/packages/valory/customs/apr_based_selection/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2024 Valory AG +# Copyright 2023-2024 Valory AG # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,26 +17,4 @@ # # ------------------------------------------------------------------------------ -"""This package contains the implemenatation of the StrategyBehaviour interface.""" - -from abc import ABC, abstractmethod -from typing import Any, Dict, Generator - -from packages.valory.skills.abstract_round_abci.behaviours import BaseBehaviour - - -class StrategyBehaviour(BaseBehaviour, ABC): - """StrategyBehaviour""" - - def __init__(self, **kwargs: Any) -> None: - """Initialize `StrategyBehaviour`.""" - super().__init__(**kwargs) - - @abstractmethod - def get_decision(self) -> Dict[str, str]: - """Get the decision on whether to enter a pool or not""" - pass - - def async_act(self) -> Generator[Any, None, None]: - """Async act""" - pass +"""This module contains a strategy that returns the highest APR yielding strategy""" diff --git a/packages/valory/customs/apr_based_selection/apr_based_selection.py b/packages/valory/customs/apr_based_selection/apr_based_selection.py new file mode 100644 index 0000000..9a996f1 --- /dev/null +++ b/packages/valory/customs/apr_based_selection/apr_based_selection.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------------------------ +# +# Copyright 2023-2024 Valory AG +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ------------------------------------------------------------------------------ + +"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap.""" + +from enum import Enum +from typing import ( + Any, + Dict, + List, + Union, +) + +REQUIRED_FIELDS = ("trading_opportunities") + +class DexTypes(Enum): + """DexTypes""" + + BALANCER = "balancerPool" + UNISWAP_V3 = "UniswapV3" + +def check_missing_fields(kwargs: Dict[str, Any]) -> List[str]: + """Check for missing fields and return them, if any.""" + missing = [] + for field in REQUIRED_FIELDS: + if kwargs.get(field, None) is None: + missing.append(field) + return missing + + +def remove_irrelevant_fields(kwargs: Dict[str, Any]) -> Dict[str, Any]: + """Remove the irrelevant fields from the given kwargs.""" + return {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} + +def select_best_opportunity( + trading_opportunities: List[Any] +) -> Dict[str, Union[bool, str]]: + """Select the best trading opportunity""" + selected_opportunity = None + highest_apr = -float("inf") + for trading_opportunity in trading_opportunities: + if trading_opportunity is not None: + apr = trading_opportunity.get("apr", 0) + if apr > highest_apr: + highest_apr = apr + selected_opportunity = trading_opportunity + + return selected_opportunity + +def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: + """Run the strategy.""" + missing = check_missing_fields(kwargs) + if len(missing) > 0: + return {"error": f"Required kwargs {missing} were not provided."} + + kwargs = remove_irrelevant_fields(kwargs) + return select_best_opportunity(**kwargs) \ No newline at end of file diff --git a/packages/valory/customs/apr_based_selection/component.yaml b/packages/valory/customs/apr_based_selection/component.yaml new file mode 100644 index 0000000..3d0c6c8 --- /dev/null +++ b/packages/valory/customs/apr_based_selection/component.yaml @@ -0,0 +1,14 @@ +name: apr_based_selection +author: valory +version: 0.1.0 +type: custom +description: A strategy that selects the best yielding strategy based on APR +license: Apache-2.0 +aea_version: '>=1.0.0, <2.0.0' +fingerprint: + __init__.py: bafybeifjsn3dek6bm3b5a2eu55acniehapedobhzvz3x5nub563v5s7vsu + apr_based_selection.py: bafybeiakzmrimkyhm6m3uub2pbmi3zgf6pzp74ga75mii4gr3yh6yjq7zi +fingerprint_ignore_patterns: [] +entry_point: apr_based_selection.py +callable: run +dependencies: {} diff --git a/packages/valory/customs/lp_strategy/component.yaml b/packages/valory/customs/lp_strategy/component.yaml index 01668c5..87cd6f7 100644 --- a/packages/valory/customs/lp_strategy/component.yaml +++ b/packages/valory/customs/lp_strategy/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeicpapvukcglcti76a5ggwx2sb6xjrjq5a425tialt2cljc3qo5jpy - lp_strategy.py: bafybeidd5lupfaxbyx3zi5q3duwnyjy4d3j4qz2cty4wst7chcaoogqdde + lp_strategy.py: bafybeicdqa3loaynt5pmk23pptzxpvrzs6y4jw22s5mtiiw63mgujhk3hy fingerprint_ignore_patterns: [] entry_point: lp_strategy.py callable: run diff --git a/packages/valory/customs/lp_strategy/lp_strategy.py b/packages/valory/customs/lp_strategy/lp_strategy.py index a957a20..6c5a9fb 100644 --- a/packages/valory/customs/lp_strategy/lp_strategy.py +++ b/packages/valory/customs/lp_strategy/lp_strategy.py @@ -34,7 +34,7 @@ CAMPAIGN_TYPES = [1, 2] HTTP_OK = [200, 201] -REQUIRED_FIELDS = ("chains", "apr_threshold", "protocols", "balancer_graphql_endpoints", "merkl_fetch_campaign_args", "chain_to_chain_id_mapping") +REQUIRED_FIELDS = ("chains", "apr_threshold", "protocols", "balancer_graphql_endpoints", "merkl_fetch_campaign_args", "chain_to_chain_id_mapping", "current_pool") class DexTypes(Enum): """DexTypes""" @@ -56,15 +56,15 @@ def remove_irrelevant_fields(kwargs: Dict[str, Any]) -> Dict[str, Any]: return {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} def highest_apr_opportunity( + balancer_graphql_endpoints: Dict[str, Any], + merkl_fetch_campaign_args: Dict[str, Any], chains: List[str], - apr_threshold: float, - merkl_fetch_campaigns_args: Dict[str, Any], protocols: List[str], - balancer_graphql_endpoints: Dict[str, Any], - chain_to_chain_id_mapping: Dict[str, Any] - -) -> Dict[str, Union[bool, str]]: - """Get the highest APR yielding opportunity over Balancer using Merkl API.""" + chain_to_chain_id_mapping: Dict[str, Any], + apr_threshold: float, + current_pool: Optional[str] +) -> Dict[str, Any]: + """Get the highest APR yielding opportunity over given protocols using Merkl API.""" def fetch_all_pools() -> Optional[Dict[str, Any]]: """Fetch all pools based on allowed chains.""" @@ -79,9 +79,9 @@ def fetch_all_pools() -> Optional[Dict[str, Any]]: str(chain_to_chain_id_mapping[chain]) for chain in chains ) - base_url = merkl_fetch_campaigns_args.get("url") - creator = merkl_fetch_campaigns_args.get("creator") - live = merkl_fetch_campaigns_args.get("live", "true") + base_url = merkl_fetch_campaign_args.get("url") + creator = merkl_fetch_campaign_args.get("creator") + live = merkl_fetch_campaign_args.get("live", "true") query_params = { "chainIds": chain_ids, @@ -126,7 +126,7 @@ def filter_eligible_pools(all_pools: Dict[str, Any]) -> Dict[str, Any]: continue campaign_pool_address = campaign.get("mainParameter") - if not campaign_pool_address: + if not campaign_pool_address or campaign_pool_address == current_pool: continue chain = next( @@ -292,7 +292,7 @@ def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Optional[ highest_apr_pool = determine_highest_apr_pool(eligible_pools) if highest_apr_pool: - return {"highest_apr_pool": highest_apr_pool} + return {"selected_opportunity": highest_apr_pool} else: return { "error": ( @@ -307,4 +307,5 @@ def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: return {"error": f"Required kwargs {missing} were not provided."} kwargs = remove_irrelevant_fields(kwargs) + print("KWARGS in run", kwargs) return highest_apr_opportunity(**kwargs) \ No newline at end of file diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 32046b7..248d1dc 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeicqiie6qzsy5fispogrk5jjoadwyjrauqqx4dpaes3f23uwttcedq +agent: valory/optimus:0.1.0:bafybeieks3i7pitgt7rzguo4stlfssp7kgtje6uvpxwxl355pmjsgbqxfm number_of_agents: 1 deployment: {} --- @@ -84,10 +84,11 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies_json: ${FILE_HASH_TO_STRATEGIES_JSON:list:[["bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy",["lp_strategy"]]]} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES_JSON:str:{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"lp_strategy","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"apr_based_selection"}} strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}}}} selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["balancer","uniswap"]} + selected_hyper_strategy: ${SELECTED_HYPER_STRATEGY:str:"apr_based_selection"} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 36f967b..d62a4d8 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -95,9 +95,6 @@ StakingState, SynchronizedData, ) -from packages.valory.skills.liquidity_trader_abci.strategies.simple_strategy import ( - SimpleStrategyBehaviour, -) from packages.valory.skills.transaction_settlement_abci.payload_tools import ( hash_payload_to_hex, ) @@ -124,7 +121,7 @@ WaitableConditionType = Generator[None, None, Any] HTTP_NOT_FOUND = [400, 404] ERC20_DECIMALS = 18 -HIGHEST_APR_POOL = "highest_apr_pool" +SELECTED_OPPORTUNITY = "selected_opportunity" class DexTypes(Enum): """DexTypes""" @@ -174,7 +171,7 @@ class Decision(Enum): class LiquidityTraderBaseBehaviour( - BalancerPoolBehaviour, UniswapPoolBehaviour, SimpleStrategyBehaviour, ABC + BalancerPoolBehaviour, UniswapPoolBehaviour, ABC ): """Base behaviour for the liquidity_trader_abci skill.""" @@ -192,7 +189,6 @@ def __init__(self, **kwargs: Any) -> None: self.pools[DexTypes.BALANCER.value] = BalancerPoolBehaviour self.pools[DexTypes.UNISWAP_V3.value] = UniswapPoolBehaviour self.service_staking_state = StakingState.UNSTAKED - self.strategy = SimpleStrategyBehaviour self._inflight_strategy_req: Optional[str] = None # Read the assets and current pool self.read_current_pool() @@ -926,14 +922,16 @@ class EvaluateStrategyBehaviour(LiquidityTraderBaseBehaviour): """Behaviour that finds the opportunity and builds actions.""" matching_round: Type[AbstractRound] = EvaluateStrategyRound - highest_apr_pool = None + selected_opportunity = None + trading_opportunities = None def async_act(self) -> Generator: """Async act""" with self.context.benchmark_tool.measure(self.behaviour_id).local(): - yield from self.find_highest_apr_pool() + yield from self.fetch_all_trading_opportunities() + yield from self.execute_hyper_strategy() actions = [] - if self.highest_apr_pool is not None: + if self.selected_opportunity is not None: actions = yield from self.get_order_of_transactions() self.context.logger.info(f"Actions: {actions}") @@ -947,14 +945,22 @@ def async_act(self) -> Generator: self.set_done() - def find_highest_apr_pool(self) -> Generator[None, None, None]: - """Find the pool with the highest APR using the hyper strategy.""" + def execute_hyper_strategy(self) -> Generator[None, None, None]: + """Executes hyper strategy""" + + hyper_strategy = self.params.selected_hyper_strategy + kwargs = { + "strategy": hyper_strategy, + "trading_opportunites" : self.trading_opportunities + } + self.selected_opportunity = self.execute_strategy(**kwargs) + + def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: + """Fetches all the trading opportunities""" yield from self.download_strategies() strategies = self.params.selected_strategies tried_strategies: Set[str] = set() - highest_apr_pool = None - highest_apr = -float("inf") while True: next_strategy = strategies.pop(0) @@ -966,16 +972,14 @@ def find_highest_apr_pool(self) -> Generator[None, None, None]: "chains": self.params.target_investment_chains, "protocols": self.params.selected_protocols, "chain_to_chain_id_mapping": self.params.chain_to_chain_id_mapping, - "apr_threshold": self.params.apr_threshold + "apr_threshold": self.current_pool.get('apr') if self.current_pool else self.params.apr_threshold, + "current_pool": self.current_pool.get('address') if self.current_pool else None } ) self.context.logger.info(f"KWARGS: {kwargs}") - pool = self.execute_strategy(**kwargs) - if pool is not None: - apr = pool.get("apr", 0) - if apr > highest_apr: - highest_apr = apr - highest_apr_pool = pool + opportunity = self.execute_strategy(**kwargs) + if opportunity is not None: + self.trading_opportunities.append(opportunity) tried_strategies.add(next_strategy) remaining_strategies = set(strategies) - tried_strategies @@ -984,12 +988,6 @@ def find_highest_apr_pool(self) -> Generator[None, None, None]: next_strategy = remaining_strategies.pop() - if highest_apr_pool: - self.highest_apr_pool = highest_apr_pool - self.context.logger.info(f"Highest APR pool found: {self.highest_apr_pool}") - else: - self.context.logger.warning("No pools with APR found.") - def download_next_strategy(self) -> None: """Download the strategies one by one.""" if self._inflight_strategy_req is not None: @@ -1017,14 +1015,14 @@ def execute_strategy(self, *args: Any, **kwargs: Any) -> Dict[str, Any]: strategy = kwargs.pop("strategy", None) if strategy is None: self.context.logger.error(f"No trading strategy was given in {kwargs=}!") - return {HIGHEST_APR_POOL: {}} + return {SELECTED_OPPORTUNITY: None} strategy = self.strategy_exec(strategy) if strategy is None: self.context.logger.error( f"No executable was found for {strategy=}!" ) - return {HIGHEST_APR_POOL: {}} + return {SELECTED_OPPORTUNITY: None} strategy_exec, callable_method = strategy if callable_method in globals(): @@ -1036,7 +1034,7 @@ def execute_strategy(self, *args: Any, **kwargs: Any) -> Dict[str, Any]: self.context.logger.error( f"No {callable_method!r} method was found in {strategy} executable." ) - return {HIGHEST_APR_POOL: {}} + return {SELECTED_OPPORTUNITY: None} return method(*args, **kwargs) @@ -1364,18 +1362,18 @@ def _build_bridge_swap_actions( ) -> List[Dict[str, Any]]: """Build bridge and swap actions for the given tokens.""" # TO-DO: Add logic to handle swaps when there is a balance for only one token. - if not self.highest_apr_pool: + if not self.selected_opportunity: self.context.logger.error("No pool present.") return None bridge_swap_actions = [] # Get the highest APR pool's tokens - dest_token0_address = self.highest_apr_pool.get("token0") - dest_token1_address = self.highest_apr_pool.get("token1") - dest_token0_symbol = self.highest_apr_pool.get("token0_symbol") - dest_token1_symbol = self.highest_apr_pool.get("token1_symbol") - dest_chain = self.highest_apr_pool.get("chain") + dest_token0_address = self.selected_opportunity.get("token0") + dest_token1_address = self.selected_opportunity.get("token1") + dest_token0_symbol = self.selected_opportunity.get("token0_symbol") + dest_token1_symbol = self.selected_opportunity.get("token1_symbol") + dest_chain = self.selected_opportunity.get("chain") if ( not dest_token0_address @@ -1385,7 +1383,7 @@ def _build_bridge_swap_actions( or not dest_chain ): self.context.logger.error( - f"Incomplete data in highest APR pool {self.highest_apr_pool}" + f"Incomplete data in highest APR pool {self.selected_opportunity}" ) return None @@ -1488,21 +1486,21 @@ def _build_bridge_swap_actions( def _build_enter_pool_action(self) -> Dict[str, Any]: """Build action for entering the pool with the highest APR.""" - if not self.highest_apr_pool: + if not self.selected_opportunity: self.context.logger.error("No pool present.") return None return { "action": Action.ENTER_POOL.value, - "dex_type": self.highest_apr_pool.get("dex_type"), - "chain": self.highest_apr_pool.get("chain"), + "dex_type": self.selected_opportunity.get("dex_type"), + "chain": self.selected_opportunity.get("chain"), "assets": [ - self.highest_apr_pool.get("token0"), - self.highest_apr_pool.get("token1"), + self.selected_opportunity.get("token0"), + self.selected_opportunity.get("token1"), ], - "pool_address": self.highest_apr_pool.get("pool_address"), - "apr": self.highest_apr_pool.get("apr"), - "pool_type": self.highest_apr_pool.get("pool_type"), + "pool_address": self.selected_opportunity.get("pool_address"), + "apr": self.selected_opportunity.get("apr"), + "pool_type": self.selected_opportunity.get("pool_type"), } def _build_claim_reward_action( diff --git a/packages/valory/skills/liquidity_trader_abci/models.py b/packages/valory/skills/liquidity_trader_abci/models.py index d929d47..1790933 100644 --- a/packages/valory/skills/liquidity_trader_abci/models.py +++ b/packages/valory/skills/liquidity_trader_abci/models.py @@ -60,8 +60,7 @@ def setup(self) -> None: params = self.context.params self.strategy_to_filehash = { value: key - for key, values in params.file_hash_to_strategies.items() - for value in values + for key, value in params.file_hash_to_strategies.items() } strategy_exec = self.strategy_to_filehash.keys() for selected_strategy in params.selected_strategies: @@ -284,14 +283,10 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: ) self.staking_chain: Optional[str] = self._ensure("staking_chain", kwargs, Optional[str]) self.selected_strategies: List[str] = self._ensure("selected_strategies", kwargs, List[str]) - self.file_hash_to_strategies: Dict[ - str, List[str] - ] = nested_list_todict_workaround( - kwargs, - "file_hash_to_strategies_json" - ) - self.strategies_kwargs: str = json.loads(self._ensure("strategies_kwargs", kwargs, str)) + self.file_hash_to_strategies = json.loads(self._ensure("file_hash_to_strategies", kwargs, str)) + self.strategies_kwargs = json.loads(self._ensure("strategies_kwargs", kwargs, str)) self.selected_protocols = self._ensure("selected_protocols", kwargs, List[str]) + self.selected_hyper_strategy = self._ensure("selected_hyper_strategy", kwargs, str) super().__init__(*args, **kwargs) def get_store_path(self, kwargs: Dict) -> Path: @@ -307,24 +302,3 @@ def get_store_path(self, kwargs: Dict) -> Path: f"Policy store path {path!r} is not a directory or is not writable." ) return Path(path) - -def _raise_incorrect_config(key: str, values: Any) -> None: - """Raise a `ValueError` for incorrect configuration of a nested_list workaround.""" - raise ValueError( - f"The given configuration for {key!r} is incorrectly formatted: {values}!" - "The value is expected to be a list of lists that can be represented as a dictionary." - ) - -def nested_list_todict_workaround( - kwargs: Dict, - key: str, -) -> Dict: - """Get a nested list from the kwargs and convert it to a dictionary.""" - values = list(kwargs.get(key, [])) - if len(values) == 0: - raise ValueError(f"No {key!r} specified in agent's configurations: {kwargs}!") - if any(not issubclass(type(nested_values), Iterable) for nested_values in values): - _raise_incorrect_config(key, values) - if any(len(nested_values) % 2 == 1 for nested_values in values): - _raise_incorrect_config(key, values) - return {value[0]: value[1] for value in values} diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 7f5af34..0f11c52 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,20 +7,18 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeihpqaxusybxhgzhvdonjzu7tudg5crbpujsx6d5itploi5x4gd4ui + behaviours.py: bafybeie2dvx7ghwrgirjxqr5pdp4xjq7byp25vdhxwltypx7uecjqzlcpy dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne io_/__init__.py: bafybeifxgmmwjqzezzn3e6keh2bfo4cyo7y5dq2ept3stfmgglbrzfl5rq io_/loader.py: bafybeiaoi7rnmpoyreuhwdo3biudqnjnrc25eu54ehyvsnynlkbzk7r6ti - models.py: bafybeicorkpapvtrk3zmhnoyqiihiy5bvr36os4lgv2ji5nnexavw57sa4 + models.py: bafybeiasksfg4ciwj6fayem5kxjo7snrzuarryqvm72qosmutrjbjvh4fi payloads.py: bafybeibozjbr4sxafd6aizge3hb5vn6gowdcszsdzbhwzzcbg6gmpy4pki pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u pools/uniswap.py: bafybeigmqptgmjaxscszohfusgxsexqyx4awuyw7p4g5l7k2qpeyq7vdcu rounds.py: bafybeihsfsgt4mamb47hg5ylphydy7lcftdtbvyhxnqz3j7sfzqtzvbzje - strategies/simple_strategy.py: bafybeiasu2nchowx6leksjllpuum4ckezxoj4o2m4sstavblplvvutmvzm - strategy_behaviour.py: bafybeidk6sorg47kuuubamcccksi65x3txldyo7y2hm5opbye2ghmz2ljy fingerprint_ignore_patterns: [] connections: [] contracts: @@ -199,15 +197,14 @@ models: gas_params: max_fee_per_gas: 20000000 max_priority_fee_per_gas: 3000000 - file_hash_to_strategies_json: - - - bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24 - - - lp_strategy + file_hash_to_strategies: '{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"lp_strategy","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"apr_based_selection"}' strategies_kwargs: '{"lp_strategy":[["balancer_graphql_endpoints",{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}],["merkl_fetch_campaign_args",{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}]]}' selected_strategies: - lp_strategy selected_protocols: - balancer - uniswap + selected_hyper_strategy: apr_based_selection class_name: Params coingecko: args: diff --git a/packages/valory/skills/liquidity_trader_abci/strategies/simple_strategy.py b/packages/valory/skills/liquidity_trader_abci/strategies/simple_strategy.py deleted file mode 100644 index 89e457e..0000000 --- a/packages/valory/skills/liquidity_trader_abci/strategies/simple_strategy.py +++ /dev/null @@ -1,45 +0,0 @@ -"""This package contains the implemenatation of the SimpleStrategyBehaviour class.""" - -from abc import ABC -from typing import Any - -from packages.valory.skills.liquidity_trader_abci.strategy_behaviour import ( - StrategyBehaviour, -) - - -class SimpleStrategyBehaviour(StrategyBehaviour, ABC): - """SimpleStrategyBehaviour""" - - def __init__(self, **kwargs: Any) -> None: - """Initialize the simple strategy behaviour.""" - super().__init__(**kwargs) - - def get_decision(self, **kwargs: Any) -> bool: - """Get decision on whether to enter a pool""" - pool_apr = kwargs.get("pool_apr") - """Get decision""" - - if not pool_apr: - self.context.logger.error("Pool APR cannot be None") - return False - - if not self._is_apr_threshold_exceeded(pool_apr): - return False - - # TO-DO: Decide on the correct method/logic for maintaining the period number for the last transaction. - # if not self._is_round_threshold_exceeded(): # noqa: E800 - # self.context.logger.info("Round threshold not exceeded") # noqa: E800 - # return False # noqa: E800 - - return True - - def _is_apr_threshold_exceeded(self, pool_apr) -> bool: - """Check if the highest APR exceeds the threshold""" - if pool_apr > self.params.apr_threshold: - return True - else: - self.context.logger.info( - f"APR of selected pool that is {pool_apr} does not exceed APR threshold {self.params.apr_threshold}." - ) - return False diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index c3290dc..1be26ba 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeigxr3ur7c32q6v5beod5a7wkvozj52a4z73fkbuhi5xvsqfr2xqpu +- valory/liquidity_trader_abci:0.1.0:bafybeidxs24ujiott6byhwcdcavuhtppz7d67lz5u4cio3cvr3whgenqs4 - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: @@ -182,15 +182,14 @@ models: max_fee_per_gas: 20000000 max_priority_fee_per_gas: 3000000 staking_chain: optimism - file_hash_to_strategies_json: - - - bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24 - - - lp_strategy + file_hash_to_strategies: '{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"lp_strategy","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"apr_based_selection"}' strategies_kwargs: '{"lp_strategy":[["balancer_graphql_endpoints",{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}],["merkl_fetch_campaign_args",{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}]]}' selected_strategies: - lp_strategy selected_protocols: - balancer - uniswap + selected_hyper_strategy: apr_based_selection class_name: Params coingecko: args: From c207fd568eb91e91bf0b64045112d89802939504 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 28 Nov 2024 11:26:21 +0530 Subject: [PATCH 36/52] fix: minor fixes in strategies --- packages/packages.json | 12 +++---- .../valory/agents/optimus/aea-config.yaml | 14 ++++---- .../apr_based_selection.py | 8 +---- .../apr_based_selection/component.yaml | 2 +- .../valory/customs/lp_strategy/component.yaml | 2 +- .../valory/customs/lp_strategy/lp_strategy.py | 10 ++---- packages/valory/services/optimus/service.yaml | 8 ++--- .../liquidity_trader_abci/behaviours.py | 33 ++++++++++--------- .../skills/liquidity_trader_abci/skill.yaml | 2 +- .../valory/skills/optimus_abci/skill.yaml | 2 +- 10 files changed, 42 insertions(+), 51 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 728b4b0..4b36fb5 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,7 +1,7 @@ { "dev": { - "custom/valory/lp_strategy/0.1.0": "bafybeickvpuibzudphykhvuus2a6vyhdf7f4annoljary2jftje6bwmj2u", - "custom/valory/apr_based_selection/0.1.0": "bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha", + "custom/valory/lp_strategy/0.1.0": "bafybeia7scjod4vjli76sqstih3wvu7eaw37xflkhz5pswknu6twgf6qiu", + "custom/valory/apr_based_selection/0.1.0": "bafybeidmgmjdjv4pablvkv3x5bnyehvfmdy5f5yu7m7swdcmci6xfnwdju", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", @@ -10,10 +10,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeidxs24ujiott6byhwcdcavuhtppz7d67lz5u4cio3cvr3whgenqs4", - "skill/valory/optimus_abci/0.1.0": "bafybeicycfuzmm2am7wvdpk3pyceuvwwr5vodenwf2w2sgiukfqp2sorre", - "agent/valory/optimus/0.1.0": "bafybeieks3i7pitgt7rzguo4stlfssp7kgtje6uvpxwxl355pmjsgbqxfm", - "service/valory/optimus/0.1.0": "bafybeicgkhjewlt7iqwq2izsfhh22roxnxjeou3y2ltxc3xsl3u6gidubi" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeibq4cyldpbtnu7v5h6flzn7gzlinxxnlanojtdhddeqnkh3d3lnh4", + "skill/valory/optimus_abci/0.1.0": "bafybeib4o24bo4wxuoqckzqhqgtalxqwwvnle7idaivmi2bwryrqbuxyyq", + "agent/valory/optimus/0.1.0": "bafybeiezdtvgpdnpeudi7ew4ejui45seopi7vdmcw4oq3cxzp6n2tcycvq", + "service/valory/optimus/0.1.0": "bafybeign2whgrfe7w3mmdmixww3524rw7n3wb6wdzhd6fuesihk36av4qe" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 2396970..d90fbc9 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,15 +35,15 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeidxs24ujiott6byhwcdcavuhtppz7d67lz5u4cio3cvr3whgenqs4 -- valory/optimus_abci:0.1.0:bafybeicycfuzmm2am7wvdpk3pyceuvwwr5vodenwf2w2sgiukfqp2sorre +- valory/liquidity_trader_abci:0.1.0:bafybeibq4cyldpbtnu7v5h6flzn7gzlinxxnlanojtdhddeqnkh3d3lnh4 +- valory/optimus_abci:0.1.0:bafybeib4o24bo4wxuoqckzqhqgtalxqwwvnle7idaivmi2bwryrqbuxyyq - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/lp_strategy:0.1.0:bafybeickvpuibzudphykhvuus2a6vyhdf7f4annoljary2jftje6bwmj2u -- valory/apr_based_selection:0.1.0:bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha +- valory/lp_strategy:0.1.0:bafybeia7scjod4vjli76sqstih3wvu7eaw37xflkhz5pswknu6twgf6qiu +- valory/apr_based_selection:0.1.0:bafybeidmgmjdjv4pablvkv3x5bnyehvfmdy5f5yu7m7swdcmci6xfnwdju default_ledger: ethereum required_ledgers: - ethereum @@ -255,8 +255,8 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies: ${str:{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"lp_strategy","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"apr_based_selection"}} + file_hash_to_strategies: ${str:{"bafybeia7scjod4vjli76sqstih3wvu7eaw37xflkhz5pswknu6twgf6qiu":"lp_strategy","bafybeidmgmjdjv4pablvkv3x5bnyehvfmdy5f5yu7m7swdcmci6xfnwdju":"apr_based_selection"}} strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}}}} selected_strategies: ${list:["lp_strategy"]} - selected_protocols: ${list:["balancer","uniswap"]} - selected_hyper_strategy: ${str:"apr_based_selection"} + selected_protocols: ${list:["BALANCER","UNISWAP_V3"]} + selected_hyper_strategy: ${str:apr_based_selection} diff --git a/packages/valory/customs/apr_based_selection/apr_based_selection.py b/packages/valory/customs/apr_based_selection/apr_based_selection.py index 9a996f1..f0151c9 100644 --- a/packages/valory/customs/apr_based_selection/apr_based_selection.py +++ b/packages/valory/customs/apr_based_selection/apr_based_selection.py @@ -27,13 +27,8 @@ Union, ) -REQUIRED_FIELDS = ("trading_opportunities") +REQUIRED_FIELDS = ("trading_opportunities",) -class DexTypes(Enum): - """DexTypes""" - - BALANCER = "balancerPool" - UNISWAP_V3 = "UniswapV3" def check_missing_fields(kwargs: Dict[str, Any]) -> List[str]: """Check for missing fields and return them, if any.""" @@ -43,7 +38,6 @@ def check_missing_fields(kwargs: Dict[str, Any]) -> List[str]: missing.append(field) return missing - def remove_irrelevant_fields(kwargs: Dict[str, Any]) -> Dict[str, Any]: """Remove the irrelevant fields from the given kwargs.""" return {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} diff --git a/packages/valory/customs/apr_based_selection/component.yaml b/packages/valory/customs/apr_based_selection/component.yaml index 3d0c6c8..51869fb 100644 --- a/packages/valory/customs/apr_based_selection/component.yaml +++ b/packages/valory/customs/apr_based_selection/component.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeifjsn3dek6bm3b5a2eu55acniehapedobhzvz3x5nub563v5s7vsu - apr_based_selection.py: bafybeiakzmrimkyhm6m3uub2pbmi3zgf6pzp74ga75mii4gr3yh6yjq7zi + apr_based_selection.py: bafybeihojkb2sxxdrqh3e6eyjzci7vc77xrf6oxdmlb5tozh37j34xeefu fingerprint_ignore_patterns: [] entry_point: apr_based_selection.py callable: run diff --git a/packages/valory/customs/lp_strategy/component.yaml b/packages/valory/customs/lp_strategy/component.yaml index 87cd6f7..5970d1e 100644 --- a/packages/valory/customs/lp_strategy/component.yaml +++ b/packages/valory/customs/lp_strategy/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeicpapvukcglcti76a5ggwx2sb6xjrjq5a425tialt2cljc3qo5jpy - lp_strategy.py: bafybeicdqa3loaynt5pmk23pptzxpvrzs6y4jw22s5mtiiw63mgujhk3hy + lp_strategy.py: bafybeieuvsjwgczrvlcpbb32yv653uazs5xazuncpiqk5klvanyvrsevtm fingerprint_ignore_patterns: [] entry_point: lp_strategy.py callable: run diff --git a/packages/valory/customs/lp_strategy/lp_strategy.py b/packages/valory/customs/lp_strategy/lp_strategy.py index 6c5a9fb..57ef824 100644 --- a/packages/valory/customs/lp_strategy/lp_strategy.py +++ b/packages/valory/customs/lp_strategy/lp_strategy.py @@ -50,7 +50,6 @@ def check_missing_fields(kwargs: Dict[str, Any]) -> List[str]: missing.append(field) return missing - def remove_irrelevant_fields(kwargs: Dict[str, Any]) -> Dict[str, Any]: """Remove the irrelevant fields from the given kwargs.""" return {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} @@ -113,7 +112,6 @@ def filter_eligible_pools(all_pools: Dict[str, Any]) -> Dict[str, Any]: """Filter pools based on allowed assets and LP pools.""" eligible_pools = defaultdict(lambda: defaultdict(list)) allowed_dex_types = [DexTypes[protocol.upper()].value for protocol in protocols] - for chain_id, campaigns in all_pools.items(): for campaign_list in campaigns.values(): for campaign in campaign_list.values(): @@ -132,7 +130,7 @@ def filter_eligible_pools(all_pools: Dict[str, Any]) -> Dict[str, Any]: chain = next( ( k - for k, v in "chain_to_chain_id_mapping".items() + for k, v in chain_to_chain_id_mapping.items() if v == int(chain_id) ), None, @@ -158,7 +156,6 @@ def determine_highest_apr_pool(eligible_pools: Dict[str, Any]) -> Optional[Dict[ if highest_apr_pool_info: dex_type, chain, campaign = highest_apr_pool_info highest_apr_pool = extract_pool_info(dex_type, chain, highest_apr, campaign) - # Check the number of tokens for the highest APR pool if it's a Balancer pool if dex_type == DexTypes.BALANCER.value: pool_id = highest_apr_pool.get("pool_id") @@ -292,11 +289,11 @@ def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Optional[ highest_apr_pool = determine_highest_apr_pool(eligible_pools) if highest_apr_pool: - return {"selected_opportunity": highest_apr_pool} + return highest_apr_pool else: return { "error": ( - "No pools with APR found.", + "No pools with APR found." ) } @@ -307,5 +304,4 @@ def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: return {"error": f"Required kwargs {missing} were not provided."} kwargs = remove_irrelevant_fields(kwargs) - print("KWARGS in run", kwargs) return highest_apr_opportunity(**kwargs) \ No newline at end of file diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 248d1dc..1bcebb8 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeieks3i7pitgt7rzguo4stlfssp7kgtje6uvpxwxl355pmjsgbqxfm +agent: valory/optimus:0.1.0:bafybeiezdtvgpdnpeudi7ew4ejui45seopi7vdmcw4oq3cxzp6n2tcycvq number_of_agents: 1 deployment: {} --- @@ -84,11 +84,11 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES_JSON:str:{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"lp_strategy","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"apr_based_selection"}} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES_JSON:str:{"bafybeia7scjod4vjli76sqstih3wvu7eaw37xflkhz5pswknu6twgf6qiu":"lp_strategy","bafybeidmgmjdjv4pablvkv3x5bnyehvfmdy5f5yu7m7swdcmci6xfnwdju":"apr_based_selection"}} strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}}}} selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy"]} - selected_protocols: ${SELECTED_PROTOCOLS:list:["balancer","uniswap"]} - selected_hyper_strategy: ${SELECTED_HYPER_STRATEGY:str:"apr_based_selection"} + selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} + selected_hyper_strategy: ${SELECTED_HYPER_STRATEGY:str:apr_based_selection} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index d62a4d8..5585c0b 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -923,15 +923,16 @@ class EvaluateStrategyBehaviour(LiquidityTraderBaseBehaviour): matching_round: Type[AbstractRound] = EvaluateStrategyRound selected_opportunity = None - trading_opportunities = None + trading_opportunities = [] def async_act(self) -> Generator: """Async act""" with self.context.benchmark_tool.measure(self.behaviour_id).local(): yield from self.fetch_all_trading_opportunities() - yield from self.execute_hyper_strategy() + self.execute_hyper_strategy() actions = [] if self.selected_opportunity is not None: + self.context.logger.info(f"Selected opportunity: {self.selected_opportunity}") actions = yield from self.get_order_of_transactions() self.context.logger.info(f"Actions: {actions}") @@ -945,20 +946,21 @@ def async_act(self) -> Generator: self.set_done() - def execute_hyper_strategy(self) -> Generator[None, None, None]: + def execute_hyper_strategy(self) -> None: """Executes hyper strategy""" hyper_strategy = self.params.selected_hyper_strategy kwargs = { - "strategy": hyper_strategy, - "trading_opportunites" : self.trading_opportunities - } + "strategy": hyper_strategy, + "trading_opportunities" : self.trading_opportunities + } + self.context.logger.info(f"Evaluating {hyper_strategy} hyper strategy..") self.selected_opportunity = self.execute_strategy(**kwargs) - + self.context.logger.info(f"Selected opportunity: {self.selected_opportunity}") + def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: """Fetches all the trading opportunities""" yield from self.download_strategies() - strategies = self.params.selected_strategies tried_strategies: Set[str] = set() @@ -972,11 +974,10 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: "chains": self.params.target_investment_chains, "protocols": self.params.selected_protocols, "chain_to_chain_id_mapping": self.params.chain_to_chain_id_mapping, - "apr_threshold": self.current_pool.get('apr') if self.current_pool else self.params.apr_threshold, + "apr_threshold": 5, "current_pool": self.current_pool.get('address') if self.current_pool else None } ) - self.context.logger.info(f"KWARGS: {kwargs}") opportunity = self.execute_strategy(**kwargs) if opportunity is not None: self.trading_opportunities.append(opportunity) @@ -997,7 +998,6 @@ def download_next_strategy(self) -> None: # no strategies pending to be fetched return for strategy, file_hash in self.shared_state.strategy_to_filehash.items(): - self.context.logger.info(f"{strategy} {file_hash}") self.context.logger.info(f"Fetching {strategy} strategy...") ipfs_msg, message = self._build_ipfs_get_file_req(file_hash) self._inflight_strategy_req = strategy @@ -1010,19 +1010,20 @@ def download_strategies(self) -> Generator: self.download_next_strategy() yield from self.sleep(self.params.sleep_time) - def execute_strategy(self, *args: Any, **kwargs: Any) -> Dict[str, Any]: + def execute_strategy(self, *args: Any, **kwargs: Any) -> Generator[None, None, Optional[Dict[str, Any]]]: """Execute the strategy and return the results.""" + strategy = kwargs.pop("strategy", None) if strategy is None: self.context.logger.error(f"No trading strategy was given in {kwargs=}!") - return {SELECTED_OPPORTUNITY: None} - + return None + strategy = self.strategy_exec(strategy) if strategy is None: self.context.logger.error( f"No executable was found for {strategy=}!" ) - return {SELECTED_OPPORTUNITY: None} + return None strategy_exec, callable_method = strategy if callable_method in globals(): @@ -1034,7 +1035,7 @@ def execute_strategy(self, *args: Any, **kwargs: Any) -> Dict[str, Any]: self.context.logger.error( f"No {callable_method!r} method was found in {strategy} executable." ) - return {SELECTED_OPPORTUNITY: None} + return None return method(*args, **kwargs) diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 0f11c52..d1e439d 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeie2dvx7ghwrgirjxqr5pdp4xjq7byp25vdhxwltypx7uecjqzlcpy + behaviours.py: bafybeigzcslyezglit3ohdoydlokjxijxs3grdhgc64pgra2jqzq72qgj4 dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 1be26ba..d616c2a 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeidxs24ujiott6byhwcdcavuhtppz7d67lz5u4cio3cvr3whgenqs4 +- valory/liquidity_trader_abci:0.1.0:bafybeibq4cyldpbtnu7v5h6flzn7gzlinxxnlanojtdhddeqnkh3d3lnh4 - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From 426d0b3ac74169ee176ad910b612de6f89f3f309 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 28 Nov 2024 13:23:12 +0530 Subject: [PATCH 37/52] chore: add balancer strategy --- packages/packages.json | 13 +- .../valory/agents/optimus/aea-config.yaml | 15 +- .../customs/apr_based_selection/__init__.py | 2 +- .../apr_based_selection.py | 2 +- .../apr_based_selection/component.yaml | 4 +- .../customs/balancer_strategy/__init__.py | 20 +++ .../balancer_strategy/balancer_strategy.py | 159 ++++++++++++++++++ .../customs/balancer_strategy/component.yaml | 15 ++ .../valory/customs/lp_strategy/__init__.py | 2 +- .../valory/customs/lp_strategy/component.yaml | 6 +- .../valory/customs/lp_strategy/lp_strategy.py | 2 +- packages/valory/services/optimus/service.yaml | 8 +- .../liquidity_trader_abci/behaviours.py | 8 +- .../skills/liquidity_trader_abci/skill.yaml | 2 +- .../valory/skills/optimus_abci/skill.yaml | 2 +- 15 files changed, 228 insertions(+), 32 deletions(-) create mode 100644 packages/valory/customs/balancer_strategy/__init__.py create mode 100644 packages/valory/customs/balancer_strategy/balancer_strategy.py create mode 100644 packages/valory/customs/balancer_strategy/component.yaml diff --git a/packages/packages.json b/packages/packages.json index 4b36fb5..317bbcc 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,7 +1,8 @@ { "dev": { - "custom/valory/lp_strategy/0.1.0": "bafybeia7scjod4vjli76sqstih3wvu7eaw37xflkhz5pswknu6twgf6qiu", - "custom/valory/apr_based_selection/0.1.0": "bafybeidmgmjdjv4pablvkv3x5bnyehvfmdy5f5yu7m7swdcmci6xfnwdju", + "custom/valory/lp_strategy/0.1.0": "bafybeievbi5tbvszq6hdpzasffxj4aaeljczwtpxzdrd33o6wlsathy26u", + "custom/valory/apr_based_selection/0.1.0": "bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta", + "custom/valory/balancer_strategy/0.1.0": "bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", @@ -10,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeibq4cyldpbtnu7v5h6flzn7gzlinxxnlanojtdhddeqnkh3d3lnh4", - "skill/valory/optimus_abci/0.1.0": "bafybeib4o24bo4wxuoqckzqhqgtalxqwwvnle7idaivmi2bwryrqbuxyyq", - "agent/valory/optimus/0.1.0": "bafybeiezdtvgpdnpeudi7ew4ejui45seopi7vdmcw4oq3cxzp6n2tcycvq", - "service/valory/optimus/0.1.0": "bafybeign2whgrfe7w3mmdmixww3524rw7n3wb6wdzhd6fuesihk36av4qe" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeih56m62hngzbwbognl553tbtxnjnolj3lqyaobbrtgc6svqduzzry", + "skill/valory/optimus_abci/0.1.0": "bafybeibyc43ohsdrdbbl3lkycteqvxn3xxc4tcuzjcpye4ad3236asezly", + "agent/valory/optimus/0.1.0": "bafybeidor5m3fm6xe2qab3gahvnhe3it3eo5fstc6hqgxo3hjffwuzv7ue", + "service/valory/optimus/0.1.0": "bafybeih2m5cmg2yjbbxjwxf5xh4k7a4xdtlo73kxcc4uhxir6ezgrqhp7i" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index d90fbc9..e153313 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,15 +35,16 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeibq4cyldpbtnu7v5h6flzn7gzlinxxnlanojtdhddeqnkh3d3lnh4 -- valory/optimus_abci:0.1.0:bafybeib4o24bo4wxuoqckzqhqgtalxqwwvnle7idaivmi2bwryrqbuxyyq +- valory/liquidity_trader_abci:0.1.0:bafybeih56m62hngzbwbognl553tbtxnjnolj3lqyaobbrtgc6svqduzzry +- valory/optimus_abci:0.1.0:bafybeibyc43ohsdrdbbl3lkycteqvxn3xxc4tcuzjcpye4ad3236asezly - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/lp_strategy:0.1.0:bafybeia7scjod4vjli76sqstih3wvu7eaw37xflkhz5pswknu6twgf6qiu -- valory/apr_based_selection:0.1.0:bafybeidmgmjdjv4pablvkv3x5bnyehvfmdy5f5yu7m7swdcmci6xfnwdju +- valory/lp_strategy:0.1.0:bafybeievbi5tbvszq6hdpzasffxj4aaeljczwtpxzdrd33o6wlsathy26u +- valory/apr_based_selection:0.1.0:bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta +- valory/balancer_strategy:0.1.0:bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta default_ledger: ethereum required_ledgers: - ethereum @@ -255,8 +256,8 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies: ${str:{"bafybeia7scjod4vjli76sqstih3wvu7eaw37xflkhz5pswknu6twgf6qiu":"lp_strategy","bafybeidmgmjdjv4pablvkv3x5bnyehvfmdy5f5yu7m7swdcmci6xfnwdju":"apr_based_selection"}} - strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}}}} - selected_strategies: ${list:["lp_strategy"]} + file_hash_to_strategies: ${str:{"bafybeievbi5tbvszq6hdpzasffxj4aaeljczwtpxzdrd33o6wlsathy26u":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta":"balancer_strategy"}} + strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} + selected_strategies: ${list:["lp_strategy","balancer_strategy"]} selected_protocols: ${list:["BALANCER","UNISWAP_V3"]} selected_hyper_strategy: ${str:apr_based_selection} diff --git a/packages/valory/customs/apr_based_selection/__init__.py b/packages/valory/customs/apr_based_selection/__init__.py index 97c7b4e..dc0664d 100644 --- a/packages/valory/customs/apr_based_selection/__init__.py +++ b/packages/valory/customs/apr_based_selection/__init__.py @@ -17,4 +17,4 @@ # # ------------------------------------------------------------------------------ -"""This module contains a strategy that returns the highest APR yielding strategy""" +"""This module contains a strategy that selects the best yielding strategy based on APR""" diff --git a/packages/valory/customs/apr_based_selection/apr_based_selection.py b/packages/valory/customs/apr_based_selection/apr_based_selection.py index f0151c9..d0de6a2 100644 --- a/packages/valory/customs/apr_based_selection/apr_based_selection.py +++ b/packages/valory/customs/apr_based_selection/apr_based_selection.py @@ -17,7 +17,7 @@ # # ------------------------------------------------------------------------------ -"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap.""" +"""This module contains a strategy that selects the best yielding strategy based on APR""" from enum import Enum from typing import ( diff --git a/packages/valory/customs/apr_based_selection/component.yaml b/packages/valory/customs/apr_based_selection/component.yaml index 51869fb..5074159 100644 --- a/packages/valory/customs/apr_based_selection/component.yaml +++ b/packages/valory/customs/apr_based_selection/component.yaml @@ -6,8 +6,8 @@ description: A strategy that selects the best yielding strategy based on APR license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeifjsn3dek6bm3b5a2eu55acniehapedobhzvz3x5nub563v5s7vsu - apr_based_selection.py: bafybeihojkb2sxxdrqh3e6eyjzci7vc77xrf6oxdmlb5tozh37j34xeefu + __init__.py: bafybeidkb3cffdsx7yiafbkka6dhxqnwpfswqzii6wm6vtumsczgeezrk4 + apr_based_selection.py: bafybeictwyxzvbs2eslprxjxvsbpec7o2zzhyzosnhiqcbv4evabtkkvvi fingerprint_ignore_patterns: [] entry_point: apr_based_selection.py callable: run diff --git a/packages/valory/customs/balancer_strategy/__init__.py b/packages/valory/customs/balancer_strategy/__init__.py new file mode 100644 index 0000000..8532656 --- /dev/null +++ b/packages/valory/customs/balancer_strategy/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------------------------ +# +# Copyright 2023-2024 Valory AG +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ------------------------------------------------------------------------------ + +"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer""" diff --git a/packages/valory/customs/balancer_strategy/balancer_strategy.py b/packages/valory/customs/balancer_strategy/balancer_strategy.py new file mode 100644 index 0000000..fc8a416 --- /dev/null +++ b/packages/valory/customs/balancer_strategy/balancer_strategy.py @@ -0,0 +1,159 @@ +import requests +from typing import ( + Dict, + Union, + Any, + List +) +# Supported pool types and their mappings +SUPPORTED_POOL_TYPES = { + "WEIGHTED": "Weighted", + "COMPOSABLE_STABLE": "ComposableStable", + "LIQUIDITY_BOOTSTRAPING": "LiquidityBootstrapping", + "META_STABLE": "MetaStable", + "STABLE": "Stable", + "INVESTMENT": "Investment" +} + +REQUIRED_FIELDS = ("chains", "apr_threshold", "graphql_endpoint") +BALANCER = "balancerPool" + +def check_missing_fields(kwargs: Dict[str, Any]) -> List[str]: + """Check for missing fields and return them, if any.""" + missing = [] + for field in REQUIRED_FIELDS: + if kwargs.get(field, None) is None: + missing.append(field) + return missing + +def remove_irrelevant_fields(kwargs: Dict[str, Any]) -> Dict[str, Any]: + """Remove the irrelevant fields from the given kwargs.""" + return {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} + +def run_query(query, graphql_endpoint, variables=None): + headers = { + 'Content-Type': 'application/json', + } + payload = { + 'query': query, + 'variables': variables or {} + } + + response = requests.post(graphql_endpoint, json=payload, headers=headers) + response.raise_for_status() + result = response.json() + + if 'errors' in result: + print("GraphQL Errors:", result['errors']) + return None + return result['data'] + +def get_best_pool(chains, apr_threshold, graphql_endpoint): + # Ensure all chain names are uppercase + chain_names = [chain.upper() for chain in chains] + chain_list_str = ', '.join(chain_names) + + # Build the GraphQL query with the specified chain names + graphql_query = f""" + {{ + poolGetPools(where: {{chainIn: [{chain_list_str}]}}) {{ + id + address + chain + type + poolTokens {{ + address + symbol + }} + dynamicData {{ + aprItems {{ + type + apr + }} + }} + }} + }} + """ + + # Execute the GraphQL query + data = run_query(graphql_query, graphql_endpoint) + if data is None: + return None + + # Extract pools from the response + pools = data.get("poolGetPools", []) + # Filter pools by supported types and those with exactly two tokens + filtered_pools = [] + for pool in pools: + pool_type = pool.get('type') + mapped_type = SUPPORTED_POOL_TYPES.get(pool_type) + if mapped_type and len(pool.get('poolTokens', [])) == 2: + pool['type'] = mapped_type # Update pool type to the mapped type + filtered_pools.append(pool) + + best_pool = None + highest_apr = 0 + for pool in filtered_pools: + total_apr = get_total_apr(pool) + if total_apr > (apr_threshold / 100) and total_apr > highest_apr: + highest_apr = total_apr + best_pool = pool + + if best_pool is None: + return None + + total_apr = get_total_apr(best_pool) + + dex_type = BALANCER + chain = best_pool['chain'].lower() + apr = total_apr * 100 + pool_address = best_pool['address'] + pool_id = best_pool['id'] + pool_type = best_pool['type'] + + pool_tokens = best_pool['poolTokens'] + token0 = pool_tokens[0].get('address') + token1 = pool_tokens[1].get('address') + token0_symbol = pool_tokens[0].get('symbol') + token1_symbol = pool_tokens[1].get('symbol') + + pool_token_dict = { + "token0": token0, + "token1": token1, + "token0_symbol": token0_symbol, + "token1_symbol": token1_symbol, + } + + # Check for missing token information + if any(v is None for v in pool_token_dict.values()): + print(f"Invalid pool tokens found: {pool_token_dict}") + return None + + result = { + "dex_type": dex_type, + "chain": chain, + "apr": apr, + "pool_address": pool_address, + "pool_id": pool_id, + "pool_type": pool_type, + **pool_token_dict, + } + + return result + +def get_total_apr(pool): + apr_items = pool.get('dynamicData', {}).get('aprItems', []) + filtered_apr_items = [ + item for item in apr_items + if item['type'] not in {"SWAP_FEE", "SWAP_FEE_7D", "SWAP_FEE_30D"} + ] + return sum(item['apr'] for item in filtered_apr_items) + +def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: + """Run the strategy.""" + missing = check_missing_fields(kwargs) + if len(missing) > 0: + return {"error": f"Required kwargs {missing} were not provided."} + + kwargs = remove_irrelevant_fields(kwargs) + return get_best_pool(**kwargs) \ No newline at end of file diff --git a/packages/valory/customs/balancer_strategy/component.yaml b/packages/valory/customs/balancer_strategy/component.yaml new file mode 100644 index 0000000..620c77f --- /dev/null +++ b/packages/valory/customs/balancer_strategy/component.yaml @@ -0,0 +1,15 @@ +name: balancer_strategy +author: valory +version: 0.1.0 +type: custom +description: A strategy that returns the highest APR yielding liquidity pool over + Balancer +license: Apache-2.0 +aea_version: '>=1.0.0, <2.0.0' +fingerprint: + __init__.py: bafybeih5ut32gpd74oj33oautjlv6sswnqwwep7hpnnjuos3mqpyyjn6zy + balancer_strategy.py: bafybeicec5k2xyxo3it3olk4do5qdroy6j24b7dgsiiepijb6wi4uyuycm +fingerprint_ignore_patterns: [] +entry_point: balancer_strategy.py +callable: run +dependencies: {} diff --git a/packages/valory/customs/lp_strategy/__init__.py b/packages/valory/customs/lp_strategy/__init__.py index 37c57fd..c5360da 100644 --- a/packages/valory/customs/lp_strategy/__init__.py +++ b/packages/valory/customs/lp_strategy/__init__.py @@ -17,4 +17,4 @@ # # ------------------------------------------------------------------------------ -"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap""" +"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap using Merkl""" diff --git a/packages/valory/customs/lp_strategy/component.yaml b/packages/valory/customs/lp_strategy/component.yaml index 5970d1e..3a69690 100644 --- a/packages/valory/customs/lp_strategy/component.yaml +++ b/packages/valory/customs/lp_strategy/component.yaml @@ -3,12 +3,12 @@ author: valory version: 0.1.0 type: custom description: A strategy that returns the highest APR yielding liquidity pool over - Balancer and Uniswap + Balancer and Uniswap using Merkl license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeicpapvukcglcti76a5ggwx2sb6xjrjq5a425tialt2cljc3qo5jpy - lp_strategy.py: bafybeieuvsjwgczrvlcpbb32yv653uazs5xazuncpiqk5klvanyvrsevtm + __init__.py: bafybeico7avmekvnpeefqyruchcgdcfmrarjt74xertll4gurai4bmdbxa + lp_strategy.py: bafybeihyfc7rrs6polj6iyhzm7mp5vajrd6umyfqcly2qxvd3ycsxq3hqu fingerprint_ignore_patterns: [] entry_point: lp_strategy.py callable: run diff --git a/packages/valory/customs/lp_strategy/lp_strategy.py b/packages/valory/customs/lp_strategy/lp_strategy.py index 57ef824..f1de53b 100644 --- a/packages/valory/customs/lp_strategy/lp_strategy.py +++ b/packages/valory/customs/lp_strategy/lp_strategy.py @@ -17,7 +17,7 @@ # # ------------------------------------------------------------------------------ -"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap.""" +"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap using Merkl""" import json import requests diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 1bcebb8..741afea 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeiezdtvgpdnpeudi7ew4ejui45seopi7vdmcw4oq3cxzp6n2tcycvq +agent: valory/optimus:0.1.0:bafybeidor5m3fm6xe2qab3gahvnhe3it3eo5fstc6hqgxo3hjffwuzv7ue number_of_agents: 1 deployment: {} --- @@ -84,9 +84,9 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES_JSON:str:{"bafybeia7scjod4vjli76sqstih3wvu7eaw37xflkhz5pswknu6twgf6qiu":"lp_strategy","bafybeidmgmjdjv4pablvkv3x5bnyehvfmdy5f5yu7m7swdcmci6xfnwdju":"apr_based_selection"}} - strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}}}} - selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy"]} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeievbi5tbvszq6hdpzasffxj4aaeljczwtpxzdrd33o6wlsathy26u":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta":"balancer_strategy"}} + strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} + selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy","balancer_strategy"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} selected_hyper_strategy: ${SELECTED_HYPER_STRATEGY:str:apr_based_selection} coingecko: diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 5585c0b..128cf92 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -957,7 +957,7 @@ def execute_hyper_strategy(self) -> None: self.context.logger.info(f"Evaluating {hyper_strategy} hyper strategy..") self.selected_opportunity = self.execute_strategy(**kwargs) self.context.logger.info(f"Selected opportunity: {self.selected_opportunity}") - + def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: """Fetches all the trading opportunities""" yield from self.download_strategies() @@ -974,14 +974,14 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: "chains": self.params.target_investment_chains, "protocols": self.params.selected_protocols, "chain_to_chain_id_mapping": self.params.chain_to_chain_id_mapping, - "apr_threshold": 5, - "current_pool": self.current_pool.get('address') if self.current_pool else None + "apr_threshold": self.current_pool.get('apr') if self.current_pool else self.params.apr_threshold, + "current_pool": self.current_pool.get('address') if self.current_pool else '' } ) opportunity = self.execute_strategy(**kwargs) if opportunity is not None: self.trading_opportunities.append(opportunity) - + tried_strategies.add(next_strategy) remaining_strategies = set(strategies) - tried_strategies if len(remaining_strategies) == 0: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index d1e439d..d7648b0 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeigzcslyezglit3ohdoydlokjxijxs3grdhgc64pgra2jqzq72qgj4 + behaviours.py: bafybeidkzjmpxwqsawmflvinrh3zabdkkmupbyrvn4kiizkxni5vfyhig4 dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index d616c2a..6364843 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeibq4cyldpbtnu7v5h6flzn7gzlinxxnlanojtdhddeqnkh3d3lnh4 +- valory/liquidity_trader_abci:0.1.0:bafybeih56m62hngzbwbognl553tbtxnjnolj3lqyaobbrtgc6svqduzzry - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From b40ccdcc2d71f4300b94b29ab0041d7fc0e39db3 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 28 Nov 2024 13:49:33 +0530 Subject: [PATCH 38/52] fix: fix return type in strategy --- packages/packages.json | 10 +++++----- packages/valory/agents/optimus/aea-config.yaml | 8 ++++---- packages/valory/customs/lp_strategy/component.yaml | 2 +- packages/valory/customs/lp_strategy/lp_strategy.py | 7 ++----- packages/valory/services/optimus/service.yaml | 4 ++-- .../valory/skills/liquidity_trader_abci/behaviours.py | 4 +++- .../valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 8 files changed, 19 insertions(+), 20 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 317bbcc..81a5147 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,6 +1,6 @@ { "dev": { - "custom/valory/lp_strategy/0.1.0": "bafybeievbi5tbvszq6hdpzasffxj4aaeljczwtpxzdrd33o6wlsathy26u", + "custom/valory/lp_strategy/0.1.0": "bafybeiekugat67ivytlniyhthcvp7qkq4ezx7qcurm2i2aaxtbfoqambte", "custom/valory/apr_based_selection/0.1.0": "bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta", "custom/valory/balancer_strategy/0.1.0": "bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeih56m62hngzbwbognl553tbtxnjnolj3lqyaobbrtgc6svqduzzry", - "skill/valory/optimus_abci/0.1.0": "bafybeibyc43ohsdrdbbl3lkycteqvxn3xxc4tcuzjcpye4ad3236asezly", - "agent/valory/optimus/0.1.0": "bafybeidor5m3fm6xe2qab3gahvnhe3it3eo5fstc6hqgxo3hjffwuzv7ue", - "service/valory/optimus/0.1.0": "bafybeih2m5cmg2yjbbxjwxf5xh4k7a4xdtlo73kxcc4uhxir6ezgrqhp7i" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiekkd4vhzprii5msqaxrpmoianaasyfyms6xb7ejss3nwaa2rn5v4", + "skill/valory/optimus_abci/0.1.0": "bafybeicx3peqemyryj2mtavcsygfvnc353ii6ctxu76ebwntppmoh7pxgu", + "agent/valory/optimus/0.1.0": "bafybeihg4anjlmr3nwoqkqf5egchhclv6u45y7wpawpiv6ftochpjyei4q", + "service/valory/optimus/0.1.0": "bafybeifdnw7yccrkygtldtd47bmp7bucvjbeqqxodnqphn56geyeodwe7a" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index e153313..95a4d0f 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,14 +35,14 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeih56m62hngzbwbognl553tbtxnjnolj3lqyaobbrtgc6svqduzzry -- valory/optimus_abci:0.1.0:bafybeibyc43ohsdrdbbl3lkycteqvxn3xxc4tcuzjcpye4ad3236asezly +- valory/liquidity_trader_abci:0.1.0:bafybeiekkd4vhzprii5msqaxrpmoianaasyfyms6xb7ejss3nwaa2rn5v4 +- valory/optimus_abci:0.1.0:bafybeicx3peqemyryj2mtavcsygfvnc353ii6ctxu76ebwntppmoh7pxgu - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/lp_strategy:0.1.0:bafybeievbi5tbvszq6hdpzasffxj4aaeljczwtpxzdrd33o6wlsathy26u +- valory/lp_strategy:0.1.0:bafybeiekugat67ivytlniyhthcvp7qkq4ezx7qcurm2i2aaxtbfoqambte - valory/apr_based_selection:0.1.0:bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta - valory/balancer_strategy:0.1.0:bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta default_ledger: ethereum @@ -256,7 +256,7 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies: ${str:{"bafybeievbi5tbvszq6hdpzasffxj4aaeljczwtpxzdrd33o6wlsathy26u":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta":"balancer_strategy"}} + file_hash_to_strategies: ${str:{"bafybeiekugat67ivytlniyhthcvp7qkq4ezx7qcurm2i2aaxtbfoqambte":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta":"balancer_strategy"}} strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${list:["lp_strategy","balancer_strategy"]} selected_protocols: ${list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/customs/lp_strategy/component.yaml b/packages/valory/customs/lp_strategy/component.yaml index 3a69690..f4237c7 100644 --- a/packages/valory/customs/lp_strategy/component.yaml +++ b/packages/valory/customs/lp_strategy/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeico7avmekvnpeefqyruchcgdcfmrarjt74xertll4gurai4bmdbxa - lp_strategy.py: bafybeihyfc7rrs6polj6iyhzm7mp5vajrd6umyfqcly2qxvd3ycsxq3hqu + lp_strategy.py: bafybeiacioxcw6spx4erveuffob6g2wwzdvwntlazorn7equu4bmwxgykq fingerprint_ignore_patterns: [] entry_point: lp_strategy.py callable: run diff --git a/packages/valory/customs/lp_strategy/lp_strategy.py b/packages/valory/customs/lp_strategy/lp_strategy.py index f1de53b..2044fde 100644 --- a/packages/valory/customs/lp_strategy/lp_strategy.py +++ b/packages/valory/customs/lp_strategy/lp_strategy.py @@ -291,11 +291,8 @@ def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Optional[ if highest_apr_pool: return highest_apr_pool else: - return { - "error": ( - "No pools with APR found." - ) - } + print("No opportunity found on merkl") + return None def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: """Run the strategy.""" diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 741afea..1c70026 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeidor5m3fm6xe2qab3gahvnhe3it3eo5fstc6hqgxo3hjffwuzv7ue +agent: valory/optimus:0.1.0:bafybeihg4anjlmr3nwoqkqf5egchhclv6u45y7wpawpiv6ftochpjyei4q number_of_agents: 1 deployment: {} --- @@ -84,7 +84,7 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeievbi5tbvszq6hdpzasffxj4aaeljczwtpxzdrd33o6wlsathy26u":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta":"balancer_strategy"}} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeiekugat67ivytlniyhthcvp7qkq4ezx7qcurm2i2aaxtbfoqambte":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta":"balancer_strategy"}} strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy","balancer_strategy"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 128cf92..1547e8c 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -981,7 +981,7 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: opportunity = self.execute_strategy(**kwargs) if opportunity is not None: self.trading_opportunities.append(opportunity) - + tried_strategies.add(next_strategy) remaining_strategies = set(strategies) - tried_strategies if len(remaining_strategies) == 0: @@ -989,6 +989,8 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: next_strategy = remaining_strategies.pop() + self.context.logger.info(f"available opportunities: {self.trading_opportunities}") + def download_next_strategy(self) -> None: """Download the strategies one by one.""" if self._inflight_strategy_req is not None: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index d7648b0..010ac51 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeidkzjmpxwqsawmflvinrh3zabdkkmupbyrvn4kiizkxni5vfyhig4 + behaviours.py: bafybeidn5vfahz4jqjgzwz2xmdhh4kkewnmovrg4v34lywugxrvbqk3kwa dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 6364843..0110a90 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeih56m62hngzbwbognl553tbtxnjnolj3lqyaobbrtgc6svqduzzry +- valory/liquidity_trader_abci:0.1.0:bafybeiekkd4vhzprii5msqaxrpmoianaasyfyms6xb7ejss3nwaa2rn5v4 - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From c23e7190da8022b06b5ec02c9c5ee06d1fae563b Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 28 Nov 2024 14:25:44 +0530 Subject: [PATCH 39/52] fix: add apr threshold --- packages/packages.json | 12 ++++++------ packages/valory/agents/optimus/aea-config.yaml | 10 +++++----- .../customs/balancer_strategy/balancer_strategy.py | 1 + .../valory/customs/balancer_strategy/component.yaml | 2 +- packages/valory/customs/lp_strategy/component.yaml | 2 +- packages/valory/customs/lp_strategy/lp_strategy.py | 3 +-- packages/valory/services/optimus/service.yaml | 5 +++-- .../skills/liquidity_trader_abci/behaviours.py | 4 +++- .../valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 10 files changed, 23 insertions(+), 20 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 81a5147..643b626 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,8 +1,8 @@ { "dev": { - "custom/valory/lp_strategy/0.1.0": "bafybeiekugat67ivytlniyhthcvp7qkq4ezx7qcurm2i2aaxtbfoqambte", + "custom/valory/lp_strategy/0.1.0": "bafybeibugdhqrvvr24n5o5lkt2kvzhmxd7mexf5a2oecsaqng5juj34znm", "custom/valory/apr_based_selection/0.1.0": "bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta", - "custom/valory/balancer_strategy/0.1.0": "bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta", + "custom/valory/balancer_strategy/0.1.0": "bafybeihk4h6aou2g2hgvdz77qqtwf7dny5rq2zyzlbl5rivjhiz24yfvwu", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiekkd4vhzprii5msqaxrpmoianaasyfyms6xb7ejss3nwaa2rn5v4", - "skill/valory/optimus_abci/0.1.0": "bafybeicx3peqemyryj2mtavcsygfvnc353ii6ctxu76ebwntppmoh7pxgu", - "agent/valory/optimus/0.1.0": "bafybeihg4anjlmr3nwoqkqf5egchhclv6u45y7wpawpiv6ftochpjyei4q", - "service/valory/optimus/0.1.0": "bafybeifdnw7yccrkygtldtd47bmp7bucvjbeqqxodnqphn56geyeodwe7a" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeif2dyhfvn42trlhd74oubicvplbmey3tzvyvogc6qfo2hbc2ahpxq", + "skill/valory/optimus_abci/0.1.0": "bafybeig4hkauprjmy35kkygfwyvoskzp5z27q6v4i64xmzld23rhe5hk3e", + "agent/valory/optimus/0.1.0": "bafybeiatod6d7j7m57umvc5lha6zkvvnqjpiqnpytkfqf4kqy2kjyjlqvu", + "service/valory/optimus/0.1.0": "bafybeidre44bcsv24zz2wzpnl7gorxk2s4bhazgepxcv6r2i46e7mcwxgi" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 95a4d0f..8ac2c7c 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,16 +35,16 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeiekkd4vhzprii5msqaxrpmoianaasyfyms6xb7ejss3nwaa2rn5v4 -- valory/optimus_abci:0.1.0:bafybeicx3peqemyryj2mtavcsygfvnc353ii6ctxu76ebwntppmoh7pxgu +- valory/liquidity_trader_abci:0.1.0:bafybeif2dyhfvn42trlhd74oubicvplbmey3tzvyvogc6qfo2hbc2ahpxq +- valory/optimus_abci:0.1.0:bafybeig4hkauprjmy35kkygfwyvoskzp5z27q6v4i64xmzld23rhe5hk3e - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/lp_strategy:0.1.0:bafybeiekugat67ivytlniyhthcvp7qkq4ezx7qcurm2i2aaxtbfoqambte +- valory/lp_strategy:0.1.0:bafybeibugdhqrvvr24n5o5lkt2kvzhmxd7mexf5a2oecsaqng5juj34znm - valory/apr_based_selection:0.1.0:bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta -- valory/balancer_strategy:0.1.0:bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta +- valory/balancer_strategy:0.1.0:bafybeihk4h6aou2g2hgvdz77qqtwf7dny5rq2zyzlbl5rivjhiz24yfvwu default_ledger: ethereum required_ledgers: - ethereum @@ -256,7 +256,7 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies: ${str:{"bafybeiekugat67ivytlniyhthcvp7qkq4ezx7qcurm2i2aaxtbfoqambte":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta":"balancer_strategy"}} + file_hash_to_strategies: ${str:{"bafybeibugdhqrvvr24n5o5lkt2kvzhmxd7mexf5a2oecsaqng5juj34znm":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihk4h6aou2g2hgvdz77qqtwf7dny5rq2zyzlbl5rivjhiz24yfvwu":"balancer_strategy"}} strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${list:["lp_strategy","balancer_strategy"]} selected_protocols: ${list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/customs/balancer_strategy/balancer_strategy.py b/packages/valory/customs/balancer_strategy/balancer_strategy.py index fc8a416..42981dd 100644 --- a/packages/valory/customs/balancer_strategy/balancer_strategy.py +++ b/packages/valory/customs/balancer_strategy/balancer_strategy.py @@ -49,6 +49,7 @@ def run_query(query, graphql_endpoint, variables=None): return result['data'] def get_best_pool(chains, apr_threshold, graphql_endpoint): + print(f"{apr_threshold=}") # Ensure all chain names are uppercase chain_names = [chain.upper() for chain in chains] chain_list_str = ', '.join(chain_names) diff --git a/packages/valory/customs/balancer_strategy/component.yaml b/packages/valory/customs/balancer_strategy/component.yaml index 620c77f..0531f70 100644 --- a/packages/valory/customs/balancer_strategy/component.yaml +++ b/packages/valory/customs/balancer_strategy/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeih5ut32gpd74oj33oautjlv6sswnqwwep7hpnnjuos3mqpyyjn6zy - balancer_strategy.py: bafybeicec5k2xyxo3it3olk4do5qdroy6j24b7dgsiiepijb6wi4uyuycm + balancer_strategy.py: bafybeia74pk3lxmkmbs4zocrcezsr7sq2n24oevleztwcku3rla4j23spa fingerprint_ignore_patterns: [] entry_point: balancer_strategy.py callable: run diff --git a/packages/valory/customs/lp_strategy/component.yaml b/packages/valory/customs/lp_strategy/component.yaml index f4237c7..2b1fb03 100644 --- a/packages/valory/customs/lp_strategy/component.yaml +++ b/packages/valory/customs/lp_strategy/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeico7avmekvnpeefqyruchcgdcfmrarjt74xertll4gurai4bmdbxa - lp_strategy.py: bafybeiacioxcw6spx4erveuffob6g2wwzdvwntlazorn7equu4bmwxgykq + lp_strategy.py: bafybeign7z4v6bes5tpbz5qtymynsu5kg5t7unsd6leddbko3n47pccqxm fingerprint_ignore_patterns: [] entry_point: lp_strategy.py callable: run diff --git a/packages/valory/customs/lp_strategy/lp_strategy.py b/packages/valory/customs/lp_strategy/lp_strategy.py index 2044fde..6cb90ab 100644 --- a/packages/valory/customs/lp_strategy/lp_strategy.py +++ b/packages/valory/customs/lp_strategy/lp_strategy.py @@ -64,7 +64,7 @@ def highest_apr_opportunity( current_pool: Optional[str] ) -> Dict[str, Any]: """Get the highest APR yielding opportunity over given protocols using Merkl API.""" - + print(f"{apr_threshold=}") def fetch_all_pools() -> Optional[Dict[str, Any]]: """Fetch all pools based on allowed chains.""" if not chains: @@ -291,7 +291,6 @@ def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Optional[ if highest_apr_pool: return highest_apr_pool else: - print("No opportunity found on merkl") return None def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 1c70026..0e6a5ab 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeihg4anjlmr3nwoqkqf5egchhclv6u45y7wpawpiv6ftochpjyei4q +agent: valory/optimus:0.1.0:bafybeiatod6d7j7m57umvc5lha6zkvvnqjpiqnpytkfqf4kqy2kjyjlqvu number_of_agents: 1 deployment: {} --- @@ -84,11 +84,12 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeiekugat67ivytlniyhthcvp7qkq4ezx7qcurm2i2aaxtbfoqambte":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihdi4vtyjqt4qe67ii6l3minopmqxvmkidcn5tjn3w74cl7ovfcta":"balancer_strategy"}} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeibugdhqrvvr24n5o5lkt2kvzhmxd7mexf5a2oecsaqng5juj34znm":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihk4h6aou2g2hgvdz77qqtwf7dny5rq2zyzlbl5rivjhiz24yfvwu":"balancer_strategy"}} strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy","balancer_strategy"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} selected_hyper_strategy: ${SELECTED_HYPER_STRATEGY:str:apr_based_selection} + apr_threshold: ${APR_THRESHOLD:int:5} coingecko: args: token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd} diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 1547e8c..bc0b73d 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -981,7 +981,9 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: opportunity = self.execute_strategy(**kwargs) if opportunity is not None: self.trading_opportunities.append(opportunity) - + else: + self.context.logger.warning(f"No opportunity found using {next_strategy}") + tried_strategies.add(next_strategy) remaining_strategies = set(strategies) - tried_strategies if len(remaining_strategies) == 0: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 010ac51..5f100b7 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeidn5vfahz4jqjgzwz2xmdhh4kkewnmovrg4v34lywugxrvbqk3kwa + behaviours.py: bafybeicw2d5yabmwa4v2vvinavijtjwievijueylgrlncolef74ko62vha dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 0110a90..d067f5d 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeiekkd4vhzprii5msqaxrpmoianaasyfyms6xb7ejss3nwaa2rn5v4 +- valory/liquidity_trader_abci:0.1.0:bafybeif2dyhfvn42trlhd74oubicvplbmey3tzvyvogc6qfo2hbc2ahpxq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From d34ac5decd6db5b4d8ea4d4890573bd27005ca76 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 28 Nov 2024 14:51:32 +0530 Subject: [PATCH 40/52] fix: add apr in balancer strategy --- packages/packages.json | 12 ++++++------ packages/valory/agents/optimus/aea-config.yaml | 10 +++++----- .../customs/balancer_strategy/balancer_strategy.py | 6 ++---- .../valory/customs/balancer_strategy/component.yaml | 2 +- packages/valory/customs/lp_strategy/component.yaml | 2 +- packages/valory/customs/lp_strategy/lp_strategy.py | 2 +- packages/valory/services/optimus/service.yaml | 4 ++-- .../skills/liquidity_trader_abci/behaviours.py | 4 ++-- .../valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 10 files changed, 22 insertions(+), 24 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 643b626..c577f5b 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,8 +1,8 @@ { "dev": { - "custom/valory/lp_strategy/0.1.0": "bafybeibugdhqrvvr24n5o5lkt2kvzhmxd7mexf5a2oecsaqng5juj34znm", + "custom/valory/lp_strategy/0.1.0": "bafybeib4y6ofxmq44yzsvxgr4wk7mjooo4rrre2x5eitaem6lq3qgqc4ia", "custom/valory/apr_based_selection/0.1.0": "bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta", - "custom/valory/balancer_strategy/0.1.0": "bafybeihk4h6aou2g2hgvdz77qqtwf7dny5rq2zyzlbl5rivjhiz24yfvwu", + "custom/valory/balancer_strategy/0.1.0": "bafybeie62q7xaihkqxktvkx7fgsj4mqf3yhtzcmbri4fip4acimedddjmy", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeif2dyhfvn42trlhd74oubicvplbmey3tzvyvogc6qfo2hbc2ahpxq", - "skill/valory/optimus_abci/0.1.0": "bafybeig4hkauprjmy35kkygfwyvoskzp5z27q6v4i64xmzld23rhe5hk3e", - "agent/valory/optimus/0.1.0": "bafybeiatod6d7j7m57umvc5lha6zkvvnqjpiqnpytkfqf4kqy2kjyjlqvu", - "service/valory/optimus/0.1.0": "bafybeidre44bcsv24zz2wzpnl7gorxk2s4bhazgepxcv6r2i46e7mcwxgi" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiggyufvjchd4gp3azhubc3let362be52x42iu2odxmd6kstgrainu", + "skill/valory/optimus_abci/0.1.0": "bafybeibgh4w3fhfb7agy5t577x4xdel7garlcywzotslpni2kclk3tedta", + "agent/valory/optimus/0.1.0": "bafybeiegaref25odwwag2z7ulvjinx2vmbht3ugmgfehuixlir6ltmax5a", + "service/valory/optimus/0.1.0": "bafybeietdnuhihv7o5gsylbthhs5dtnyew65flqykqa7ezw6ibjljfvobu" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 8ac2c7c..da6537c 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,16 +35,16 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeif2dyhfvn42trlhd74oubicvplbmey3tzvyvogc6qfo2hbc2ahpxq -- valory/optimus_abci:0.1.0:bafybeig4hkauprjmy35kkygfwyvoskzp5z27q6v4i64xmzld23rhe5hk3e +- valory/liquidity_trader_abci:0.1.0:bafybeiggyufvjchd4gp3azhubc3let362be52x42iu2odxmd6kstgrainu +- valory/optimus_abci:0.1.0:bafybeibgh4w3fhfb7agy5t577x4xdel7garlcywzotslpni2kclk3tedta - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/lp_strategy:0.1.0:bafybeibugdhqrvvr24n5o5lkt2kvzhmxd7mexf5a2oecsaqng5juj34znm +- valory/lp_strategy:0.1.0:bafybeib4y6ofxmq44yzsvxgr4wk7mjooo4rrre2x5eitaem6lq3qgqc4ia - valory/apr_based_selection:0.1.0:bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta -- valory/balancer_strategy:0.1.0:bafybeihk4h6aou2g2hgvdz77qqtwf7dny5rq2zyzlbl5rivjhiz24yfvwu +- valory/balancer_strategy:0.1.0:bafybeie62q7xaihkqxktvkx7fgsj4mqf3yhtzcmbri4fip4acimedddjmy default_ledger: ethereum required_ledgers: - ethereum @@ -256,7 +256,7 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies: ${str:{"bafybeibugdhqrvvr24n5o5lkt2kvzhmxd7mexf5a2oecsaqng5juj34znm":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihk4h6aou2g2hgvdz77qqtwf7dny5rq2zyzlbl5rivjhiz24yfvwu":"balancer_strategy"}} + file_hash_to_strategies: ${str:{"bafybeib4y6ofxmq44yzsvxgr4wk7mjooo4rrre2x5eitaem6lq3qgqc4ia":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeie62q7xaihkqxktvkx7fgsj4mqf3yhtzcmbri4fip4acimedddjmy":"balancer_strategy"}} strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${list:["lp_strategy","balancer_strategy"]} selected_protocols: ${list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/customs/balancer_strategy/balancer_strategy.py b/packages/valory/customs/balancer_strategy/balancer_strategy.py index 42981dd..7bc834a 100644 --- a/packages/valory/customs/balancer_strategy/balancer_strategy.py +++ b/packages/valory/customs/balancer_strategy/balancer_strategy.py @@ -49,7 +49,6 @@ def run_query(query, graphql_endpoint, variables=None): return result['data'] def get_best_pool(chains, apr_threshold, graphql_endpoint): - print(f"{apr_threshold=}") # Ensure all chain names are uppercase chain_names = [chain.upper() for chain in chains] chain_list_str = ', '.join(chain_names) @@ -91,7 +90,7 @@ def get_best_pool(chains, apr_threshold, graphql_endpoint): if mapped_type and len(pool.get('poolTokens', [])) == 2: pool['type'] = mapped_type # Update pool type to the mapped type filtered_pools.append(pool) - + best_pool = None highest_apr = 0 for pool in filtered_pools: @@ -127,7 +126,6 @@ def get_best_pool(chains, apr_threshold, graphql_endpoint): # Check for missing token information if any(v is None for v in pool_token_dict.values()): - print(f"Invalid pool tokens found: {pool_token_dict}") return None result = { @@ -146,7 +144,7 @@ def get_total_apr(pool): apr_items = pool.get('dynamicData', {}).get('aprItems', []) filtered_apr_items = [ item for item in apr_items - if item['type'] not in {"SWAP_FEE", "SWAP_FEE_7D", "SWAP_FEE_30D"} + if item['type'] not in {"IB_YIELD", "MERKL", "SWAP_FEE", "SWAP_FEE_7D", "SWAP_FEE_30D"} ] return sum(item['apr'] for item in filtered_apr_items) diff --git a/packages/valory/customs/balancer_strategy/component.yaml b/packages/valory/customs/balancer_strategy/component.yaml index 0531f70..b9d43dd 100644 --- a/packages/valory/customs/balancer_strategy/component.yaml +++ b/packages/valory/customs/balancer_strategy/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeih5ut32gpd74oj33oautjlv6sswnqwwep7hpnnjuos3mqpyyjn6zy - balancer_strategy.py: bafybeia74pk3lxmkmbs4zocrcezsr7sq2n24oevleztwcku3rla4j23spa + balancer_strategy.py: bafybeid2paddqn2qnaqif6rjipytbbnq7mpyekrqdedexcot225m4agd7y fingerprint_ignore_patterns: [] entry_point: balancer_strategy.py callable: run diff --git a/packages/valory/customs/lp_strategy/component.yaml b/packages/valory/customs/lp_strategy/component.yaml index 2b1fb03..a77b406 100644 --- a/packages/valory/customs/lp_strategy/component.yaml +++ b/packages/valory/customs/lp_strategy/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeico7avmekvnpeefqyruchcgdcfmrarjt74xertll4gurai4bmdbxa - lp_strategy.py: bafybeign7z4v6bes5tpbz5qtymynsu5kg5t7unsd6leddbko3n47pccqxm + lp_strategy.py: bafybeiez2atepsp6nj6fbqe3zcx2opdzcvqqksv4rt75bzcmuwhbftmds4 fingerprint_ignore_patterns: [] entry_point: lp_strategy.py callable: run diff --git a/packages/valory/customs/lp_strategy/lp_strategy.py b/packages/valory/customs/lp_strategy/lp_strategy.py index 6cb90ab..25d37fa 100644 --- a/packages/valory/customs/lp_strategy/lp_strategy.py +++ b/packages/valory/customs/lp_strategy/lp_strategy.py @@ -64,7 +64,7 @@ def highest_apr_opportunity( current_pool: Optional[str] ) -> Dict[str, Any]: """Get the highest APR yielding opportunity over given protocols using Merkl API.""" - print(f"{apr_threshold=}") + def fetch_all_pools() -> Optional[Dict[str, Any]]: """Fetch all pools based on allowed chains.""" if not chains: diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 0e6a5ab..5cf8e8c 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeiatod6d7j7m57umvc5lha6zkvvnqjpiqnpytkfqf4kqy2kjyjlqvu +agent: valory/optimus:0.1.0:bafybeiegaref25odwwag2z7ulvjinx2vmbht3ugmgfehuixlir6ltmax5a number_of_agents: 1 deployment: {} --- @@ -84,7 +84,7 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeibugdhqrvvr24n5o5lkt2kvzhmxd7mexf5a2oecsaqng5juj34znm":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeihk4h6aou2g2hgvdz77qqtwf7dny5rq2zyzlbl5rivjhiz24yfvwu":"balancer_strategy"}} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeib4y6ofxmq44yzsvxgr4wk7mjooo4rrre2x5eitaem6lq3qgqc4ia":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeie62q7xaihkqxktvkx7fgsj4mqf3yhtzcmbri4fip4acimedddjmy":"balancer_strategy"}} strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy","balancer_strategy"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index bc0b73d..48cd1b8 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -983,7 +983,7 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: self.trading_opportunities.append(opportunity) else: self.context.logger.warning(f"No opportunity found using {next_strategy}") - + tried_strategies.add(next_strategy) remaining_strategies = set(strategies) - tried_strategies if len(remaining_strategies) == 0: @@ -991,7 +991,7 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: next_strategy = remaining_strategies.pop() - self.context.logger.info(f"available opportunities: {self.trading_opportunities}") + self.context.logger.info(f"All available opportunities: {self.trading_opportunities}") def download_next_strategy(self) -> None: """Download the strategies one by one.""" diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 5f100b7..5c5f44e 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeicw2d5yabmwa4v2vvinavijtjwievijueylgrlncolef74ko62vha + behaviours.py: bafybeifkpsf6cj2br6rpnxn3js5zbi6ri3uhh5ylcuj4x2eod7gakbicyq dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index d067f5d..4802d32 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeif2dyhfvn42trlhd74oubicvplbmey3tzvyvogc6qfo2hbc2ahpxq +- valory/liquidity_trader_abci:0.1.0:bafybeiggyufvjchd4gp3azhubc3let362be52x42iu2odxmd6kstgrainu - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From a58db4472b385bddef16675b97fe4e6f61329853 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Thu, 28 Nov 2024 19:38:17 +0530 Subject: [PATCH 41/52] fix: add logging statement --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- .../valory/skills/liquidity_trader_abci/behaviours.py | 1 + packages/valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index c577f5b..4b7741f 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiggyufvjchd4gp3azhubc3let362be52x42iu2odxmd6kstgrainu", - "skill/valory/optimus_abci/0.1.0": "bafybeibgh4w3fhfb7agy5t577x4xdel7garlcywzotslpni2kclk3tedta", - "agent/valory/optimus/0.1.0": "bafybeiegaref25odwwag2z7ulvjinx2vmbht3ugmgfehuixlir6ltmax5a", - "service/valory/optimus/0.1.0": "bafybeietdnuhihv7o5gsylbthhs5dtnyew65flqykqa7ezw6ibjljfvobu" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeialrzjpvianocwzyw7gbfifdkkvlsiquhamyb44x2lauwdcxafecq", + "skill/valory/optimus_abci/0.1.0": "bafybeiflykxthlvzeuvxq7uikmlmfvsonapiazoqywy6boo3ppfv75oyoy", + "agent/valory/optimus/0.1.0": "bafybeidqzygfgnyfi3bjnlupqe3vvhcbykzmabkbm4dza2rzuzu3alpaze", + "service/valory/optimus/0.1.0": "bafybeigy6gpuds4eu2khotxa2e6yibt4dyk54pds3psa7atug27h62t6vu" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index da6537c..b100800 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeiggyufvjchd4gp3azhubc3let362be52x42iu2odxmd6kstgrainu -- valory/optimus_abci:0.1.0:bafybeibgh4w3fhfb7agy5t577x4xdel7garlcywzotslpni2kclk3tedta +- valory/liquidity_trader_abci:0.1.0:bafybeialrzjpvianocwzyw7gbfifdkkvlsiquhamyb44x2lauwdcxafecq +- valory/optimus_abci:0.1.0:bafybeiflykxthlvzeuvxq7uikmlmfvsonapiazoqywy6boo3ppfv75oyoy - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 5cf8e8c..7fc7f9a 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeiegaref25odwwag2z7ulvjinx2vmbht3ugmgfehuixlir6ltmax5a +agent: valory/optimus:0.1.0:bafybeidqzygfgnyfi3bjnlupqe3vvhcbykzmabkbm4dza2rzuzu3alpaze number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 48cd1b8..ca5bc9f 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -962,6 +962,7 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: """Fetches all the trading opportunities""" yield from self.download_strategies() strategies = self.params.selected_strategies + self.context.logger.info(f"Selected Strategies: {self.params.selected_strategies}") tried_strategies: Set[str] = set() while True: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 5c5f44e..2dff8a8 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeifkpsf6cj2br6rpnxn3js5zbi6ri3uhh5ylcuj4x2eod7gakbicyq + behaviours.py: bafybeih23cgphcb6afcgeynpkz6rnhfh2vbfe4xgchjup4b2gznwfkclva dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 4802d32..2ba58f9 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeiggyufvjchd4gp3azhubc3let362be52x42iu2odxmd6kstgrainu +- valory/liquidity_trader_abci:0.1.0:bafybeialrzjpvianocwzyw7gbfifdkkvlsiquhamyb44x2lauwdcxafecq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From 39c6b6af57e34bac6524404fea0f2db5454db51d Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 14:01:38 +0530 Subject: [PATCH 42/52] fix: resolve strategies list issue --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- .../valory/skills/liquidity_trader_abci/behaviours.py | 3 +-- packages/valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 4b7741f..eb5342d 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeialrzjpvianocwzyw7gbfifdkkvlsiquhamyb44x2lauwdcxafecq", - "skill/valory/optimus_abci/0.1.0": "bafybeiflykxthlvzeuvxq7uikmlmfvsonapiazoqywy6boo3ppfv75oyoy", - "agent/valory/optimus/0.1.0": "bafybeidqzygfgnyfi3bjnlupqe3vvhcbykzmabkbm4dza2rzuzu3alpaze", - "service/valory/optimus/0.1.0": "bafybeigy6gpuds4eu2khotxa2e6yibt4dyk54pds3psa7atug27h62t6vu" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeif3uyzinje44mxzjmdbhydoesvn7ofnyec6xoaq5ffckjc444nuxe", + "skill/valory/optimus_abci/0.1.0": "bafybeie5q2b45k23utjqxbgqls3uiheb4hsbhch5w7sa7lz3sqbynaecxu", + "agent/valory/optimus/0.1.0": "bafybeibbksl7k4v4pz45v7zb3fjbxi4rj5j6mcrqa7tpnzsm5e7zcr3zmm", + "service/valory/optimus/0.1.0": "bafybeicgz4oqdnwitdm4m7ncz3qo7l6s4rosvdu2jvxezwx4c2ffzey6aq" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index b100800..6bc3e65 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeialrzjpvianocwzyw7gbfifdkkvlsiquhamyb44x2lauwdcxafecq -- valory/optimus_abci:0.1.0:bafybeiflykxthlvzeuvxq7uikmlmfvsonapiazoqywy6boo3ppfv75oyoy +- valory/liquidity_trader_abci:0.1.0:bafybeif3uyzinje44mxzjmdbhydoesvn7ofnyec6xoaq5ffckjc444nuxe +- valory/optimus_abci:0.1.0:bafybeie5q2b45k23utjqxbgqls3uiheb4hsbhch5w7sa7lz3sqbynaecxu - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 7fc7f9a..02378e9 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeidqzygfgnyfi3bjnlupqe3vvhcbykzmabkbm4dza2rzuzu3alpaze +agent: valory/optimus:0.1.0:bafybeibbksl7k4v4pz45v7zb3fjbxi4rj5j6mcrqa7tpnzsm5e7zcr3zmm number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index ca5bc9f..d5ff75f 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -961,8 +961,7 @@ def execute_hyper_strategy(self) -> None: def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: """Fetches all the trading opportunities""" yield from self.download_strategies() - strategies = self.params.selected_strategies - self.context.logger.info(f"Selected Strategies: {self.params.selected_strategies}") + strategies = self.params.selected_strategies.copy() tried_strategies: Set[str] = set() while True: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 2dff8a8..315d8d5 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeih23cgphcb6afcgeynpkz6rnhfh2vbfe4xgchjup4b2gznwfkclva + behaviours.py: bafybeiau5pe6syjiccrw24eh2uleefeq6ocmwatkjqvlwrksa537ixgwry dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 2ba58f9..51bf7a9 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeialrzjpvianocwzyw7gbfifdkkvlsiquhamyb44x2lauwdcxafecq +- valory/liquidity_trader_abci:0.1.0:bafybeif3uyzinje44mxzjmdbhydoesvn7ofnyec6xoaq5ffckjc444nuxe - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From 4174b77b0d0e30887427339930adc252b1c5294d Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 14:50:34 +0530 Subject: [PATCH 43/52] fix: update strategy names --- packages/packages.json | 14 +- .../valory/agents/optimus/aea-config.yaml | 18 +- .../__init__.py | 0 .../balancer_pools_search.py} | 22 +- .../component.yaml | 6 +- .../__init__.py | 0 .../component.yaml | 6 +- .../max_apr_selection.py} | 0 .../__init__.py | 0 .../component.yaml | 6 +- .../merkl_pools_search.py} | 191 +++++++----------- packages/valory/services/optimus/service.yaml | 10 +- .../liquidity_trader_abci/behaviours.py | 10 +- .../skills/liquidity_trader_abci/skill.yaml | 10 +- .../valory/skills/optimus_abci/skill.yaml | 10 +- 15 files changed, 126 insertions(+), 177 deletions(-) rename packages/valory/customs/{balancer_strategy => balancer_pools_search}/__init__.py (100%) rename packages/valory/customs/{balancer_strategy/balancer_strategy.py => balancer_pools_search/balancer_pools_search.py} (88%) rename packages/valory/customs/{balancer_strategy => balancer_pools_search}/component.yaml (68%) rename packages/valory/customs/{apr_based_selection => max_apr_selection}/__init__.py (100%) rename packages/valory/customs/{apr_based_selection => max_apr_selection}/component.yaml (68%) rename packages/valory/customs/{apr_based_selection/apr_based_selection.py => max_apr_selection/max_apr_selection.py} (100%) rename packages/valory/customs/{lp_strategy => merkl_pools_search}/__init__.py (100%) rename packages/valory/customs/{lp_strategy => merkl_pools_search}/component.yaml (71%) rename packages/valory/customs/{lp_strategy/lp_strategy.py => merkl_pools_search/merkl_pools_search.py} (57%) diff --git a/packages/packages.json b/packages/packages.json index eb5342d..a270f20 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,8 +1,8 @@ { "dev": { - "custom/valory/lp_strategy/0.1.0": "bafybeib4y6ofxmq44yzsvxgr4wk7mjooo4rrre2x5eitaem6lq3qgqc4ia", - "custom/valory/apr_based_selection/0.1.0": "bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta", - "custom/valory/balancer_strategy/0.1.0": "bafybeie62q7xaihkqxktvkx7fgsj4mqf3yhtzcmbri4fip4acimedddjmy", + "custom/valory/merkl_pools_search/0.1.0": "bafybeidxgytb4myehesipcx5jg4hb64f3pk3uxmsx5rg2tdmcv73gu552e", + "custom/valory/max_apr_selection/0.1.0": "bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e", + "custom/valory/balancer_pools_search/0.1.0": "bafybeihutoo2psnpygbx6ewpuqtwjpihjaujg2gkm6z7pxx6kood2in6a4", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeif3uyzinje44mxzjmdbhydoesvn7ofnyec6xoaq5ffckjc444nuxe", - "skill/valory/optimus_abci/0.1.0": "bafybeie5q2b45k23utjqxbgqls3uiheb4hsbhch5w7sa7lz3sqbynaecxu", - "agent/valory/optimus/0.1.0": "bafybeibbksl7k4v4pz45v7zb3fjbxi4rj5j6mcrqa7tpnzsm5e7zcr3zmm", - "service/valory/optimus/0.1.0": "bafybeicgz4oqdnwitdm4m7ncz3qo7l6s4rosvdu2jvxezwx4c2ffzey6aq" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicakaeynjag7nqcd5qwrbm5szf6vq2h3hygkmapff5wnm4w3f2i4a", + "skill/valory/optimus_abci/0.1.0": "bafybeierfxbqgzsceiqa5am3jtc4jny4i5aag4zvyz2ugrwi3iduyg4qaa", + "agent/valory/optimus/0.1.0": "bafybeibppbzb5llpijm3d7477z4z25ylm7qnodzaomsarhgj6kliwzs6ru", + "service/valory/optimus/0.1.0": "bafybeibvdcz3j2bywodqap43suk5vkhhsa6s6ggvwif5mkp5adrnuxdjki" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 6bc3e65..d1fcfb0 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,16 +35,16 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeif3uyzinje44mxzjmdbhydoesvn7ofnyec6xoaq5ffckjc444nuxe -- valory/optimus_abci:0.1.0:bafybeie5q2b45k23utjqxbgqls3uiheb4hsbhch5w7sa7lz3sqbynaecxu +- valory/liquidity_trader_abci:0.1.0:bafybeicakaeynjag7nqcd5qwrbm5szf6vq2h3hygkmapff5wnm4w3f2i4a +- valory/optimus_abci:0.1.0:bafybeierfxbqgzsceiqa5am3jtc4jny4i5aag4zvyz2ugrwi3iduyg4qaa - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/lp_strategy:0.1.0:bafybeib4y6ofxmq44yzsvxgr4wk7mjooo4rrre2x5eitaem6lq3qgqc4ia -- valory/apr_based_selection:0.1.0:bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta -- valory/balancer_strategy:0.1.0:bafybeie62q7xaihkqxktvkx7fgsj4mqf3yhtzcmbri4fip4acimedddjmy +- valory/merkl_pools_search:0.1.0:bafybeidxgytb4myehesipcx5jg4hb64f3pk3uxmsx5rg2tdmcv73gu552e +- valory/max_apr_selection:0.1.0:bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e +- valory/balancer_pools_search:0.1.0:bafybeihutoo2psnpygbx6ewpuqtwjpihjaujg2gkm6z7pxx6kood2in6a4 default_ledger: ethereum required_ledgers: - ethereum @@ -256,8 +256,8 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies: ${str:{"bafybeib4y6ofxmq44yzsvxgr4wk7mjooo4rrre2x5eitaem6lq3qgqc4ia":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeie62q7xaihkqxktvkx7fgsj4mqf3yhtzcmbri4fip4acimedddjmy":"balancer_strategy"}} - strategies_kwargs: ${str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} - selected_strategies: ${list:["lp_strategy","balancer_strategy"]} + file_hash_to_strategies: ${str:{"bafybeidxgytb4myehesipcx5jg4hb64f3pk3uxmsx5rg2tdmcv73gu552e":"merkl_pools_search","bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e":"max_apr_selection","bafybeihutoo2psnpygbx6ewpuqtwjpihjaujg2gkm6z7pxx6kood2in6a4":"balancer_pools_search"}} + strategies_kwargs: ${str:{"merkl_pools_search":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} + selected_strategies: ${list:["merkl_pools_search","balancer_pools_search"]} selected_protocols: ${list:["BALANCER","UNISWAP_V3"]} - selected_hyper_strategy: ${str:apr_based_selection} + selected_hyper_strategy: ${str:max_apr_selection} diff --git a/packages/valory/customs/balancer_strategy/__init__.py b/packages/valory/customs/balancer_pools_search/__init__.py similarity index 100% rename from packages/valory/customs/balancer_strategy/__init__.py rename to packages/valory/customs/balancer_pools_search/__init__.py diff --git a/packages/valory/customs/balancer_strategy/balancer_strategy.py b/packages/valory/customs/balancer_pools_search/balancer_pools_search.py similarity index 88% rename from packages/valory/customs/balancer_strategy/balancer_strategy.py rename to packages/valory/customs/balancer_pools_search/balancer_pools_search.py index 7bc834a..1712acb 100644 --- a/packages/valory/customs/balancer_strategy/balancer_strategy.py +++ b/packages/valory/customs/balancer_pools_search/balancer_pools_search.py @@ -30,7 +30,7 @@ def remove_irrelevant_fields(kwargs: Dict[str, Any]) -> Dict[str, Any]: """Remove the irrelevant fields from the given kwargs.""" return {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} -def run_query(query, graphql_endpoint, variables=None): +def run_query(query, graphql_endpoint, variables=None) -> Dict[str, Any]: headers = { 'Content-Type': 'application/json', } @@ -40,15 +40,17 @@ def run_query(query, graphql_endpoint, variables=None): } response = requests.post(graphql_endpoint, json=payload, headers=headers) - response.raise_for_status() + if response.status_code != 200: + return {"error": f"GraphQL query failed with status code {response.status_code}"} + result = response.json() if 'errors' in result: - print("GraphQL Errors:", result['errors']) - return None + return {"error": f"GraphQL Errors: {result['errors']}"} + return result['data'] -def get_best_pool(chains, apr_threshold, graphql_endpoint): +def get_best_pool(chains, apr_threshold, graphql_endpoint) -> Dict[str, Any]: # Ensure all chain names are uppercase chain_names = [chain.upper() for chain in chains] chain_list_str = ', '.join(chain_names) @@ -77,8 +79,8 @@ def get_best_pool(chains, apr_threshold, graphql_endpoint): # Execute the GraphQL query data = run_query(graphql_query, graphql_endpoint) - if data is None: - return None + if "error" in data: + return data # Extract pools from the response pools = data.get("poolGetPools", []) @@ -100,7 +102,7 @@ def get_best_pool(chains, apr_threshold, graphql_endpoint): best_pool = pool if best_pool is None: - return None + return {"error": "No suitable pool found."} total_apr = get_total_apr(best_pool) @@ -126,7 +128,7 @@ def get_best_pool(chains, apr_threshold, graphql_endpoint): # Check for missing token information if any(v is None for v in pool_token_dict.values()): - return None + return {"error": "Missing token information in the pool."} result = { "dex_type": dex_type, @@ -140,7 +142,7 @@ def get_best_pool(chains, apr_threshold, graphql_endpoint): return result -def get_total_apr(pool): +def get_total_apr(pool) -> float: apr_items = pool.get('dynamicData', {}).get('aprItems', []) filtered_apr_items = [ item for item in apr_items diff --git a/packages/valory/customs/balancer_strategy/component.yaml b/packages/valory/customs/balancer_pools_search/component.yaml similarity index 68% rename from packages/valory/customs/balancer_strategy/component.yaml rename to packages/valory/customs/balancer_pools_search/component.yaml index b9d43dd..924c69d 100644 --- a/packages/valory/customs/balancer_strategy/component.yaml +++ b/packages/valory/customs/balancer_pools_search/component.yaml @@ -1,4 +1,4 @@ -name: balancer_strategy +name: balancer_pools_search author: valory version: 0.1.0 type: custom @@ -8,8 +8,8 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeih5ut32gpd74oj33oautjlv6sswnqwwep7hpnnjuos3mqpyyjn6zy - balancer_strategy.py: bafybeid2paddqn2qnaqif6rjipytbbnq7mpyekrqdedexcot225m4agd7y + balancer_pools_search.py: bafybeifawcectaqbbmp4upykkhgkbe2igf3u3x4ak2gy3dnngvxzwnvazy fingerprint_ignore_patterns: [] -entry_point: balancer_strategy.py +entry_point: balancer_pools_search.py callable: run dependencies: {} diff --git a/packages/valory/customs/apr_based_selection/__init__.py b/packages/valory/customs/max_apr_selection/__init__.py similarity index 100% rename from packages/valory/customs/apr_based_selection/__init__.py rename to packages/valory/customs/max_apr_selection/__init__.py diff --git a/packages/valory/customs/apr_based_selection/component.yaml b/packages/valory/customs/max_apr_selection/component.yaml similarity index 68% rename from packages/valory/customs/apr_based_selection/component.yaml rename to packages/valory/customs/max_apr_selection/component.yaml index 5074159..7a46ab9 100644 --- a/packages/valory/customs/apr_based_selection/component.yaml +++ b/packages/valory/customs/max_apr_selection/component.yaml @@ -1,4 +1,4 @@ -name: apr_based_selection +name: max_apr_selection author: valory version: 0.1.0 type: custom @@ -7,8 +7,8 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeidkb3cffdsx7yiafbkka6dhxqnwpfswqzii6wm6vtumsczgeezrk4 - apr_based_selection.py: bafybeictwyxzvbs2eslprxjxvsbpec7o2zzhyzosnhiqcbv4evabtkkvvi + max_apr_selection.py: bafybeictwyxzvbs2eslprxjxvsbpec7o2zzhyzosnhiqcbv4evabtkkvvi fingerprint_ignore_patterns: [] -entry_point: apr_based_selection.py +entry_point: max_apr_selection.py callable: run dependencies: {} diff --git a/packages/valory/customs/apr_based_selection/apr_based_selection.py b/packages/valory/customs/max_apr_selection/max_apr_selection.py similarity index 100% rename from packages/valory/customs/apr_based_selection/apr_based_selection.py rename to packages/valory/customs/max_apr_selection/max_apr_selection.py diff --git a/packages/valory/customs/lp_strategy/__init__.py b/packages/valory/customs/merkl_pools_search/__init__.py similarity index 100% rename from packages/valory/customs/lp_strategy/__init__.py rename to packages/valory/customs/merkl_pools_search/__init__.py diff --git a/packages/valory/customs/lp_strategy/component.yaml b/packages/valory/customs/merkl_pools_search/component.yaml similarity index 71% rename from packages/valory/customs/lp_strategy/component.yaml rename to packages/valory/customs/merkl_pools_search/component.yaml index a77b406..a1ef5ef 100644 --- a/packages/valory/customs/lp_strategy/component.yaml +++ b/packages/valory/customs/merkl_pools_search/component.yaml @@ -1,4 +1,4 @@ -name: lp_strategy +name: merkl_pools_search author: valory version: 0.1.0 type: custom @@ -8,8 +8,8 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeico7avmekvnpeefqyruchcgdcfmrarjt74xertll4gurai4bmdbxa - lp_strategy.py: bafybeiez2atepsp6nj6fbqe3zcx2opdzcvqqksv4rt75bzcmuwhbftmds4 + merkl_pools_search.py: bafybeielutbzn6cdtfn7jw2wjnlqk2huxmryncqtyy5ke5jpp7hfnbmkpm fingerprint_ignore_patterns: [] -entry_point: lp_strategy.py +entry_point: merkl_pools_search.py callable: run dependencies: {} diff --git a/packages/valory/customs/lp_strategy/lp_strategy.py b/packages/valory/customs/merkl_pools_search/merkl_pools_search.py similarity index 57% rename from packages/valory/customs/lp_strategy/lp_strategy.py rename to packages/valory/customs/merkl_pools_search/merkl_pools_search.py index 25d37fa..e2af0d5 100644 --- a/packages/valory/customs/lp_strategy/lp_strategy.py +++ b/packages/valory/customs/merkl_pools_search/merkl_pools_search.py @@ -1,35 +1,7 @@ -# -*- coding: utf-8 -*- -# ------------------------------------------------------------------------------ -# -# Copyright 2023-2024 Valory AG -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ------------------------------------------------------------------------------ - -"""This module contains a strategy that returns the highest APR yielding liquidity pool over Balancer and Uniswap using Merkl""" - import json import requests -from collections import defaultdict from enum import Enum -from typing import ( - Any, - Dict, - List, - Optional, - Union, -) +from typing import Any, Dict, List, Optional, Union from urllib.parse import urlencode CAMPAIGN_TYPES = [1, 2] @@ -38,7 +10,6 @@ class DexTypes(Enum): """DexTypes""" - BALANCER = "balancerPool" UNISWAP_V3 = "UniswapV3" @@ -52,7 +23,8 @@ def check_missing_fields(kwargs: Dict[str, Any]) -> List[str]: def remove_irrelevant_fields(kwargs: Dict[str, Any]) -> Dict[str, Any]: """Remove the irrelevant fields from the given kwargs.""" - return {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} + filtered_kwargs = {key: value for key, value in kwargs.items() if key in REQUIRED_FIELDS} + return filtered_kwargs def highest_apr_opportunity( balancer_graphql_endpoints: Dict[str, Any], @@ -65,14 +37,10 @@ def highest_apr_opportunity( ) -> Dict[str, Any]: """Get the highest APR yielding opportunity over given protocols using Merkl API.""" - def fetch_all_pools() -> Optional[Dict[str, Any]]: + def fetch_all_pools() -> Dict[str, Any]: """Fetch all pools based on allowed chains.""" if not chains: - return { - "error": ( - "No chain selected for investment!", - ) - } + return {"error": "No chain selected for investment!"} chain_ids = ",".join( str(chain_to_chain_id_mapping[chain]) @@ -93,24 +61,17 @@ def fetch_all_pools() -> Optional[Dict[str, Any]]: response = requests.get(api_url, headers={"accept": "application/json"}) if response.status_code not in HTTP_OK: - return { - "error": ( - f"Could not retrieve data from url {api_url}. Status code {response.status_code}. Error Message: {response.text}", - ) - } + return {"error": f"Could not retrieve data from url {api_url}. Status code {response.status_code}. Error Message: {response.text}"} try: - return json.loads(response.text) + result = json.loads(response.text) + return result except (ValueError, TypeError) as e: - return { - "error": ( - f"Could not parse response from api, the following error was encountered {type(e).__name__}: {e}", - ) - } + return {"error": f"Could not parse response from api, the following error was encountered {type(e).__name__}: {e}"} - def filter_eligible_pools(all_pools: Dict[str, Any]) -> Dict[str, Any]: - """Filter pools based on allowed assets and LP pools.""" - eligible_pools = defaultdict(lambda: defaultdict(list)) + def filter_eligible_pools(all_pools: Dict[str, Any]) -> Union[List[Dict[str, Any]], Dict[str, str]]: + """Filter pools based on allowed assets and LP pools and sort by APR.""" + eligible_pools = [] allowed_dex_types = [DexTypes[protocol.upper()].value for protocol in protocols] for chain_id, campaigns in all_pools.items(): for campaign_list in campaigns.values(): @@ -135,54 +96,50 @@ def filter_eligible_pools(all_pools: Dict[str, Any]) -> Dict[str, Any]: ), None, ) - eligible_pools[dex_type][chain].append(campaign) - + eligible_pools.append({ + "dex_type": dex_type, + "chain": chain, + "campaign": campaign, + "apr": campaign_apr + }) + + if not eligible_pools: + return {"error": "No eligible pools found."} + + # Sort eligible pools by APR in descending order + eligible_pools.sort(key=lambda x: x["apr"], reverse=True) return eligible_pools - def determine_highest_apr_pool(eligible_pools: Dict[str, Any]) -> Optional[Dict[str, Any]]: + def determine_highest_apr_pool(eligible_pools: List[Dict[str, Any]]) -> Dict[str, Any]: """Determine the pool with the highest APR from the eligible pools.""" - highest_apr_pool = None - highest_apr_pool_info = None - while eligible_pools: - highest_apr = -float("inf") - for dex_type, chains in eligible_pools.items(): - for chain, campaigns in chains.items(): - for campaign in campaigns: - apr = campaign.get("apr", 0) or 0 - if apr > highest_apr: - highest_apr = apr - highest_apr_pool_info = (dex_type, chain, campaign) - - if highest_apr_pool_info: - dex_type, chain, campaign = highest_apr_pool_info - highest_apr_pool = extract_pool_info(dex_type, chain, highest_apr, campaign) - # Check the number of tokens for the highest APR pool if it's a Balancer pool - if dex_type == DexTypes.BALANCER.value: - pool_id = highest_apr_pool.get("pool_id") - if highest_apr_pool.get("pool_type") is None: - continue - tokensList = fetch_balancer_pool_info(pool_id, chain, detail="tokensList") - if not tokensList or len(tokensList) != 2: - highest_apr_pool = None - highest_apr_pool_info = None - eligible_pools[dex_type][chain].remove(campaign) - if not eligible_pools[dex_type][chain]: - del eligible_pools[dex_type][chain] - - if not eligible_pools[dex_type]: - del eligible_pools[dex_type] - - continue - - return highest_apr_pool - - return None - - def extract_pool_info(dex_type, chain, apr, campaign) -> Optional[Dict[str, Any]]: + for pool_info in eligible_pools: + dex_type = pool_info["dex_type"] + chain = pool_info["chain"] + campaign = pool_info["campaign"] + apr = pool_info["apr"] + + highest_apr_pool = extract_pool_info(dex_type, chain, apr, campaign) + if "error" in highest_apr_pool: + continue + + # Check the number of tokens for the highest APR pool if it's a Balancer pool + if dex_type == DexTypes.BALANCER.value: + pool_id = highest_apr_pool.get("pool_id") + if highest_apr_pool.get("pool_type") is None: + continue + tokensList = fetch_balancer_pool_info(pool_id, chain, detail="tokensList") + if "error" in tokensList or len(tokensList) != 2: + continue + + return highest_apr_pool + + return {"error": "No highest APR pool found."} + + def extract_pool_info(dex_type, chain, apr, campaign) -> Dict[str, Any]: """Extract pool info from campaign data.""" pool_address = campaign.get("mainParameter") if not pool_address: - return None + return {"error": "Pool address not found in campaign."} pool_token_dict = {} pool_id = None @@ -196,9 +153,12 @@ def extract_pool_info(dex_type, chain, apr, campaign) -> Optional[Dict[str, Any] if len(pool_token_items) < 2 or any( token.get("symbol") is None for _, token in pool_token_items ): - return None + return {"error": "Invalid pool tokens found in campaign."} pool_type = fetch_balancer_pool_info(pool_id, chain, detail="poolType") + if "error" in pool_type: + return pool_type + pool_token_dict = { "token0": pool_token_items[0][0], "token1": pool_token_items[1][0], @@ -209,11 +169,7 @@ def extract_pool_info(dex_type, chain, apr, campaign) -> Optional[Dict[str, Any] elif dex_type == DexTypes.UNISWAP_V3.value: pool_info = campaign.get("campaignParameters", {}) if not pool_info: - return { - "error": ( - f"No pool tokens info present in campaign {campaign}", - ) - } + return {"error": "No pool tokens info present in campaign."} pool_token_dict = { "token0": pool_info.get("token0"), @@ -224,11 +180,7 @@ def extract_pool_info(dex_type, chain, apr, campaign) -> Optional[Dict[str, Any] } if any(v is None for v in pool_token_dict.values()): - return { - "error": ( - f"Invalid pool tokens found in campaign {pool_token_dict}", - ) - } + return {"error": "Invalid pool tokens found in campaign."} return { "dex_type": dex_type, @@ -240,7 +192,7 @@ def extract_pool_info(dex_type, chain, apr, campaign) -> Optional[Dict[str, Any] **pool_token_dict } - def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Optional[Any]: + def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Dict[str, Any]: """Fetch the pool type for a Balancer pool using a GraphQL query.""" query = f""" query {{ @@ -253,7 +205,7 @@ def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Optional[ url = balancer_graphql_endpoints.get(chain) if not url: - return None + return {"error": f"GraphQL endpoint not found for chain {chain}."} response = requests.post( url, @@ -261,38 +213,31 @@ def fetch_balancer_pool_info(pool_id: str, chain: str, detail: str) -> Optional[ headers={"Content-Type": "application/json"}, ) if response.status_code not in HTTP_OK: - return None + return {"error": f"Could not retrieve data from GraphQL endpoint. Status code {response.status_code}."} try: res = json.loads(response.text) if res is None: - return None + return {"error": "No data returned from GraphQL endpoint."} pools = res.get("data", {}).get("pools", []) if pools: - return pools[0].get(detail) - return None + return {detail: pools[0].get(detail)} + return {"error": "No pools found in GraphQL response."} except json.JSONDecodeError: - return None + return {"error": "Failed to decode JSON response from GraphQL endpoint."} all_pools = fetch_all_pools() if "error" in all_pools: return all_pools eligible_pools = filter_eligible_pools(all_pools) - if not eligible_pools: - return { - "error": ( - "No eligible pools found.", - ) - } + if "error" in eligible_pools: + return eligible_pools highest_apr_pool = determine_highest_apr_pool(eligible_pools) - if highest_apr_pool: - return highest_apr_pool - else: - return None - + return highest_apr_pool + def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: """Run the strategy.""" missing = check_missing_fields(kwargs) @@ -300,4 +245,4 @@ def run(*_args, **kwargs) -> Dict[str, Union[bool, str]]: return {"error": f"Required kwargs {missing} were not provided."} kwargs = remove_irrelevant_fields(kwargs) - return highest_apr_opportunity(**kwargs) \ No newline at end of file + return highest_apr_opportunity(**kwargs) diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 02378e9..956799b 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeibbksl7k4v4pz45v7zb3fjbxi4rj5j6mcrqa7tpnzsm5e7zcr3zmm +agent: valory/optimus:0.1.0:bafybeibppbzb5llpijm3d7477z4z25ylm7qnodzaomsarhgj6kliwzs6ru number_of_agents: 1 deployment: {} --- @@ -84,11 +84,11 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeib4y6ofxmq44yzsvxgr4wk7mjooo4rrre2x5eitaem6lq3qgqc4ia":"lp_strategy","bafybeibhnkzoxeraqzki7hal3w5sx737sraqmi6qxhssfulwpxkiy4c7ta":"apr_based_selection","bafybeie62q7xaihkqxktvkx7fgsj4mqf3yhtzcmbri4fip4acimedddjmy":"balancer_strategy"}} - strategies_kwargs: ${STRATEGIES_KWARGS:str:{"lp_strategy":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_strategy":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} - selected_strategies: ${SELECTED_STRATEGIES:list:["lp_strategy","balancer_strategy"]} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeidxgytb4myehesipcx5jg4hb64f3pk3uxmsx5rg2tdmcv73gu552e":"merkl_pools_search","bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e":"max_apr_selection","bafybeihutoo2psnpygbx6ewpuqtwjpihjaujg2gkm6z7pxx6kood2in6a4":"balancer_pools_search"}} + strategies_kwargs: ${STRATEGIES_KWARGS:str:{"merkl_pools_search":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} + selected_strategies: ${SELECTED_STRATEGIES:list:["merkl_pools_search","balancer_pools_search"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} - selected_hyper_strategy: ${SELECTED_HYPER_STRATEGY:str:apr_based_selection} + selected_hyper_strategy: ${SELECTED_HYPER_STRATEGY:str:max_apr_selection} apr_threshold: ${APR_THRESHOLD:int:5} coingecko: args: diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index d5ff75f..8e4f1d2 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -121,7 +121,6 @@ WaitableConditionType = Generator[None, None, Any] HTTP_NOT_FOUND = [400, 404] ERC20_DECIMALS = 18 -SELECTED_OPPORTUNITY = "selected_opportunity" class DexTypes(Enum): """DexTypes""" @@ -954,7 +953,7 @@ def execute_hyper_strategy(self) -> None: "strategy": hyper_strategy, "trading_opportunities" : self.trading_opportunities } - self.context.logger.info(f"Evaluating {hyper_strategy} hyper strategy..") + self.context.logger.info(f"Evaluating hyper strategy: {hyper_strategy}") self.selected_opportunity = self.execute_strategy(**kwargs) self.context.logger.info(f"Selected opportunity: {self.selected_opportunity}") @@ -980,9 +979,12 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: ) opportunity = self.execute_strategy(**kwargs) if opportunity is not None: - self.trading_opportunities.append(opportunity) + if "error" in opportunity: + self.context.logger.error(f"Error in strategy {next_strategy}: {opportunity['error']}") + else: + self.trading_opportunities.append(opportunity) else: - self.context.logger.warning(f"No opportunity found using {next_strategy}") + self.context.logger.warning(f"No opportunity found using {next_strategy} strategy") tried_strategies.add(next_strategy) remaining_strategies = set(strategies) - tried_strategies diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 315d8d5..1279ce7 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeiau5pe6syjiccrw24eh2uleefeq6ocmwatkjqvlwrksa537ixgwry + behaviours.py: bafybeighwiduvbpuazoke5issgtk67i7seonedcex5igmylvfiuf7o2o5y dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne @@ -197,14 +197,14 @@ models: gas_params: max_fee_per_gas: 20000000 max_priority_fee_per_gas: 3000000 - file_hash_to_strategies: '{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"lp_strategy","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"apr_based_selection"}' - strategies_kwargs: '{"lp_strategy":[["balancer_graphql_endpoints",{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}],["merkl_fetch_campaign_args",{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}]]}' + file_hash_to_strategies: '{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"merkl_pools_search","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"max_apr_selection"}' + strategies_kwargs: '{"merkl_pools_search":[["balancer_graphql_endpoints",{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}],["merkl_fetch_campaign_args",{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}]]}' selected_strategies: - - lp_strategy + - merkl_pools_search selected_protocols: - balancer - uniswap - selected_hyper_strategy: apr_based_selection + selected_hyper_strategy: max_apr_selection class_name: Params coingecko: args: diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 51bf7a9..48d85cd 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeif3uyzinje44mxzjmdbhydoesvn7ofnyec6xoaq5ffckjc444nuxe +- valory/liquidity_trader_abci:0.1.0:bafybeicakaeynjag7nqcd5qwrbm5szf6vq2h3hygkmapff5wnm4w3f2i4a - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: @@ -182,14 +182,14 @@ models: max_fee_per_gas: 20000000 max_priority_fee_per_gas: 3000000 staking_chain: optimism - file_hash_to_strategies: '{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"lp_strategy","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"apr_based_selection"}' - strategies_kwargs: '{"lp_strategy":[["balancer_graphql_endpoints",{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}],["merkl_fetch_campaign_args",{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}]]}' + file_hash_to_strategies: '{"bafybeiez4r4yv3so2j33opdywov6y7sbl65j5ew5n53vidqzhj2jicu3yy":"merkl_pools_search","bafybeighu2qmxopdbgk6orx45fea3ka7jwf657ihasem6jexpmg7xpe7ha":"max_apr_selection"}' + strategies_kwargs: '{"merkl_pools_search":[["balancer_graphql_endpoints",{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"}],["merkl_fetch_campaign_args",{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}]]}' selected_strategies: - - lp_strategy + - merkl_pools_search selected_protocols: - balancer - uniswap - selected_hyper_strategy: apr_based_selection + selected_hyper_strategy: max_apr_selection class_name: Params coingecko: args: From 163b5a5a6e741ad79f6f70f83c2a3819e77d34d4 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 17:52:17 +0530 Subject: [PATCH 44/52] fix: remove worfklow --- .github/workflows/publish_docker_images.yml | 104 -------------------- 1 file changed, 104 deletions(-) delete mode 100644 .github/workflows/publish_docker_images.yml diff --git a/.github/workflows/publish_docker_images.yml b/.github/workflows/publish_docker_images.yml deleted file mode 100644 index 867e74f..0000000 --- a/.github/workflows/publish_docker_images.yml +++ /dev/null @@ -1,104 +0,0 @@ -name: Temporary Push Docker Images - -on: - workflow_dispatch: - inputs: - branch: - description: 'Branch to build from' - required: true - default: 'main' - push: - tags: - - 'dev.*' - pull_request: - branches: - - main - -jobs: - publish-packages: - name: Push Packages - runs-on: ubuntu-20.04 - strategy: - matrix: - os: [ubuntu-latest] - python-version: ["3.10"] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-versions }} - - uses: addnab/docker-run-action@v3 - with: - image: valory/open-autonomy-user:latest - options: -v ${{ github.workspace }}:/work - run: | - echo "Pushing Packages" - cd /work - export AUTHOR=$(grep 'service' packages/packages.json | awk -F/ '{print $2}' | head -1) - autonomy init --reset --author $AUTHOR --ipfs --remote - autonomy push-all - publish-images: - name: Publish Docker Images - runs-on: ubuntu-20.04 - needs: - - "publish-packages" - strategy: - matrix: - os: [ubuntu-latest] - python-version: ["3.10"] - env: - DOCKER_USER: ${{secrets.DOCKER_USER}} - DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Set up tag and vars - uses: addnab/docker-run-action@v3 - with: - image: valory/open-autonomy-user:latest - options: -v ${{ github.workspace }}:/work - run: | - echo "Setting Tag Images" - cd /work - apt-get update && apt-get install git -y || exit 1 - git config --global --add safe.directory /work - export TAG=$(git describe --exact-match --tags $(git rev-parse HEAD)) || exit 1 - if [ $? -eq 0 ]; then - export TAG=`echo $TAG | sed 's/^v//'` - else - echo "You are not on a tagged branch" - exit 1 - fi - echo VERSION=$TAG> env.sh - echo AUTHOR=$(grep 'service/' packages/packages.json | awk -F/ '{print $2}' | head -1) >> env.sh - echo SERVICE=$(grep 'service/' packages/packages.json | awk -F/ '{print $3}' | head -1) >> env.sh - echo AGENT=$(grep 'agent/' packages/packages.json | awk -F/ '{print $3}' | head -1) >> env.sh - echo DEFAULT_IMAGE_TAG=$(cat packages/packages.json | grep agent/ | awk -F: '{print $2}' | tr -d '", ' | head -n 1) >> env.sh - cat env.sh - - uses: addnab/docker-run-action@v3 - name: Build Images - with: - image: valory/open-autonomy-user:latest - options: -v ${{ github.workspace }}:/work - shell: bash - run: | - echo "Building Docker Images" - cd /work - source env.sh || exit 1 - echo "Building images for $AUTHOR for service $SERVICE" - autonomy init --reset --author $AUTHOR --ipfs --remote - autonomy fetch $AUTHOR/$SERVICE --service --local || exit 1 - cd $SERVICE || exit 1 - autonomy build-image || exit 1 - autonomy build-image --version $VERSION || exit 1 - - name: Docker login - run: | - echo $DOCKER_PASSWORD | docker login -u $DOCKER_USER --password-stdin - - name: Docker Push - run: | - source env.sh - echo "Pushing $DOCKER_USER/oar-$AGENT:$VERSION" - echo "Pushing $DOCKER_USER/oar-$AGENT:$DEFAULT_IMAGE_TAG" - docker push $DOCKER_USER/oar-$AGENT:$VERSION - docker push $DOCKER_USER/oar-$AGENT:$DEFAULT_IMAGE_TAG \ No newline at end of file From f3faf0565c593eb946c027899af970e9f8c4b8c7 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 18:21:43 +0530 Subject: [PATCH 45/52] fix: resolve CI issues --- .gitleaksignore | 11 +++ packages/packages.json | 8 +-- .../valory/agents/optimus/aea-config.yaml | 4 +- packages/valory/services/optimus/service.yaml | 2 +- .../liquidity_trader_abci/behaviours.py | 71 +++++++++++-------- .../fsm_specification.yaml | 9 +++ .../skills/liquidity_trader_abci/handlers.py | 8 ++- .../skills/liquidity_trader_abci/models.py | 29 +++++--- .../skills/liquidity_trader_abci/skill.yaml | 8 +-- .../optimus_abci/fsm_specification.yaml | 9 +++ .../valory/skills/optimus_abci/handlers.py | 6 +- .../valory/skills/optimus_abci/skill.yaml | 6 +- 12 files changed, 114 insertions(+), 57 deletions(-) diff --git a/.gitleaksignore b/.gitleaksignore index d24e90a..31f91ef 100644 --- a/.gitleaksignore +++ b/.gitleaksignore @@ -258,3 +258,14 @@ f162f6e9ce964277d59ff703f905ce4d7e514339:packages/valory/contracts/staking_token 293094bdd1180c1f29da321ab6ffc9f661e00d17:packages/valory/contracts/staking_token/contract.yaml:generic-api-key:10 d82b489e8772df10d476d6ebb3fb6527e525e1cf:packages/valory/contracts/staking_token/contract.yaml:generic-api-key:10 c44680132c9ee15749aa0e9b78e68de64c8012a6:packages/valory/skills/liquidity_trader_abci/behaviours.py:generic-api-key:2921 +70f1bad61ecef39d2004e54b7ca396ebaaaa5531:packages/valory/contracts/staking_token/contract.yaml:generic-api-key:10 +34591764415f2fbc959e41feb4b7aaef733285aa:packages/valory/services/optimus_pearl/service.yaml:generic-api-key:44 +c1df2c40d616f55da657d42be6aaeb9d5569772d:packages/valory/agents/optimus/aea-config.yaml:generic-api-key:146 +c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/abstract_round_abci/tests/data/dummy_abci/skill.yaml:generic-api-key:73 +c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/market_data_fetcher_abci/skill.yaml:generic-api-key:78 +c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/portfolio_tracker_abci/skill.yaml:generic-api-key:80 +c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/registration_abci/skill.yaml:generic-api-key:86 +c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/reset_pause_abci/skill.yaml:generic-api-key:80 +c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/strategy_evaluator_abci/skill.yaml:generic-api-key:101 +c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/trader_decision_maker_abci/skill.yaml:generic-api-key:76 +c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/transaction_settlement_abci/skill.yaml:generic-api-key:93 diff --git a/packages/packages.json b/packages/packages.json index a270f20..67372e0 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeicakaeynjag7nqcd5qwrbm5szf6vq2h3hygkmapff5wnm4w3f2i4a", - "skill/valory/optimus_abci/0.1.0": "bafybeierfxbqgzsceiqa5am3jtc4jny4i5aag4zvyz2ugrwi3iduyg4qaa", - "agent/valory/optimus/0.1.0": "bafybeibppbzb5llpijm3d7477z4z25ylm7qnodzaomsarhgj6kliwzs6ru", - "service/valory/optimus/0.1.0": "bafybeibvdcz3j2bywodqap43suk5vkhhsa6s6ggvwif5mkp5adrnuxdjki" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeib7ai5xn2g5u5qieoplkfozvahndr5gjfkkywocwqba24ztq7od3i", + "skill/valory/optimus_abci/0.1.0": "bafybeihfiyb45dri7mvf5klmmwxm4ge5gp2cgmxb2g2pvirndzfhjjlv74", + "agent/valory/optimus/0.1.0": "bafybeih7sjwhvhdqeursyhazprd6eebbbj2g3ldj77eayzyff5tozz4zfq", + "service/valory/optimus/0.1.0": "bafybeiddmnogyoipnwaivymaeu3bsrib3uyaewut4dkxu5dkrolyr3psve" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index d1fcfb0..9ee9ca0 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeicakaeynjag7nqcd5qwrbm5szf6vq2h3hygkmapff5wnm4w3f2i4a -- valory/optimus_abci:0.1.0:bafybeierfxbqgzsceiqa5am3jtc4jny4i5aag4zvyz2ugrwi3iduyg4qaa +- valory/liquidity_trader_abci:0.1.0:bafybeib7ai5xn2g5u5qieoplkfozvahndr5gjfkkywocwqba24ztq7od3i +- valory/optimus_abci:0.1.0:bafybeihfiyb45dri7mvf5klmmwxm4ge5gp2cgmxb2g2pvirndzfhjjlv74 - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 956799b..befbf46 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeibppbzb5llpijm3d7477z4z25ylm7qnodzaomsarhgj6kliwzs6ru +agent: valory/optimus:0.1.0:bafybeih7sjwhvhdqeursyhazprd6eebbbj2g3ldj77eayzyff5tozz4zfq number_of_agents: 1 deployment: {} --- diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 8e4f1d2..90d8aca 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -39,13 +39,11 @@ from urllib.parse import urlencode from aea.configurations.data_types import PublicId +from aea.protocols.base import Message +from aea.protocols.dialogue.base import Dialogue from eth_abi import decode from eth_utils import keccak, to_bytes, to_hex -from aea.protocols.base import Message -from aea.protocols.dialogue.base import Dialogue -from packages.valory.skills.liquidity_trader_abci.io_.loader import ComponentPackageLoader -from packages.valory.protocols.ipfs import IpfsMessage from packages.valory.contracts.erc20.contract import ERC20 from packages.valory.contracts.gnosis_safe.contract import ( GnosisSafeContract, @@ -61,12 +59,16 @@ ) from packages.valory.contracts.staking_token.contract import StakingTokenContract from packages.valory.protocols.contract_api import ContractApiMessage +from packages.valory.protocols.ipfs import IpfsMessage from packages.valory.protocols.ledger_api import LedgerApiMessage from packages.valory.skills.abstract_round_abci.base import AbstractRound from packages.valory.skills.abstract_round_abci.behaviours import ( AbstractRoundBehaviour, BaseBehaviour, ) +from packages.valory.skills.liquidity_trader_abci.io_.loader import ( + ComponentPackageLoader, +) from packages.valory.skills.liquidity_trader_abci.models import ( Coingecko, Params, @@ -122,6 +124,7 @@ HTTP_NOT_FOUND = [400, 404] ERC20_DECIMALS = 18 + class DexTypes(Enum): """DexTypes""" @@ -169,9 +172,7 @@ class Decision(Enum): WRITE_MODE = "w" -class LiquidityTraderBaseBehaviour( - BalancerPoolBehaviour, UniswapPoolBehaviour, ABC -): +class LiquidityTraderBaseBehaviour(BalancerPoolBehaviour, UniswapPoolBehaviour, ABC): """Base behaviour for the liquidity_trader_abci skill.""" def __init__(self, **kwargs: Any) -> None: @@ -930,8 +931,10 @@ def async_act(self) -> Generator: yield from self.fetch_all_trading_opportunities() self.execute_hyper_strategy() actions = [] - if self.selected_opportunity is not None: - self.context.logger.info(f"Selected opportunity: {self.selected_opportunity}") + if self.selected_opportunity is not None: + self.context.logger.info( + f"Selected opportunity: {self.selected_opportunity}" + ) actions = yield from self.get_order_of_transactions() self.context.logger.info(f"Actions: {actions}") @@ -950,9 +953,9 @@ def execute_hyper_strategy(self) -> None: hyper_strategy = self.params.selected_hyper_strategy kwargs = { - "strategy": hyper_strategy, - "trading_opportunities" : self.trading_opportunities - } + "strategy": hyper_strategy, + "trading_opportunities": self.trading_opportunities, + } self.context.logger.info(f"Evaluating hyper strategy: {hyper_strategy}") self.selected_opportunity = self.execute_strategy(**kwargs) self.context.logger.info(f"Selected opportunity: {self.selected_opportunity}") @@ -966,25 +969,35 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: while True: next_strategy = strategies.pop(0) self.context.logger.info(f"Evaluating strategy: {next_strategy}") - kwargs: Dict[str, Any] = self.params.strategies_kwargs.get(next_strategy, {}) + kwargs: Dict[str, Any] = self.params.strategies_kwargs.get( + next_strategy, {} + ) kwargs.update( { "strategy": next_strategy, "chains": self.params.target_investment_chains, "protocols": self.params.selected_protocols, "chain_to_chain_id_mapping": self.params.chain_to_chain_id_mapping, - "apr_threshold": self.current_pool.get('apr') if self.current_pool else self.params.apr_threshold, - "current_pool": self.current_pool.get('address') if self.current_pool else '' + "apr_threshold": self.current_pool.get("apr") + if self.current_pool + else self.params.apr_threshold, + "current_pool": self.current_pool.get("address") + if self.current_pool + else "", } ) opportunity = self.execute_strategy(**kwargs) if opportunity is not None: if "error" in opportunity: - self.context.logger.error(f"Error in strategy {next_strategy}: {opportunity['error']}") + self.context.logger.error( + f"Error in strategy {next_strategy}: {opportunity['error']}" + ) else: self.trading_opportunities.append(opportunity) else: - self.context.logger.warning(f"No opportunity found using {next_strategy} strategy") + self.context.logger.warning( + f"No opportunity found using {next_strategy} strategy" + ) tried_strategies.add(next_strategy) remaining_strategies = set(strategies) - tried_strategies @@ -993,8 +1006,10 @@ def fetch_all_trading_opportunities(self) -> Generator[None, None, None]: next_strategy = remaining_strategies.pop() - self.context.logger.info(f"All available opportunities: {self.trading_opportunities}") - + self.context.logger.info( + f"All available opportunities: {self.trading_opportunities}" + ) + def download_next_strategy(self) -> None: """Download the strategies one by one.""" if self._inflight_strategy_req is not None: @@ -1015,20 +1030,20 @@ def download_strategies(self) -> Generator: while len(self.shared_state.strategy_to_filehash) > 0: self.download_next_strategy() yield from self.sleep(self.params.sleep_time) - - def execute_strategy(self, *args: Any, **kwargs: Any) -> Generator[None, None, Optional[Dict[str, Any]]]: + + def execute_strategy( + self, *args: Any, **kwargs: Any + ) -> Generator[None, None, Optional[Dict[str, Any]]]: """Execute the strategy and return the results.""" - + strategy = kwargs.pop("strategy", None) if strategy is None: self.context.logger.error(f"No trading strategy was given in {kwargs=}!") return None - + strategy = self.strategy_exec(strategy) if strategy is None: - self.context.logger.error( - f"No executable was found for {strategy=}!" - ) + self.context.logger.error(f"No executable was found for {strategy=}!") return None strategy_exec, callable_method = strategy @@ -1044,11 +1059,11 @@ def execute_strategy(self, *args: Any, **kwargs: Any) -> Generator[None, None, O return None return method(*args, **kwargs) - + def strategy_exec(self, strategy: str) -> Optional[Tuple[str, str]]: """Get the executable strategy file's content.""" return self.shared_state.strategies_executables.get(strategy, None) - + def send_message( self, msg: Message, dialogue: Dialogue, callback: Callable ) -> None: diff --git a/packages/valory/skills/liquidity_trader_abci/fsm_specification.yaml b/packages/valory/skills/liquidity_trader_abci/fsm_specification.yaml index cb93863..e28bb43 100644 --- a/packages/valory/skills/liquidity_trader_abci/fsm_specification.yaml +++ b/packages/valory/skills/liquidity_trader_abci/fsm_specification.yaml @@ -4,6 +4,7 @@ alphabet_in: - DONE - ERROR - NEXT_CHECKPOINT_NOT_REACHED_YET +- NONE - NO_MAJORITY - ROUND_TIMEOUT - SERVICE_EVICTED @@ -46,6 +47,7 @@ states: transition_func: (CallCheckpointRound, DONE): CheckStakingKPIMetRound (CallCheckpointRound, NEXT_CHECKPOINT_NOT_REACHED_YET): CheckStakingKPIMetRound + (CallCheckpointRound, NONE): CallCheckpointRound (CallCheckpointRound, NO_MAJORITY): CallCheckpointRound (CallCheckpointRound, ROUND_TIMEOUT): CallCheckpointRound (CallCheckpointRound, SERVICE_EVICTED): GetPositionsRound @@ -53,6 +55,7 @@ transition_func: (CallCheckpointRound, SETTLE): FinishedCallCheckpointRound (CheckStakingKPIMetRound, DONE): GetPositionsRound (CheckStakingKPIMetRound, ERROR): GetPositionsRound + (CheckStakingKPIMetRound, NONE): CheckStakingKPIMetRound (CheckStakingKPIMetRound, NO_MAJORITY): CheckStakingKPIMetRound (CheckStakingKPIMetRound, ROUND_TIMEOUT): CheckStakingKPIMetRound (CheckStakingKPIMetRound, SETTLE): FinishedCheckStakingKPIMetRound @@ -60,19 +63,25 @@ transition_func: (CheckStakingKPIMetRound, STAKING_KPI_NOT_MET): GetPositionsRound (DecisionMakingRound, DONE): FinishedDecisionMakingRound (DecisionMakingRound, ERROR): FinishedDecisionMakingRound + (DecisionMakingRound, NONE): DecisionMakingRound (DecisionMakingRound, NO_MAJORITY): DecisionMakingRound (DecisionMakingRound, ROUND_TIMEOUT): DecisionMakingRound (DecisionMakingRound, SETTLE): FinishedTxPreparationRound (DecisionMakingRound, UPDATE): DecisionMakingRound (EvaluateStrategyRound, DONE): DecisionMakingRound + (EvaluateStrategyRound, NONE): EvaluateStrategyRound (EvaluateStrategyRound, NO_MAJORITY): EvaluateStrategyRound (EvaluateStrategyRound, ROUND_TIMEOUT): EvaluateStrategyRound (EvaluateStrategyRound, WAIT): FinishedEvaluateStrategyRound (GetPositionsRound, DONE): EvaluateStrategyRound + (GetPositionsRound, NONE): GetPositionsRound (GetPositionsRound, NO_MAJORITY): GetPositionsRound (GetPositionsRound, ROUND_TIMEOUT): GetPositionsRound (PostTxSettlementRound, ACTION_EXECUTED): DecisionMakingRound (PostTxSettlementRound, CHECKPOINT_TX_EXECUTED): CallCheckpointRound + (PostTxSettlementRound, DONE): PostTxSettlementRound + (PostTxSettlementRound, NONE): PostTxSettlementRound + (PostTxSettlementRound, NO_MAJORITY): PostTxSettlementRound (PostTxSettlementRound, ROUND_TIMEOUT): PostTxSettlementRound (PostTxSettlementRound, UNRECOGNIZED): FailedMultiplexerRound (PostTxSettlementRound, VANITY_TX_EXECUTED): CheckStakingKPIMetRound diff --git a/packages/valory/skills/liquidity_trader_abci/handlers.py b/packages/valory/skills/liquidity_trader_abci/handlers.py index dbfd9f7..0cb7d7f 100644 --- a/packages/valory/skills/liquidity_trader_abci/handlers.py +++ b/packages/valory/skills/liquidity_trader_abci/handlers.py @@ -20,17 +20,18 @@ """This module contains the handlers for the skill of LiquidityTraderAbciApp.""" from typing import cast + +from packages.valory.protocols.ipfs import IpfsMessage from packages.valory.skills.abstract_round_abci.handlers import ( ABCIRoundHandler as BaseABCIRoundHandler, ) +from packages.valory.skills.abstract_round_abci.handlers import AbstractResponseHandler from packages.valory.skills.abstract_round_abci.handlers import ( ContractApiHandler as BaseContractApiHandler, ) from packages.valory.skills.abstract_round_abci.handlers import ( HttpHandler as BaseHttpHandler, ) -from packages.valory.skills.abstract_round_abci.handlers import AbstractResponseHandler -from packages.valory.protocols.ipfs import IpfsMessage from packages.valory.skills.abstract_round_abci.handlers import ( LedgerApiHandler as BaseLedgerApiHandler, ) @@ -40,9 +41,9 @@ from packages.valory.skills.abstract_round_abci.handlers import ( TendermintHandler as BaseTendermintHandler, ) - from packages.valory.skills.liquidity_trader_abci.models import SharedState + ABCIHandler = BaseABCIRoundHandler HttpHandler = BaseHttpHandler SigningHandler = BaseSigningHandler @@ -50,6 +51,7 @@ ContractApiHandler = BaseContractApiHandler TendermintHandler = BaseTendermintHandler + class IpfsHandler(AbstractResponseHandler): """IPFS message handler.""" diff --git a/packages/valory/skills/liquidity_trader_abci/models.py b/packages/valory/skills/liquidity_trader_abci/models.py index 1790933..c241ebb 100644 --- a/packages/valory/skills/liquidity_trader_abci/models.py +++ b/packages/valory/skills/liquidity_trader_abci/models.py @@ -23,7 +23,7 @@ from datetime import datetime from pathlib import Path from time import time -from typing import Any, Dict, List, Optional, Tuple, Callable, Iterable +from typing import Any, Callable, Dict, List, Optional, Tuple from aea.skills.base import Model, SkillContext @@ -46,6 +46,7 @@ class SharedState(BaseSharedState): """Keep the current shared state of the skill.""" abci_app_cls = LiquidityTraderAbciApp + def __init__(self, *args: Any, skill_context: SkillContext, **kwargs: Any) -> None: """Initialize the state.""" super().__init__(*args, skill_context=skill_context, **kwargs) @@ -59,8 +60,7 @@ def setup(self) -> None: super().setup() params = self.context.params self.strategy_to_filehash = { - value: key - for key, value in params.file_hash_to_strategies.items() + value: key for key, value in params.file_hash_to_strategies.items() } strategy_exec = self.strategy_to_filehash.keys() for selected_strategy in params.selected_strategies: @@ -70,6 +70,7 @@ def setup(self) -> None: f"is not in the strategies' executables {strategy_exec}." ) + Requests = BaseRequests BenchmarkTool = BaseBenchmarkTool @@ -281,12 +282,22 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: self.target_investment_chains: List[str] = self._ensure( "target_investment_chains", kwargs, List[str] ) - self.staking_chain: Optional[str] = self._ensure("staking_chain", kwargs, Optional[str]) - self.selected_strategies: List[str] = self._ensure("selected_strategies", kwargs, List[str]) - self.file_hash_to_strategies = json.loads(self._ensure("file_hash_to_strategies", kwargs, str)) - self.strategies_kwargs = json.loads(self._ensure("strategies_kwargs", kwargs, str)) - self.selected_protocols = self._ensure("selected_protocols", kwargs, List[str]) - self.selected_hyper_strategy = self._ensure("selected_hyper_strategy", kwargs, str) + self.staking_chain: Optional[str] = self._ensure( + "staking_chain", kwargs, Optional[str] + ) + self.selected_strategies: List[str] = self._ensure( + "selected_strategies", kwargs, List[str] + ) + self.file_hash_to_strategies = json.loads( + self._ensure("file_hash_to_strategies", kwargs, str) + ) + self.strategies_kwargs = json.loads( + self._ensure("strategies_kwargs", kwargs, str) + ) + self.selected_protocols = self._ensure("selected_protocols", kwargs, List[str]) + self.selected_hyper_strategy = self._ensure( + "selected_hyper_strategy", kwargs, str + ) super().__init__(*args, **kwargs) def get_store_path(self, kwargs: Dict) -> Path: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 1279ce7..c08b4a5 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,13 +7,13 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeighwiduvbpuazoke5issgtk67i7seonedcex5igmylvfiuf7o2o5y + behaviours.py: bafybeihktypniiwovu7zskhrk5ejeqhpoji5lpssjz26axmopoz6cz6syq dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm - fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq - handlers.py: bafybeibj7b3hjirgvrge7qcramcughdlvgfvjb7c7ggatky4slt2c2icne + fsm_specification.yaml: bafybeie3vom7fwl5ho6xanje3r7tab7y3a5ij5gs6qvjh2uavbpitffyzu + handlers.py: bafybeih2zlmkyntlr7zx4mokqkmpcw7qczfbo47g766kndbv7zv7oqjv6e io_/__init__.py: bafybeifxgmmwjqzezzn3e6keh2bfo4cyo7y5dq2ept3stfmgglbrzfl5rq io_/loader.py: bafybeiaoi7rnmpoyreuhwdo3biudqnjnrc25eu54ehyvsnynlkbzk7r6ti - models.py: bafybeiasksfg4ciwj6fayem5kxjo7snrzuarryqvm72qosmutrjbjvh4fi + models.py: bafybeigfpxggq3tkc75tihyrvjuzspbioa4oewhv4vnrguujmsmf2d2gaq payloads.py: bafybeibozjbr4sxafd6aizge3hb5vn6gowdcszsdzbhwzzcbg6gmpy4pki pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u diff --git a/packages/valory/skills/optimus_abci/fsm_specification.yaml b/packages/valory/skills/optimus_abci/fsm_specification.yaml index 81b20ff..9d164ed 100644 --- a/packages/valory/skills/optimus_abci/fsm_specification.yaml +++ b/packages/valory/skills/optimus_abci/fsm_specification.yaml @@ -58,6 +58,7 @@ states: transition_func: (CallCheckpointRound, DONE): CheckStakingKPIMetRound (CallCheckpointRound, NEXT_CHECKPOINT_NOT_REACHED_YET): CheckStakingKPIMetRound + (CallCheckpointRound, NONE): CallCheckpointRound (CallCheckpointRound, NO_MAJORITY): CallCheckpointRound (CallCheckpointRound, ROUND_TIMEOUT): CallCheckpointRound (CallCheckpointRound, SERVICE_EVICTED): GetPositionsRound @@ -71,6 +72,7 @@ transition_func: (CheckLateTxHashesRound, NO_MAJORITY): ResetAndPauseRound (CheckStakingKPIMetRound, DONE): GetPositionsRound (CheckStakingKPIMetRound, ERROR): GetPositionsRound + (CheckStakingKPIMetRound, NONE): CheckStakingKPIMetRound (CheckStakingKPIMetRound, NO_MAJORITY): CheckStakingKPIMetRound (CheckStakingKPIMetRound, ROUND_TIMEOUT): CheckStakingKPIMetRound (CheckStakingKPIMetRound, SETTLE): RandomnessTransactionSubmissionRound @@ -87,11 +89,13 @@ transition_func: (CollectSignatureRound, ROUND_TIMEOUT): CollectSignatureRound (DecisionMakingRound, DONE): ResetAndPauseRound (DecisionMakingRound, ERROR): ResetAndPauseRound + (DecisionMakingRound, NONE): DecisionMakingRound (DecisionMakingRound, NO_MAJORITY): DecisionMakingRound (DecisionMakingRound, ROUND_TIMEOUT): DecisionMakingRound (DecisionMakingRound, SETTLE): RandomnessTransactionSubmissionRound (DecisionMakingRound, UPDATE): DecisionMakingRound (EvaluateStrategyRound, DONE): DecisionMakingRound + (EvaluateStrategyRound, NONE): EvaluateStrategyRound (EvaluateStrategyRound, NO_MAJORITY): EvaluateStrategyRound (EvaluateStrategyRound, ROUND_TIMEOUT): EvaluateStrategyRound (EvaluateStrategyRound, WAIT): ResetAndPauseRound @@ -102,14 +106,19 @@ transition_func: (FinalizationRound, FINALIZE_TIMEOUT): SelectKeeperTransactionSubmissionBAfterTimeoutRound (FinalizationRound, INSUFFICIENT_FUNDS): SelectKeeperTransactionSubmissionBRound (GetPositionsRound, DONE): EvaluateStrategyRound + (GetPositionsRound, NONE): GetPositionsRound (GetPositionsRound, NO_MAJORITY): GetPositionsRound (GetPositionsRound, ROUND_TIMEOUT): GetPositionsRound (PostTxSettlementRound, ACTION_EXECUTED): DecisionMakingRound (PostTxSettlementRound, CHECKPOINT_TX_EXECUTED): CallCheckpointRound + (PostTxSettlementRound, DONE): PostTxSettlementRound + (PostTxSettlementRound, NONE): PostTxSettlementRound + (PostTxSettlementRound, NO_MAJORITY): PostTxSettlementRound (PostTxSettlementRound, ROUND_TIMEOUT): PostTxSettlementRound (PostTxSettlementRound, UNRECOGNIZED): ResetAndPauseRound (PostTxSettlementRound, VANITY_TX_EXECUTED): CheckStakingKPIMetRound (RandomnessTransactionSubmissionRound, DONE): SelectKeeperTransactionSubmissionARound + (RandomnessTransactionSubmissionRound, NONE): RandomnessTransactionSubmissionRound (RandomnessTransactionSubmissionRound, NO_MAJORITY): RandomnessTransactionSubmissionRound (RandomnessTransactionSubmissionRound, ROUND_TIMEOUT): RandomnessTransactionSubmissionRound (RegistrationRound, DONE): CallCheckpointRound diff --git a/packages/valory/skills/optimus_abci/handlers.py b/packages/valory/skills/optimus_abci/handlers.py index 1efd905..1c3e372 100644 --- a/packages/valory/skills/optimus_abci/handlers.py +++ b/packages/valory/skills/optimus_abci/handlers.py @@ -28,9 +28,6 @@ from packages.valory.skills.abstract_round_abci.handlers import ( HttpHandler as BaseHttpHandler, ) -from packages.valory.skills.liquidity_trader_abci.handlers import ( - IpfsHandler as BaseIpfsHandler, -) from packages.valory.skills.abstract_round_abci.handlers import ( LedgerApiHandler as BaseLedgerApiHandler, ) @@ -40,6 +37,9 @@ from packages.valory.skills.abstract_round_abci.handlers import ( TendermintHandler as BaseTendermintHandler, ) +from packages.valory.skills.liquidity_trader_abci.handlers import ( + IpfsHandler as BaseIpfsHandler, +) ABCIHandler = BaseABCIRoundHandler diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 48d85cd..df0c989 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -10,8 +10,8 @@ fingerprint: behaviours.py: bafybeig3agtm256pl7rekx3i3kbz6h5hrnneu44f4pzkqp4mwtdxuob54e composition.py: bafybeigxpycqh7xnqwdj5eg2ln6kqchbwvwuvzjtpwhgylr6qb56ooo7wu dialogues.py: bafybeiafoomno5pn6qrx43jxf2opxkil5eg4nod6jhd5oqwwplfz4x6dke - fsm_specification.yaml: bafybeiehe6ps7xi7i7tu4mduid7vbvszhsiu5juyard24i3nhtqgljpcza - handlers.py: bafybeiejq6jvb5a6ixorj34qpyw7vmowtgvr2drifhl63ifqqvrn2audhm + fsm_specification.yaml: bafybeihzhlhigw5qcncirnnxpazcb4qbvpgk6emms4vi2wtgyzfomkr53a + handlers.py: bafybeiaok4u23o5raglxr5nl4wlr6in2lbbdd34vpbt5feotpt7wvto634 models.py: bafybeig7ytwxlfuhmwhksasidyoq6xeb3fb6vyihdbf5cmc4g7l73etq5e fingerprint_ignore_patterns: [] connections: [] @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeicakaeynjag7nqcd5qwrbm5szf6vq2h3hygkmapff5wnm4w3f2i4a +- valory/liquidity_trader_abci:0.1.0:bafybeib7ai5xn2g5u5qieoplkfozvahndr5gjfkkywocwqba24ztq7od3i - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From f22e4e07604de05a3e81464e41ad0ca7ee0b4693 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 19:15:47 +0530 Subject: [PATCH 46/52] fix: add deps --- packages/packages.json | 12 ++++++------ packages/valory/agents/optimus/aea-config.yaml | 10 +++++----- .../customs/balancer_pools_search/component.yaml | 4 +++- .../valory/customs/merkl_pools_search/component.yaml | 4 +++- packages/valory/services/optimus/service.yaml | 4 ++-- .../valory/skills/liquidity_trader_abci/skill.yaml | 2 ++ packages/valory/skills/optimus_abci/skill.yaml | 2 +- tox.ini | 2 ++ 8 files changed, 24 insertions(+), 16 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 67372e0..07759b4 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,8 +1,8 @@ { "dev": { - "custom/valory/merkl_pools_search/0.1.0": "bafybeidxgytb4myehesipcx5jg4hb64f3pk3uxmsx5rg2tdmcv73gu552e", + "custom/valory/merkl_pools_search/0.1.0": "bafybeihiaxzfjkioroqfezyyswfkaiaiurwpdgbenabwdz3dfi5le4ymsu", "custom/valory/max_apr_selection/0.1.0": "bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e", - "custom/valory/balancer_pools_search/0.1.0": "bafybeihutoo2psnpygbx6ewpuqtwjpihjaujg2gkm6z7pxx6kood2in6a4", + "custom/valory/balancer_pools_search/0.1.0": "bafybeidlzpr6szumu66ctf2ywcnlrlqtebpdtl6lg6n2j7qleugw66szja", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeib7ai5xn2g5u5qieoplkfozvahndr5gjfkkywocwqba24ztq7od3i", - "skill/valory/optimus_abci/0.1.0": "bafybeihfiyb45dri7mvf5klmmwxm4ge5gp2cgmxb2g2pvirndzfhjjlv74", - "agent/valory/optimus/0.1.0": "bafybeih7sjwhvhdqeursyhazprd6eebbbj2g3ldj77eayzyff5tozz4zfq", - "service/valory/optimus/0.1.0": "bafybeiddmnogyoipnwaivymaeu3bsrib3uyaewut4dkxu5dkrolyr3psve" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeif7v4i5hjfbk4s4ht7rbj4nmdrmakwponomugyhvpjdqefcyr2up4", + "skill/valory/optimus_abci/0.1.0": "bafybeie5uaa5nu7byu75yvebknogbdsudra5yh4dryhfm3dgd643uie6p4", + "agent/valory/optimus/0.1.0": "bafybeihoor2cqdip75r76g4vrbkzesexdca3y47l5pts3fklfs4lnab4mq", + "service/valory/optimus/0.1.0": "bafybeifra6sxflxcitpibgumbc4jxtpzywuznuxecy55ebpjvb75kmnaki" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 9ee9ca0..e0d8015 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,16 +35,16 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeib7ai5xn2g5u5qieoplkfozvahndr5gjfkkywocwqba24ztq7od3i -- valory/optimus_abci:0.1.0:bafybeihfiyb45dri7mvf5klmmwxm4ge5gp2cgmxb2g2pvirndzfhjjlv74 +- valory/liquidity_trader_abci:0.1.0:bafybeif7v4i5hjfbk4s4ht7rbj4nmdrmakwponomugyhvpjdqefcyr2up4 +- valory/optimus_abci:0.1.0:bafybeie5uaa5nu7byu75yvebknogbdsudra5yh4dryhfm3dgd643uie6p4 - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/merkl_pools_search:0.1.0:bafybeidxgytb4myehesipcx5jg4hb64f3pk3uxmsx5rg2tdmcv73gu552e +- valory/merkl_pools_search:0.1.0:bafybeihiaxzfjkioroqfezyyswfkaiaiurwpdgbenabwdz3dfi5le4ymsu - valory/max_apr_selection:0.1.0:bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e -- valory/balancer_pools_search:0.1.0:bafybeihutoo2psnpygbx6ewpuqtwjpihjaujg2gkm6z7pxx6kood2in6a4 +- valory/balancer_pools_search:0.1.0:bafybeidlzpr6szumu66ctf2ywcnlrlqtebpdtl6lg6n2j7qleugw66szja default_ledger: ethereum required_ledgers: - ethereum @@ -256,7 +256,7 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies: ${str:{"bafybeidxgytb4myehesipcx5jg4hb64f3pk3uxmsx5rg2tdmcv73gu552e":"merkl_pools_search","bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e":"max_apr_selection","bafybeihutoo2psnpygbx6ewpuqtwjpihjaujg2gkm6z7pxx6kood2in6a4":"balancer_pools_search"}} + file_hash_to_strategies: ${str:{"bafybeihiaxzfjkioroqfezyyswfkaiaiurwpdgbenabwdz3dfi5le4ymsu":"merkl_pools_search","bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e":"max_apr_selection","bafybeidlzpr6szumu66ctf2ywcnlrlqtebpdtl6lg6n2j7qleugw66szja":"balancer_pools_search"}} strategies_kwargs: ${str:{"merkl_pools_search":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${list:["merkl_pools_search","balancer_pools_search"]} selected_protocols: ${list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/customs/balancer_pools_search/component.yaml b/packages/valory/customs/balancer_pools_search/component.yaml index 924c69d..1307061 100644 --- a/packages/valory/customs/balancer_pools_search/component.yaml +++ b/packages/valory/customs/balancer_pools_search/component.yaml @@ -12,4 +12,6 @@ fingerprint: fingerprint_ignore_patterns: [] entry_point: balancer_pools_search.py callable: run -dependencies: {} +dependencies: + requests: + version: <2.31.2,>=2.28.1 diff --git a/packages/valory/customs/merkl_pools_search/component.yaml b/packages/valory/customs/merkl_pools_search/component.yaml index a1ef5ef..5c902e5 100644 --- a/packages/valory/customs/merkl_pools_search/component.yaml +++ b/packages/valory/customs/merkl_pools_search/component.yaml @@ -12,4 +12,6 @@ fingerprint: fingerprint_ignore_patterns: [] entry_point: merkl_pools_search.py callable: run -dependencies: {} +dependencies: + requests: + version: <2.31.2,>=2.28.1 diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index befbf46..309e395 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeih7sjwhvhdqeursyhazprd6eebbbj2g3ldj77eayzyff5tozz4zfq +agent: valory/optimus:0.1.0:bafybeihoor2cqdip75r76g4vrbkzesexdca3y47l5pts3fklfs4lnab4mq number_of_agents: 1 deployment: {} --- @@ -84,7 +84,7 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeidxgytb4myehesipcx5jg4hb64f3pk3uxmsx5rg2tdmcv73gu552e":"merkl_pools_search","bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e":"max_apr_selection","bafybeihutoo2psnpygbx6ewpuqtwjpihjaujg2gkm6z7pxx6kood2in6a4":"balancer_pools_search"}} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeihiaxzfjkioroqfezyyswfkaiaiurwpdgbenabwdz3dfi5le4ymsu":"merkl_pools_search","bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e":"max_apr_selection","bafybeidlzpr6szumu66ctf2ywcnlrlqtebpdtl6lg6n2j7qleugw66szja":"balancer_pools_search"}} strategies_kwargs: ${STRATEGIES_KWARGS:str:{"merkl_pools_search":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${SELECTED_STRATEGIES:list:["merkl_pools_search","balancer_pools_search"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index c08b4a5..8da05ab 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -234,5 +234,7 @@ dependencies: eth_abi: version: ==4.0.0 eth_utils: {} + pyyaml: + version: <=6.0.1,>=3.10 is_abstract: true customs: [] diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index df0c989..7541f71 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeib7ai5xn2g5u5qieoplkfozvahndr5gjfkkywocwqba24ztq7od3i +- valory/liquidity_trader_abci:0.1.0:bafybeif7v4i5hjfbk4s4ht7rbj4nmdrmakwponomugyhvpjdqefcyr2up4 - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: diff --git a/tox.ini b/tox.ini index 5c4910c..b0c9e78 100644 --- a/tox.ini +++ b/tox.ini @@ -38,6 +38,7 @@ deps = pytest==7.2.1 openapi-core==0.15.0 openapi-spec-validator<0.5.0,>=0.4.0 + requests<2.31.2,>=2.28.1 [extra-deps] deps = @@ -60,6 +61,7 @@ deps = requests<2.31.2,>=2.28.1 web3<7,>=6.0.0 werkzeug + pyyaml<=6.0.1,>=3.10 ; end-extra [testenv] From 62bdc4f7ebebea4695e415915e773fd680baeb26 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 19:50:36 +0530 Subject: [PATCH 47/52] chore: update packages --- packages/packages.json | 30 +++++++++---------- .../valory/agents/optimus/aea-config.yaml | 20 ++++++------- .../contracts/balancer_vault/contract.yaml | 4 +-- .../balancer_weighted_pool/contract.yaml | 6 ++-- packages/valory/contracts/erc20/contract.yaml | 8 ++--- .../contracts/merkl_distributor/contract.yaml | 6 ++-- .../staking_activity_checker/contract.yaml | 4 +-- .../contracts/staking_token/contract.yaml | 6 ++-- .../contract.yaml | 6 ++-- .../contracts/uniswap_v3_pool/contract.yaml | 6 ++-- .../balancer_pools_search/component.yaml | 4 +-- .../customs/max_apr_selection/component.yaml | 4 +-- .../customs/merkl_pools_search/component.yaml | 4 +-- packages/valory/services/optimus/service.yaml | 4 +-- .../skills/liquidity_trader_abci/skill.yaml | 22 +++++++------- .../valory/skills/optimus_abci/skill.yaml | 6 ++-- 16 files changed, 70 insertions(+), 70 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 07759b4..150b613 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,20 +1,20 @@ { "dev": { - "custom/valory/merkl_pools_search/0.1.0": "bafybeihiaxzfjkioroqfezyyswfkaiaiurwpdgbenabwdz3dfi5le4ymsu", - "custom/valory/max_apr_selection/0.1.0": "bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e", - "custom/valory/balancer_pools_search/0.1.0": "bafybeidlzpr6szumu66ctf2ywcnlrlqtebpdtl6lg6n2j7qleugw66szja", - "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq", - "contract/valory/balancer_vault/0.1.0": "bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm", - "contract/valory/erc20/0.1.0": "bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4", - "contract/valory/uniswap_v3_non_fungible_position_manager/0.1.0": "bafybeihdnltmbhy7lcvqby324z4ttp4imnn3k7hctu4mwpkbpjodniudum", - "contract/valory/uniswap_v3_pool/0.1.0": "bafybeidtlsrza7ykhe5fo33pj3e3bq27b3i32igrmjyh35wnwd6tiuggcq", - "contract/valory/merkl_distributor/0.1.0": "bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e", - "contract/valory/staking_token/0.1.0": "bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y", - "contract/valory/staking_activity_checker/0.1.0": "bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeif7v4i5hjfbk4s4ht7rbj4nmdrmakwponomugyhvpjdqefcyr2up4", - "skill/valory/optimus_abci/0.1.0": "bafybeie5uaa5nu7byu75yvebknogbdsudra5yh4dryhfm3dgd643uie6p4", - "agent/valory/optimus/0.1.0": "bafybeihoor2cqdip75r76g4vrbkzesexdca3y47l5pts3fklfs4lnab4mq", - "service/valory/optimus/0.1.0": "bafybeifra6sxflxcitpibgumbc4jxtpzywuznuxecy55ebpjvb75kmnaki" + "custom/valory/merkl_pools_search/0.1.0": "bafybeifg4aub2bpqw4s6xasrho4t4doxnkostdss4fatxgzege23h7dg7u", + "custom/valory/max_apr_selection/0.1.0": "bafybeifqkyvivtkhyin27gpde5vdvu2nwuatuqrhkj5tl52zc3gobokjyy", + "custom/valory/balancer_pools_search/0.1.0": "bafybeiac6zo7nhfjl5ypxzxsrv5gjaoaejefpmjbktallgq2ll3i6e5zmm", + "contract/valory/balancer_weighted_pool/0.1.0": "bafybeib755ksie5yv4wn6jl7i3bpshlhscf4bzsabqrbahm6b3m5ixzmbi", + "contract/valory/balancer_vault/0.1.0": "bafybeidgdivmrm77yotgpnn567ayzhoqa6hufrijy2cj2b7w5wa63otzq4", + "contract/valory/erc20/0.1.0": "bafybeied2jjdqbcmddaop5b364brpoxatxcypj3gfvpov2ts4c4shoybee", + "contract/valory/uniswap_v3_non_fungible_position_manager/0.1.0": "bafybeiht7qjxkamjmq22o74f5faz3wqpb3cx2grl2t4zc2zxqjkzitc22a", + "contract/valory/uniswap_v3_pool/0.1.0": "bafybeieafb3ldbbshtbfqqwblc5gzcwq4nkxgyjz3n3vvcb3jfxzfgchya", + "contract/valory/merkl_distributor/0.1.0": "bafybeiegvzycswa7kdimhnjvhrtbrzu3zycnianhrdizq5i53ql7jf5poa", + "contract/valory/staking_token/0.1.0": "bafybeic4ug4p22q4hsh5z4hhjrishvnswino2fsleqsgdxlusd5h2x5hwy", + "contract/valory/staking_activity_checker/0.1.0": "bafybeidziyf4o763sw3fqlqjbpz3thrupuwx44barj72zj7tjnxbvkhoxa", + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeihssusegl77tlk55yjvvi7ekrvcgaqftrnv554psevejohg5pbyna", + "skill/valory/optimus_abci/0.1.0": "bafybeierzyknw5ulidj5ok7czc5uizbozcrupv6duumqv3bvgfqicnkwee", + "agent/valory/optimus/0.1.0": "bafybeicp7iv6uwspidffv34jlb2gvbplkfzovdsx2api5zyljxie4brpje", + "service/valory/optimus/0.1.0": "bafybeiekirrhnah25adx4vby52kltwp727nhycs4beluzzucrrfzx4xiy4" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index e0d8015..54733ff 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -19,10 +19,10 @@ contracts: - valory/gnosis_safe_proxy_factory:0.1.0:bafybeifr4xpmzeb5hvpgd6h4nxlsu3ef2c3f6l5bgs34vym5ok6vllwhmy - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y - valory/service_registry:0.1.0:bafybeidipx4cmchxdu5i2v67rno7muie7ckjhmasaj64tv2vtj4fveklxi -- valory/balancer_weighted_pool:0.1.0:bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq -- valory/balancer_vault:0.1.0:bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm -- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeihdnltmbhy7lcvqby324z4ttp4imnn3k7hctu4mwpkbpjodniudum -- valory/uniswap_v3_pool:0.1.0:bafybeidtlsrza7ykhe5fo33pj3e3bq27b3i32igrmjyh35wnwd6tiuggcq +- valory/balancer_weighted_pool:0.1.0:bafybeib755ksie5yv4wn6jl7i3bpshlhscf4bzsabqrbahm6b3m5ixzmbi +- valory/balancer_vault:0.1.0:bafybeidgdivmrm77yotgpnn567ayzhoqa6hufrijy2cj2b7w5wa63otzq4 +- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeiht7qjxkamjmq22o74f5faz3wqpb3cx2grl2t4zc2zxqjkzitc22a +- valory/uniswap_v3_pool:0.1.0:bafybeieafb3ldbbshtbfqqwblc5gzcwq4nkxgyjz3n3vvcb3jfxzfgchya protocols: - open_aea/signing:1.0.0:bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi - valory/abci:0.1.0:bafybeiaqmp7kocbfdboksayeqhkbrynvlfzsx4uy4x6nohywnmaig4an7u @@ -35,16 +35,16 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeif7v4i5hjfbk4s4ht7rbj4nmdrmakwponomugyhvpjdqefcyr2up4 -- valory/optimus_abci:0.1.0:bafybeie5uaa5nu7byu75yvebknogbdsudra5yh4dryhfm3dgd643uie6p4 +- valory/liquidity_trader_abci:0.1.0:bafybeihssusegl77tlk55yjvvi7ekrvcgaqftrnv554psevejohg5pbyna +- valory/optimus_abci:0.1.0:bafybeierzyknw5ulidj5ok7czc5uizbozcrupv6duumqv3bvgfqicnkwee - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/merkl_pools_search:0.1.0:bafybeihiaxzfjkioroqfezyyswfkaiaiurwpdgbenabwdz3dfi5le4ymsu -- valory/max_apr_selection:0.1.0:bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e -- valory/balancer_pools_search:0.1.0:bafybeidlzpr6szumu66ctf2ywcnlrlqtebpdtl6lg6n2j7qleugw66szja +- valory/merkl_pools_search:0.1.0:bafybeifg4aub2bpqw4s6xasrho4t4doxnkostdss4fatxgzege23h7dg7u +- valory/max_apr_selection:0.1.0:bafybeifqkyvivtkhyin27gpde5vdvu2nwuatuqrhkj5tl52zc3gobokjyy +- valory/balancer_pools_search:0.1.0:bafybeiac6zo7nhfjl5ypxzxsrv5gjaoaejefpmjbktallgq2ll3i6e5zmm default_ledger: ethereum required_ledgers: - ethereum @@ -256,7 +256,7 @@ models: gas_params: max_fee_per_gas: ${int:20000000} max_priority_fee_per_gas: ${int:3000000} - file_hash_to_strategies: ${str:{"bafybeihiaxzfjkioroqfezyyswfkaiaiurwpdgbenabwdz3dfi5le4ymsu":"merkl_pools_search","bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e":"max_apr_selection","bafybeidlzpr6szumu66ctf2ywcnlrlqtebpdtl6lg6n2j7qleugw66szja":"balancer_pools_search"}} + file_hash_to_strategies: ${str:{"bafybeifg4aub2bpqw4s6xasrho4t4doxnkostdss4fatxgzege23h7dg7u":"merkl_pools_search","bafybeifqkyvivtkhyin27gpde5vdvu2nwuatuqrhkj5tl52zc3gobokjyy":"max_apr_selection","bafybeiac6zo7nhfjl5ypxzxsrv5gjaoaejefpmjbktallgq2ll3i6e5zmm":"balancer_pools_search"}} strategies_kwargs: ${str:{"merkl_pools_search":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${list:["merkl_pools_search","balancer_pools_search"]} selected_protocols: ${list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/contracts/balancer_vault/contract.yaml b/packages/valory/contracts/balancer_vault/contract.yaml index d14234b..e12f600 100644 --- a/packages/valory/contracts/balancer_vault/contract.yaml +++ b/packages/valory/contracts/balancer_vault/contract.yaml @@ -6,8 +6,8 @@ description: The contract package for the balancer Vault interface. license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeie2yg7zz3lcxzvq4qsjydvp43epkpqwh72rsab5pthqdadmxewv6q - build/Vault.json: bafybeibsy2cxda42brenfs2qvhog7hbs5kokz2tr6daj5d4jcdadonlupy + __init__.py: bafybeibily2cg2o4zkvol6amu2ewzdq5kmtzlml3qor45na3s7l5fmay2a + build/Vault.json: bafybeifbvxyx43jmtchbzerapzqeblmmsppfbvfkwrag4nsfydad6bqwje contract.py: bafybeicu7xsjywccqscshsfwe23kiimvhee74s3u7vpkunglfarszdttke fingerprint_ignore_patterns: [] contracts: [] diff --git a/packages/valory/contracts/balancer_weighted_pool/contract.yaml b/packages/valory/contracts/balancer_weighted_pool/contract.yaml index 846f032..1988df2 100644 --- a/packages/valory/contracts/balancer_weighted_pool/contract.yaml +++ b/packages/valory/contracts/balancer_weighted_pool/contract.yaml @@ -6,9 +6,9 @@ description: The contract package for the balancer WeightedPool interface. license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeieabdck6osm6aeqonyflzx3oc2ytv6rdykjlltxkawcd5jwwm23uq - build/WeightedPool.json: bafybeicqma7gs5obx7oesmgqeqldos3oaz624d2llf6sft6tslvacn2tny - contract.py: bafybeiaqczbcnpojad4274mrtczi2ziljsmop3b5vtb6m6wz45s3443qyy + __init__.py: bafybeigdfk3th36mcaoew2of5zo2rrgyc2oqntzznjkii6a3zuafyvriou + build/WeightedPool.json: bafybeiclbkl3snzwo36nnbvjpge2jfcyo3a7lzzhfsfr4piv3n6djrs3le + contract.py: bafybeibojzlorprdqnbj4yp64ziheusdbvszijuk7xgeyjrcfzsw6z7koy fingerprint_ignore_patterns: [] contracts: [] class_name: WeightedPoolContract diff --git a/packages/valory/contracts/erc20/contract.yaml b/packages/valory/contracts/erc20/contract.yaml index f4932ec..1f38397 100644 --- a/packages/valory/contracts/erc20/contract.yaml +++ b/packages/valory/contracts/erc20/contract.yaml @@ -6,10 +6,10 @@ description: ERC20 token contract license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - README.md: bafybeif7hmm6izsjzpricvczn6dgyky22g3fryjmni7qdf6gybaalgmv5a - __init__.py: bafybeiakinrsb2vekfckyvjewz2c3quhf5gq2556royhuxiu4uhhscgo6m - build/ERC20.json: bafybeidc2ciuhnallxjzy4pmq3xhlcm5sotszmwk4ekrhebzncowozxrpa - contract.py: bafybeibhq3g7qdolk5fsaqnsmhbfnewrqkwm6slrb5mamjffvac6e6hskm + README.md: bafybeifmfma6rglvpa22odtozyosnp5mwljum64utxip2wgmezuhnjjjyi + __init__.py: bafybeif5vpc3dfrlxlch7brbhmdwksabyzddpfqgm56vdbbkek3t3br6ke + build/ERC20.json: bafybeiemn5b5nszuss7xj6lmvmjuendltp6wz7ubihdvd7c6wqw4bohbpa + contract.py: bafybeibbgvpfy6cg5sivhfutdskwhts35qf5xb6sggpamgzcabz3jvwn5a fingerprint_ignore_patterns: [] contracts: [] class_name: ERC20 diff --git a/packages/valory/contracts/merkl_distributor/contract.yaml b/packages/valory/contracts/merkl_distributor/contract.yaml index 2709596..db779ec 100644 --- a/packages/valory/contracts/merkl_distributor/contract.yaml +++ b/packages/valory/contracts/merkl_distributor/contract.yaml @@ -6,9 +6,9 @@ description: The contract package for the Merkl Distributor interface. license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeictnkdkelaghpkgodnjlfdqqextynue7ra3g5bz2ioxmk27yesaxu - build/Distributor.json: bafybeihzpteywhvuujzr2gjmmjfve6aqn6xfwd4k5iqlnwuulqeoyyyc44 - contract.py: bafybeibftqb6uj44nwq7cz4wa3jpy4allyb3llegypuwrw6l7brpjn24ce + __init__.py: bafybeigndinzenvr4gauojly3cieqscwf677i72di7nhfu3p3zxx6bmfyy + build/Distributor.json: bafybeihtbkqhzavgficpiikharncvtysmoyacmqbkntsilrvwph44fkm3a + contract.py: bafybeieq6hddnw6ib2ufwnrrfr6yo5g4hyidtpn3n2dl6si3yrloymjj3y fingerprint_ignore_patterns: [] contracts: [] class_name: DistributorContract diff --git a/packages/valory/contracts/staking_activity_checker/contract.yaml b/packages/valory/contracts/staking_activity_checker/contract.yaml index 4f64a09..8538116 100644 --- a/packages/valory/contracts/staking_activity_checker/contract.yaml +++ b/packages/valory/contracts/staking_activity_checker/contract.yaml @@ -6,8 +6,8 @@ description: Staking activity checker contract license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeigxhiwzlu2otgglu7wc7wcyprgbx3d56yswl6rnlohpzlhtob2o2y - build/StakingActivityChecker.json: bafybeieo4hgyetulkuolv7hxpjwgcvceqrzmg76f3gwhj5jkzt62aryzcy + __init__.py: bafybeigqm6q7kgfzgpcse7zer5uea3s7myolry2r3teovuzqgkn43j7bei + build/StakingActivityChecker.json: bafybeiety3kkkmdz2gdzktg54wvmhavftaw4wjnrddztt64jpknagrc6xa contract.py: bafybeiagtrdo6icjnzgap23xqaij2ptsdkqka4n25qg5srutoy6bfleqae fingerprint_ignore_patterns: [] contracts: [] diff --git a/packages/valory/contracts/staking_token/contract.yaml b/packages/valory/contracts/staking_token/contract.yaml index 0baeef4..83f188d 100644 --- a/packages/valory/contracts/staking_token/contract.yaml +++ b/packages/valory/contracts/staking_token/contract.yaml @@ -6,9 +6,9 @@ description: Service staking token contract license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeicocn2d7qhmemfevclum46bftxwve73gvhvtbybqsr6nwo7xi4cwa - build/StakingToken.json: bafybeig5fpbywcijoiu4wccefjqptgsg2tjc3fjud72js62sr54eihhoeu - contract.py: bafybeihu7kos735kxacc2yevjdorv3xlsol2jqexvcce6glt3vbqrfsjau + __init__.py: bafybeianiorzcfwfcty7xli6fytss2tsaj3qbzjhvwyi6whrlv2uoj5tfy + build/StakingToken.json: bafybeibhcwyawq377innrpq4ytpw5kotufjqo7cyd2rjhyit34mnbks5b4 + contract.py: bafybeigjt7a2biiorp4vmj4d3qkm3xbbohnawoetywojye5akhavlvkrxm fingerprint_ignore_patterns: [] contracts: [] class_name: StakingTokenContract diff --git a/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml b/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml index 1bdfdab..d16baf1 100644 --- a/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml +++ b/packages/valory/contracts/uniswap_v3_non_fungible_position_manager/contract.yaml @@ -6,9 +6,9 @@ description: The contract package for the Uniswap V3 NonfungiblePositionManager license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeiedo7rlzia74zpxmzr3f6clsmflrnmnutvbhv53enj7ubiixoq4wi - build/NonfungiblePositionManager.json: bafybeigbyk26vvml6p257jxlj2aarut7nywtcpsqfaes6uv3o4se6xcnvu - contract.py: bafybeihwpypxzoewm3cyndzvnc4bemhzr7bwfgmpseuh7kpc5p377aqmym + __init__.py: bafybeiefxsx4zo3eefe6iyxflho4l3gx2ge7hjm7c62eiyw7zaag4ifbty + build/NonfungiblePositionManager.json: bafybeihspdbkcgw2mo245bpblhgu3srl3ywynp7eeipzoczqlzcslu7t6y + contract.py: bafybeidiyhhxbpff27wmenq3tmhz6ytwkstw7zgi5jv4y6wndhlovoxvvq fingerprint_ignore_patterns: [] contracts: [] class_name: UniswapV3NonfungiblePositionManagerContract diff --git a/packages/valory/contracts/uniswap_v3_pool/contract.yaml b/packages/valory/contracts/uniswap_v3_pool/contract.yaml index 5b40256..394dc6b 100644 --- a/packages/valory/contracts/uniswap_v3_pool/contract.yaml +++ b/packages/valory/contracts/uniswap_v3_pool/contract.yaml @@ -6,9 +6,9 @@ description: The contract package for the Uniswap V3 Pool interface. license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeicea4t7ghcifni7ofn4x2en5etymgynzgfefu4yhawsfivr2q53ri - build/UniswapV3Pool.json: bafybeifr6yextwnnmyk7h4j3nlfu5ujj243enppkvv4irouy2snc2qqpri - contract.py: bafybeig6dvbuoac6kvxbj2ehejfgta3mesakvo2ilxbyovnefhdnauyxki + __init__.py: bafybeihdocjce5kvnpad5xhrc2ad7i3gftajix5z6f4zhpvmnk6blsmlza + build/UniswapV3Pool.json: bafybeids5lo3axsd6aplyywwi43xwdxj3njnrke5m7gsp3mg74svcodr4i + contract.py: bafybeigxpimjgflw5sszbz5tk4wxjktwuekcvbyfj7syqspwqpohugzdi4 fingerprint_ignore_patterns: [] contracts: [] class_name: UniswapV3PoolContract diff --git a/packages/valory/customs/balancer_pools_search/component.yaml b/packages/valory/customs/balancer_pools_search/component.yaml index 1307061..9028f3b 100644 --- a/packages/valory/customs/balancer_pools_search/component.yaml +++ b/packages/valory/customs/balancer_pools_search/component.yaml @@ -7,8 +7,8 @@ description: A strategy that returns the highest APR yielding liquidity pool ove license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeih5ut32gpd74oj33oautjlv6sswnqwwep7hpnnjuos3mqpyyjn6zy - balancer_pools_search.py: bafybeifawcectaqbbmp4upykkhgkbe2igf3u3x4ak2gy3dnngvxzwnvazy + __init__.py: bafybeidq27qbp5awns6j4426xkcojwkhq4kbmecuojfpqh6beqmltt54xy + balancer_pools_search.py: bafybeicvjhqn7k3pqsnceykkliaty27ka4xqmlajos5abahk4lj34ahg4m fingerprint_ignore_patterns: [] entry_point: balancer_pools_search.py callable: run diff --git a/packages/valory/customs/max_apr_selection/component.yaml b/packages/valory/customs/max_apr_selection/component.yaml index 7a46ab9..72485dd 100644 --- a/packages/valory/customs/max_apr_selection/component.yaml +++ b/packages/valory/customs/max_apr_selection/component.yaml @@ -6,8 +6,8 @@ description: A strategy that selects the best yielding strategy based on APR license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeidkb3cffdsx7yiafbkka6dhxqnwpfswqzii6wm6vtumsczgeezrk4 - max_apr_selection.py: bafybeictwyxzvbs2eslprxjxvsbpec7o2zzhyzosnhiqcbv4evabtkkvvi + __init__.py: bafybeibbihnawdil4w74uoizkl6dgs3toffvwhyzsrzec4eros4jrjvkyi + max_apr_selection.py: bafybeicce54ylc533vik2erdyraso6xkle7i77nymsjdfasqggeuoqro2y fingerprint_ignore_patterns: [] entry_point: max_apr_selection.py callable: run diff --git a/packages/valory/customs/merkl_pools_search/component.yaml b/packages/valory/customs/merkl_pools_search/component.yaml index 5c902e5..e5acf70 100644 --- a/packages/valory/customs/merkl_pools_search/component.yaml +++ b/packages/valory/customs/merkl_pools_search/component.yaml @@ -7,8 +7,8 @@ description: A strategy that returns the highest APR yielding liquidity pool ove license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeico7avmekvnpeefqyruchcgdcfmrarjt74xertll4gurai4bmdbxa - merkl_pools_search.py: bafybeielutbzn6cdtfn7jw2wjnlqk2huxmryncqtyy5ke5jpp7hfnbmkpm + __init__.py: bafybeigg2jlsj72njf7qyopjmmzeeklskant4cakgn6u77dzgarfyboewe + merkl_pools_search.py: bafybeigyqng6cbxchwdnnq6yuu34lldqsxbgzfudreg5baldfgrntl2u4q fingerprint_ignore_patterns: [] entry_point: merkl_pools_search.py callable: run diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 309e395..44b7cbc 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeihoor2cqdip75r76g4vrbkzesexdca3y47l5pts3fklfs4lnab4mq +agent: valory/optimus:0.1.0:bafybeicp7iv6uwspidffv34jlb2gvbplkfzovdsx2api5zyljxie4brpje number_of_agents: 1 deployment: {} --- @@ -84,7 +84,7 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeihiaxzfjkioroqfezyyswfkaiaiurwpdgbenabwdz3dfi5le4ymsu":"merkl_pools_search","bafybeiaxtvp23ujysatjnjw62tnjjhd4uvssjt6r6po24yk4kjsqgucg7e":"max_apr_selection","bafybeidlzpr6szumu66ctf2ywcnlrlqtebpdtl6lg6n2j7qleugw66szja":"balancer_pools_search"}} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeifg4aub2bpqw4s6xasrho4t4doxnkostdss4fatxgzege23h7dg7u":"merkl_pools_search","bafybeifqkyvivtkhyin27gpde5vdvu2nwuatuqrhkj5tl52zc3gobokjyy":"max_apr_selection","bafybeiac6zo7nhfjl5ypxzxsrv5gjaoaejefpmjbktallgq2ll3i6e5zmm":"balancer_pools_search"}} strategies_kwargs: ${STRATEGIES_KWARGS:str:{"merkl_pools_search":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${SELECTED_STRATEGIES:list:["merkl_pools_search","balancer_pools_search"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 8da05ab..67261d2 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,31 +7,31 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeihktypniiwovu7zskhrk5ejeqhpoji5lpssjz26axmopoz6cz6syq + behaviours.py: bafybeibvh5cn42orrvzlxb2ts3f7fzwy6ovgo6cvphxexvy7rqmwyyw7yu dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeie3vom7fwl5ho6xanje3r7tab7y3a5ij5gs6qvjh2uavbpitffyzu handlers.py: bafybeih2zlmkyntlr7zx4mokqkmpcw7qczfbo47g766kndbv7zv7oqjv6e io_/__init__.py: bafybeifxgmmwjqzezzn3e6keh2bfo4cyo7y5dq2ept3stfmgglbrzfl5rq io_/loader.py: bafybeiaoi7rnmpoyreuhwdo3biudqnjnrc25eu54ehyvsnynlkbzk7r6ti models.py: bafybeigfpxggq3tkc75tihyrvjuzspbioa4oewhv4vnrguujmsmf2d2gaq - payloads.py: bafybeibozjbr4sxafd6aizge3hb5vn6gowdcszsdzbhwzzcbg6gmpy4pki + payloads.py: bafybeihi42vbsr2xyhzsp55tl6mqecqyy52jrhwjfw4trvrjlhfxuyaz3u pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u pools/uniswap.py: bafybeigmqptgmjaxscszohfusgxsexqyx4awuyw7p4g5l7k2qpeyq7vdcu - rounds.py: bafybeihsfsgt4mamb47hg5ylphydy7lcftdtbvyhxnqz3j7sfzqtzvbzje + rounds.py: bafybeicbrta5ifua3botuebo4bocf2i5txymul63sz55ett2tpqsar7dty fingerprint_ignore_patterns: [] connections: [] contracts: - valory/gnosis_safe:0.1.0:bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi -- valory/balancer_weighted_pool:0.1.0:bafybeiedi74xjsrxyf7fc6pov23ol5ycd6fi7v6c6nfgwo6yij6k353cbq -- valory/balancer_vault:0.1.0:bafybeichirxrzvxughksr3ycjlwsbdeb5rk5hvttqi46bw7djmcmtbecfm -- valory/erc20:0.1.0:bafybeie7es6tlembjlh7h5oe4qqhsaailr5nhwshuw346bxeflfsirxrc4 +- valory/balancer_weighted_pool:0.1.0:bafybeib755ksie5yv4wn6jl7i3bpshlhscf4bzsabqrbahm6b3m5ixzmbi +- valory/balancer_vault:0.1.0:bafybeidgdivmrm77yotgpnn567ayzhoqa6hufrijy2cj2b7w5wa63otzq4 +- valory/erc20:0.1.0:bafybeied2jjdqbcmddaop5b364brpoxatxcypj3gfvpov2ts4c4shoybee - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeihdnltmbhy7lcvqby324z4ttp4imnn3k7hctu4mwpkbpjodniudum -- valory/uniswap_v3_pool:0.1.0:bafybeidtlsrza7ykhe5fo33pj3e3bq27b3i32igrmjyh35wnwd6tiuggcq -- valory/merkl_distributor:0.1.0:bafybeigrnymn2g4m7yv5bah7r3mphni7cim2pg25uffbtatyvnjip7rp3e -- valory/staking_token:0.1.0:bafybeic3odqiitp7grubfuukubml73pofxnfwh2dx5zqj4c6zrsc2uel4y -- valory/staking_activity_checker:0.1.0:bafybeidwyuiv7ef7unrdpkzhpkkbssovfoqqti6ojlcibj4cvqkiyzypbi +- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeiht7qjxkamjmq22o74f5faz3wqpb3cx2grl2t4zc2zxqjkzitc22a +- valory/uniswap_v3_pool:0.1.0:bafybeieafb3ldbbshtbfqqwblc5gzcwq4nkxgyjz3n3vvcb3jfxzfgchya +- valory/merkl_distributor:0.1.0:bafybeiegvzycswa7kdimhnjvhrtbrzu3zycnianhrdizq5i53ql7jf5poa +- valory/staking_token:0.1.0:bafybeic4ug4p22q4hsh5z4hhjrishvnswino2fsleqsgdxlusd5h2x5hwy +- valory/staking_activity_checker:0.1.0:bafybeidziyf4o763sw3fqlqjbpz3thrupuwx44barj72zj7tjnxbvkhoxa protocols: - valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 7541f71..3d05f27 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -11,8 +11,8 @@ fingerprint: composition.py: bafybeigxpycqh7xnqwdj5eg2ln6kqchbwvwuvzjtpwhgylr6qb56ooo7wu dialogues.py: bafybeiafoomno5pn6qrx43jxf2opxkil5eg4nod6jhd5oqwwplfz4x6dke fsm_specification.yaml: bafybeihzhlhigw5qcncirnnxpazcb4qbvpgk6emms4vi2wtgyzfomkr53a - handlers.py: bafybeiaok4u23o5raglxr5nl4wlr6in2lbbdd34vpbt5feotpt7wvto634 - models.py: bafybeig7ytwxlfuhmwhksasidyoq6xeb3fb6vyihdbf5cmc4g7l73etq5e + handlers.py: bafybeibjiq36n5d7pdzrslm46zwboveqjbfs7m7got7k5sk3tp7xb3jqr4 + models.py: bafybeibxpw4zmigtel3emgbz2jz6xgsfx7eavxvhqrqftwcsul6lwcpjou fingerprint_ignore_patterns: [] connections: [] contracts: [] @@ -22,7 +22,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeif7v4i5hjfbk4s4ht7rbj4nmdrmakwponomugyhvpjdqefcyr2up4 +- valory/liquidity_trader_abci:0.1.0:bafybeihssusegl77tlk55yjvvi7ekrvcgaqftrnv554psevejohg5pbyna - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From 9fa30bca57cc00c7e9e5e80e19fe1c773421a0b7 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 19:54:28 +0530 Subject: [PATCH 48/52] fix: update gitleaks ignore --- .gitleaksignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitleaksignore b/.gitleaksignore index 31f91ef..c452daf 100644 --- a/.gitleaksignore +++ b/.gitleaksignore @@ -269,3 +269,4 @@ c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/reset_pause_abci c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/strategy_evaluator_abci/skill.yaml:generic-api-key:101 c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/trader_decision_maker_abci/skill.yaml:generic-api-key:76 c022bdff65530d1dc6a037b3d173e3989a51daec:packages/valory/skills/transaction_settlement_abci/skill.yaml:generic-api-key:93 +62bdc4f7ebebea4695e415915e773fd680baeb26:packages/valory/contracts/staking_token/contract.yaml:generic-api-key:10 From d33dff1a900f857342279d8a03af175978cf00a7 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 21:21:04 +0530 Subject: [PATCH 49/52] fix: update copyright --- packages/packages.json | 10 +++++----- packages/valory/agents/optimus/aea-config.yaml | 6 +++--- .../valory/customs/balancer_pools_search/__init__.py | 2 +- .../customs/balancer_pools_search/component.yaml | 2 +- packages/valory/customs/max_apr_selection/__init__.py | 2 +- .../valory/customs/max_apr_selection/component.yaml | 2 +- packages/valory/customs/merkl_pools_search/__init__.py | 2 +- .../valory/customs/merkl_pools_search/component.yaml | 2 +- packages/valory/services/optimus/service.yaml | 4 ++-- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 150b613..01a0a2d 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,8 +1,8 @@ { "dev": { - "custom/valory/merkl_pools_search/0.1.0": "bafybeifg4aub2bpqw4s6xasrho4t4doxnkostdss4fatxgzege23h7dg7u", - "custom/valory/max_apr_selection/0.1.0": "bafybeifqkyvivtkhyin27gpde5vdvu2nwuatuqrhkj5tl52zc3gobokjyy", - "custom/valory/balancer_pools_search/0.1.0": "bafybeiac6zo7nhfjl5ypxzxsrv5gjaoaejefpmjbktallgq2ll3i6e5zmm", + "custom/valory/merkl_pools_search/0.1.0": "bafybeibywngxfy5e2crtkvgfvad2ciepg3qk3h54eg3vbjoxwvf2j55wzq", + "custom/valory/max_apr_selection/0.1.0": "bafybeiheh23wgnrzq42epjpsuawi5cp6l4363z74slhlwkckb3gfem4w3y", + "custom/valory/balancer_pools_search/0.1.0": "bafybeifqhttehbw4oukwbl24l5uzinzlioaq6o4wx4uh3hr3vpe6vr223i", "contract/valory/balancer_weighted_pool/0.1.0": "bafybeib755ksie5yv4wn6jl7i3bpshlhscf4bzsabqrbahm6b3m5ixzmbi", "contract/valory/balancer_vault/0.1.0": "bafybeidgdivmrm77yotgpnn567ayzhoqa6hufrijy2cj2b7w5wa63otzq4", "contract/valory/erc20/0.1.0": "bafybeied2jjdqbcmddaop5b364brpoxatxcypj3gfvpov2ts4c4shoybee", @@ -13,8 +13,8 @@ "contract/valory/staking_activity_checker/0.1.0": "bafybeidziyf4o763sw3fqlqjbpz3thrupuwx44barj72zj7tjnxbvkhoxa", "skill/valory/liquidity_trader_abci/0.1.0": "bafybeihssusegl77tlk55yjvvi7ekrvcgaqftrnv554psevejohg5pbyna", "skill/valory/optimus_abci/0.1.0": "bafybeierzyknw5ulidj5ok7czc5uizbozcrupv6duumqv3bvgfqicnkwee", - "agent/valory/optimus/0.1.0": "bafybeicp7iv6uwspidffv34jlb2gvbplkfzovdsx2api5zyljxie4brpje", - "service/valory/optimus/0.1.0": "bafybeiekirrhnah25adx4vby52kltwp727nhycs4beluzzucrrfzx4xiy4" + "agent/valory/optimus/0.1.0": "bafybeihqhwgzxojc7h4j4bq2fyasr3i4grgujagyttokrpcfifjosbov7u", + "service/valory/optimus/0.1.0": "bafybeicv7vw442vvkgw3ana37iinhjhww6pvuclja2dqt47i3gcb3oyki4" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index 54733ff..dcb6097 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -42,9 +42,9 @@ skills: - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq customs: -- valory/merkl_pools_search:0.1.0:bafybeifg4aub2bpqw4s6xasrho4t4doxnkostdss4fatxgzege23h7dg7u -- valory/max_apr_selection:0.1.0:bafybeifqkyvivtkhyin27gpde5vdvu2nwuatuqrhkj5tl52zc3gobokjyy -- valory/balancer_pools_search:0.1.0:bafybeiac6zo7nhfjl5ypxzxsrv5gjaoaejefpmjbktallgq2ll3i6e5zmm +- valory/merkl_pools_search:0.1.0:bafybeibywngxfy5e2crtkvgfvad2ciepg3qk3h54eg3vbjoxwvf2j55wzq +- valory/max_apr_selection:0.1.0:bafybeiheh23wgnrzq42epjpsuawi5cp6l4363z74slhlwkckb3gfem4w3y +- valory/balancer_pools_search:0.1.0:bafybeifqhttehbw4oukwbl24l5uzinzlioaq6o4wx4uh3hr3vpe6vr223i default_ledger: ethereum required_ledgers: - ethereum diff --git a/packages/valory/customs/balancer_pools_search/__init__.py b/packages/valory/customs/balancer_pools_search/__init__.py index 8532656..1ed0bca 100644 --- a/packages/valory/customs/balancer_pools_search/__init__.py +++ b/packages/valory/customs/balancer_pools_search/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023-2024 Valory AG +# Copyright 2024 Valory AG # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/packages/valory/customs/balancer_pools_search/component.yaml b/packages/valory/customs/balancer_pools_search/component.yaml index 9028f3b..8c17e43 100644 --- a/packages/valory/customs/balancer_pools_search/component.yaml +++ b/packages/valory/customs/balancer_pools_search/component.yaml @@ -7,7 +7,7 @@ description: A strategy that returns the highest APR yielding liquidity pool ove license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeidq27qbp5awns6j4426xkcojwkhq4kbmecuojfpqh6beqmltt54xy + __init__.py: bafybeievwo2yoa6vekod333ttto66vpc27lm6wepspnhwyrqxtjx7djzw4 balancer_pools_search.py: bafybeicvjhqn7k3pqsnceykkliaty27ka4xqmlajos5abahk4lj34ahg4m fingerprint_ignore_patterns: [] entry_point: balancer_pools_search.py diff --git a/packages/valory/customs/max_apr_selection/__init__.py b/packages/valory/customs/max_apr_selection/__init__.py index dc0664d..eeff753 100644 --- a/packages/valory/customs/max_apr_selection/__init__.py +++ b/packages/valory/customs/max_apr_selection/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023-2024 Valory AG +# Copyright 2024 Valory AG # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/packages/valory/customs/max_apr_selection/component.yaml b/packages/valory/customs/max_apr_selection/component.yaml index 72485dd..c5eefee 100644 --- a/packages/valory/customs/max_apr_selection/component.yaml +++ b/packages/valory/customs/max_apr_selection/component.yaml @@ -6,7 +6,7 @@ description: A strategy that selects the best yielding strategy based on APR license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeibbihnawdil4w74uoizkl6dgs3toffvwhyzsrzec4eros4jrjvkyi + __init__.py: bafybeiebxffqdqb67sa4w2xmmo5q3bnjflr2xeu4xsx3ynrsepf5js2cja max_apr_selection.py: bafybeicce54ylc533vik2erdyraso6xkle7i77nymsjdfasqggeuoqro2y fingerprint_ignore_patterns: [] entry_point: max_apr_selection.py diff --git a/packages/valory/customs/merkl_pools_search/__init__.py b/packages/valory/customs/merkl_pools_search/__init__.py index c5360da..9a63d7e 100644 --- a/packages/valory/customs/merkl_pools_search/__init__.py +++ b/packages/valory/customs/merkl_pools_search/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023-2024 Valory AG +# Copyright 2024 Valory AG # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/packages/valory/customs/merkl_pools_search/component.yaml b/packages/valory/customs/merkl_pools_search/component.yaml index e5acf70..29b3727 100644 --- a/packages/valory/customs/merkl_pools_search/component.yaml +++ b/packages/valory/customs/merkl_pools_search/component.yaml @@ -7,7 +7,7 @@ description: A strategy that returns the highest APR yielding liquidity pool ove license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeigg2jlsj72njf7qyopjmmzeeklskant4cakgn6u77dzgarfyboewe + __init__.py: bafybeie7iwdt5re7i7lxal5wrzy4yxxi4v3te6tgp7j7aantyyihib7fpi merkl_pools_search.py: bafybeigyqng6cbxchwdnnq6yuu34lldqsxbgzfudreg5baldfgrntl2u4q fingerprint_ignore_patterns: [] entry_point: merkl_pools_search.py diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 44b7cbc..4c5802f 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeicp7iv6uwspidffv34jlb2gvbplkfzovdsx2api5zyljxie4brpje +agent: valory/optimus:0.1.0:bafybeihqhwgzxojc7h4j4bq2fyasr3i4grgujagyttokrpcfifjosbov7u number_of_agents: 1 deployment: {} --- @@ -84,7 +84,7 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeifg4aub2bpqw4s6xasrho4t4doxnkostdss4fatxgzege23h7dg7u":"merkl_pools_search","bafybeifqkyvivtkhyin27gpde5vdvu2nwuatuqrhkj5tl52zc3gobokjyy":"max_apr_selection","bafybeiac6zo7nhfjl5ypxzxsrv5gjaoaejefpmjbktallgq2ll3i6e5zmm":"balancer_pools_search"}} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeibywngxfy5e2crtkvgfvad2ciepg3qk3h54eg3vbjoxwvf2j55wzq":"merkl_pools_search","bafybeiheh23wgnrzq42epjpsuawi5cp6l4363z74slhlwkckb3gfem4w3y":"max_apr_selection","bafybeifqhttehbw4oukwbl24l5uzinzlioaq6o4wx4uh3hr3vpe6vr223i":"balancer_pools_search"}} strategies_kwargs: ${STRATEGIES_KWARGS:str:{"merkl_pools_search":{"balancer_graphql_endpoints":{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest","mode":"https://api.studio.thegraph.com/query/75376/balancer-mode-v2/version/latest"},"merkl_fetch_campaign_args":{"url":"https://api.merkl.xyz/v3/campaigns","creator":"","live":"false"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"}}} selected_strategies: ${SELECTED_STRATEGIES:list:["merkl_pools_search","balancer_pools_search"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} From 94da7d2e53fbca832f4603e940ac799d6e68d224 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 22:03:15 +0530 Subject: [PATCH 50/52] chore: update packages hash --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- packages/valory/skills/liquidity_trader_abci/skill.yaml | 6 +++--- packages/valory/skills/optimus_abci/skill.yaml | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 5ad1fcc..2fd4cf9 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeiegvzycswa7kdimhnjvhrtbrzu3zycnianhrdizq5i53ql7jf5poa", "contract/valory/staking_token/0.1.0": "bafybeic4ug4p22q4hsh5z4hhjrishvnswino2fsleqsgdxlusd5h2x5hwy", "contract/valory/staking_activity_checker/0.1.0": "bafybeidziyf4o763sw3fqlqjbpz3thrupuwx44barj72zj7tjnxbvkhoxa", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeie2jyc6wymlh7p6wp5eveshpgwl3rvowmkqcvcvkhxx4pi43tdity", - "skill/valory/optimus_abci/0.1.0": "bafybeicol4qo74kwr2p4y2jrnfkvxx5fzobakj54dejz7satr3l6eby7fe", - "agent/valory/optimus/0.1.0": "bafybeibubyitwrfb3zgu5zxqljtqyqwo2kmlbzz3ciun36wy7bvav6bqbu", - "service/valory/optimus/0.1.0": "bafybeidlyqt52gahvefq67yzt3zjcaddahdo6xfqe5rdb5mevwy2v5liym" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeic7jqif5a6q4yqotupd3unkm3jxdyldyln4ssgzttcy74yotbjn3q", + "skill/valory/optimus_abci/0.1.0": "bafybeiaycyyoldjusbngojn6qzt7puq4su3thdcgj2427h2hekubslszra", + "agent/valory/optimus/0.1.0": "bafybeihwpmurj2sap57ju5wjxgjwovmep3b6d4xd4nqkxz364xm5vgqjma", + "service/valory/optimus/0.1.0": "bafybeiakuuyjjuxlveog5woreyxksjy6ad7uono2zfyjvxssgkraekrhxa" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index bf833bc..e28482a 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeie2jyc6wymlh7p6wp5eveshpgwl3rvowmkqcvcvkhxx4pi43tdity -- valory/optimus_abci:0.1.0:bafybeicol4qo74kwr2p4y2jrnfkvxx5fzobakj54dejz7satr3l6eby7fe +- valory/liquidity_trader_abci:0.1.0:bafybeic7jqif5a6q4yqotupd3unkm3jxdyldyln4ssgzttcy74yotbjn3q +- valory/optimus_abci:0.1.0:bafybeiaycyyoldjusbngojn6qzt7puq4su3thdcgj2427h2hekubslszra - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 09f6c18..9e26e68 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeibubyitwrfb3zgu5zxqljtqyqwo2kmlbzz3ciun36wy7bvav6bqbu +agent: valory/optimus:0.1.0:bafybeihwpmurj2sap57ju5wjxgjwovmep3b6d4xd4nqkxz364xm5vgqjma number_of_agents: 1 deployment: agent: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 37c986f..7db3e69 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,18 +7,18 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeie4nvzxe7m6qzes6p6qpnto3ilw2tlhdnqwebf5ybji25dx24xcgu + behaviours.py: bafybeibsqgvdb5wctidvlubqy73bfekx3pr77yf535t3f37g42dbomf6nu dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeie3vom7fwl5ho6xanje3r7tab7y3a5ij5gs6qvjh2uavbpitffyzu handlers.py: bafybeih2zlmkyntlr7zx4mokqkmpcw7qczfbo47g766kndbv7zv7oqjv6e io_/__init__.py: bafybeifxgmmwjqzezzn3e6keh2bfo4cyo7y5dq2ept3stfmgglbrzfl5rq io_/loader.py: bafybeiaoi7rnmpoyreuhwdo3biudqnjnrc25eu54ehyvsnynlkbzk7r6ti models.py: bafybeiawwchc6n64uifd6aubc74mfsgamhkzcwc5ufq75a65d25ympcdgu - payloads.py: bafybeibxnowhiejstrxdhk65l4ygbrciaew3twcmhkiyqzfifhtvvbcjra + payloads.py: bafybeie5tbx3lqcklwfqdqft5t33oluvkltnbjqavhj3ddjjblocyq62qm pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u pools/uniswap.py: bafybeigmqptgmjaxscszohfusgxsexqyx4awuyw7p4g5l7k2qpeyq7vdcu - rounds.py: bafybeibhrwlbl2e7sa5t2ismrj5aqdj3cl5c5dqvvau3s6dd3y2zwa5aqe + rounds.py: bafybeidbh4cetttbn4nvti6ftwlrgfnfs5xtuo3i26qfphodrlcaqlibra fingerprint_ignore_patterns: [] connections: [] contracts: diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 6b2fd11..f9ecfa8 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -11,8 +11,8 @@ fingerprint: composition.py: bafybeigxpycqh7xnqwdj5eg2ln6kqchbwvwuvzjtpwhgylr6qb56ooo7wu dialogues.py: bafybeiafoomno5pn6qrx43jxf2opxkil5eg4nod6jhd5oqwwplfz4x6dke fsm_specification.yaml: bafybeihzhlhigw5qcncirnnxpazcb4qbvpgk6emms4vi2wtgyzfomkr53a - handlers.py: bafybeihtynd5r2kruwgycsoydphbvowalopangisufyp6arlj5dxmww3uu - models.py: bafybeid457du3icit2h6venm5bsyso5pckoia7wke4p3y6j3j2i7wkuedu + handlers.py: bafybeicyu4bsubv2rnrhnx76wjt23oqbhaqihjaulrlshxygwicv4ml5la + models.py: bafybeieeq64gdcpri2lcj3yvrvsp6edgg52vx53shqd3wxskekhhn2s5xy fingerprint_ignore_patterns: [] connections: - valory/http_server:0.22.0:bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m @@ -24,7 +24,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeie2jyc6wymlh7p6wp5eveshpgwl3rvowmkqcvcvkhxx4pi43tdity +- valory/liquidity_trader_abci:0.1.0:bafybeic7jqif5a6q4yqotupd3unkm3jxdyldyln4ssgzttcy74yotbjn3q - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From d1853bdd4b8cf4c3f6b5c7867a5c1eddacb3355b Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 22:12:16 +0530 Subject: [PATCH 51/52] fix: run formatters --- packages/packages.json | 8 ++++---- packages/valory/agents/optimus/aea-config.yaml | 4 ++-- packages/valory/services/optimus/service.yaml | 2 +- .../valory/skills/liquidity_trader_abci/behaviours.py | 1 + packages/valory/skills/liquidity_trader_abci/skill.yaml | 2 +- packages/valory/skills/optimus_abci/skill.yaml | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/packages.json b/packages/packages.json index 2fd4cf9..a046739 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -11,10 +11,10 @@ "contract/valory/merkl_distributor/0.1.0": "bafybeiegvzycswa7kdimhnjvhrtbrzu3zycnianhrdizq5i53ql7jf5poa", "contract/valory/staking_token/0.1.0": "bafybeic4ug4p22q4hsh5z4hhjrishvnswino2fsleqsgdxlusd5h2x5hwy", "contract/valory/staking_activity_checker/0.1.0": "bafybeidziyf4o763sw3fqlqjbpz3thrupuwx44barj72zj7tjnxbvkhoxa", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeic7jqif5a6q4yqotupd3unkm3jxdyldyln4ssgzttcy74yotbjn3q", - "skill/valory/optimus_abci/0.1.0": "bafybeiaycyyoldjusbngojn6qzt7puq4su3thdcgj2427h2hekubslszra", - "agent/valory/optimus/0.1.0": "bafybeihwpmurj2sap57ju5wjxgjwovmep3b6d4xd4nqkxz364xm5vgqjma", - "service/valory/optimus/0.1.0": "bafybeiakuuyjjuxlveog5woreyxksjy6ad7uono2zfyjvxssgkraekrhxa" + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeidfg3auronrhdd6yxrkqkeop5vjh4vqzhiuhghtlvnupe26rwepre", + "skill/valory/optimus_abci/0.1.0": "bafybeiapa3ry65ojs7byjz2t3sqdzmclrhjgurclenofubkhyqou4mgoca", + "agent/valory/optimus/0.1.0": "bafybeidzci2f4vux7bmflcpvzhbh36xximi2gw2kyednhh4xb4aseec2eq", + "service/valory/optimus/0.1.0": "bafybeierrvod33ljm2lmuzmdc4bdyke57jlylpa3dwvnnbxsdu7z23f5um" }, "third_party": { "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", diff --git a/packages/valory/agents/optimus/aea-config.yaml b/packages/valory/agents/optimus/aea-config.yaml index e28482a..9dead04 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -35,8 +35,8 @@ protocols: skills: - valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq - valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeic7jqif5a6q4yqotupd3unkm3jxdyldyln4ssgzttcy74yotbjn3q -- valory/optimus_abci:0.1.0:bafybeiaycyyoldjusbngojn6qzt7puq4su3thdcgj2427h2hekubslszra +- valory/liquidity_trader_abci:0.1.0:bafybeidfg3auronrhdd6yxrkqkeop5vjh4vqzhiuhghtlvnupe26rwepre +- valory/optimus_abci:0.1.0:bafybeiapa3ry65ojs7byjz2t3sqdzmclrhjgurclenofubkhyqou4mgoca - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index 9e26e68..f5f81ae 100644 --- a/packages/valory/services/optimus/service.yaml +++ b/packages/valory/services/optimus/service.yaml @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0' license: Apache-2.0 fingerprint: {} fingerprint_ignore_patterns: [] -agent: valory/optimus:0.1.0:bafybeihwpmurj2sap57ju5wjxgjwovmep3b6d4xd4nqkxz364xm5vgqjma +agent: valory/optimus:0.1.0:bafybeidzci2f4vux7bmflcpvzhbh36xximi2gw2kyednhh4xb4aseec2eq number_of_agents: 1 deployment: agent: diff --git a/packages/valory/skills/liquidity_trader_abci/behaviours.py b/packages/valory/skills/liquidity_trader_abci/behaviours.py index 3fefafe..df4a54f 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -172,6 +172,7 @@ class Decision(Enum): READ_MODE = "r" WRITE_MODE = "w" + class GasCostTracker: """Class to track and report gas costs.""" diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 7db3e69..9d14b54 100644 --- a/packages/valory/skills/liquidity_trader_abci/skill.yaml +++ b/packages/valory/skills/liquidity_trader_abci/skill.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m - behaviours.py: bafybeibsqgvdb5wctidvlubqy73bfekx3pr77yf535t3f37g42dbomf6nu + behaviours.py: bafybeif62wbf2sf4hfwwujdvk3qhu7paw6oa77mahyoe5in65ki7m46b74 dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeie3vom7fwl5ho6xanje3r7tab7y3a5ij5gs6qvjh2uavbpitffyzu handlers.py: bafybeih2zlmkyntlr7zx4mokqkmpcw7qczfbo47g766kndbv7zv7oqjv6e diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index f9ecfa8..5a90d26 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -24,7 +24,7 @@ skills: - valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny - valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri - valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq -- valory/liquidity_trader_abci:0.1.0:bafybeic7jqif5a6q4yqotupd3unkm3jxdyldyln4ssgzttcy74yotbjn3q +- valory/liquidity_trader_abci:0.1.0:bafybeidfg3auronrhdd6yxrkqkeop5vjh4vqzhiuhghtlvnupe26rwepre - valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq behaviours: main: From 00fd60dd5bbd24b2be5fbdf306dff27007e61eb8 Mon Sep 17 00:00:00 2001 From: Divya-Solulab Date: Fri, 29 Nov 2024 22:18:59 +0530 Subject: [PATCH 52/52] fix: add temporary workflow for pushing docker images --- .github/workflows/push_docker_images.yml | 104 +++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 .github/workflows/push_docker_images.yml diff --git a/.github/workflows/push_docker_images.yml b/.github/workflows/push_docker_images.yml new file mode 100644 index 0000000..0133f15 --- /dev/null +++ b/.github/workflows/push_docker_images.yml @@ -0,0 +1,104 @@ +name: Temporary Push Docker Images + +on: + workflow_dispatch: + inputs: + branch: + description: 'Branch to build from' + required: true + default: 'main' + push: + tags: + - 'dev.*' + pull_request: + branches: + - main + +jobs: + publish-packages: + name: Push Packages + runs-on: ubuntu-20.04 + strategy: + matrix: + os: [ubuntu-latest] + python-version: ["3.10"] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-versions }} + - uses: addnab/docker-run-action@v3 + with: + image: valory/open-autonomy-user:latest + options: -v ${{ github.workspace }}:/work + run: | + echo "Pushing Packages" + cd /work + export AUTHOR=$(grep 'service' packages/packages.json | awk -F/ '{print $2}' | head -1) + autonomy init --reset --author $AUTHOR --ipfs --remote + autonomy push-all + publish-images: + name: Publish Docker Images + runs-on: ubuntu-20.04 + needs: + - "publish-packages" + strategy: + matrix: + os: [ubuntu-latest] + python-version: ["3.10"] + env: + DOCKER_USER: ${{secrets.DOCKER_USER}} + DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up tag and vars + uses: addnab/docker-run-action@v3 + with: + image: valory/open-autonomy-user:latest + options: -v ${{ github.workspace }}:/work + run: | + echo "Setting Tag Images" + cd /work + apt-get update && apt-get install git -y || exit 1 + git config --global --add safe.directory /work + export TAG=$(git describe --exact-match --tags $(git rev-parse HEAD)) || exit 1 + if [ $? -eq 0 ]; then + export TAG=`echo $TAG | sed 's/^v//'` + else + echo "You are not on a tagged branch" + exit 1 + fi + echo VERSION=$TAG> env.sh + echo AUTHOR=$(grep 'service/' packages/packages.json | awk -F/ '{print $2}' | head -1) >> env.sh + echo SERVICE=$(grep 'service/' packages/packages.json | awk -F/ '{print $3}' | head -1) >> env.sh + echo AGENT=$(grep 'agent/' packages/packages.json | awk -F/ '{print $3}' | head -1) >> env.sh + echo DEFAULT_IMAGE_TAG=$(cat packages/packages.json | grep agent/ | awk -F: '{print $2}' | tr -d '", ' | head -n 1) >> env.sh + cat env.sh + - uses: addnab/docker-run-action@v3 + name: Build Images + with: + image: valory/open-autonomy-user:latest + options: -v ${{ github.workspace }}:/work + shell: bash + run: | + echo "Building Docker Images" + cd /work + source env.sh || exit 1 + echo "Building images for $AUTHOR for service $SERVICE" + autonomy init --reset --author $AUTHOR --ipfs --remote + autonomy fetch $AUTHOR/$SERVICE --service --local || exit 1 + cd $SERVICE || exit 1 + autonomy build-image || exit 1 + autonomy build-image --version $VERSION || exit 1 + - name: Docker login + run: | + echo $DOCKER_PASSWORD | docker login -u $DOCKER_USER --password-stdin + - name: Docker Push + run: | + source env.sh + echo "Pushing $DOCKER_USER/oar-$AGENT:$VERSION" + echo "Pushing $DOCKER_USER/oar-$AGENT:$DEFAULT_IMAGE_TAG" + docker push $DOCKER_USER/oar-$AGENT:$VERSION + docker push $DOCKER_USER/oar-$AGENT:$DEFAULT_IMAGE_TAG