diff --git a/.github/workflows/main_workflow.yml b/.github/workflows/main_workflow.yml index 2561a6db..2294ba89 100644 --- a/.github/workflows/main_workflow.yml +++ b/.github/workflows/main_workflow.yml @@ -315,4 +315,4 @@ jobs: - name: e2e tests run: | - tox -e py${{ matrix.python-version }} -- -m 'e2e' + tox -e py${{ matrix.python-version }} -- -m 'e2e' \ No newline at end of file diff --git a/.gitignore b/.gitignore index 879348c2..b43cd9a4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ optimus assets.json current_pool.json gas_costs.json +portfolio.json Pipfile.lock packages/valory/agents/* diff --git a/.gitleaksignore b/.gitleaksignore index a8001327..c5c8d6a4 100644 --- a/.gitleaksignore +++ b/.gitleaksignore @@ -538,3 +538,13 @@ ec9631d4be1e7651cbc94b9b1b93f301f10887f5:packages/valory/skills/optimus_abci/mod 25935bdc6d052b1dff988a0378a1095b3c503790:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.1f7c5dc2.js.map:generic-api-key:1 18619cdd50437f3c2813fdec906d2a07b2bd4f1b:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.d1485dfa.js.map:generic-api-key:1 18619cdd50437f3c2813fdec906d2a07b2bd4f1b:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.d1485dfa.js.map:generic-api-key:1 +320f0683072fb20fa06d9d744eb655d191831e6e:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.d1640d96.js.map:generic-api-key:2 +320f0683072fb20fa06d9d744eb655d191831e6e:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.d1640d96.js.map:generic-api-key:2 +7a91660b84b8e2e1bbfcd704b1bcda81fb08de87:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.6777ffd6.js.map:generic-api-key:2 +7a91660b84b8e2e1bbfcd704b1bcda81fb08de87:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.6777ffd6.js.map:generic-api-key:2 +3980b598a8e06ef707cc9c26aac07d2d71c5f94a:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.1f7c5dc2.js.map:generic-api-key:2 +3980b598a8e06ef707cc9c26aac07d2d71c5f94a:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.1f7c5dc2.js.map:generic-api-key:2 +ec9631d4be1e7651cbc94b9b1b93f301f10887f5:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.d1485dfa.js.map:generic-api-key:2 +ec9631d4be1e7651cbc94b9b1b93f301f10887f5:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.d1485dfa.js.map:generic-api-key:2 +18619cdd50437f3c2813fdec906d2a07b2bd4f1b:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.d1485dfa.js.map:generic-api-key:2 +18619cdd50437f3c2813fdec906d2a07b2bd4f1b:packages/valory/skills/optimus_abci/modius-ui-build/static/js/main.d1485dfa.js.map:generic-api-key:2 diff --git a/packages/packages.json b/packages/packages.json index f911d527..53296c41 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -1,48 +1,48 @@ { "dev": { "custom/valory/merkl_pools_search/0.1.0": "bafybeihg3shkrvx7yzrqenjow23ebcl5xskrzrqkj47er2z47xhhs2z6ma", - "custom/valory/asset_lending/0.1.0": "bafybeigjrvck43iqoh427ziph7ov4m2kg332prbwybxkepjfv536yczxky", - "custom/valory/max_apr_selection/0.1.0": "bafybeigjg64trjtccqn2ovix3r6natxbtk6ypofv42bw5cli23uh3bq2ay", - "custom/valory/balancer_pools_search/0.1.0": "bafybeid7tyebp2cmnkclqysnhjufppf7fggbpl7sigqinuigtxaj74fc3m", - "custom/valory/uniswap_pools_search/0.1.0": "bafybeib7ibbjnhycdzyd3ind2no3sn77wxnlde3etxzh65lycj6obodq2e", - "contract/valory/balancer_weighted_pool/0.1.0": "bafybeidthw5afkeswxqockblrzzgmeiwhqgukytyr4veaf4ok66qv3zjfe", - "contract/valory/balancer_vault/0.1.0": "bafybeibd3luq5ghhnhrkzeaytinwklnajk4urkd6ihbd26swziqfkjsfeq", - "contract/valory/erc20/0.1.0": "bafybeidybudhhcv73fhccxyxop3in2k4ckswowajqsxnwt2oqysf6munom", - "contract/valory/uniswap_v3_non_fungible_position_manager/0.1.0": "bafybeihfc5cnconeewuuqfmwrqxcxv2pfxla3hktutayj2rwc6miafwz74", - "contract/valory/uniswap_v3_pool/0.1.0": "bafybeifgh7t2nv3s6gw6axyelnq27wkuc6azw56ygqcyu32ujxg66gnxse", - "contract/valory/merkl_distributor/0.1.0": "bafybeibyoewdq4l6ccgwg2v5z5dqzmbbrvizdtbb4zuz37mnb55lkxv5aa", - "contract/valory/staking_token/0.1.0": "bafybeic4ug4p22q4hsh5z4hhjrishvnswino2fsleqsgdxlusd5h2x5hwy", - "contract/valory/staking_activity_checker/0.1.0": "bafybeiajn7vzmxkiqoruknqh3heb3qxlflukibalxkm6zxdvmazdoou7ou", - "contract/valory/sturdy_yearn_v3_vault/0.1.0": "bafybeigmc3f5xqrcdjakandeang56vtzp5qcqbjk4fven5d2h6t272kmpu", - "skill/valory/liquidity_trader_abci/0.1.0": "bafybeiflqvklhp4lmbxcr7p35z3mf4nk3wist5dnou7x2xgjeldho3yjeq", - "skill/valory/optimus_abci/0.1.0": "bafybeidy4atkeqcutzpl5qbdr4fd6tur4bdsis2vzbhjzheapstopasqfq", - "agent/valory/optimus/0.1.0": "bafybeigfowrc23rky2vdgfbzjhtwpz5wysxzpn7owo3xgnkjpbhe5v6z4q", - "service/valory/optimus/0.1.0": "bafybeiaurdb4qe7wgnpepfhxrmx7q3moa33rpqmdogvdn4jsexnrahanum" + "custom/valory/asset_lending/0.1.0": "bafybeicdlieaqmu43pe64x3hphzg2y6xtwivfjinzp5zjqm6poxwqbd6ui", + "custom/valory/max_apr_selection/0.1.0": "bafybeig6pg6rxbgn4jp4s7aou4iwlgzwihug52fl256ysubpn3fvwysqpa", + "custom/valory/balancer_pools_search/0.1.0": "bafybeiewzkxfe5aw5c7yvkv4v5dklkyclsi6bezv53v5y3fplfrbnz7ad4", + "custom/valory/uniswap_pools_search/0.1.0": "bafybeihxeuahk6mkg5mmh6xiyot6rnwnenpmcpi3fxk4thloevdbuowo4y", + "contract/valory/balancer_weighted_pool/0.1.0": "bafybeiarpidfs4npbuectmuo4srv2o4agfuafvncelbywcgd5y5dtgeyke", + "contract/valory/balancer_vault/0.1.0": "bafybeiff3ltn6xoh3otuywk2j3yxujdlfzcvri66slnufv5t4hkj5musfa", + "contract/valory/erc20/0.1.0": "bafybeie2wet3factwc6pwqvqpwqu3prtv75lmbqo5y4onda5y533ufdqhy", + "contract/valory/uniswap_v3_non_fungible_position_manager/0.1.0": "bafybeid7h7sxxoglhhqbcz4g64fwbgj6akwecv4ktolhefcsziqntnnt2e", + "contract/valory/uniswap_v3_pool/0.1.0": "bafybeiehh6y7qswdnfocoi2ku57w4k2rilambgt2bfp6co7vscghmqpjte", + "contract/valory/merkl_distributor/0.1.0": "bafybeidaxrbcrh6icl3cmuxfijaxsobsuonuha754jhl2cjdkhktivjfa4", + "contract/valory/staking_token/0.1.0": "bafybeiev3fx5wg4rs5rciqdxemdvt73fwu2nylv23i7g665jzorcyyjape", + "contract/valory/staking_activity_checker/0.1.0": "bafybeigse23vkx6rxws7ydkl44gtqs5z2g7fo4qejb36pjznegkbv5tkeu", + "contract/valory/sturdy_yearn_v3_vault/0.1.0": "bafybeid4krjmfca3dert6tackcut2tins24kunzfwxs4gu3zgdhzrkijkm", + "skill/valory/liquidity_trader_abci/0.1.0": "bafybeigky5zwfvigqsqhyiilxwig37ldth756lzc23uvfd4oxw7ygt37da", + "skill/valory/optimus_abci/0.1.0": "bafybeigl3o5wj2bgiuhxp6sp4dteygpa2yajhp7knkqa3ta4cb55pkcxgq", + "agent/valory/optimus/0.1.0": "bafybeia2xx6ruxvcodpyaey5lozjjhxwsat22znoznk6brse5zoqkf25jy", + "service/valory/optimus/0.1.0": "bafybeigbxddoe5hcvm3mlve77wjvaem5k6jd5vbtq575aj273uqqjj7zgq" }, "third_party": { - "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", - "protocol/valory/abci/0.1.0": "bafybeiaqmp7kocbfdboksayeqhkbrynvlfzsx4uy4x6nohywnmaig4an7u", - "protocol/valory/contract_api/1.0.0": "bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i", - "protocol/valory/http/1.0.0": "bafybeifugzl63kfdmwrxwphrnrhj7bn6iruxieme3a4ntzejf6kmtuwmae", - "protocol/valory/ledger_api/1.0.0": "bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni", - "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": "bafybeidipx4cmchxdu5i2v67rno7muie7ckjhmasaj64tv2vtj4fveklxi", - "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeifr4xpmzeb5hvpgd6h4nxlsu3ef2c3f6l5bgs34vym5ok6vllwhmy", + "protocol/open_aea/signing/1.0.0": "bafybeig2d36zxy65vd7fwhs7scotuktydcarm74aprmrb5nioiymr3yixm", + "protocol/valory/abci/0.1.0": "bafybeiatodhboj6a3p35x4f4b342lzk6ckxpud23awnqbxwjeon3k5y36u", + "protocol/valory/contract_api/1.0.0": "bafybeid247uig2ekykdumh7ewhp2cdq7rchaeqjj6e7urx35zfpdl5zrn4", + "protocol/valory/http/1.0.0": "bafybeih4azmfwtamdbkhztkm4xitep3gx6tfdnoz6tvllmaqnhu3klejfa", + "protocol/valory/ledger_api/1.0.0": "bafybeihmqzcbj6t7vxz2aehd5726ofnzsfjs5cwlf42ro4tn6i34cbfrc4", + "protocol/valory/acn/1.1.0": "bafybeic6h55ov5lrzbah6fate54c4u6spopcexxspw3abotbmffabfddeu", + "protocol/valory/ipfs/0.1.0": "bafybeifi2nri7sprmkez4rqzwb4lnu6peoy3bax5k6asf6k5ms7kmjpmkq", + "protocol/valory/tendermint/0.1.0": "bafybeigydrbfrlmr4f7shbtqx44kvmbg22im27mxdap2e3m5tkti6t445y", + "contract/valory/service_registry/0.1.0": "bafybeiabptpha4hnd7avieeqdzekwq6cx7bfshanrchfcqafq2kpa5bqwu", + "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeie3h2hpzlrie2yc5r3eypce546am5bxlgvzqgjols34yf6z523o6q", "contract/valory/multisend/0.1.0": "bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y", - "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": "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": "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" + "contract/valory/gnosis_safe/0.1.0": "bafybeidao75ykdhkm7brclsslx3iinmgnvdiot5npanfbmatcaqrcvlsk4", + "connection/valory/abci/0.1.0": "bafybeiebm3m3gfgkbdiym6jkl4idbfpjqjjoggmg6pgoc55ijeh7622gaa", + "connection/valory/http_client/0.23.0": "bafybeid5ffvg76ejjoese7brj5ji3lx66cu7p2ixfwflpo6rgofkypfd7y", + "connection/valory/ipfs/0.1.0": "bafybeici34tuoym3evnzfgbnmgbdy5smshh5jx6ew6zfchmm4tmyzvpg34", + "connection/valory/ledger/0.19.0": "bafybeibiayfscw4badpr545f47hsvc2r5lgfpgzib5q4h4u6kkosdsytby", + "connection/valory/p2p_libp2p_client/0.1.0": "bafybeic6ayusdwy4dks75njwk32ac7ur7salgllwf4fdc34ue5z2k5iz4q", + "connection/valory/http_server/0.22.0": "bafybeic3jpkum7g6qo6x6vdrmvvhj7vqw7ec2op72uc3yfhmnlp5hn3joy", + "skill/valory/abstract_abci/0.1.0": "bafybeia2egqettv7fd4yryya5ocrxdmpxibvt5ayjg2npvblz73rjpoxla", + "skill/valory/reset_pause_abci/0.1.0": "bafybeigebq46oqz2mx2iajupr6p5pgm6z5pvfye5w6zypsseuqtvta7b4a", + "skill/valory/registration_abci/0.1.0": "bafybeifaa6ejpihwxxxswqd5qfy63rixml43d3ljnezilflvdtclspjj6y", + "skill/valory/abstract_round_abci/0.1.0": "bafybeia27qmw6w5ds5fcrpj2475brnz742aampe3sgochloijs2l7jovai", + "skill/valory/termination_abci/0.1.0": "bafybeieurwmfernodqyczj5ertsgfbjtjnrlgvte7sli4sajnbopty7inu", + "skill/valory/transaction_settlement_abci/0.1.0": "bafybeifkftgkyzrxwxjdyqixpp7vk6aqmufikalmwx3kydtlg74tonu47u" } } \ 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 0e19fb3f..1fd3ea38 100644 --- a/packages/valory/agents/optimus/aea-config.yaml +++ b/packages/valory/agents/optimus/aea-config.yaml @@ -8,46 +8,46 @@ fingerprint: __init__.py: bafybeigx5mdvnamsqfum5ut7htok2y5vsnu7lrvms5gfvqi7hmv7sfbo3a fingerprint_ignore_patterns: [] connections: -- 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:bafybeias6633a2337nhq6nn5ikq4jaig47v63nxv2ixkjr6qqrqaywqara -- valory/ledger:0.19.0:bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e -- valory/p2p_libp2p_client:0.1.0:bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e +- valory/abci:0.1.0:bafybeiebm3m3gfgkbdiym6jkl4idbfpjqjjoggmg6pgoc55ijeh7622gaa +- valory/http_client:0.23.0:bafybeid5ffvg76ejjoese7brj5ji3lx66cu7p2ixfwflpo6rgofkypfd7y +- valory/http_server:0.22.0:bafybeic3jpkum7g6qo6x6vdrmvvhj7vqw7ec2op72uc3yfhmnlp5hn3joy +- valory/ipfs:0.1.0:bafybeici34tuoym3evnzfgbnmgbdy5smshh5jx6ew6zfchmm4tmyzvpg34 +- valory/ledger:0.19.0:bafybeibiayfscw4badpr545f47hsvc2r5lgfpgzib5q4h4u6kkosdsytby +- valory/p2p_libp2p_client:0.1.0:bafybeic6ayusdwy4dks75njwk32ac7ur7salgllwf4fdc34ue5z2k5iz4q contracts: -- valory/gnosis_safe:0.1.0:bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi -- valory/gnosis_safe_proxy_factory:0.1.0:bafybeifr4xpmzeb5hvpgd6h4nxlsu3ef2c3f6l5bgs34vym5ok6vllwhmy +- valory/gnosis_safe:0.1.0:bafybeidao75ykdhkm7brclsslx3iinmgnvdiot5npanfbmatcaqrcvlsk4 +- valory/gnosis_safe_proxy_factory:0.1.0:bafybeie3h2hpzlrie2yc5r3eypce546am5bxlgvzqgjols34yf6z523o6q - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/service_registry:0.1.0:bafybeidipx4cmchxdu5i2v67rno7muie7ckjhmasaj64tv2vtj4fveklxi -- valory/balancer_weighted_pool:0.1.0:bafybeidthw5afkeswxqockblrzzgmeiwhqgukytyr4veaf4ok66qv3zjfe -- valory/balancer_vault:0.1.0:bafybeibd3luq5ghhnhrkzeaytinwklnajk4urkd6ihbd26swziqfkjsfeq -- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeihfc5cnconeewuuqfmwrqxcxv2pfxla3hktutayj2rwc6miafwz74 -- valory/uniswap_v3_pool:0.1.0:bafybeifgh7t2nv3s6gw6axyelnq27wkuc6azw56ygqcyu32ujxg66gnxse -- valory/sturdy_yearn_v3_vault:0.1.0:bafybeigmc3f5xqrcdjakandeang56vtzp5qcqbjk4fven5d2h6t272kmpu +- valory/service_registry:0.1.0:bafybeiabptpha4hnd7avieeqdzekwq6cx7bfshanrchfcqafq2kpa5bqwu +- valory/balancer_weighted_pool:0.1.0:bafybeiarpidfs4npbuectmuo4srv2o4agfuafvncelbywcgd5y5dtgeyke +- valory/balancer_vault:0.1.0:bafybeiff3ltn6xoh3otuywk2j3yxujdlfzcvri66slnufv5t4hkj5musfa +- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeid7h7sxxoglhhqbcz4g64fwbgj6akwecv4ktolhefcsziqntnnt2e +- valory/uniswap_v3_pool:0.1.0:bafybeiehh6y7qswdnfocoi2ku57w4k2rilambgt2bfp6co7vscghmqpjte +- valory/sturdy_yearn_v3_vault:0.1.0:bafybeid4krjmfca3dert6tackcut2tins24kunzfwxs4gu3zgdhzrkijkm protocols: -- open_aea/signing:1.0.0:bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi -- valory/abci:0.1.0:bafybeiaqmp7kocbfdboksayeqhkbrynvlfzsx4uy4x6nohywnmaig4an7u -- valory/acn:1.1.0:bafybeidluaoeakae3exseupaea4i3yvvk5vivyt227xshjlffywwxzcxqe -- valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i -- valory/http:1.0.0:bafybeifugzl63kfdmwrxwphrnrhj7bn6iruxieme3a4ntzejf6kmtuwmae -- valory/ipfs:0.1.0:bafybeiftxi2qhreewgsc5wevogi7yc5g6hbcbo4uiuaibauhv3nhfcdtvm -- valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni -- valory/tendermint:0.1.0:bafybeig4mi3vmlv5zpbjbfuzcgida6j5f2nhrpedxicmrrfjweqc5r7cra +- open_aea/signing:1.0.0:bafybeig2d36zxy65vd7fwhs7scotuktydcarm74aprmrb5nioiymr3yixm +- valory/abci:0.1.0:bafybeiatodhboj6a3p35x4f4b342lzk6ckxpud23awnqbxwjeon3k5y36u +- valory/acn:1.1.0:bafybeic6h55ov5lrzbah6fate54c4u6spopcexxspw3abotbmffabfddeu +- valory/contract_api:1.0.0:bafybeid247uig2ekykdumh7ewhp2cdq7rchaeqjj6e7urx35zfpdl5zrn4 +- valory/http:1.0.0:bafybeih4azmfwtamdbkhztkm4xitep3gx6tfdnoz6tvllmaqnhu3klejfa +- valory/ipfs:0.1.0:bafybeifi2nri7sprmkez4rqzwb4lnu6peoy3bax5k6asf6k5ms7kmjpmkq +- valory/ledger_api:1.0.0:bafybeihmqzcbj6t7vxz2aehd5726ofnzsfjs5cwlf42ro4tn6i34cbfrc4 +- valory/tendermint:0.1.0:bafybeigydrbfrlmr4f7shbtqx44kvmbg22im27mxdap2e3m5tkti6t445y skills: -- valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq -- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/liquidity_trader_abci:0.1.0:bafybeiflqvklhp4lmbxcr7p35z3mf4nk3wist5dnou7x2xgjeldho3yjeq -- valory/optimus_abci:0.1.0:bafybeidy4atkeqcutzpl5qbdr4fd6tur4bdsis2vzbhjzheapstopasqfq -- 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 +- valory/abstract_abci:0.1.0:bafybeia2egqettv7fd4yryya5ocrxdmpxibvt5ayjg2npvblz73rjpoxla +- valory/abstract_round_abci:0.1.0:bafybeia27qmw6w5ds5fcrpj2475brnz742aampe3sgochloijs2l7jovai +- valory/liquidity_trader_abci:0.1.0:bafybeigky5zwfvigqsqhyiilxwig37ldth756lzc23uvfd4oxw7ygt37da +- valory/optimus_abci:0.1.0:bafybeigl3o5wj2bgiuhxp6sp4dteygpa2yajhp7knkqa3ta4cb55pkcxgq +- valory/registration_abci:0.1.0:bafybeifaa6ejpihwxxxswqd5qfy63rixml43d3ljnezilflvdtclspjj6y +- valory/reset_pause_abci:0.1.0:bafybeigebq46oqz2mx2iajupr6p5pgm6z5pvfye5w6zypsseuqtvta7b4a +- valory/termination_abci:0.1.0:bafybeieurwmfernodqyczj5ertsgfbjtjnrlgvte7sli4sajnbopty7inu +- valory/transaction_settlement_abci:0.1.0:bafybeifkftgkyzrxwxjdyqixpp7vk6aqmufikalmwx3kydtlg74tonu47u customs: - valory/merkl_pools_search:0.1.0:bafybeihg3shkrvx7yzrqenjow23ebcl5xskrzrqkj47er2z47xhhs2z6ma -- valory/max_apr_selection:0.1.0:bafybeigjg64trjtccqn2ovix3r6natxbtk6ypofv42bw5cli23uh3bq2ay -- valory/balancer_pools_search:0.1.0:bafybeid7tyebp2cmnkclqysnhjufppf7fggbpl7sigqinuigtxaj74fc3m -- valory/uniswap_pools_search:0.1.0:bafybeib7ibbjnhycdzyd3ind2no3sn77wxnlde3etxzh65lycj6obodq2e -- valory/asset_lending:0.1.0:bafybeigjrvck43iqoh427ziph7ov4m2kg332prbwybxkepjfv536yczxky +- valory/max_apr_selection:0.1.0:bafybeig6pg6rxbgn4jp4s7aou4iwlgzwihug52fl256ysubpn3fvwysqpa +- valory/balancer_pools_search:0.1.0:bafybeiewzkxfe5aw5c7yvkv4v5dklkyclsi6bezv53v5y3fplfrbnz7ad4 +- valory/uniswap_pools_search:0.1.0:bafybeihxeuahk6mkg5mmh6xiyot6rnwnenpmcpi3fxk4thloevdbuowo4y +- valory/asset_lending:0.1.0:bafybeicdlieaqmu43pe64x3hphzg2y6xtwivfjinzp5zjqm6poxwqbd6ui default_ledger: ethereum required_ledgers: - ethereum @@ -79,7 +79,7 @@ logging_config: skill_exception_policy: stop_and_exit dependencies: open-aea-ledger-ethereum: - version: ==1.60.0 + version: ==1.64.0 default_connection: null --- public_id: valory/abci:0.1.0 @@ -116,7 +116,12 @@ config: default_gas_price_strategy: ${str:eip1559} gas_price_strategies: eip1559: - fee_history_percentile: 50 + fee_history_percentile: ${int:50} + fee_history_blocks: ${int:20} + min_allowed_tip: ${int:1} + fallback_estimate: + maxFeePerGas: ${int:200000000} + maxPriorityFeePerGas: ${int:30000000} --- public_id: valory/p2p_libp2p_client:0.1.0 type: connection @@ -253,13 +258,13 @@ models: assets_info_filename: ${str:assets.json} pool_info_filename: ${str:current_pool.json} gas_cost_info_filename: ${str:gas_costs.json} - min_swap_amount_threshold: ${int:5} + min_swap_amount_threshold: ${int:1} 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:["mode"]} staking_chain: ${str:""} - file_hash_to_strategies: ${str:{"bafybeibywngxfy5e2crtkvgfvad2ciepg3qk3h54eg3vbjoxwvf2j55wzq":"merkl_pools_search","bafybeigjg64trjtccqn2ovix3r6natxbtk6ypofv42bw5cli23uh3bq2ay":"max_apr_selection","bafybeid7tyebp2cmnkclqysnhjufppf7fggbpl7sigqinuigtxaj74fc3m":"balancer_pools_search","bafybeib6po22vum6uixlft2zqpxgsekjeccbzs75ii5xbi4rl5ggwotsky":"uniswap_pools_search","bafybeigjrvck43iqoh427ziph7ov4m2kg332prbwybxkepjfv536yczxky":"asset_lending"}} + file_hash_to_strategies: ${str:{"bafybeibywngxfy5e2crtkvgfvad2ciepg3qk3h54eg3vbjoxwvf2j55wzq":"merkl_pools_search","bafybeig6pg6rxbgn4jp4s7aou4iwlgzwihug52fl256ysubpn3fvwysqpa":"max_apr_selection","bafybeiewzkxfe5aw5c7yvkv4v5dklkyclsi6bezv53v5y3fplfrbnz7ad4":"balancer_pools_search","bafybeihxeuahk6mkg5mmh6xiyot6rnwnenpmcpi3fxk4thloevdbuowo4y":"uniswap_pools_search","bafybeicdlieaqmu43pe64x3hphzg2y6xtwivfjinzp5zjqm6poxwqbd6ui":"asset_lending"}} 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"}},"uniswap_pools_search":{"graphql_endpoints":{"optimism":"https://gateway.thegraph.com/api/575c6d9779719bc1ced85444c98441be/subgraphs/id/7SVwgBfXoWmiK6x1NF1VEo1szkeWLniqWN1oYsX3UMb5","base":"https://gateway.thegraph.com/api/575c6d9779719bc1ced85444c98441be/subgraphs/id/GqzP4Xaehti8KSfQmv3ZctFSjnSUYZ4En5NRsiTbvZpz"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"},"asset_lending":{"endpoint":"https://us-central1-stu-dashboard-a0ba2.cloudfunctions.net/v2Aggregators","lending_asset":"0x4200000000000000000000000000000000000006"}}} selected_strategies: ${list:["asset_lending","balancer_pools_search"]} selected_protocols: ${list:["BALANCER","UNISWAP_V3","STURDY"]} diff --git a/packages/valory/contracts/balancer_vault/contract.yaml b/packages/valory/contracts/balancer_vault/contract.yaml index b0162c5c..d36b85f7 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.60.0 + version: ==1.64.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 3cbeb20a..981726c5 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.60.0 + version: ==1.64.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/erc20/contract.yaml b/packages/valory/contracts/erc20/contract.yaml index efdc48bb..53cffa3a 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.60.0 + version: ==1.64.0 open-aea-test-autonomy: - version: ==0.18.3 + version: ==0.19.4 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 d3817c03..47ee6763 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.60.0 + version: ==1.64.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 2eac8b45..7a17aa3c 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.60.0 + version: ==1.64.0 open-aea-test-autonomy: - version: ==0.18.3 + version: ==0.19.4 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 83f188d6..3a3f7b8e 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.60.0 + version: ==1.64.0 open-aea-test-autonomy: - version: ==0.18.3 + version: ==0.19.4 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/sturdy_yearn_v3_vault/contract.yaml b/packages/valory/contracts/sturdy_yearn_v3_vault/contract.yaml index a701a842..751b2efd 100644 --- a/packages/valory/contracts/sturdy_yearn_v3_vault/contract.yaml +++ b/packages/valory/contracts/sturdy_yearn_v3_vault/contract.yaml @@ -16,7 +16,7 @@ contract_interface_paths: ethereum: build/YearnV3Vault.json dependencies: open-aea-ledger-ethereum: - version: ==1.60.0 + version: ==1.64.0 web3: version: <7,>=6.0.0 eth_abi: 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 a5951903..bd80faaf 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.60.0 + version: ==1.64.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 1aab19af..25b83bbe 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.60.0 + version: ==1.64.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/customs/asset_lending/asset_lending.py b/packages/valory/customs/asset_lending/asset_lending.py index f4788902..c116b4a4 100644 --- a/packages/valory/customs/asset_lending/asset_lending.py +++ b/packages/valory/customs/asset_lending/asset_lending.py @@ -30,6 +30,7 @@ FETCH_AGGREGATOR_ENDPOINT = ( "https://us-central1-stu-dashboard-a0ba2.cloudfunctions.net/v2Aggregators" ) +LENDING = "lending" # Map known token symbols to CoinGecko IDs coingecko_name_to_id = { @@ -390,6 +391,7 @@ def format_aggregator(aggregator) -> Dict[str, Any]: "sharpe_ratio": aggregator["sharpe_ratio"], "depth_score": aggregator["depth_score"], "max_position_size": aggregator["max_position_size"], + "type": aggregator["type"] } @@ -423,6 +425,7 @@ def get_best_opportunities( depth_score, max_position_size = analyze_vault_liquidity(aggregator) aggregator["depth_score"] = depth_score aggregator["max_position_size"] = max_position_size + aggregator["type"] = LENDING formatted_results = [ format_aggregator(aggregator) for aggregator in filtered_aggregators diff --git a/packages/valory/customs/asset_lending/component.yaml b/packages/valory/customs/asset_lending/component.yaml index 56b65f1a..ddac2e1f 100644 --- a/packages/valory/customs/asset_lending/component.yaml +++ b/packages/valory/customs/asset_lending/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeiguqxojq5hkgi55jqdl5p3rvz62jwxxw6ygorkym7ol3ps5qhh7rq - asset_lending.py: bafybeib3dd2feyhdgldaueo2yyw2ex442pslm7vg7hdue52sisyvgj6are + asset_lending.py: bafybeifkypwujmey6jgspgi6dotk6wmau6ztekvtvqgcrx4a7dsalvr3py fingerprint_ignore_patterns: [] entry_point: asset_lending.py callable: run diff --git a/packages/valory/customs/balancer_pools_search/balancer_pools_search.py b/packages/valory/customs/balancer_pools_search/balancer_pools_search.py index 16e331ee..80043d75 100644 --- a/packages/valory/customs/balancer_pools_search/balancer_pools_search.py +++ b/packages/valory/customs/balancer_pools_search/balancer_pools_search.py @@ -50,6 +50,7 @@ } EXCLUDED_APR_TYPES = {"IB_YIELD", "MERKL", "SWAP_FEE", "SWAP_FEE_7D", "SWAP_FEE_30D"} +LP = "lp" errors = [] @lru_cache(None) @@ -435,6 +436,7 @@ def format_pool_data(pool) -> Dict[str, Any]: "sharpe_ratio": pool["sharpe_ratio"], "depth_score": pool["depth_score"], "max_position_size": pool["max_position_size"], + "type": pool["trading_type"] } @@ -488,6 +490,7 @@ def get_opportunities( pool["id"], pool["chain"].upper() ) + pool["trading_type"] = LP return [format_pool_data(pool) for pool in filtered_pools] diff --git a/packages/valory/customs/balancer_pools_search/component.yaml b/packages/valory/customs/balancer_pools_search/component.yaml index 34d42abc..11c27815 100644 --- a/packages/valory/customs/balancer_pools_search/component.yaml +++ b/packages/valory/customs/balancer_pools_search/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeievwo2yoa6vekod333ttto66vpc27lm6wepspnhwyrqxtjx7djzw4 - balancer_pools_search.py: bafybeid5ndxikypd4hxo2fvtnhnxss45isyqlrhyppdhvkrhkw5f45xxsq + balancer_pools_search.py: bafybeidm2hlckbmuh2rlodczqjdxcgjimkgcjx4ocjk4cxokpo6t3aubba 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 a76826a0..3699ad7b 100644 --- a/packages/valory/customs/max_apr_selection/component.yaml +++ b/packages/valory/customs/max_apr_selection/component.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeiebxffqdqb67sa4w2xmmo5q3bnjflr2xeu4xsx3ynrsepf5js2cja - max_apr_selection.py: bafybeif3ttba3fzbpzwkgfwnrurlwqinnjyonypwrpgw4q34i6xwdzloqm + max_apr_selection.py: bafybeigukpzbsb7hayfwbgnadap3raff3njo6tjzjascbhhcpfertydjzi fingerprint_ignore_patterns: [] entry_point: max_apr_selection.py callable: run diff --git a/packages/valory/customs/max_apr_selection/max_apr_selection.py b/packages/valory/customs/max_apr_selection/max_apr_selection.py index 2017a1fb..acca24e8 100644 --- a/packages/valory/customs/max_apr_selection/max_apr_selection.py +++ b/packages/valory/customs/max_apr_selection/max_apr_selection.py @@ -34,6 +34,9 @@ def calculate_composite_score(pool, max_values): depth_score = pool.get("depth_score", math.nan) il_risk_score = pool.get("il_risk_score", math.nan) + if sharpe_ratio is None or depth_score is None or il_risk_score is None: + return 0 + if math.isnan(sharpe_ratio) or math.isnan(depth_score) or math.isnan(il_risk_score): return 0 @@ -170,7 +173,7 @@ def apply_risk_thresholds_and_select_optimal_strategy( f"Top opportunity found with composite score: {optimal_opportunities[0]['composite_score']}" ) else: - logs.append.warning( + logs.append( f"No opportunities significantly better than the least performing current opportunity with composite score: {least_performing_score}" ) return {"optimal_strategies": [], "position_to_exit": {}} diff --git a/packages/valory/customs/uniswap_pools_search/component.yaml b/packages/valory/customs/uniswap_pools_search/component.yaml index d3559e7b..6f7ff975 100644 --- a/packages/valory/customs/uniswap_pools_search/component.yaml +++ b/packages/valory/customs/uniswap_pools_search/component.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: __init__.py: bafybeiej6rb7f54w4epuyvwj3fays7lo6rqqxetjdrzc52k3q5qcbckv4a - uniswap_pools_search.py: bafybeiekq3lzpfpdvfvrxnjg5dan5sgtywsqhpi2tuaa2nibrcrp5eqdji + uniswap_pools_search.py: bafybeidhf6tydd4sk4b24c2uliaqtvlpwlwkowenjc7eva4z27ichinbny fingerprint_ignore_patterns: [] entry_point: uniswap_pools_search.py callable: run diff --git a/packages/valory/customs/uniswap_pools_search/uniswap_pools_search.py b/packages/valory/customs/uniswap_pools_search/uniswap_pools_search.py index c4c9d80e..bfe3db69 100644 --- a/packages/valory/customs/uniswap_pools_search/uniswap_pools_search.py +++ b/packages/valory/customs/uniswap_pools_search/uniswap_pools_search.py @@ -39,7 +39,7 @@ SCORE_PERCENTILE = 80 PRICE_IMPACT = 0.01 # 1% standard price impact MAX_POSITION_BASE = 50 # Base for maximum position calculation - +LP = "lp" CHAIN_URLS = { "mode": "https://1rpc.io/mode", "optimism": "https://mainnet.optimism.io", @@ -410,6 +410,7 @@ def format_pool_data(pool) -> Dict[str, Any]: "sharpe_ratio": pool["sharpe_ratio"], "depth_score": pool["depth_score"], "max_position_size": pool["max_position_size"], + "type": pool["type"] } @@ -456,6 +457,7 @@ def get_best_pools( ) pool["depth_score"] = depth_score pool["max_position_size"] = max_position_size + pool["type"] = LP return [format_pool_data(pool) for pool in filtered_pools] diff --git a/packages/valory/services/optimus/service.yaml b/packages/valory/services/optimus/service.yaml index c32f6c25..7321a8a9 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:bafybeigfowrc23rky2vdgfbzjhtwpz5wysxzpn7owo3xgnkjpbhe5v6z4q +agent: valory/optimus:0.1.0:bafybeia2xx6ruxvcodpyaey5lozjjhxwsat22znoznk6brse5zoqkf25jy number_of_agents: 1 deployment: agent: @@ -79,14 +79,14 @@ models: tendermint_p2p_url: ${TENDERMINT_P2P_URL_0:str:optimism_tm_0:26656} 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_activity_checker_contract_address: ${ACTIVITY_CHECKER_CONTRACT_ADDRESS:str:0x7Fd1F4b764fA41d19fe3f63C85d12bf64d2bbf68} staking_threshold_period: ${STAKING_THRESHOLD_PERIOD:int:5} 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} gas_cost_info_filename: ${GAS_COST_INFO_FILENAME:str:gas_costs.json} 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:5} + min_swap_amount_threshold: ${MIN_SWAP_AMOUNT_THRESHOLD:int:1} 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"}} @@ -94,7 +94,7 @@ models: target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism","mode"]} staking_chain: ${STAKING_CHAIN:str:""} initial_assets: ${INITIAL_ASSETS:str:{"mode":{"0x0000000000000000000000000000000000000000":"ETH","0xd988097fb8612cc24eeC14542bC03424c656005f":"USDC"}}} - file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeibywngxfy5e2crtkvgfvad2ciepg3qk3h54eg3vbjoxwvf2j55wzq":"merkl_pools_search","bafybeigjg64trjtccqn2ovix3r6natxbtk6ypofv42bw5cli23uh3bq2ay":"max_apr_selection","bafybeid7tyebp2cmnkclqysnhjufppf7fggbpl7sigqinuigtxaj74fc3m":"balancer_pools_search","bafybeib6po22vum6uixlft2zqpxgsekjeccbzs75ii5xbi4rl5ggwotsky":"uniswap_pools_search","bafybeigjrvck43iqoh427ziph7ov4m2kg332prbwybxkepjfv536yczxky":"asset_lending"}} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:str:{"bafybeibywngxfy5e2crtkvgfvad2ciepg3qk3h54eg3vbjoxwvf2j55wzq":"merkl_pools_search","bafybeig6pg6rxbgn4jp4s7aou4iwlgzwihug52fl256ysubpn3fvwysqpa":"max_apr_selection","bafybeiewzkxfe5aw5c7yvkv4v5dklkyclsi6bezv53v5y3fplfrbnz7ad4":"balancer_pools_search","bafybeihxeuahk6mkg5mmh6xiyot6rnwnenpmcpi3fxk4thloevdbuowo4y":"uniswap_pools_search","bafybeicdlieaqmu43pe64x3hphzg2y6xtwivfjinzp5zjqm6poxwqbd6ui":"asset_lending"}} 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"}},"uniswap_pools_search":{"graphql_endpoints":{"optimism":"https://gateway.thegraph.com/api/575c6d9779719bc1ced85444c98441be/subgraphs/id/7SVwgBfXoWmiK6x1NF1VEo1szkeWLniqWN1oYsX3UMb5","base":"https://gateway.thegraph.com/api/575c6d9779719bc1ced85444c98441be/subgraphs/id/7SVwgBfXoWmiK6x1NF1VEo1szkeWLniqWN1oYsX3UMb5"}},"balancer_pools_search":{"graphql_endpoint":"https://api-v3.balancer.fi/"},"asset_lending":{"endpoint":"https://us-central1-stu-dashboard-a0ba2.cloudfunctions.net/v2Aggregators","lending_asset":"0x4200000000000000000000000000000000000006"}}} selected_strategies: ${SELECTED_STRATEGIES:list:["asset_lending","balancer_pools_search","uniswap_pools_search"]} selected_protocols: ${SELECTED_PROTOCOLS:list:["BALANCER","UNISWAP_V3"]} @@ -139,7 +139,12 @@ config: default_gas_price_strategy: ${MODE_LEDGER_PRICING:str:eip1559} gas_price_strategies: eip1559: - fee_history_percentile: ${FEE_HISTORY_PERCENTILE:50} + fee_history_percentile: ${FEE_HISTORY_PERCENTILE:int:50} + fee_history_blocks: ${FEE_HISTORY_BLOCKS:int:20} + min_allowed_tip: ${MIN_ALLOWED_TIP:int:1} + fallback_estimate: + maxFeePerGas: ${MAX_FEE_PER_GAS:int:200000000} + maxPriorityFeePerGas: ${MAX_PRIORITY_FEE_PER_GAS:int:30000000} --- 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 f6faa42d..a45a1356 100644 --- a/packages/valory/skills/liquidity_trader_abci/behaviours.py +++ b/packages/valory/skills/liquidity_trader_abci/behaviours.py @@ -482,6 +482,9 @@ def _get_token_decimals( def _convert_to_token_units(self, amount: int, token_decimal: int = 18) -> str: """Convert smallest unit to token's base unit.""" + if token_decimal is None or amount is None: + return None + value = amount / 10**token_decimal return f"{value:.{token_decimal}f}" @@ -1120,38 +1123,68 @@ class EvaluateStrategyBehaviour(LiquidityTraderBaseBehaviour): def async_act(self) -> Generator: """Async act""" with self.context.benchmark_tool.measure(self.behaviour_id).local(): - yield from self.fetch_all_trading_opportunities() + has_funds = True + if not self.current_positions: + has_funds = any( + asset.get("balance", 0) > 0 + for position in self.synchronized_data.positions + for asset in position.get("assets", []) + ) - if self.current_positions: - for position in self.current_positions: - if position.get("status") == PositionStatus.CLOSED.value: - continue - dex_type = position.get("dex_type") - strategy = self.params.dex_type_to_strategy.get(dex_type) - if strategy: - metrics = self.get_returns_metrics_for_opportunity( - position, strategy - ) - if metrics: - # Update the position dictionary with the metrics - position.update(metrics) - else: - self.context.logger.error( - f"No strategy found for dex types {dex_type}" - ) + if not has_funds: + actions = [] + self.context.logger.info("No funds available.") + sender = self.context.agent_address + payload = EvaluateStrategyPayload( + sender=sender, actions=json.dumps(actions) + ) + else: + yield from self.fetch_all_trading_opportunities() - self.execute_hyper_strategy() - actions = [] - if self.selected_opportunities is not None: - self.context.logger.info( - f"Selected opportunity: {self.selected_opportunities}" + if self.current_positions: + for position in ( + pos + for pos in self.current_positions + if pos.get("status") == PositionStatus.OPEN.value + ): + dex_type = position.get("dex_type") + strategy = self.params.dex_type_to_strategy.get(dex_type) + if strategy: + if ( + not position.get("status", PositionStatus.CLOSED.value) + == PositionStatus.OPEN.value + ): + continue + metrics = self.get_returns_metrics_for_opportunity( + position, strategy + ) + if metrics: + position.update(metrics) + else: + self.context.logger.error( + f"No strategy found for dex type {dex_type}" + ) + + self.execute_hyper_strategy() + actions = ( + yield from self.get_order_of_transactions() + if self.selected_opportunities is not None + else [] ) - actions = yield from self.get_order_of_transactions() - self.context.logger.info(f"Actions: {actions}") - serialized_actions = json.dumps(actions) - sender = self.context.agent_address - payload = EvaluateStrategyPayload(sender=sender, actions=serialized_actions) + if actions: + self.context.logger.info(f"Actions: {actions}") + else: + self.context.logger.info("No actions prepared") + + sender = self.context.agent_address + payload = EvaluateStrategyPayload( + sender=sender, actions=json.dumps(actions) + ) + + with self.context.benchmark_tool.measure(self.behaviour_id).consensus(): + yield from self.send_a2a_transaction(payload) + yield from self.wait_until_round_end() with self.context.benchmark_tool.measure(self.behaviour_id).consensus(): yield from self.send_a2a_transaction(payload) @@ -2321,10 +2354,14 @@ def _build_bridge_swap_actions( relative_funds_percentage, ) else: - dest_tokens = [ - (dest_token0_address, dest_token0_symbol), - (dest_token1_address, dest_token1_symbol), - ] + tokens.sort(key=lambda x: x["token"]) + dest_tokens = sorted( + [ + (dest_token0_address, dest_token0_symbol), + (dest_token1_address, dest_token1_symbol), + ], + key=lambda x: x[0], + ) for idx, token in enumerate(tokens): dest_token_address, dest_token_symbol = dest_tokens[idx % 2] self._add_bridge_swap_action( @@ -2723,12 +2760,19 @@ def _post_execute_exit_pool(self, actions, last_executed_action_index): action = actions[last_executed_action_index] pool_address = action.get("pool_address") - # Find the position with the matching pool address and update its status + position_to_close = None + max_timestamp = 0 + # Find the most recent position with the matching pool address and update its status for position in self.current_positions: if position.get("pool_address") == pool_address: - position["status"] = PositionStatus.CLOSED.value - self.context.logger.info(f"Closing position: {position}") - break + timestamp = position.get("timestamp", 0) + if timestamp > max_timestamp: + position_to_close = position + max_timestamp = timestamp + + if position_to_close: + position_to_close["status"] = PositionStatus.CLOSED.value + self.context.logger.info(f"Closing position: {position_to_close}") else: self.context.logger.warning( f"No position found for pool_address: {pool_address}" @@ -2919,10 +2963,14 @@ def _prepare_next_action( self, positions, actions, current_action_index, last_round_id ) -> Generator[None, None, Tuple[Optional[str], Optional[Dict]]]: """Prepare the next action.""" - next_action = Action(actions[current_action_index].get("action")) - next_action_details = self.synchronized_data.actions[current_action_index] - self.context.logger.info(f"ACTION DETAILS: {next_action_details}") + next_action_details = actions[current_action_index] + action_name = next_action_details.get("action") + + if not action_name: + self.context.logger.error(f"Invalid action: {next_action_details}") + return Event.DONE.value, {} + next_action = Action(action_name) if next_action == Action.ENTER_POOL: tx_hash, chain_id, safe_address = yield from self.get_enter_pool_tx_hash( positions, next_action_details @@ -2977,7 +3025,7 @@ def _prepare_next_action( elif next_action == Action.DEPOSIT: tx_hash, chain_id, safe_address = yield from self.get_deposit_tx_hash( - next_action_details + next_action_details, positions ) last_action = Action.DEPOSIT.value @@ -2996,21 +3044,6 @@ def _prepare_next_action( if not tx_hash: return Event.DONE.value, {} - result = ( - Event.SETTLE.value, - { - "tx_submitter": DecisionMakingRound.auto_round_id(), - "most_voted_tx_hash": tx_hash, - "chain_id": chain_id, - "safe_contract_address": safe_address, - "positions": positions, - "last_executed_action_index": current_action_index, - "last_action": last_action, - }, - ) - - self.context.logger.info(f"Result constructed: {result}") - return Event.SETTLE.value, { "tx_submitter": DecisionMakingRound.auto_round_id(), "most_voted_tx_hash": tx_hash, @@ -3117,11 +3150,18 @@ def get_enter_pool_tx_hash( self.context.logger.error(f"Unknown dex type: {dex_type}") return None, None, None - # Fetch the amount of tokens to send + token0_balance = self._get_balance(chain, assets[0], positions) + token1_balance = self._get_balance(chain, assets[1], positions) + relative_funds_percentage = action.get("relative_funds_percentage", 1.0) + max_amounts_in = [ + int(token0_balance * relative_funds_percentage), + int(token1_balance * relative_funds_percentage), + ] max_amounts_in = [ - self._get_balance(chain, assets[0], positions), - self._get_balance(chain, assets[1], positions), + min(max_amounts_in[0], token0_balance), + min(max_amounts_in[1], token1_balance), ] + if any(amount == 0 or amount is None for amount in max_amounts_in): self.context.logger.error( f"Insufficient balance for entering pool: {max_amounts_in}" @@ -3353,12 +3393,14 @@ def get_exit_pool_tx_hash( return payload_string, chain, safe_address def get_deposit_tx_hash( - self, action + self, action, positions ) -> Generator[None, None, Tuple[Optional[str], Optional[str], Optional[str]]]: """Get deposit tx hash""" chain = action.get("chain") - asset = action["assets"][0] - amount = self._get_balance(chain, asset, self.synchronized_data.positions) + asset = action.get("token0") + relative_funds_percentage = action.get("relative_funds_percentage", 1.0) + token_balance = self._get_balance(chain, asset, positions) + amount = int(min(token_balance * relative_funds_percentage, token_balance)) safe_address = self.params.safe_contract_addresses.get(chain) receiver = safe_address contract_address = action.get("pool_address") @@ -3780,10 +3822,15 @@ 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']}" - ) + try: + response_data = json.loads(response.body) + self.context.logger.error( + f"[LiFi API Error Message] Error encountered: {response_data['message']}" + ) + except (ValueError, TypeError) as e: + self.context.logger.error( + f"Could not parse error response from API: {e}\nResponse body: {response.body}" + ) return None try: diff --git a/packages/valory/skills/liquidity_trader_abci/skill.yaml b/packages/valory/skills/liquidity_trader_abci/skill.yaml index 7760455b..4b6781c2 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: bafybeid7arnwfafx7hbr2opldkywoowm6w5vhfubladozihs2m7vdim67m + behaviours.py: bafybeigladnkpulzvkfqandu6k662h6u7combenbojbhetunzcbdpo6lra dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm fsm_specification.yaml: bafybeie3vom7fwl5ho6xanje3r7tab7y3a5ij5gs6qvjh2uavbpitffyzu handlers.py: bafybeih2zlmkyntlr7zx4mokqkmpcw7qczfbo47g766kndbv7zv7oqjv6e @@ -29,24 +29,24 @@ fingerprint: fingerprint_ignore_patterns: [] connections: [] contracts: -- valory/gnosis_safe:0.1.0:bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi -- valory/balancer_weighted_pool:0.1.0:bafybeidthw5afkeswxqockblrzzgmeiwhqgukytyr4veaf4ok66qv3zjfe -- valory/balancer_vault:0.1.0:bafybeibd3luq5ghhnhrkzeaytinwklnajk4urkd6ihbd26swziqfkjsfeq -- valory/erc20:0.1.0:bafybeidybudhhcv73fhccxyxop3in2k4ckswowajqsxnwt2oqysf6munom +- valory/gnosis_safe:0.1.0:bafybeidao75ykdhkm7brclsslx3iinmgnvdiot5npanfbmatcaqrcvlsk4 +- valory/balancer_weighted_pool:0.1.0:bafybeiarpidfs4npbuectmuo4srv2o4agfuafvncelbywcgd5y5dtgeyke +- valory/balancer_vault:0.1.0:bafybeiff3ltn6xoh3otuywk2j3yxujdlfzcvri66slnufv5t4hkj5musfa +- valory/erc20:0.1.0:bafybeie2wet3factwc6pwqvqpwqu3prtv75lmbqo5y4onda5y533ufdqhy - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeihfc5cnconeewuuqfmwrqxcxv2pfxla3hktutayj2rwc6miafwz74 -- valory/uniswap_v3_pool:0.1.0:bafybeifgh7t2nv3s6gw6axyelnq27wkuc6azw56ygqcyu32ujxg66gnxse -- valory/merkl_distributor:0.1.0:bafybeibyoewdq4l6ccgwg2v5z5dqzmbbrvizdtbb4zuz37mnb55lkxv5aa -- valory/staking_token:0.1.0:bafybeic4ug4p22q4hsh5z4hhjrishvnswino2fsleqsgdxlusd5h2x5hwy -- valory/staking_activity_checker:0.1.0:bafybeiajn7vzmxkiqoruknqh3heb3qxlflukibalxkm6zxdvmazdoou7ou -- valory/sturdy_yearn_v3_vault:0.1.0:bafybeigmc3f5xqrcdjakandeang56vtzp5qcqbjk4fven5d2h6t272kmpu +- valory/uniswap_v3_non_fungible_position_manager:0.1.0:bafybeid7h7sxxoglhhqbcz4g64fwbgj6akwecv4ktolhefcsziqntnnt2e +- valory/uniswap_v3_pool:0.1.0:bafybeiehh6y7qswdnfocoi2ku57w4k2rilambgt2bfp6co7vscghmqpjte +- valory/merkl_distributor:0.1.0:bafybeidaxrbcrh6icl3cmuxfijaxsobsuonuha754jhl2cjdkhktivjfa4 +- valory/staking_token:0.1.0:bafybeiev3fx5wg4rs5rciqdxemdvt73fwu2nylv23i7g665jzorcyyjape +- valory/staking_activity_checker:0.1.0:bafybeigse23vkx6rxws7ydkl44gtqs5z2g7fo4qejb36pjznegkbv5tkeu +- valory/sturdy_yearn_v3_vault:0.1.0:bafybeid4krjmfca3dert6tackcut2tins24kunzfwxs4gu3zgdhzrkijkm protocols: -- valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i -- valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni -- valory/ipfs:0.1.0:bafybeiftxi2qhreewgsc5wevogi7yc5g6hbcbo4uiuaibauhv3nhfcdtvm +- valory/contract_api:1.0.0:bafybeid247uig2ekykdumh7ewhp2cdq7rchaeqjj6e7urx35zfpdl5zrn4 +- valory/ledger_api:1.0.0:bafybeihmqzcbj6t7vxz2aehd5726ofnzsfjs5cwlf42ro4tn6i34cbfrc4 +- valory/ipfs:0.1.0:bafybeifi2nri7sprmkez4rqzwb4lnu6peoy3bax5k6asf6k5ms7kmjpmkq skills: -- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm -- valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq +- valory/abstract_round_abci:0.1.0:bafybeia27qmw6w5ds5fcrpj2475brnz742aampe3sgochloijs2l7jovai +- valory/transaction_settlement_abci:0.1.0:bafybeifkftgkyzrxwxjdyqixpp7vk6aqmufikalmwx3kydtlg74tonu47u behaviours: main: args: {} diff --git a/packages/valory/skills/optimus_abci/skill.yaml b/packages/valory/skills/optimus_abci/skill.yaml index 67892f82..1053904a 100644 --- a/packages/valory/skills/optimus_abci/skill.yaml +++ b/packages/valory/skills/optimus_abci/skill.yaml @@ -15,17 +15,17 @@ fingerprint: models.py: bafybeieeq64gdcpri2lcj3yvrvsp6edgg52vx53shqd3wxskekhhn2s5xy fingerprint_ignore_patterns: [] connections: -- valory/http_server:0.22.0:bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m +- valory/http_server:0.22.0:bafybeic3jpkum7g6qo6x6vdrmvvhj7vqw7ec2op72uc3yfhmnlp5hn3joy contracts: [] protocols: -- valory/http:1.0.0:bafybeifugzl63kfdmwrxwphrnrhj7bn6iruxieme3a4ntzejf6kmtuwmae +- valory/http:1.0.0:bafybeih4azmfwtamdbkhztkm4xitep3gx6tfdnoz6tvllmaqnhu3klejfa skills: -- 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:bafybeiflqvklhp4lmbxcr7p35z3mf4nk3wist5dnou7x2xgjeldho3yjeq -- valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq +- valory/abstract_round_abci:0.1.0:bafybeia27qmw6w5ds5fcrpj2475brnz742aampe3sgochloijs2l7jovai +- valory/registration_abci:0.1.0:bafybeifaa6ejpihwxxxswqd5qfy63rixml43d3ljnezilflvdtclspjj6y +- valory/reset_pause_abci:0.1.0:bafybeigebq46oqz2mx2iajupr6p5pgm6z5pvfye5w6zypsseuqtvta7b4a +- valory/termination_abci:0.1.0:bafybeieurwmfernodqyczj5ertsgfbjtjnrlgvte7sli4sajnbopty7inu +- valory/liquidity_trader_abci:0.1.0:bafybeigky5zwfvigqsqhyiilxwig37ldth756lzc23uvfd4oxw7ygt37da +- valory/transaction_settlement_abci:0.1.0:bafybeifkftgkyzrxwxjdyqixpp7vk6aqmufikalmwx3kydtlg74tonu47u behaviours: main: args: {} diff --git a/poetry.lock b/poetry.lock index bcca0011..45e7d340 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.0.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -850,7 +850,7 @@ description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" groups = ["main"] -markers = "(platform_system == \"Windows\" or sys_platform == \"win32\") and python_version <= \"3.11\"" +markers = "platform_system == \"Windows\" and python_version <= \"3.11\" or sys_platform == \"win32\" and python_version <= \"3.11\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -2958,20 +2958,20 @@ files = [ [[package]] name = "open-aea" -version = "1.60.0" +version = "1.64.0" description = "Open Autonomous Economic Agent framework (without vendor lock-in)" optional = false python-versions = ">=3.8" groups = ["main"] markers = "python_version <= \"3.11\"" files = [ - {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"}, + {file = "open_aea-1.64.0-py3-none-any.whl", hash = "sha256:aa1f4c125ede428a17147f3428b42b968503139bd8041a87c3b38b151f8ed9f6"}, + {file = "open_aea-1.64.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:9f6eefa9000208e625f61e0bab8070fe244a4dc948de46ad2cbba48e69ff803b"}, + {file = "open_aea-1.64.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:4e627fba9ec368182cfec54c26c961cb399a468da9a2d49c61bac7f9883f88f4"}, + {file = "open_aea-1.64.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:a320979d530aadad6a7d87e488459013ee1c070fe163ee5c3c1cdb01b63e9be7"}, + {file = "open_aea-1.64.0-py3-none-win32.whl", hash = "sha256:3501fbcbe4ec3b34d2f5dcd91403ee4dbd089a0afc98b21baf7f6b6607d64005"}, + {file = "open_aea-1.64.0-py3-none-win_amd64.whl", hash = "sha256:948d52ae67b867987588d6ac462fe35d4782a0696a9fdc191ab028634365f93b"}, + {file = "open_aea-1.64.0.tar.gz", hash = "sha256:d39b997fe8c29403b9266e548cbd01aeea5725fbb397c42e718af50b93b4c5e5"}, ] [package.dependencies] @@ -3002,15 +3002,15 @@ test-tools = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>= [[package]] name = "open-aea-cli-ipfs" -version = "1.60.0" +version = "1.64.0" description = "CLI extension for open AEA framework wrapping IPFS functionality." optional = false python-versions = "*" groups = ["main"] markers = "python_version <= \"3.11\"" files = [ - {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"}, + {file = "open_aea_cli_ipfs-1.64.0-py3-none-any.whl", hash = "sha256:79fb5373100735efa3b294ce1ab643d2dd1e2502b4e11da449131d7aee082ff6"}, + {file = "open_aea_cli_ipfs-1.64.0.tar.gz", hash = "sha256:69088d5c8b192ef11ae692a1ae4dab4fa934ba466e9033df76195985aa17f773"}, ] [package.dependencies] @@ -3020,15 +3020,15 @@ pytest = ">=7.0.0,<7.3.0" [[package]] name = "open-aea-ledger-cosmos" -version = "1.60.0" +version = "1.64.0" description = "Python package wrapping the public and private key cryptography and ledger api of Cosmos." optional = false python-versions = "*" groups = ["main"] markers = "python_version <= \"3.11\"" files = [ - {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"}, + {file = "open_aea_ledger_cosmos-1.64.0-py3-none-any.whl", hash = "sha256:1bc4752e696871588c391659c0df5907eccc4d938f3b14a4fa5346cc04ad953f"}, + {file = "open_aea_ledger_cosmos-1.64.0.tar.gz", hash = "sha256:c836c753c8a4150ea49f19723dce808e357243bdebceb556dbc46abb0d2a6f14"}, ] [package.dependencies] @@ -3040,15 +3040,15 @@ pycryptodome = ">=3.10.1,<4.0.0" [[package]] name = "open-aea-ledger-ethereum" -version = "1.60.0" +version = "1.64.0" description = "Python package wrapping the public and private key cryptography and ledger api of Ethereum." optional = false python-versions = "*" groups = ["main"] markers = "python_version <= \"3.11\"" files = [ - {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"}, + {file = "open_aea_ledger_ethereum-1.64.0-py3-none-any.whl", hash = "sha256:0d34ef8292c437a3f8102bd7489d12b5f5000013639bee71f5fb09e84eabe413"}, + {file = "open_aea_ledger_ethereum-1.64.0.tar.gz", hash = "sha256:5de862d87be2ef47b8f4c7de7802956b3f214f9bfbfc8369dfcb638702b070b8"}, ] [package.dependencies] @@ -3059,34 +3059,34 @@ web3 = ">=6.0.0,<7" [[package]] name = "open-aea-test-autonomy" -version = "0.18.3" +version = "0.19.4" description = "Plugin containing test tools for open-autonomy packages." optional = false python-versions = "*" groups = ["main"] markers = "python_version <= \"3.11\"" files = [ - {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"}, + {file = "open_aea_test_autonomy-0.19.4-py3-none-any.whl", hash = "sha256:497b8d6345bc720cc234880ceda2bc1c470a92d3cfc37af5328eb89a0fdeace4"}, + {file = "open_aea_test_autonomy-0.19.4.tar.gz", hash = "sha256:2896870e978100db3a656b7395bbfb2c85ecff3e94de2a312fc9f27196d4e8ce"}, ] [package.dependencies] docker = "6.1.2" -open-aea = {version = ">=1.60.0,<2.0.0", extras = ["all"]} -open-aea-ledger-ethereum = ">=1.60.0,<2.0.0" +open-aea = {version = ">=1.64.0,<2.0.0", extras = ["all"]} +open-aea-ledger-ethereum = ">=1.64.0,<2.0.0" pytest = "7.2.1" [[package]] name = "open-autonomy" -version = "0.18.3" +version = "0.19.4" description = "A framework for the creation of autonomous agent services." optional = false python-versions = ">=3.8" groups = ["main"] markers = "python_version <= \"3.11\"" files = [ - {file = "open_autonomy-0.18.3-py3-none-any.whl", hash = "sha256:bc26908a73c8a72c42ec44cdd7d8ddbc6a52688fddd02328aedf83cfc7e5bbc2"}, - {file = "open_autonomy-0.18.3.tar.gz", hash = "sha256:50d6fd431061630f783a90d957a674bbbabb74ff85c3b58857f42d52b79ae892"}, + {file = "open_autonomy-0.19.4-py3-none-any.whl", hash = "sha256:c48155be8e0f8e844bcdb78cfc2f231e86f15e2bc853b13a27a545fbc9286ee4"}, + {file = "open_autonomy-0.19.4.tar.gz", hash = "sha256:16ee3ffbb7ba82f076ec2af86e42d063f582b58395b370cd1575522306a93498"}, ] [package.dependencies] @@ -3098,22 +3098,22 @@ Flask = ">=2.0.2,<3.0.0" gql = "3.5.0" hexbytes = "*" jsonschema = ">=4.3.0,<4.4.0" -open-aea = {version = "1.60.0", extras = ["all"]} -open-aea-cli-ipfs = "1.60.0" +open-aea = {version = "1.64.0", extras = ["all"]} +open-aea-cli-ipfs = "1.64.0" protobuf = ">=4.21.6,<4.25.0" pytest = "7.2.1" python-dotenv = ">=0.14.5,<0.22.0" requests = ">=2.28.1,<2.31.2" requests-toolbelt = "1.0.0" texttable = "1.6.7" -typing-extensions = ">=3.10.0.2" +typing_extensions = ">=3.10.0.2" valory-docker-compose = "1.29.3" 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.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)"] +all = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "open-aea-cli-ipfs (==1.64.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.64.0)", "pytest (>=7.0.0,<7.3.0)", "python-dotenv (>=0.14.5,<0.22.0)", "texttable (==1.6.7)"] [[package]] name = "openapi-core" @@ -4241,7 +4241,7 @@ description = "Python for Window Extensions" optional = false python-versions = "*" groups = ["main"] -markers = "(sys_platform == \"win32\" or platform_system == \"Windows\") and python_version <= \"3.11\"" +markers = "sys_platform == \"win32\" and python_version <= \"3.11\" or platform_system == \"Windows\" and python_version <= \"3.11\"" files = [ {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, @@ -4777,7 +4777,7 @@ description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["main"] -markers = "python_version < \"3.11\"" +markers = "python_full_version <= \"3.11.0a6\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -5325,4 +5325,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.1" python-versions = "<3.12,>=3.10" -content-hash = "146c9c21ee0cad71bdc1b74c1e8dc1f134307f141ee9f6c5ab8580d39d3c8345" +content-hash = "26a6b7adfa8a60533e4b9f82c5d8f897e13b143d547e17e4b5a7d7e7bad79daa" diff --git a/pyproject.toml b/pyproject.toml index a785ab3f..49bdbdce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,10 +16,10 @@ include = "packages" [tool.poetry.dependencies] python = "<3.12,>=3.10" -open-autonomy = "==0.18.3" -open-aea-test-autonomy = "==0.18.3" -open-aea = "==1.60.0" -open-aea-ledger-ethereum = "==1.60.0" +open-autonomy = "==0.19.4" +open-aea-test-autonomy = "==0.19.4" +open-aea = "==1.64.0" +open-aea-ledger-ethereum = "==1.64.0" typing_extensions = ">=3.10.0.2" toml = "==0.10.2" gql = "==3.5.0" @@ -28,7 +28,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.60.0" +open-aea-ledger-cosmos = "==1.64.0" py-ecc = "==6.0.0" pytz = "==2022.2.1" openapi-core = "==0.15.0" diff --git a/tox.ini b/tox.ini index a1057f74..1cc94050 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.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 + open-autonomy==0.19.4 + open-aea==1.64.0 + open-aea-ledger-ethereum==1.64.0 + open-aea-ledger-cosmos==1.64.0 + open-aea-cli-ipfs==1.64.0 + open-aea-test-autonomy==0.19.4 toml==0.10.2 typing_extensions>=3.10.0.2 py-ecc==6.0.0