diff --git a/.gitignore b/.gitignore index bf55a4fd2..a12b890e0 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ packages/valory/contracts/gnosis_safe/ packages/valory/protocols/abci packages/valory/protocols/acn +packages/valory/protocols/acn_data_share packages/valory/protocols/contract_api packages/valory/protocols/http packages/valory/protocols/ipfs diff --git a/packages/packages.json b/packages/packages.json index 20a41cbf4..547dbed43 100644 --- a/packages/packages.json +++ b/packages/packages.json @@ -5,27 +5,28 @@ "custom/jhehemann/kelly_criterion/0.1.0": "bafybeif55cu7cf6znyma7kxus4wxa2doarhau2xmndo57iegshxorivwmq", "custom/w1kke/always_blue/0.1.0": "bafybeieshu32h3es2fslduuhr7nimuvh2vuibyeqdunzrcggaeohekg3jm", "custom/valory/kelly_criterion_no_conf/0.1.0": "bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae", - "contract/valory/market_maker/0.1.0": "bafybeihrz4q5ia7jnflsv2myg6kkung2dfiogqrevuy7xlmqws7tr27rdi", + "contract/valory/market_maker/0.1.0": "bafybeigfhg57pnhy5xyaegz5keaulkmajshwapb5s4wdzjyqx7pckgs34q", "contract/valory/realitio/0.1.0": "bafybeietgux6kkhdquspy35qera7gjwwqwrremmoeatjzwwokjb2lzsata", "contract/valory/realitio_proxy/0.1.0": "bafybeidx37xzjjmapwacedgzhum6grfzhp5vhouz4zu3pvpgdy5pgb2fr4", "contract/valory/conditional_tokens/0.1.0": "bafybeibnzmqmeph4cj5vfh3s622mo2o5627vjjwc6bptrhj4dk65mzgvhe", - "contract/valory/agent_registry/0.1.0": "bafybeiblc4i5xjxbywnfccwtv3unhaghrgqls7panfbuqbpstbc34h42xq", - "contract/valory/service_staking_token/0.1.0": "bafybeihhcs3ewwzhy7yto4y36uqmice3pdvyl54fvxxv6jsxonesie4dxu", - "contract/valory/transfer_nft_condition/0.1.0": "bafybeid6z2tf7nc4rhwggktxk5f62bowxdczykrxc3y76sbt2ttlw5hmtq", - "contract/valory/mech_activity/0.1.0": "bafybeibmqmle5fnal3gxlpdmcos2kogzra4q3pr3o5nh7shplxuilji3t4", - "contract/valory/staking_token/0.1.0": "bafybeiep4r6qyilbfgzdvx6t7zvpgaioxqktmxm7puwtnbpb2ftlib43gy", - "contract/valory/relayer/0.1.0": "bafybeicawmds6czx7db2lcktvexwrp245jpekgulndtos5s5zdid3ilvq4", - "skill/valory/market_manager_abci/0.1.0": "bafybeicztk62pslofv6ui3aw3giw2tnvlfwfmatqbyvvzv4ampneu6isqa", - "skill/valory/decision_maker_abci/0.1.0": "bafybeig3sqaeqedobqdg7gynrxnbq2kgzh4gp5pe5gxo5kw4hczfjmj6e4", - "skill/valory/trader_abci/0.1.0": "bafybeigm2oqol7yvbspdapdrq3hxugybwmaazom773ncsyz6mlgps7y3pi", - "skill/valory/tx_settlement_multiplexer_abci/0.1.0": "bafybeibx63ico4nlp6etvtzgvlcrl3jdy6rx7zodwmxhvvb4phizd732l4", - "skill/valory/staking_abci/0.1.0": "bafybeictd5pxhscuhqntvctb7l5lfjausxt2m22rg5mkaiuj4cwwcxpvne", - "skill/valory/check_stop_trading_abci/0.1.0": "bafybeib75qrimmvensqmskdp5kzki5ijjwolqk2ojekeommakaf64mzn54", - "agent/valory/trader/0.1.0": "bafybeifwqory3yuyhi6sxkoy3ihyzdbus444pkehyoxiibjqo5mjcawbhe", - "service/valory/trader/0.1.0": "bafybeiezli7klgpvdlvdkh7wxmulyosp7f3xzmkmdtzrgtcloqdng5qcea", - "service/valory/trader_pearl/0.1.0": "bafybeic52jtgilmipang6wcr3ogbfyskwzb7iaat3lur5pe7fjkpkqc7da" + "contract/valory/agent_registry/0.1.0": "bafybeibboljpn2zevzxnpgflxj6ykxk4bpxegtzjts25ajliaoadz35mca", + "contract/valory/service_staking_token/0.1.0": "bafybeieg664oohr26gpcfn3uied4minlz6dmgd32xboewscnxqnv5kk4zi", + "contract/valory/transfer_nft_condition/0.1.0": "bafybeicdtigdwlt47jg2tibxltwyyl4apysvlideo53lgiy3muuho3izpa", + "contract/valory/mech_activity/0.1.0": "bafybeieadv7vnbguc7beu6xo3rs3mqbgzc7wayc7kvgb2tmitmjtpdcqkq", + "contract/valory/staking_token/0.1.0": "bafybeiaynt6clwbthtbndtocnwul7dp76ctmu4jxinp7fnqks4pxt65yuy", + "contract/valory/relayer/0.1.0": "bafybeicreijhjycqrutdpbdn3vdcpmo233y3p66l3ovmr2goa2y2e6bshy", + "skill/valory/market_manager_abci/0.1.0": "bafybeiaotaepzfcp3mvd7pp2zv6v6bbgfjblk4pzcvjbzbhkc5p463afba", + "skill/valory/decision_maker_abci/0.1.0": "bafybeifljwg5jxxhazhopxo6rful5zc5tmghcos3njsldsjhxiqazzvkhu", + "skill/valory/trader_abci/0.1.0": "bafybeia5z6vjanod3hauezhvfemuunwl4cxkil7kowplwmvc2ijp6lw4gi", + "skill/valory/tx_settlement_multiplexer_abci/0.1.0": "bafybeicttcqp2n5q3vqdxaoqwawdrqyvh6eq55groaehdarpreufe5agda", + "skill/valory/staking_abci/0.1.0": "bafybeifzayvzmhuu54ut5ke2ohutmoprnw474kk63pmlrmlt5cg46slrji", + "skill/valory/check_stop_trading_abci/0.1.0": "bafybeicqcqhmrsswxyob7j2q2yosfu2ruknl2zibl4ewfmmgjsy3x7t6u4", + "agent/valory/trader/0.1.0": "bafybeic3u7sb6rh5vdce7gy2gk32hxnovlx2b2qtotolxfeymovcpsmghm", + "service/valory/trader/0.1.0": "bafybeichaxkntjhyhhkjlg4ljw5b6223wzu3zscgrvozscfi75v4ad76ni", + "service/valory/trader_pearl/0.1.0": "bafybeigqvtghnathe63l6bxxnkaocoirttyqpndc2u4ajx675qcrteshzq" }, "third_party": { + "protocol/valory/acn_data_share/0.1.0": "bafybeidbvo3jdbt54pqk3foqfso4uim2vaea5abg6jzktomdeklh6sm2rq", "protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi", "protocol/valory/abci/0.1.0": "bafybeiaqmp7kocbfdboksayeqhkbrynvlfzsx4uy4x6nohywnmaig4an7u", "protocol/valory/contract_api/1.0.0": "bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i", @@ -34,25 +35,26 @@ "protocol/valory/acn/1.1.0": "bafybeidluaoeakae3exseupaea4i3yvvk5vivyt227xshjlffywwxzcxqe", "protocol/valory/tendermint/0.1.0": "bafybeig4mi3vmlv5zpbjbfuzcgida6j5f2nhrpedxicmrrfjweqc5r7cra", "protocol/valory/ipfs/0.1.0": "bafybeiftxi2qhreewgsc5wevogi7yc5g6hbcbo4uiuaibauhv3nhfcdtvm", - "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeieg57u3z7cdlmdamad5e6lk7kmsli2zurzkg3sl4y7lhekcu4y3au", - "contract/valory/gnosis_safe/0.1.0": "bafybeih3ropivth4wn7zbzudisx3qezbht5jyndd4w7az7fq634lpozoge", - "contract/valory/mech/0.1.0": "bafybeiejfjfoxqggghcme43sx53q5gruefrws3k2jam2opkxl5uzffoarm", - "contract/valory/service_registry/0.1.0": "bafybeiaop64kwdoetxtedoehabmsalojmms7ihuoqcdwxtwb2hk5i6bzye", + "contract/valory/agent_registry/0.1.0": "bafybeibboljpn2zevzxnpgflxj6ykxk4bpxegtzjts25ajliaoadz35mca", + "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeifr4xpmzeb5hvpgd6h4nxlsu3ef2c3f6l5bgs34vym5ok6vllwhmy", + "contract/valory/gnosis_safe/0.1.0": "bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi", + "contract/valory/mech/0.1.0": "bafybeielwbnikog4eqmu6bo537kzp2e7qpmkzt7l5zuuugp2w4r47dbvwu", + "contract/valory/service_registry/0.1.0": "bafybeidipx4cmchxdu5i2v67rno7muie7ckjhmasaj64tv2vtj4fveklxi", "contract/valory/multisend/0.1.0": "bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y", - "contract/valory/erc20/0.1.0": "bafybeid2p2jyvjjlcsqugnawksdzsca6ljghpqbp2kfi3cxuxoy2233dbi", - "contract/valory/mech_marketplace/0.1.0": "bafybeiba7kh3wygwtpyf7oo3sili6givzo2gyadhbb66rvwsokswsywvuu", - "connection/valory/abci/0.1.0": "bafybeia6etkacvqend7xj6viejkqgo7ozu3yn4yg3qezfthf2xhrjjwse4", + "contract/valory/erc20/0.1.0": "bafybeientdgpccdi7prtu4x53m5g3yugh5tuh5hnroylfz3wwzyjniqure", + "contract/valory/mech_marketplace/0.1.0": "bafybeicfuigpr65k4l2r5dbazzwh43yc6pfuy5mrkjkagmhmcp6ioktfay", + "connection/valory/abci/0.1.0": "bafybeie2bc44r2ddspeg4v7minuievvjykomcukuf5ryevom6fajno25gy", "connection/valory/http_client/0.23.0": "bafybeihi772xgzpqeipp3fhmvpct4y6e6tpjp4sogwqrnf3wqspgeilg4u", - "connection/valory/ledger/0.19.0": "bafybeig7woeog4srdby75hpjkmx4rhpkzncbf4h2pm5r6varsp26pf2uhu", + "connection/valory/ledger/0.19.0": "bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e", "connection/valory/p2p_libp2p_client/0.1.0": "bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e", - "connection/valory/ipfs/0.1.0": "bafybeigcijdbwgdekow5c2ikeltetoteabfp52ewy3xfkd7ygaqbl7j3ke", + "connection/valory/ipfs/0.1.0": "bafybeias6633a2337nhq6nn5ikq4jaig47v63nxv2ixkjr6qqrqaywqara", "connection/valory/http_server/0.22.0": "bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m", - "skill/valory/abstract_abci/0.1.0": "bafybeieeaseuy5rbbw465knz27vccvpkfge43q7isl7fkdlfapwd7bpi24", - "skill/valory/reset_pause_abci/0.1.0": "bafybeigrdlxed3xlsnxtjhnsbl3cojruihxcqx4jxhgivkd5i2fkjncgba", - "skill/valory/registration_abci/0.1.0": "bafybeibc7duasoaw5b4ene5oxfba2dmdzstsrws6ipi57ymgdtoxjadn54", - "skill/valory/abstract_round_abci/0.1.0": "bafybeib733xfbndtpvkf44mtk7oyodnficgloo6xhn7xmqxxeos33es65u", - "skill/valory/transaction_settlement_abci/0.1.0": "bafybeic7q7recyka272udwcupblwbkc3jkodgp74fvcdxb7urametg5dae", - "skill/valory/termination_abci/0.1.0": "bafybeib5l7jhew5ic6iq24dd23nidcoimzqkrk556gqywhoziatj33zvwm", - "skill/valory/mech_interact_abci/0.1.0": "bafybeid6m3i5ofq7vuogqapdnoshhq7mswmudhvfcr2craw25fdwtoe3lm" + "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/transaction_settlement_abci/0.1.0": "bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq", + "skill/valory/termination_abci/0.1.0": "bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq", + "skill/valory/mech_interact_abci/0.1.0": "bafybeib4vn6m2yumwoclh5aatcdt5yxcjc5owxmxy5o7t3nfzormgwkr64" } } \ No newline at end of file diff --git a/packages/valory/agents/trader/aea-config.yaml b/packages/valory/agents/trader/aea-config.yaml index 9b19512a1..2ab1e71d6 100644 --- a/packages/valory/agents/trader/aea-config.yaml +++ b/packages/valory/agents/trader/aea-config.yaml @@ -9,26 +9,30 @@ fingerprint: __init__.py: bafybeighcq4pmuzte6vhvvprrvo563vzghkoit2h6qdqxf2ma5bghevkee fingerprint_ignore_patterns: [] connections: -- valory/abci:0.1.0:bafybeia6etkacvqend7xj6viejkqgo7ozu3yn4yg3qezfthf2xhrjjwse4 +- valory/abci:0.1.0:bafybeie2bc44r2ddspeg4v7minuievvjykomcukuf5ryevom6fajno25gy - valory/http_client:0.23.0:bafybeihi772xgzpqeipp3fhmvpct4y6e6tpjp4sogwqrnf3wqspgeilg4u -- valory/ipfs:0.1.0:bafybeigcijdbwgdekow5c2ikeltetoteabfp52ewy3xfkd7ygaqbl7j3ke -- valory/ledger:0.19.0:bafybeig7woeog4srdby75hpjkmx4rhpkzncbf4h2pm5r6varsp26pf2uhu +- valory/ipfs:0.1.0:bafybeias6633a2337nhq6nn5ikq4jaig47v63nxv2ixkjr6qqrqaywqara +- valory/ledger:0.19.0:bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e - valory/p2p_libp2p_client:0.1.0:bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e - valory/http_server:0.22.0:bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m contracts: -- valory/gnosis_safe:0.1.0:bafybeih3ropivth4wn7zbzudisx3qezbht5jyndd4w7az7fq634lpozoge -- valory/gnosis_safe_proxy_factory:0.1.0:bafybeieg57u3z7cdlmdamad5e6lk7kmsli2zurzkg3sl4y7lhekcu4y3au -- valory/service_registry:0.1.0:bafybeiaop64kwdoetxtedoehabmsalojmms7ihuoqcdwxtwb2hk5i6bzye -- valory/market_maker:0.1.0:bafybeihrz4q5ia7jnflsv2myg6kkung2dfiogqrevuy7xlmqws7tr27rdi +- valory/gnosis_safe:0.1.0:bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi +- valory/gnosis_safe_proxy_factory:0.1.0:bafybeifr4xpmzeb5hvpgd6h4nxlsu3ef2c3f6l5bgs34vym5ok6vllwhmy +- valory/service_registry:0.1.0:bafybeidipx4cmchxdu5i2v67rno7muie7ckjhmasaj64tv2vtj4fveklxi +- valory/market_maker:0.1.0:bafybeigfhg57pnhy5xyaegz5keaulkmajshwapb5s4wdzjyqx7pckgs34q - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/mech:0.1.0:bafybeiejfjfoxqggghcme43sx53q5gruefrws3k2jam2opkxl5uzffoarm +- valory/mech:0.1.0:bafybeielwbnikog4eqmu6bo537kzp2e7qpmkzt7l5zuuugp2w4r47dbvwu - valory/conditional_tokens:0.1.0:bafybeibnzmqmeph4cj5vfh3s622mo2o5627vjjwc6bptrhj4dk65mzgvhe - valory/realitio:0.1.0:bafybeietgux6kkhdquspy35qera7gjwwqwrremmoeatjzwwokjb2lzsata - valory/realitio_proxy:0.1.0:bafybeidx37xzjjmapwacedgzhum6grfzhp5vhouz4zu3pvpgdy5pgb2fr4 -- valory/agent_registry:0.1.0:bafybeiblc4i5xjxbywnfccwtv3unhaghrgqls7panfbuqbpstbc34h42xq -- valory/service_staking_token:0.1.0:bafybeihhcs3ewwzhy7yto4y36uqmice3pdvyl54fvxxv6jsxonesie4dxu -- valory/transfer_nft_condition:0.1.0:bafybeid6z2tf7nc4rhwggktxk5f62bowxdczykrxc3y76sbt2ttlw5hmtq -- valory/erc20:0.1.0:bafybeid2p2jyvjjlcsqugnawksdzsca6ljghpqbp2kfi3cxuxoy2233dbi +- valory/agent_registry:0.1.0:bafybeibboljpn2zevzxnpgflxj6ykxk4bpxegtzjts25ajliaoadz35mca +- valory/service_staking_token:0.1.0:bafybeieg664oohr26gpcfn3uied4minlz6dmgd32xboewscnxqnv5kk4zi +- valory/transfer_nft_condition:0.1.0:bafybeicdtigdwlt47jg2tibxltwyyl4apysvlideo53lgiy3muuho3izpa +- valory/erc20:0.1.0:bafybeientdgpccdi7prtu4x53m5g3yugh5tuh5hnroylfz3wwzyjniqure +- valory/staking_token:0.1.0:bafybeiaynt6clwbthtbndtocnwul7dp76ctmu4jxinp7fnqks4pxt65yuy +- valory/mech_activity:0.1.0:bafybeieadv7vnbguc7beu6xo3rs3mqbgzc7wayc7kvgb2tmitmjtpdcqkq +- valory/mech_marketplace:0.1.0:bafybeicfuigpr65k4l2r5dbazzwh43yc6pfuy5mrkjkagmhmcp6ioktfay +- valory/relayer:0.1.0:bafybeicreijhjycqrutdpbdn3vdcpmo233y3p66l3ovmr2goa2y2e6bshy protocols: - open_aea/signing:1.0.0:bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi - valory/abci:0.1.0:bafybeiaqmp7kocbfdboksayeqhkbrynvlfzsx4uy4x6nohywnmaig4an7u @@ -38,20 +42,21 @@ protocols: - valory/ipfs:0.1.0:bafybeiftxi2qhreewgsc5wevogi7yc5g6hbcbo4uiuaibauhv3nhfcdtvm - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni - valory/tendermint:0.1.0:bafybeig4mi3vmlv5zpbjbfuzcgida6j5f2nhrpedxicmrrfjweqc5r7cra +- valory/acn_data_share:0.1.0:bafybeidbvo3jdbt54pqk3foqfso4uim2vaea5abg6jzktomdeklh6sm2rq skills: -- valory/abstract_abci:0.1.0:bafybeieeaseuy5rbbw465knz27vccvpkfge43q7isl7fkdlfapwd7bpi24 -- valory/abstract_round_abci:0.1.0:bafybeib733xfbndtpvkf44mtk7oyodnficgloo6xhn7xmqxxeos33es65u -- valory/registration_abci:0.1.0:bafybeibc7duasoaw5b4ene5oxfba2dmdzstsrws6ipi57ymgdtoxjadn54 -- valory/reset_pause_abci:0.1.0:bafybeigrdlxed3xlsnxtjhnsbl3cojruihxcqx4jxhgivkd5i2fkjncgba -- valory/termination_abci:0.1.0:bafybeib5l7jhew5ic6iq24dd23nidcoimzqkrk556gqywhoziatj33zvwm -- valory/transaction_settlement_abci:0.1.0:bafybeic7q7recyka272udwcupblwbkc3jkodgp74fvcdxb7urametg5dae -- valory/tx_settlement_multiplexer_abci:0.1.0:bafybeibx63ico4nlp6etvtzgvlcrl3jdy6rx7zodwmxhvvb4phizd732l4 -- valory/market_manager_abci:0.1.0:bafybeicztk62pslofv6ui3aw3giw2tnvlfwfmatqbyvvzv4ampneu6isqa -- valory/decision_maker_abci:0.1.0:bafybeig3sqaeqedobqdg7gynrxnbq2kgzh4gp5pe5gxo5kw4hczfjmj6e4 -- valory/trader_abci:0.1.0:bafybeigm2oqol7yvbspdapdrq3hxugybwmaazom773ncsyz6mlgps7y3pi -- valory/staking_abci:0.1.0:bafybeictd5pxhscuhqntvctb7l5lfjausxt2m22rg5mkaiuj4cwwcxpvne -- valory/check_stop_trading_abci:0.1.0:bafybeib75qrimmvensqmskdp5kzki5ijjwolqk2ojekeommakaf64mzn54 -- valory/mech_interact_abci:0.1.0:bafybeid6m3i5ofq7vuogqapdnoshhq7mswmudhvfcr2craw25fdwtoe3lm +- valory/abstract_abci:0.1.0:bafybeif2naoydlrqkdpnig34uejedwgurjwyvmbpcz53tif7pyukfdophq +- 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/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq +- valory/tx_settlement_multiplexer_abci:0.1.0:bafybeicttcqp2n5q3vqdxaoqwawdrqyvh6eq55groaehdarpreufe5agda +- valory/market_manager_abci:0.1.0:bafybeiaotaepzfcp3mvd7pp2zv6v6bbgfjblk4pzcvjbzbhkc5p463afba +- valory/decision_maker_abci:0.1.0:bafybeifljwg5jxxhazhopxo6rful5zc5tmghcos3njsldsjhxiqazzvkhu +- valory/trader_abci:0.1.0:bafybeia5z6vjanod3hauezhvfemuunwl4cxkil7kowplwmvc2ijp6lw4gi +- valory/staking_abci:0.1.0:bafybeifzayvzmhuu54ut5ke2ohutmoprnw474kk63pmlrmlt5cg46slrji +- valory/check_stop_trading_abci:0.1.0:bafybeicqcqhmrsswxyob7j2q2yosfu2ruknl2zibl4ewfmmgjsy3x7t6u4 +- valory/mech_interact_abci:0.1.0:bafybeib4vn6m2yumwoclh5aatcdt5yxcjc5owxmxy5o7t3nfzormgwkr64 customs: - valory/mike_strat:0.1.0:bafybeihjiol7f4ch4piwfikurdtfwzsh6qydkbsztpbwbwb2yrqdqf726m - valory/bet_amount_per_threshold:0.1.0:bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24 @@ -89,11 +94,11 @@ logging_config: propagate: true dependencies: open-aea-ledger-cosmos: - version: ==1.53.0 + version: ==1.60.0 open-aea-ledger-ethereum: - version: ==1.53.0 + version: ==1.60.0 open-aea-test-autonomy: - version: ==0.14.14.post1 + version: ==0.18.3 skill_exception_policy: stop_and_exit connection_exception_policy: just_log default_connection: null @@ -162,6 +167,7 @@ models: drand_public_key: ${str:868f005eb8e6e4ca0a47c8a77ceaa5309a47978a7c71bc5cce96366b5d7a569937c529eeda66c7293784a9402801af31} service_registry_address: ${str:null} agent_registry_address: ${str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA} + use_acn_for_delivers: ${bool:false} share_tm_config_on_startup: ${bool:false} sleep_time: ${int:10} tendermint_p2p_url: ${str:localhost:26656} @@ -169,8 +175,7 @@ models: termination_from_block: ${int:0} use_termination: ${bool:false} on_chain_service_id: ${int:null} - creator_per_subgraph: - omen_subgraph: ${list:["0x89c5cc945dd550BcFfb72Fe42BfF002429F46Fec"]} + creator_per_subgraph: ${dict:{"omen_subgraph":["0x89c5cc945dd550BcFfb72Fe42BfF002429F46Fec"]}} slot_count: ${int:2} opening_margin: ${int:86400} languages: ${list:["en_US"]} @@ -212,15 +217,14 @@ models: "stabilityai-stable-diffusion-xl-beta-v2-2-2", "stabilityai-stable-diffusion-512-v2-1", "stabilityai-stable-diffusion-768-v2-1"]} use_nevermined: ${bool:true} - mech_to_subscription_params: ${list:[["base_url", "https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo"], - ["did", "did:nv:01706149da2f9f3f67cf79ec86c37d63cec87fc148f5633b12bf6695653d5b3c"], - ["escrow_payment_condition_address", "0x31B2D187d674C9ACBD2b25f6EDce3d2Db2B7f446"], - ["lock_payment_condition_address", "0x2749DDEd394196835199471027713773736bffF2"], - ["transfer_nft_condition_address", "0x659fCA7436936e9fe8383831b65B8B442eFc8Ea8"], - ["token_address", "0x1b5DeaD7309b56ca7663b3301A503e077Be18cba"], ["order_address", - "0x72201948087aE83f8Eac22cf7A9f2139e4cFA829"], ["nft_amount", "100"], ["payment_token", - "0x0000000000000000000000000000000000000000"], ["order_address", "0x72201948087aE83f8Eac22cf7A9f2139e4cFA829"], - ["price", "1000000000000000000"]]} + mech_to_subscription_params: ${dict:{"base_url":"https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo", + "did":"did:nv:01706149da2f9f3f67cf79ec86c37d63cec87fc148f5633b12bf6695653d5b3c", + "escrow_payment_condition_address":"0x31B2D187d674C9ACBD2b25f6EDce3d2Db2B7f446", + "lock_payment_condition_address":"0x2749DDEd394196835199471027713773736bffF2", + "transfer_nft_condition_address":"0x659fCA7436936e9fe8383831b65B8B442eFc8Ea8", + "token_address":"0x1b5DeaD7309b56ca7663b3301A503e077Be18cba", "order_address":"0x72201948087aE83f8Eac22cf7A9f2139e4cFA829", + "nft_amount":"100", "payment_token":"0x0000000000000000000000000000000000000000", + "price":"1000000000000000000"}} staking_contract_address: ${str:0x2Ef503950Be67a98746F484DA0bBAdA339DF3326} staking_interaction_sleep_time: ${int:5} disable_trading: ${bool:false} @@ -229,8 +233,8 @@ models: refill_check_interval: ${int:10} tool_punishment_multiplier: ${int:1} contract_timeout: ${float:300.0} - file_hash_to_strategies_json: ${list:[["bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24",["bet_amount_per_threshold"]],["bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae",["kelly_criterion_no_conf"]]]} - strategies_kwargs: ${list:[["bet_kelly_fraction",1.0],["floor_balance",500000000000000000],["bet_amount_per_threshold",{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}]]} + file_hash_to_strategies: ${dict:{"bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24":["bet_amount_per_threshold"],"bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae":["kelly_criterion_no_conf"]}} + strategies_kwargs: ${dict:{"bet_kelly_fraction":1.0,"floor_balance":500000000000000000,"bet_amount_per_threshold":{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}}} service_endpoint: ${str:https://trader.staging.autonolas.tech/} rpc_sleep_time: ${int:10} safe_voting_range: ${int:600} @@ -238,13 +242,7 @@ models: mech_interaction_sleep_time: ${int:10} use_mech_marketplace: ${bool:false} policy_store_update_offset: ${int:259200} - mech_marketplace_config: - mech_marketplace_address: ${str:0x0000000000000000000000000000000000000000} - priority_mech_address: ${str:0x0000000000000000000000000000000000000000} - priority_mech_staking_instance_address: ${str:0x0000000000000000000000000000000000000000} - priority_mech_service_id: ${int:0} - requester_staking_instance_address: ${str:0x0000000000000000000000000000000000000000} - response_timeout: ${int:300} + mech_marketplace_config: ${dict:{"mech_marketplace_address":"0x0000000000000000000000000000000000000000","priority_mech_address":"0x0000000000000000000000000000000000000000","priority_mech_staking_instance_address":"0x0000000000000000000000000000000000000000","priority_mech_service_id":0,"requester_staking_instance_address":"0x0000000000000000000000000000000000000000","response_timeout":300}} expected_mech_response_time: ${int:300} benchmarking_mode: args: diff --git a/packages/valory/contracts/agent_registry/__init__.py b/packages/valory/contracts/agent_registry/__init__.py index cf1e8467e..ad295b9e3 100644 --- a/packages/valory/contracts/agent_registry/__init__.py +++ b/packages/valory/contracts/agent_registry/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023 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. diff --git a/packages/valory/contracts/agent_registry/contract.py b/packages/valory/contracts/agent_registry/contract.py index 9acf29aad..5d41acd0d 100644 --- a/packages/valory/contracts/agent_registry/contract.py +++ b/packages/valory/contracts/agent_registry/contract.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023 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. @@ -18,11 +18,14 @@ # ------------------------------------------------------------------------------ """This module contains the class to connect to the Agent Registry contract.""" +from typing import Any, Dict, cast from aea.common import JSONLike from aea.configurations.base import PublicId from aea.contracts.base import Contract from aea.crypto.base import LedgerApi +from aea_ledger_ethereum import EthereumApi +from web3 import Web3 class AgentRegistryContract(Contract): @@ -62,3 +65,52 @@ def get_hash( # return the hash in hex return dict(hash=hash_.hex()) + + @classmethod + def authenticate_sender(cls, ledger_api: LedgerApi, contract_address: str, sender_address: str, mech_address: str) -> Dict[str, Any]: + """Check if the sender address is valid.""" + ledger_api = cast(EthereumApi, ledger_api) + contract_instance = cls.get_instance(ledger_api, contract_address) + + # assume the owner is a multisig wallet, so we check whether the sender is an owner + try: + # running in a try catch block because theres no guarantee + # that the agent owner matches the abi + minimal_abi = [ + { + "constant": True, + "inputs": [], + "name": "getOwners", + "outputs": [{"name": "", "type": "address[]"}], + "payable": False, + "stateMutability": "view", + "type": "function", + }, + { + "inputs": [], + "name": "tokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + contract = ledger_api.api.eth.contract(address=Web3.to_checksum_address(mech_address), abi=minimal_abi) + agent_id = contract.functions.tokenId().call() + + agent_owner = contract_instance.functions.ownerOf(agent_id).call() + if Web3.to_checksum_address(agent_owner) == Web3.to_checksum_address(sender_address): + return dict(is_valid=True) + + safe_contract = ledger_api.api.eth.contract(address=Web3.to_checksum_address(agent_owner), abi=minimal_abi) + owners = safe_contract.functions.getOwners().call() + if Web3.to_checksum_address(sender_address) in owners: + return dict(is_valid=True) + + except Exception as e: + return dict(is_valid=False, error=str(e)) # pragma: no cover diff --git a/packages/valory/contracts/agent_registry/contract.yaml b/packages/valory/contracts/agent_registry/contract.yaml index c0207fc24..8d2e41871 100644 --- a/packages/valory/contracts/agent_registry/contract.yaml +++ b/packages/valory/contracts/agent_registry/contract.yaml @@ -6,9 +6,9 @@ description: Agent Registry contract license: Apache-2.0 aea_version: '>=1.0.0, <2.0.0' fingerprint: - __init__.py: bafybeid3wfzglolebuo6jrrsopswzu4lk77bm76mvw3euizlsjtnt3wmgu + __init__.py: bafybeibpoladl6yrvlwydhypulk2juvl7pfi3dnkhs2msx3am2ew57zika build/AgentRegistry.json: bafybeicoe5elvvsv2neiirsdn4uddrilizmyib3x4mvpklr7olhj2kh4ue - contract.py: bafybeihrv6blme3v6diwci6zxxn72qbg5sanzmfq5tobhs4375ebcuyday + contract.py: bafybeihc6fm7driw67wf7vijj2kcdptxawjog35gokojakwmwnutevzwtm fingerprint_ignore_patterns: [] contracts: [] class_name: AgentRegistryContract @@ -16,8 +16,8 @@ contract_interface_paths: ethereum: build/AgentRegistry.json dependencies: open-aea-ledger-ethereum: - version: ==1.53.0 + version: <2,>=1.53.0 open-aea-test-autonomy: - version: ==0.14.14.post1 + version: <1,>=0.14.14.post1 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/market_maker/contract.yaml b/packages/valory/contracts/market_maker/contract.yaml index fbcae9d97..94a98314a 100644 --- a/packages/valory/contracts/market_maker/contract.yaml +++ b/packages/valory/contracts/market_maker/contract.yaml @@ -21,9 +21,9 @@ dependencies: eth_typing: {} hexbytes: {} open-aea-ledger-ethereum: - version: ==1.53.0 + version: ==1.60.0 open-aea-test-autonomy: - version: ==0.14.14.post1 + version: ==0.18.3 packaging: {} py-eth-sig-utils: {} requests: diff --git a/packages/valory/contracts/mech_activity/contract.yaml b/packages/valory/contracts/mech_activity/contract.yaml index 1a1828d46..db7e86484 100644 --- a/packages/valory/contracts/mech_activity/contract.yaml +++ b/packages/valory/contracts/mech_activity/contract.yaml @@ -16,8 +16,8 @@ contract_interface_paths: ethereum: build/MechActivity.json dependencies: open-aea-ledger-ethereum: - version: ==1.53.0 + version: ==1.60.0 open-aea-test-autonomy: - version: ==0.14.14.post1 + version: ==0.18.3 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/relayer/contract.yaml b/packages/valory/contracts/relayer/contract.yaml index 33f355d6d..a49061023 100644 --- a/packages/valory/contracts/relayer/contract.yaml +++ b/packages/valory/contracts/relayer/contract.yaml @@ -16,6 +16,6 @@ contract_interface_paths: ethereum: build/Relayer.json dependencies: open-aea-ledger-ethereum: - version: ==1.53.0 + version: ==1.60.0 web3: version: <7,>=6.0.0 diff --git a/packages/valory/contracts/service_staking_token/contract.yaml b/packages/valory/contracts/service_staking_token/contract.yaml index 70df67a5c..10d84ad93 100644 --- a/packages/valory/contracts/service_staking_token/contract.yaml +++ b/packages/valory/contracts/service_staking_token/contract.yaml @@ -16,8 +16,8 @@ contract_interface_paths: ethereum: build/ServiceStakingToken.json dependencies: open-aea-ledger-ethereum: - version: ==1.53.0 + version: ==1.60.0 open-aea-test-autonomy: - version: ==0.14.14.post1 + 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 e1a858361..b2e580c58 100644 --- a/packages/valory/contracts/staking_token/contract.yaml +++ b/packages/valory/contracts/staking_token/contract.yaml @@ -16,7 +16,7 @@ contract_interface_paths: ethereum: build/StakingToken.json dependencies: open-aea-ledger-ethereum: - version: <2,>=1.53.0 + version: <2,>=1.60.0 open-aea-test-autonomy: version: <1,>=0.14.14.post1 web3: diff --git a/packages/valory/contracts/transfer_nft_condition/contract.yaml b/packages/valory/contracts/transfer_nft_condition/contract.yaml index fcc24b09a..52b6156fe 100644 --- a/packages/valory/contracts/transfer_nft_condition/contract.yaml +++ b/packages/valory/contracts/transfer_nft_condition/contract.yaml @@ -21,9 +21,9 @@ dependencies: eth_typing: {} hexbytes: {} open-aea-ledger-ethereum: - version: ==1.53.0 + version: ==1.60.0 open-aea-test-autonomy: - version: ==0.14.14.post1 + version: ==0.18.3 packaging: {} py-eth-sig-utils: {} requests: diff --git a/packages/valory/services/trader/service.yaml b/packages/valory/services/trader/service.yaml index a1ea6c517..3a826de98 100644 --- a/packages/valory/services/trader/service.yaml +++ b/packages/valory/services/trader/service.yaml @@ -7,7 +7,7 @@ license: Apache-2.0 fingerprint: README.md: bafybeigtuothskwyvrhfosps2bu6suauycolj67dpuxqvnicdrdu7yhtvq fingerprint_ignore_patterns: [] -agent: valory/trader:0.1.0:bafybeifwqory3yuyhi6sxkoy3ihyzdbus444pkehyoxiibjqo5mjcawbhe +agent: valory/trader:0.1.0:bafybeic3u7sb6rh5vdce7gy2gk32hxnovlx2b2qtotolxfeymovcpsmghm number_of_agents: 4 deployment: agent: @@ -63,6 +63,7 @@ type: skill service_id: ${SERVICE_ID:str:trader} service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD} agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA} + use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false} share_tm_config_on_startup: ${USE_ACN:bool:false} sleep_time: ${SLEEP_TIME:int:1} tendermint_check_sleep_delay: ${TM_CHECK_SLEEP_DELAY:int:3} @@ -76,8 +77,7 @@ type: skill termination_from_block: ${TERMINATION_FROM_BLOCK:int:0} validate_timeout: ${VALIDATE_TIMEOUT:int:1205} history_check_timeout: ${HISTORY_CHECK_TIMEOUT:int:1205} - creator_per_subgraph: &id003 - omen_subgraph: ${OMEN_CREATORS:list:["0x89c5cc945dd550BcFfb72Fe42BfF002429F46Fec"]} + creator_per_subgraph: ${CREATOR_PER_SUBGRAPH:dict:{"omen_subgraph":["0x89c5cc945dd550BcFfb72Fe42BfF002429F46Fec"]}} slot_count: ${SLOT_COUNT:int:2} opening_margin: ${OPENING_MARGIN:int:86400} languages: ${LANGUAGES:list:["en_US"]} @@ -126,19 +126,19 @@ type: skill tool_punishment_multiplier: ${TOOL_PUNISHMENT_MULTIPLIER:int:1} redeem_round_timeout: ${REDEEM_ROUND_TIMEOUT:float:3600.0} contract_timeout: ${CONTRACT_TIMEOUT:float:300.0} - file_hash_to_strategies_json: ${FILE_HASH_TO_STRATEGIES_JSON:list:[["bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24",["bet_amount_per_threshold"]],["bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae",["kelly_criterion_no_conf"]]]} - strategies_kwargs: ${STRATEGIES_KWARGS:list:[["bet_kelly_fraction",1.0],["floor_balance",500000000000000000],["bet_amount_per_threshold",{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}]]} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:dict:{"bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24":["bet_amount_per_threshold"],"bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae":["kelly_criterion_no_conf"]}} + strategies_kwargs: ${STRATEGIES_KWARGS:dict:{"bet_kelly_fraction":1.0,"floor_balance":500000000000000000,"bet_amount_per_threshold":{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}}} use_subgraph_for_redeeming: ${USE_SUBGRAPH_FOR_REDEEMING:bool:true} use_nevermined: ${USE_NEVERMINED:bool:false} - mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:list:[["base_url", "https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo"], - ["did", "did:nv:01706149da2f9f3f67cf79ec86c37d63cec87fc148f5633b12bf6695653d5b3c"], - ["escrow_payment_condition_address", "0x31B2D187d674C9ACBD2b25f6EDce3d2Db2B7f446"], - ["lock_payment_condition_address", "0x2749DDEd394196835199471027713773736bffF2"], - ["transfer_nft_condition_address", "0x659fCA7436936e9fe8383831b65B8B442eFc8Ea8"], - ["token_address", "0x1b5DeaD7309b56ca7663b3301A503e077Be18cba"], ["order_address", - "0x72201948087aE83f8Eac22cf7A9f2139e4cFA829"], ["nft_amount", "100"], ["payment_token", - "0x0000000000000000000000000000000000000000"], ["order_address", "0x72201948087aE83f8Eac22cf7A9f2139e4cFA829"], - ["price", "1000000000000000000"]]} + mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:dict:{"base_url":"https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo", + "did":"did:nv:01706149da2f9f3f67cf79ec86c37d63cec87fc148f5633b12bf6695653d5b3c", + "escrow_payment_condition_address":"0x31B2D187d674C9ACBD2b25f6EDce3d2Db2B7f446", + "lock_payment_condition_address":"0x2749DDEd394196835199471027713773736bffF2", + "transfer_nft_condition_address":"0x659fCA7436936e9fe8383831b65B8B442eFc8Ea8", + "token_address":"0x1b5DeaD7309b56ca7663b3301A503e077Be18cba", "order_address":"0x72201948087aE83f8Eac22cf7A9f2139e4cFA829", + "nft_amount":"100", "payment_token":"0x0000000000000000000000000000000000000000", + "price":"1000000000000000000"}} + mech_marketplace_config: ${MECH_MARKETPLACE_CONFIG:dict:{"mech_marketplace_address":"0x0000000000000000000000000000000000000000","priority_mech_address":"0x0000000000000000000000000000000000000000","priority_mech_staking_instance_address":"0x0000000000000000000000000000000000000000","priority_mech_service_id":0,"requester_staking_instance_address":"0x0000000000000000000000000000000000000000","response_timeout":300}} service_endpoint: ${SERVICE_ENDPOINT:str:https://trader.staging.autonolas.tech/} rpc_sleep_time: ${RPC_SLEEP_TIME:int:10} safe_voting_range: ${SAFE_VOTING_RANGE:int:600} @@ -146,7 +146,7 @@ type: skill mech_interaction_sleep_time: ${MECH_INTERACTION_SLEEP_TIME:int:10} policy_store_update_offset: ${POLICY_STORE_UPDATE_OFFSET:int:259200} expected_mech_response_time: ${EXPECTED_MECH_RESPONSE_TIME:int:300} - benchmark_tool: &id004 + benchmark_tool: &id003 args: log_dir: ${LOG_DIR:str:/benchmarks} benchmarking_mode: @@ -168,16 +168,15 @@ type: skill bet_amount_field: ${BENCHMARKING_MODE_BET_AMOUNT_FIELD:str:collateral_amount} results_filename: ${BENCHMARKING_MODE_RESULTS_FILENAME:str:benchmarking_results.csv} randomness: ${BENCHMARKING_MODE_RANDOMNESS:str:benchmarking_randomness} - acc_info_fields: &id005 + acc_info_fields: &id004 args: tool: ${ACC_INFO_FIELDS_TOOL:str:tool} requests: ${ACC_INFO_FIELDS_REQUESTS:str:total_requests} accuracy: ${ACC_INFO_FIELDS_ACCURACY:str:tool_accuracy} sep: ${ACC_INFO_FIELDS_SEP:str:,} - network_subgraph: &id006 + network_subgraph: &id005 args: - headers: - Content-Type: ${NETWORK_SUBGRAPH_CONTENT_TYPE:str:application/json} + headers: ${HEADERS:dict:{"Content-Type":"application/json"}} method: ${NETWORK_SUBGRAPH_METHOD:str:POST} response_key: ${NETWORK_SUBGRAPH_RESPONSE_KEY:str:data:blocks} response_index: ${NETWORK_SUBGRAPH_RESPONSE_INDEX:int:0} @@ -187,10 +186,9 @@ type: skill error_type: ${NETWORK_SUBGRAPH_ERROR_TYPE:str:dict} retries: ${NETWORK_SUBGRAPH_RETRIES:int:5} url: ${NETWORK_SUBGRAPH_URL:str:https://api.thegraph.com/subgraphs/name/stakewise/ethereum-gnosis} - omen_subgraph: &id007 + omen_subgraph: &id006 args: - headers: - Content-Type: ${OMEN_SUBGRAPH_CONTENT_TYPE:str:application/json} + headers: ${HEADERS:dict:{"Content-Type":"application/json"}} method: ${OMEN_SUBGRAPH_METHOD:str:POST} response_key: ${OMEN_SUBGRAPH_RESPONSE_KEY:str:data:fixedProductMarketMakers} response_type: ${OMEN_SUBGRAPH_RESPONSE_TYPE:str:list} @@ -199,35 +197,32 @@ type: skill error_type: ${NETWORK_SUBGRAPH_ERROR_TYPE:str:dict} retries: ${OMEN_SUBGRAPH_RETRIES:int:5} url: ${OMEN_SUBGRAPH_URL:str:https://api.thegraph.com/subgraphs/name/protofire/omen-xdai} - randomness_api: &id008 + randomness_api: &id007 args: method: ${RANDOMNESS_API_METHOD:str:GET} response_key: ${RANDOMNESS_API_RESPONSE_KEY:str:null} response_type: ${RANDOMNESS_API_RESPONSE_TYPE:str:dict} retries: ${RANDOMNESS_API_RETRIES:int:5} url: ${RANDOMNESS_API_URL:str:https://drand.cloudflare.com/public/latest} - mech_response: &id009 + mech_response: &id008 args: - headers: - Content-Type: ${MECH_RESPONSE_API_CONTENT_TYPE:str:application/json} + headers: ${HEADERS:dict:{"Content-Type":"application/json"}} method: ${MECH_RESPONSE_API_METHOD:str:GET} response_key: ${MECH_RESPONSE_API_RESPONSE_KEY:str:result} response_type: ${MECH_RESPONSE_API_RESPONSE_TYPE:str:str} retries: ${MECH_RESPONSE_API_RETRIES:int:5} url: ${MECH_RESPONSE_API_URL:str:''} - agent_tools: &id010 + agent_tools: &id009 args: - headers: - Content-Type: ${AGENT_TOOLS_API_CONTENT_TYPE:str:application/json} + headers: ${HEADERS:dict:{"Content-Type":"application/json"}} method: ${AGENT_TOOLS_API_METHOD:str:GET} response_key: ${AGENT_TOOLS_API_RESPONSE_KEY:str:tools} response_type: ${AGENT_TOOLS_API_RESPONSE_TYPE:str:list} retries: ${AGENT_TOOLS_API_RETRIES:int:5} url: ${AGENT_TOOLS_API_URL:str:''} - trades_subgraph: &id011 + trades_subgraph: &id010 args: - headers: - Content-Type: ${TRADES_SUBGRAPH_CONTENT_TYPE:str:application/json} + headers: ${HEADERS:dict:{"Content-Type":"application/json"}} method: ${TRADES_SUBGRAPH_METHOD:str:POST} response_key: ${TRADES_SUBGRAPH_RESPONSE_KEY:str:data:fpmmTrades} response_type: ${TRADES_SUBGRAPH_RESPONSE_TYPE:str:list} @@ -236,10 +231,9 @@ type: skill error_type: ${NETWORK_SUBGRAPH_ERROR_TYPE:str:dict} retries: ${TRADES_SUBGRAPH_RETRIES:int:5} url: ${TRADES_SUBGRAPH_URL:str:https://api.thegraph.com/subgraphs/name/protofire/omen-xdai} - conditional_tokens_subgraph: &id012 + conditional_tokens_subgraph: &id011 args: - headers: - Content-Type: ${CONDITIONAL_TOKENS_SUBGRAPH_CONTENT_TYPE:str:application/json} + headers: ${HEADERS:dict:{"Content-Type":"application/json"}} method: ${CONDITIONAL_TOKENS_SUBGRAPH_METHOD:str:POST} response_key: ${CONDITIONAL_TOKENS_SUBGRAPH_RESPONSE_KEY:str:data:user:userPositions} response_type: ${CONDITIONAL_TOKENS_SUBGRAPH_RESPONSE_TYPE:str:list} @@ -248,10 +242,9 @@ type: skill error_type: ${NETWORK_SUBGRAPH_ERROR_TYPE:str:dict} retries: ${CONDITIONAL_TOKENS_SUBGRAPH_RETRIES:int:5} url: ${CONDITIONAL_TOKENS_SUBGRAPH_URL:str:https://api.thegraph.com/subgraphs/name/gnosis/conditional-tokens-gc} - realitio_subgraph: &id013 + realitio_subgraph: &id012 args: - headers: - Content-Type: ${REALITIO_SUBGRAPH_CONTENT_TYPE:str:application/json} + headers: ${HEADERS:dict:{"Content-Type":"application/json"}} method: ${REALITIO_SUBGRAPH_METHOD:str:POST} response_key: ${REALITIO_SUBGRAPH_RESPONSE_KEY:str:data:answers} response_type: ${REALITIO_SUBGRAPH_RESPONSE_TYPE:str:list} @@ -288,6 +281,7 @@ type: skill service_id: ${SERVICE_ID:str:trader} service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD} agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA} + use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false} share_tm_config_on_startup: ${USE_ACN:bool:false} sleep_time: ${SLEEP_TIME:int:1} tendermint_check_sleep_delay: ${TM_CHECK_SLEEP_DELAY:int:3} @@ -301,7 +295,7 @@ type: skill termination_from_block: ${TERMINATION_FROM_BLOCK:int:0} validate_timeout: ${VALIDATE_TIMEOUT:int:1205} history_check_timeout: ${HISTORY_CHECK_TIMEOUT:int:1205} - creator_per_subgraph: *id003 + creator_per_subgraph: ${CREATOR_PER_SUBGRAPH:dict:{"omen_subgraph":["0x89c5cc945dd550BcFfb72Fe42BfF002429F46Fec"]}} slot_count: ${SLOT_COUNT:int:2} opening_margin: ${OPENING_MARGIN:int:86400} languages: ${LANGUAGES:list:["en_US"]} @@ -348,19 +342,19 @@ type: skill tool_punishment_multiplier: ${TOOL_PUNISHMENT_MULTIPLIER:int:1} redeem_round_timeout: ${REDEEM_ROUND_TIMEOUT:float:3600.0} contract_timeout: ${CONTRACT_TIMEOUT:float:300.0} - file_hash_to_strategies_json: ${FILE_HASH_TO_STRATEGIES_JSON:list:[["bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24",["bet_amount_per_threshold"]],["bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae",["kelly_criterion_no_conf"]]]} - strategies_kwargs: ${STRATEGIES_KWARGS:list:[["bet_kelly_fraction",1.0],["floor_balance",500000000000000000],["bet_amount_per_threshold",{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}]]} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:dict:{"bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24":["bet_amount_per_threshold"],"bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae":["kelly_criterion_no_conf"]}} + strategies_kwargs: ${STRATEGIES_KWARGS:dict:{"bet_kelly_fraction":1.0,"floor_balance":500000000000000000,"bet_amount_per_threshold":{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}}} use_subgraph_for_redeeming: ${USE_SUBGRAPH_FOR_REDEEMING:bool:true} use_nevermined: ${USE_NEVERMINED:bool:false} - mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:list:[["base_url", "https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo"], - ["did", "did:nv:0ea01d5de3b34e3792db825f2a5f5595c393c68b19fd5efdacd00fcc63a53483"], - ["escrow_payment_condition_address", "0x9dDC4F1Ea5b94C138A23b60EC48c0d01d172629a"], - ["lock_payment_condition_address", "0xDE85A368Ee6f374d236500d176814365370778dA"], - ["transfer_nft_condition_address", "0xbBa4A25262745a55f020D0a3E9a82c25bb6F4979"], - ["token_address", "0x80A9b55F8604acC26dF2Ac6e07F9dC5B0eAa05Ce"], ["order_address", - "0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4"], ["nft_amount", "100"], ["payment_token", - "0x0000000000000000000000000000000000000000"], ["order_address", "0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4"], - ["price", "1000000000000000000"]]} + mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:dict:{"base_url":"https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo", + "did":"did:nv:01706149da2f9f3f67cf79ec86c37d63cec87fc148f5633b12bf6695653d5b3c", + "escrow_payment_condition_address":"0x31B2D187d674C9ACBD2b25f6EDce3d2Db2B7f446", + "lock_payment_condition_address":"0x2749DDEd394196835199471027713773736bffF2", + "transfer_nft_condition_address":"0x659fCA7436936e9fe8383831b65B8B442eFc8Ea8", + "token_address":"0x1b5DeaD7309b56ca7663b3301A503e077Be18cba", "order_address":"0x72201948087aE83f8Eac22cf7A9f2139e4cFA829", + "nft_amount":"100", "payment_token":"0x0000000000000000000000000000000000000000", + "price":"1000000000000000000"}} + mech_marketplace_config: ${MECH_MARKETPLACE_CONFIG:dict:{"mech_marketplace_address":"0x0000000000000000000000000000000000000000","priority_mech_address":"0x0000000000000000000000000000000000000000","priority_mech_staking_instance_address":"0x0000000000000000000000000000000000000000","priority_mech_service_id":0,"requester_staking_instance_address":"0x0000000000000000000000000000000000000000","response_timeout":300}} service_endpoint: ${SERVICE_ENDPOINT:str:https://trader.staging.autonolas.tech/} rpc_sleep_time: ${RPC_SLEEP_TIME:int:10} safe_voting_range: ${SAFE_VOTING_RANGE:int:600} @@ -368,16 +362,16 @@ type: skill mech_interaction_sleep_time: ${MECH_INTERACTION_SLEEP_TIME:int:10} policy_store_update_offset: ${POLICY_STORE_UPDATE_OFFSET:int:259200} expected_mech_response_time: ${EXPECTED_MECH_RESPONSE_TIME:int:300} - benchmark_tool: *id004 - acc_info_fields: *id005 - network_subgraph: *id006 - omen_subgraph: *id007 - randomness_api: *id008 - mech_response: *id009 - agent_tools: *id010 - trades_subgraph: *id011 - conditional_tokens_subgraph: *id012 - realitio_subgraph: *id013 + benchmark_tool: *id003 + acc_info_fields: *id004 + network_subgraph: *id005 + omen_subgraph: *id006 + randomness_api: *id007 + mech_response: *id008 + agent_tools: *id009 + trades_subgraph: *id010 + conditional_tokens_subgraph: *id011 + realitio_subgraph: *id012 2: models: params: @@ -406,6 +400,7 @@ type: skill service_id: ${SERVICE_ID:str:trader} service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD} agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA} + use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false} share_tm_config_on_startup: ${USE_ACN:bool:false} sleep_time: ${SLEEP_TIME:int:1} tendermint_check_sleep_delay: ${TM_CHECK_SLEEP_DELAY:int:3} @@ -419,7 +414,7 @@ type: skill termination_from_block: ${TERMINATION_FROM_BLOCK:int:0} validate_timeout: ${VALIDATE_TIMEOUT:int:1205} history_check_timeout: ${HISTORY_CHECK_TIMEOUT:int:1205} - creator_per_subgraph: *id003 + creator_per_subgraph: ${CREATOR_PER_SUBGRAPH:dict:{"omen_subgraph":["0x89c5cc945dd550BcFfb72Fe42BfF002429F46Fec"]}} slot_count: ${SLOT_COUNT:int:2} opening_margin: ${OPENING_MARGIN:int:86400} languages: ${LANGUAGES:list:["en_US"]} @@ -466,19 +461,19 @@ type: skill tool_punishment_multiplier: ${TOOL_PUNISHMENT_MULTIPLIER:int:1} redeem_round_timeout: ${REDEEM_ROUND_TIMEOUT:float:3600.0} contract_timeout: ${CONTRACT_TIMEOUT:float:300.0} - file_hash_to_strategies_json: ${FILE_HASH_TO_STRATEGIES_JSON:list:[["bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24",["bet_amount_per_threshold"]],["bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae",["kelly_criterion_no_conf"]]]} - strategies_kwargs: ${STRATEGIES_KWARGS:list:[["bet_kelly_fraction",1.0],["floor_balance",500000000000000000],["bet_amount_per_threshold",{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}]]} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:dict:{"bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24":["bet_amount_per_threshold"],"bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae":["kelly_criterion_no_conf"]}} + strategies_kwargs: ${STRATEGIES_KWARGS:dict:{"bet_kelly_fraction":1.0,"floor_balance":500000000000000000,"bet_amount_per_threshold":{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}}} use_subgraph_for_redeeming: ${USE_SUBGRAPH_FOR_REDEEMING:bool:true} use_nevermined: ${USE_NEVERMINED:bool:false} - mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:list:[["base_url", "https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo"], - ["did", "did:nv:0ea01d5de3b34e3792db825f2a5f5595c393c68b19fd5efdacd00fcc63a53483"], - ["escrow_payment_condition_address", "0x9dDC4F1Ea5b94C138A23b60EC48c0d01d172629a"], - ["lock_payment_condition_address", "0xDE85A368Ee6f374d236500d176814365370778dA"], - ["transfer_nft_condition_address", "0xbBa4A25262745a55f020D0a3E9a82c25bb6F4979"], - ["token_address", "0x80A9b55F8604acC26dF2Ac6e07F9dC5B0eAa05Ce"], ["order_address", - "0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4"], ["nft_amount", "100"], ["payment_token", - "0x0000000000000000000000000000000000000000"], ["order_address", "0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4"], - ["price", "1000000000000000000"]]} + mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:dict:{"base_url":"https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo", + "did":"did:nv:01706149da2f9f3f67cf79ec86c37d63cec87fc148f5633b12bf6695653d5b3c", + "escrow_payment_condition_address":"0x31B2D187d674C9ACBD2b25f6EDce3d2Db2B7f446", + "lock_payment_condition_address":"0x2749DDEd394196835199471027713773736bffF2", + "transfer_nft_condition_address":"0x659fCA7436936e9fe8383831b65B8B442eFc8Ea8", + "token_address":"0x1b5DeaD7309b56ca7663b3301A503e077Be18cba", "order_address":"0x72201948087aE83f8Eac22cf7A9f2139e4cFA829", + "nft_amount":"100", "payment_token":"0x0000000000000000000000000000000000000000", + "price":"1000000000000000000"}} + mech_marketplace_config: ${MECH_MARKETPLACE_CONFIG:dict:{"mech_marketplace_address":"0x0000000000000000000000000000000000000000","priority_mech_address":"0x0000000000000000000000000000000000000000","priority_mech_staking_instance_address":"0x0000000000000000000000000000000000000000","priority_mech_service_id":0,"requester_staking_instance_address":"0x0000000000000000000000000000000000000000","response_timeout":300}} service_endpoint: ${SERVICE_ENDPOINT:str:https://trader.staging.autonolas.tech/} rpc_sleep_time: ${RPC_SLEEP_TIME:int:10} safe_voting_range: ${SAFE_VOTING_RANGE:int:600} @@ -486,16 +481,16 @@ type: skill mech_interaction_sleep_time: ${MECH_INTERACTION_SLEEP_TIME:int:10} policy_store_update_offset: ${POLICY_STORE_UPDATE_OFFSET:int:259200} expected_mech_response_time: ${EXPECTED_MECH_RESPONSE_TIME:int:300} - benchmark_tool: *id004 - acc_info_fields: *id005 - network_subgraph: *id006 - omen_subgraph: *id007 - randomness_api: *id008 - mech_response: *id009 - agent_tools: *id010 - trades_subgraph: *id011 - conditional_tokens_subgraph: *id012 - realitio_subgraph: *id013 + benchmark_tool: *id003 + acc_info_fields: *id004 + network_subgraph: *id005 + omen_subgraph: *id006 + randomness_api: *id007 + mech_response: *id008 + agent_tools: *id009 + trades_subgraph: *id010 + conditional_tokens_subgraph: *id011 + realitio_subgraph: *id012 3: models: params: @@ -524,6 +519,7 @@ type: skill service_id: ${SERVICE_ID:str:trader} service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD} agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA} + use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false} share_tm_config_on_startup: ${USE_ACN:bool:false} sleep_time: ${SLEEP_TIME:int:1} tendermint_check_sleep_delay: ${TM_CHECK_SLEEP_DELAY:int:3} @@ -537,7 +533,7 @@ type: skill termination_from_block: ${TERMINATION_FROM_BLOCK:int:0} validate_timeout: ${VALIDATE_TIMEOUT:int:1205} history_check_timeout: ${HISTORY_CHECK_TIMEOUT:int:1205} - creator_per_subgraph: *id003 + creator_per_subgraph: ${CREATOR_PER_SUBGRAPH:dict:{"omen_subgraph":["0x89c5cc945dd550BcFfb72Fe42BfF002429F46Fec"]}} slot_count: ${SLOT_COUNT:int:2} opening_margin: ${OPENING_MARGIN:int:86400} languages: ${LANGUAGES:list:["en_US"]} @@ -584,19 +580,19 @@ type: skill tool_punishment_multiplier: ${TOOL_PUNISHMENT_MULTIPLIER:int:1} redeem_round_timeout: ${REDEEM_ROUND_TIMEOUT:float:3600.0} contract_timeout: ${CONTRACT_TIMEOUT:float:300.0} - file_hash_to_strategies_json: ${FILE_HASH_TO_STRATEGIES_JSON:list:[["bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24",["bet_amount_per_threshold"]],["bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae",["kelly_criterion_no_conf"]]]} - strategies_kwargs: ${STRATEGIES_KWARGS:list:[["bet_kelly_fraction",1.0],["floor_balance",500000000000000000],["bet_amount_per_threshold",{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}]]} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:dict:{"bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24":["bet_amount_per_threshold"],"bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae":["kelly_criterion_no_conf"]}} + strategies_kwargs: ${STRATEGIES_KWARGS:dict:{"bet_kelly_fraction":1.0,"floor_balance":500000000000000000,"bet_amount_per_threshold":{"0.0":0,"0.1":0,"0.2":0,"0.3":0,"0.4":0,"0.5":0,"0.6":60000000000000000,"0.7":90000000000000000,"0.8":100000000000000000,"0.9":1000000000000000000,"1.0":10000000000000000000}}} use_subgraph_for_redeeming: ${USE_SUBGRAPH_FOR_REDEEMING:bool:true} use_nevermined: ${USE_NEVERMINED:bool:false} - mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:list:[["base_url", "https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo"], - ["did", "did:nv:0ea01d5de3b34e3792db825f2a5f5595c393c68b19fd5efdacd00fcc63a53483"], - ["escrow_payment_condition_address", "0x9dDC4F1Ea5b94C138A23b60EC48c0d01d172629a"], - ["lock_payment_condition_address", "0xDE85A368Ee6f374d236500d176814365370778dA"], - ["transfer_nft_condition_address", "0xbBa4A25262745a55f020D0a3E9a82c25bb6F4979"], - ["token_address", "0x80A9b55F8604acC26dF2Ac6e07F9dC5B0eAa05Ce"], ["order_address", - "0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4"], ["nft_amount", "100"], ["payment_token", - "0x0000000000000000000000000000000000000000"], ["order_address", "0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4"], - ["price", "1000000000000000000"]]} + mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:dict:{"base_url":"https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo", + "did":"did:nv:01706149da2f9f3f67cf79ec86c37d63cec87fc148f5633b12bf6695653d5b3c", + "escrow_payment_condition_address":"0x31B2D187d674C9ACBD2b25f6EDce3d2Db2B7f446", + "lock_payment_condition_address":"0x2749DDEd394196835199471027713773736bffF2", + "transfer_nft_condition_address":"0x659fCA7436936e9fe8383831b65B8B442eFc8Ea8", + "token_address":"0x1b5DeaD7309b56ca7663b3301A503e077Be18cba", "order_address":"0x72201948087aE83f8Eac22cf7A9f2139e4cFA829", + "nft_amount":"100", "payment_token":"0x0000000000000000000000000000000000000000", + "price":"1000000000000000000"}} + mech_marketplace_config: ${MECH_MARKETPLACE_CONFIG:dict:{"mech_marketplace_address":"0x0000000000000000000000000000000000000000","priority_mech_address":"0x0000000000000000000000000000000000000000","priority_mech_staking_instance_address":"0x0000000000000000000000000000000000000000","priority_mech_service_id":0,"requester_staking_instance_address":"0x0000000000000000000000000000000000000000","response_timeout":300}} service_endpoint: ${SERVICE_ENDPOINT:str:https://trader.staging.autonolas.tech/} rpc_sleep_time: ${RPC_SLEEP_TIME:int:10} safe_voting_range: ${SAFE_VOTING_RANGE:int:600} @@ -604,49 +600,49 @@ type: skill mech_interaction_sleep_time: ${MECH_INTERACTION_SLEEP_TIME:int:10} policy_store_update_offset: ${POLICY_STORE_UPDATE_OFFSET:int:259200} expected_mech_response_time: ${EXPECTED_MECH_RESPONSE_TIME:int:300} - benchmark_tool: *id004 - acc_info_fields: *id005 - network_subgraph: *id006 - omen_subgraph: *id007 - randomness_api: *id008 - mech_response: *id009 - agent_tools: *id010 - trades_subgraph: *id011 - conditional_tokens_subgraph: *id012 - realitio_subgraph: *id013 + benchmark_tool: *id003 + acc_info_fields: *id004 + network_subgraph: *id005 + omen_subgraph: *id006 + randomness_api: *id007 + mech_response: *id008 + agent_tools: *id009 + trades_subgraph: *id010 + conditional_tokens_subgraph: *id011 + realitio_subgraph: *id012 --- public_id: valory/ledger:0.19.0 type: connection 0: config: ledger_apis: - ethereum: + gnosis: address: ${RPC_0:str:http://host.docker.internal:8545} - chain_id: ${CHAIN_ID:int:1337} + chain_id: ${CHAIN_ID:int:100} default_gas_price_strategy: ${DEFAULT_GAS_PRICE_STRATEGY:str:eip1559} poa_chain: ${POA_CHAIN:bool:false} 1: config: ledger_apis: - ethereum: + gnosis: address: ${RPC_1:str:http://host.docker.internal:8545} - chain_id: ${CHAIN_ID:int:1337} + chain_id: ${CHAIN_ID:int:100} default_gas_price_strategy: ${DEFAULT_GAS_PRICE_STRATEGY:str:eip1559} poa_chain: ${POA_CHAIN:bool:false} 2: config: ledger_apis: - ethereum: + gnosis: address: ${RPC_2:str:http://host.docker.internal:8545} - chain_id: ${CHAIN_ID:int:1337} + chain_id: ${CHAIN_ID:int:100} default_gas_price_strategy: ${DEFAULT_GAS_PRICE_STRATEGY:str:eip1559} poa_chain: ${POA_CHAIN:bool:false} 3: config: ledger_apis: - ethereum: + gnosis: address: ${RPC_3:str:http://host.docker.internal:8545} - chain_id: ${CHAIN_ID:int:1337} + chain_id: ${CHAIN_ID:int:100} default_gas_price_strategy: ${DEFAULT_GAS_PRICE_STRATEGY:str:eip1559} poa_chain: ${POA_CHAIN:bool:false} --- diff --git a/packages/valory/services/trader_pearl/service.yaml b/packages/valory/services/trader_pearl/service.yaml index 90e1c3d6f..de4a55c46 100644 --- a/packages/valory/services/trader_pearl/service.yaml +++ b/packages/valory/services/trader_pearl/service.yaml @@ -8,7 +8,7 @@ license: Apache-2.0 fingerprint: README.md: bafybeibg7bdqpioh4lmvknw3ygnllfku32oca4eq5pqtvdrdsgw6buko7e fingerprint_ignore_patterns: [] -agent: valory/trader:0.1.0:bafybeifwqory3yuyhi6sxkoy3ihyzdbus444pkehyoxiibjqo5mjcawbhe +agent: valory/trader:0.1.0:bafybeic3u7sb6rh5vdce7gy2gk32hxnovlx2b2qtotolxfeymovcpsmghm number_of_agents: 1 deployment: agent: @@ -33,6 +33,7 @@ models: service_id: trader service_registry_address: '0x9338b5153AE39BB89f50468E608eD9d764B755fD' agent_registry_address: '0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA' + use_acn_for_delivers: false sleep_time: 1 tendermint_com_url: http://localhost:8080 tendermint_url: http://localhost:26657 @@ -48,7 +49,7 @@ models: abt_error_mult: 5 mech_contract_address: ${MECH_CONTRACT_ADDRESS:str:0x77af31De935740567Cf4fF1986D04B2c964A786a} mech_request_price: 0 - mech_chain_id: ethereum + mech_chain_id: ${MECH_CHAIN_ID:str:gnosis} mech_wrapped_native_token_address: '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d' mech_activity_checker_contract: ${MECH_ACTIVITY_CHECKER_CONTRACT:str:0x155547857680A6D51bebC5603397488988DEb1c8} sample_bets_closing_days: 10 @@ -82,26 +83,19 @@ models: tool_punishment_multiplier: 1 redeem_round_timeout: 3600.0 contract_timeout: 300.0 - file_hash_to_strategies_json: ${FILE_HASH_TO_STRATEGIES_JSON:list:[["bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24",["bet_amount_per_threshold"]],["bafybeif55cu7cf6znyma7kxus4wxa2doarhau2xmndo57iegshxorivwmq",["kelly_criterion"]]]} - mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:list:[["base_url", "https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo"], - ["did", "did:nv:0ea01d5de3b34e3792db825f2a5f5595c393c68b19fd5efdacd00fcc63a53483"], - ["escrow_payment_condition_address", "0x9dDC4F1Ea5b94C138A23b60EC48c0d01d172629a"], - ["lock_payment_condition_address", "0xDE85A368Ee6f374d236500d176814365370778dA"], - ["transfer_nft_condition_address", "0xbBa4A25262745a55f020D0a3E9a82c25bb6F4979"], - ["token_address", "0x80A9b55F8604acC26dF2Ac6e07F9dC5B0eAa05Ce"], ["order_address", - "0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4"], ["nft_amount", "100"], ["payment_token", - "0x0000000000000000000000000000000000000000"], ["order_address", "0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4"], - ["price", "1000000000000000000"]]} + file_hash_to_strategies: ${FILE_HASH_TO_STRATEGIES:dict:{"bafybeihufqu2ra7vud4h6g2nwahx7mvdido7ff6prwnib2tdlc4np7dw24":["bet_amount_per_threshold"],"bafybeibxfp27rzrfnp7sxq62vwv32pdvrijxi7vzg7ihukkaka3bwzrgae":["kelly_criterion_no_conf"]}} + mech_to_subscription_params: ${SUBSCRIPTION_PARAMS:dict:{"base_url":"https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo", + "did":"did:nv:01706149da2f9f3f67cf79ec86c37d63cec87fc148f5633b12bf6695653d5b3c", + "escrow_payment_condition_address":"0x31B2D187d674C9ACBD2b25f6EDce3d2Db2B7f446", + "lock_payment_condition_address":"0x2749DDEd394196835199471027713773736bffF2", + "transfer_nft_condition_address":"0x659fCA7436936e9fe8383831b65B8B442eFc8Ea8", + "token_address":"0x1b5DeaD7309b56ca7663b3301A503e077Be18cba", "order_address":"0x72201948087aE83f8Eac22cf7A9f2139e4cFA829", + "nft_amount":"100", "payment_token":"0x0000000000000000000000000000000000000000", + "price":"1000000000000000000"}} use_subgraph_for_redeeming: true use_nevermined: false use_mech_marketplace: ${USE_MECH_MARKETPLACE:bool:false} - mech_marketplace_config: - mech_marketplace_address: ${MECH_MARKETPLACE_ADDRESS:str:0x0000000000000000000000000000000000000000} - priority_mech_address: ${PRIORITY_MECH_ADDRESS:str:0x0000000000000000000000000000000000000000} - priority_mech_staking_instance_address: ${PRIORITY_MECH_STAKING_INSTANCE_ADDRESS:str:0x0000000000000000000000000000000000000000} - priority_mech_service_id: ${PRIORITY_MECH_SERVICE_ID:int:0} - requester_staking_instance_address: ${REQUESTER_STAKING_INSTANCE_ADDRESS:str:0x0000000000000000000000000000000000000000} - response_timeout: ${RESPONSE_TIMEOUT:int:300} + mech_marketplace_config: ${MECH_MARKETPLACE_CONFIG:dict:{"mech_marketplace_address":"0x0000000000000000000000000000000000000000","priority_mech_address":"0x0000000000000000000000000000000000000000","priority_mech_staking_instance_address":"0x0000000000000000000000000000000000000000","priority_mech_service_id":0,"requester_staking_instance_address":"0x0000000000000000000000000000000000000000","response_timeout":300}} policy_store_update_offset: ${POLICY_STORE_UPDATE_OFFSET:int:259200} expected_mech_response_time: ${EXPECTED_MECH_RESPONSE_TIME:int:300} benchmark_tool: @@ -127,7 +121,7 @@ public_id: valory/ledger:0.19.0 type: connection config: ledger_apis: - ethereum: + gnosis: address: ${GNOSIS_LEDGER_RPC:str:http://host.docker.internal:8545} chain_id: ${GNOSIS_LEDGER_CHAIN_ID:int:100} default_gas_price_strategy: ${GNOSIS_LEDGER_PRICING:str:eip1559} diff --git a/packages/valory/skills/check_stop_trading_abci/skill.yaml b/packages/valory/skills/check_stop_trading_abci/skill.yaml index 45c3db5eb..8c9177a5c 100644 --- a/packages/valory/skills/check_stop_trading_abci/skill.yaml +++ b/packages/valory/skills/check_stop_trading_abci/skill.yaml @@ -23,11 +23,11 @@ fingerprint: fingerprint_ignore_patterns: [] connections: [] contracts: -- valory/mech:0.1.0:bafybeiejfjfoxqggghcme43sx53q5gruefrws3k2jam2opkxl5uzffoarm +- valory/mech:0.1.0:bafybeielwbnikog4eqmu6bo537kzp2e7qpmkzt7l5zuuugp2w4r47dbvwu protocols: [] skills: -- valory/abstract_round_abci:0.1.0:bafybeib733xfbndtpvkf44mtk7oyodnficgloo6xhn7xmqxxeos33es65u -- valory/staking_abci:0.1.0:bafybeictd5pxhscuhqntvctb7l5lfjausxt2m22rg5mkaiuj4cwwcxpvne +- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm +- valory/staking_abci:0.1.0:bafybeifzayvzmhuu54ut5ke2ohutmoprnw474kk63pmlrmlt5cg46slrji behaviours: main: args: {} diff --git a/packages/valory/skills/decision_maker_abci/behaviours/base.py b/packages/valory/skills/decision_maker_abci/behaviours/base.py index cc91d2a9a..08c281e47 100644 --- a/packages/valory/skills/decision_maker_abci/behaviours/base.py +++ b/packages/valory/skills/decision_maker_abci/behaviours/base.py @@ -331,6 +331,7 @@ def check_balance(self) -> WaitableConditionType: contract_id=str(ERC20.contract_id), contract_callable="check_balance", account=self.synchronized_data.safe_contract_address, + chain_id=self.params.mech_chain_id, ) if response_msg.performative != ContractApiMessage.Performative.RAW_TRANSACTION: self.context.logger.error( @@ -514,6 +515,7 @@ def contract_interact( contract_address, contract_id, contract_callable, + chain_id=self.params.mech_chain_id, **kwargs, ) if response_msg.performative != ContractApiMessage.Performative.RAW_TRANSACTION: @@ -555,6 +557,7 @@ def _build_multisend_data( contract_id=str(MultiSendContract.contract_id), contract_callable="get_tx_data", multi_send_txs=self.multi_send_txs, + chain_id=self.params.mech_chain_id, ) expected_performative = ContractApiMessage.Performative.RAW_TRANSACTION if response_msg.performative != expected_performative: @@ -589,6 +592,7 @@ def _build_multisend_safe_tx_hash(self) -> WaitableConditionType: data=self.multisend_data, safe_tx_gas=SAFE_GAS, operation=SafeOperation.DELEGATE_CALL.value, + chain_id=self.params.mech_chain_id, ) if response_msg.performative != ContractApiMessage.Performative.STATE: diff --git a/packages/valory/skills/decision_maker_abci/behaviours/bet_placement.py b/packages/valory/skills/decision_maker_abci/behaviours/bet_placement.py index 70c39408c..dc4844aba 100644 --- a/packages/valory/skills/decision_maker_abci/behaviours/bet_placement.py +++ b/packages/valory/skills/decision_maker_abci/behaviours/bet_placement.py @@ -78,6 +78,7 @@ def _build_exchange_tx(self) -> WaitableConditionType: contract_address=WXDAI, contract_id=str(ERC20.contract_id), contract_callable="build_deposit_tx", + chain_id=self.params.mech_chain_id, ) if response_msg.performative != ContractApiMessage.Performative.STATE: @@ -106,6 +107,7 @@ def _build_approval_tx(self) -> WaitableConditionType: contract_callable="build_approval_tx", spender=self.market_maker_contract_address, amount=self.investment_amount, + chain_id=self.params.mech_chain_id, ) if response_msg.performative != ContractApiMessage.Performative.STATE: @@ -133,6 +135,7 @@ def _calc_buy_amount(self) -> WaitableConditionType: contract_callable="calc_buy_amount", investment_amount=self.investment_amount, outcome_index=self.outcome_index, + chain_id=self.params.mech_chain_id, ) if response_msg.performative != ContractApiMessage.Performative.RAW_TRANSACTION: self.context.logger.error( @@ -160,6 +163,7 @@ def _build_buy_tx(self) -> WaitableConditionType: investment_amount=self.investment_amount, outcome_index=self.outcome_index, min_outcome_tokens_to_buy=self.buy_amount, + chain_id=self.params.mech_chain_id, ) if response_msg.performative != ContractApiMessage.Performative.STATE: self.context.logger.error( diff --git a/packages/valory/skills/decision_maker_abci/behaviours/order_subscription.py b/packages/valory/skills/decision_maker_abci/behaviours/order_subscription.py index 531485dde..3bceb32b9 100644 --- a/packages/valory/skills/decision_maker_abci/behaviours/order_subscription.py +++ b/packages/valory/skills/decision_maker_abci/behaviours/order_subscription.py @@ -162,6 +162,7 @@ def _build_withdraw_wxdai_tx(self, amount: int) -> WaitableConditionType: contract_id=str(ERC20.contract_id), contract_callable="build_withdraw_tx", amount=amount, + chain_id=self.params.mech_chain_id, ) if response_msg.performative != ContractApiMessage.Performative.STATE: diff --git a/packages/valory/skills/decision_maker_abci/behaviours/reedem.py b/packages/valory/skills/decision_maker_abci/behaviours/reedem.py index a00c5b60e..9aff7598a 100644 --- a/packages/valory/skills/decision_maker_abci/behaviours/reedem.py +++ b/packages/valory/skills/decision_maker_abci/behaviours/reedem.py @@ -408,6 +408,7 @@ def _get_latest_block(self) -> WaitableConditionType: performative=LedgerApiMessage.Performative.GET_STATE, # type: ignore ledger_callable="get_block", block_identifier=DEFAULT_TO_BLOCK, + chain_id=self.params.mech_chain_id, ) if ledger_api_response.performative != LedgerApiMessage.Performative.STATE: self.context.logger.error(f"Failed to get block: {ledger_api_response}") diff --git a/packages/valory/skills/decision_maker_abci/behaviours/storage_manager.py b/packages/valory/skills/decision_maker_abci/behaviours/storage_manager.py index 378b56599..6ee2ff4c0 100644 --- a/packages/valory/skills/decision_maker_abci/behaviours/storage_manager.py +++ b/packages/valory/skills/decision_maker_abci/behaviours/storage_manager.py @@ -317,11 +317,8 @@ def _check_local_policy_store_overwrite(self) -> bool: self.context.logger.info("Comparing tool accuracy dates...") - overwrite = ( - True - if remote_policy_store_date - > (local_policy_store_date - policy_store_update_offset) - else False + overwrite = remote_policy_store_date > ( + local_policy_store_date - policy_store_update_offset ) self.context.logger.info(f"Local policy store overwrite: {overwrite}.") return overwrite diff --git a/packages/valory/skills/decision_maker_abci/fsm_specification.yaml b/packages/valory/skills/decision_maker_abci/fsm_specification.yaml index b3f247122..c2852179c 100644 --- a/packages/valory/skills/decision_maker_abci/fsm_specification.yaml +++ b/packages/valory/skills/decision_maker_abci/fsm_specification.yaml @@ -65,6 +65,7 @@ states: - ToolSelectionRound transition_func: (BenchmarkingRandomnessRound, DONE): SamplingRound + (BenchmarkingRandomnessRound, NONE): ImpossibleRound (BenchmarkingRandomnessRound, NO_MAJORITY): BenchmarkingRandomnessRound (BenchmarkingRandomnessRound, ROUND_TIMEOUT): BenchmarkingRandomnessRound (BetPlacementRound, DONE): FinishedDecisionMakerRound @@ -82,6 +83,7 @@ transition_func: (CheckBenchmarkingModeRound, BENCHMARKING_DISABLED): BenchmarkingModeDisabledRound (CheckBenchmarkingModeRound, BENCHMARKING_ENABLED): BenchmarkingRandomnessRound (CheckBenchmarkingModeRound, BLACKLIST): ImpossibleRound + (CheckBenchmarkingModeRound, NONE): ImpossibleRound (CheckBenchmarkingModeRound, NO_MAJORITY): CheckBenchmarkingModeRound (CheckBenchmarkingModeRound, NO_OP): ImpossibleRound (CheckBenchmarkingModeRound, ROUND_TIMEOUT): CheckBenchmarkingModeRound @@ -104,6 +106,7 @@ transition_func: (HandleFailedTxRound, NO_MAJORITY): HandleFailedTxRound (HandleFailedTxRound, NO_OP): RedeemRound (RandomnessRound, DONE): SamplingRound + (RandomnessRound, NONE): ImpossibleRound (RandomnessRound, NO_MAJORITY): RandomnessRound (RandomnessRound, ROUND_TIMEOUT): RandomnessRound (RedeemRound, DONE): FinishedDecisionMakerRound diff --git a/packages/valory/skills/decision_maker_abci/models.py b/packages/valory/skills/decision_maker_abci/models.py index 4ecfaa231..5ddd5e0c8 100644 --- a/packages/valory/skills/decision_maker_abci/models.py +++ b/packages/valory/skills/decision_maker_abci/models.py @@ -26,19 +26,9 @@ from datetime import datetime, timedelta from pathlib import Path from string import Template -from typing import ( - Any, - Callable, - Dict, - Iterable, - List, - Optional, - Set, - Tuple, - Type, - Union, -) +from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union +from aea.exceptions import enforce from aea.skills.base import Model, SkillContext from hexbytes import HexBytes from web3.constants import HASH_ZERO @@ -366,21 +356,6 @@ def _raise_incorrect_config(key: str, values: Any) -> None: ) -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} - - class DecisionMakerParams(MarketManagerParams, MechInteractParams): """Decision maker's parameters.""" @@ -436,8 +411,10 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: self._slippage: float = 0.0 self.slippage: float = self._ensure("slippage", kwargs, float) self.epsilon: float = self._ensure("policy_epsilon", kwargs, float) - self.agent_registry_address: str = self._ensure( - "agent_registry_address", kwargs, str + self.agent_registry_address = kwargs.get("agent_registry_address", None) + enforce( + self.agent_registry_address is not None, + "Agent registry address not specified!", ) self.store_path: Path = self.get_store_path(kwargs) self.irrelevant_tools: set = set(self._ensure("irrelevant_tools", kwargs, list)) @@ -445,14 +422,11 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: "tool_punishment_multiplier", kwargs, int ) self.contract_timeout: float = self._ensure("contract_timeout", kwargs, float) - self.file_hash_to_strategies: Dict[ - str, List[str] - ] = nested_list_todict_workaround( - kwargs, - "file_hash_to_strategies_json", + self.file_hash_to_strategies: Dict[str, List[str]] = self._ensure( + "file_hash_to_strategies", kwargs, Dict[str, List[str]] ) - self.strategies_kwargs: Dict[str, List[Any]] = nested_list_todict_workaround( - kwargs, "strategies_kwargs" + self.strategies_kwargs: Dict[str, Any] = self._ensure( + "strategies_kwargs", kwargs, Dict[str, Any] ) self.use_subgraph_for_redeeming = self._ensure( "use_subgraph_for_redeeming", @@ -461,11 +435,10 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: ) self.use_nevermined = self._ensure("use_nevermined", kwargs, bool) self.rpc_sleep_time: int = self._ensure("rpc_sleep_time", kwargs, int) - self.mech_to_subscription_params: Dict[ - str, Any - ] = nested_list_todict_workaround( - kwargs, + self.mech_to_subscription_params: Dict[str, str] = self._ensure( "mech_to_subscription_params", + kwargs, + Dict[str, str], ) self.service_endpoint = self._ensure("service_endpoint", kwargs, str) self.safe_voting_range = self._ensure("safe_voting_range", kwargs, int) diff --git a/packages/valory/skills/decision_maker_abci/rounds.py b/packages/valory/skills/decision_maker_abci/rounds.py index 46aacc9a7..16cfc8021 100644 --- a/packages/valory/skills/decision_maker_abci/rounds.py +++ b/packages/valory/skills/decision_maker_abci/rounds.py @@ -93,16 +93,19 @@ class DecisionMakerAbciApp(AbciApp[Event]): - benchmarking disabled: 14. - no majority: 0. - round timeout: 0. + - none: 20. - no op: 20. - blacklist: 20. 1. BenchmarkingRandomnessRound - done: 3. - round timeout: 1. - no majority: 1. + - none: 20. 2. RandomnessRound - done: 3. - round timeout: 2. - no majority: 2. + - none: 20. 3. SamplingRound - done: 4. - none: 16. @@ -202,6 +205,7 @@ class DecisionMakerAbciApp(AbciApp[Event]): Event.ROUND_TIMEOUT: CheckBenchmarkingModeRound, # added because of `autonomy analyse fsm-specs` # falsely reporting them as missing from the transition + Event.NONE: ImpossibleRound, Event.NO_OP: ImpossibleRound, Event.BLACKLIST: ImpossibleRound, }, @@ -209,11 +213,17 @@ class DecisionMakerAbciApp(AbciApp[Event]): Event.DONE: SamplingRound, Event.ROUND_TIMEOUT: BenchmarkingRandomnessRound, Event.NO_MAJORITY: BenchmarkingRandomnessRound, + # added because of `autonomy analyse fsm-specs` + # falsely reporting this as missing from the transition + Event.NONE: ImpossibleRound, }, RandomnessRound: { Event.DONE: SamplingRound, Event.ROUND_TIMEOUT: RandomnessRound, Event.NO_MAJORITY: RandomnessRound, + # added because of `autonomy analyse fsm-specs` + # falsely reporting this as missing from the transition + Event.NONE: ImpossibleRound, }, SamplingRound: { Event.DONE: SubscriptionRound, diff --git a/packages/valory/skills/decision_maker_abci/skill.yaml b/packages/valory/skills/decision_maker_abci/skill.yaml index fccbe682c..358b92acb 100644 --- a/packages/valory/skills/decision_maker_abci/skill.yaml +++ b/packages/valory/skills/decision_maker_abci/skill.yaml @@ -12,41 +12,41 @@ fingerprint: README.md: bafybeia367zzdwndvlhw27rvnwodytjo3ms7gbc3q7mhrrjqjgfasnk47i __init__.py: bafybeih563ujnigeci2ldzh7hakbau6a222vsed7leg3b7lq32vcn3nm4a behaviours/__init__.py: bafybeih6ddz2ocvm6x6ytvlbcz6oi4snb5ee5xh5h65nq4w2qf7fd7zfky - behaviours/base.py: bafybeifjgxzhwzxiky3okgtv4ojumm7fj7bom6qe3ysdvs3cpu32w446g4 - behaviours/bet_placement.py: bafybeia4listbfzsk4n4wkc4ycaftxgywjnl3mmpcqhuo3nwwia4n3oufu + behaviours/base.py: bafybeicmwroadqz2lgznxzkfyhqmyg6rwfjdwtxfhp4qo6csj4kiuhcogm + behaviours/bet_placement.py: bafybeidyucxomadfzr6eyfywlc4satl4vqb6qhdkyzdp76zkxbfjfyzai4 behaviours/blacklisting.py: bafybeifitqx2omj5qdwokizhqjkxvybtsyxo22dxkucbtxaocafzgbseku behaviours/check_benchmarking.py: bafybeiao2lyj7apezkqrpgsyzb3dwvrdgsrgtprf6iuhsmlsufvxfl5bci behaviours/claim_subscription.py: bafybeigbqkhc6mb73rbwaks32tfiqx6u2xza43uiy6rvbtrnqd6m4fru3e behaviours/decision_receive.py: bafybeiaph3ft4j3br4k7bddymzv5ffcexmlup2l4prk5rvhqlilxtq57oa behaviours/decision_request.py: bafybeia22omb7tvocyfe3z2ucn5au5mcas7dg37ha42u7znefzrewjpk7y behaviours/handle_failed_tx.py: bafybeidxpc6u575ymct5tdwutvzov6zqfdoio5irgldn3fw7q3lg36mmxm - behaviours/order_subscription.py: bafybeib3maqohhx35wzryy4otdcjp5thkr4sbp27ksvwidy3pwm444itra + behaviours/order_subscription.py: bafybeihwuhgykptokmeam5sacnfzedk5puvrxbjo7iypaqhsrqg5nk7psm behaviours/randomness.py: bafybeiaoj3awyyg2onhpsdsn3dyczs23gr4smuzqcbw3e5ocljwxswjkce - behaviours/reedem.py: bafybeiaxwp4lx62owcaqfp6xcqh6567f5yvwnl4rage2f5hmq4nltkzjjy + behaviours/reedem.py: bafybeiais2fd233xfb65ft6ztpgvocyooomzaxvou4a5rvd3qwjiyvriga behaviours/round_behaviour.py: bafybeih63hpia2bwwzu563hxs5yd3t5ycvxvkfnhvxbzghbyy3mw3xjl3i behaviours/sampling.py: bafybeihlpkinxgewpyazax2qlwzlo5iwpxcce6g5juybn6qinstzku27fi - behaviours/storage_manager.py: bafybeiez6daaj2bufxdcsghtmqybyrzdh74z26cc4ajsqsiy5krgjo2tla + behaviours/storage_manager.py: bafybeigiesjbq5rniesnfrhxxlo55rztzzcfkhztz6eaabbp4pe7f4yeaa behaviours/tool_selection.py: bafybeienlxcgjs3ogyofli3d7q3p5rst3mcxxcnwqf7qolqjeefjtixeke dialogues.py: bafybeigpwuzku3we7axmxeamg7vn656maww6emuztau5pg3ebsoquyfdqm - fsm_specification.yaml: bafybeigwlvvi6fav72wg4wz22xjekegenzjnub5efwz5xu6qsrjnxluspq + fsm_specification.yaml: bafybeicxmpqxktjpq4euei6otxqnr7stloui3glhiyelyhidb5bozwksza handlers.py: bafybeibf42562x3d5i66yf5p3vi6a2oolhwwxr32pjqtuxz5w4gmg3r4oa io_/__init__.py: bafybeifxgmmwjqzezzn3e6keh2bfo4cyo7y5dq2ept3stfmgglbrzfl5rq io_/loader.py: bafybeih3sdsx5dhe4kzhtoafexjgkutsujwqy3zcdrlrkhtdks45bc7exa - models.py: bafybeidhdqgwcgn4rrncufpdmkbcye7xfqd6ytow7zx3hbcpsgpjmxgfmm + models.py: bafybeicfwj7ru4kuzapse6cblh3tsoclcvwiy2hzvyghdlmzwp3myd25ce payloads.py: bafybeif3d4qgj635rbnp6a5lgwhgbyilta6mtytjcej2jccorckxbuaev4 policy.py: bafybeihlzs4o5e7yfmfzcvvrzkf4bhxfsg5gxnzsrpepwgfugh45gafye4 redeem_info.py: bafybeifiiix4gihfo4avraxt34sfw35v6dqq45do2drrssei2shbps63mm - rounds.py: bafybeiazjcsukgefair52aw37hhvxzlopnzqqmi4ntqrinakljlcm4kt4a + rounds.py: bafybeidahczp32fdqk2hy4z6jj7mncly34tu5ywggmwnms6zxvfiwzpnu4 states/__init__.py: bafybeid23llnyp6j257dluxmrnztugo5llsrog7kua53hllyktz4dqhqoy states/base.py: bafybeifkip6bw3oacpnyhko7fi3i72nv2fc33ld6bkr2myaay4qa2ybcie states/bet_placement.py: bafybeih5eopyxubczys5u5t3bdxbxpc7mmfdyqrpqsbm2uha5jc2phza4i states/blacklisting.py: bafybeiapelgjhbjjn4uq4z5gspyirqzwzgccg5anktrp5kxdwamfnfw5mi - states/check_benchmarking.py: bafybeiabv6pq7q45jd3nkor5afmlycqgec5ctuwcfbdukkjjm4imesv4ni - states/claim_subscription.py: bafybeiampifhdoztggwj6gthl2hfzecmjcwnm6nic2o47q4je7j4x3ujne + states/check_benchmarking.py: bafybeieo3xraqkda6t5yip2doquf5cjl75kfgqj3ovbfo6ofafuqdxbbse + states/claim_subscription.py: bafybeiflq2ncfwpcv5cqxecwb5gyewdrcvvz7sj2n3v2caua6vbably3oa states/decision_receive.py: bafybeib3eahaehvmcrdojnlrz34q2crdb3ao6qun2wohokdf3t3ywwfa4y states/decision_request.py: bafybeiarv3r5j7cfvxmudki2llbdl2pvf24p5mvsva6bdgrylnwdyag5xy states/final_states.py: bafybeicjrrojo3gmfaxzicwloyorlnqgzl6a2avevo4nvhoh424zwzmbti - states/handle_failed_tx.py: bafybeihewm2vernvhktuorljdupjqcg2p5vs6wvsira2d62wkoyo5xlzjm + states/handle_failed_tx.py: bafybeigj2q5juiykhphb4jcjtprgcs6ix3syi2j7rfrbbftr62nfeg256e states/order_subscription.py: bafybeihl3pwrbccaitiukbigygd5u3weyih34pvzql3c6n5k7gjj47f2be states/randomness.py: bafybeiceoo4nx3t4dofpwczw3v5mclramwmzpwjs6hv7l56arodrjx4l5u states/redeem.py: bafybeica6cn4xg7shea2wjhbqnddgxe5zao2hkmceltze7qknxdhtsoaxe @@ -57,7 +57,7 @@ fingerprint: tests/behaviours/data/.gitkeep: bafybeiekl43sjsyqfgl6y27ve5ydo4svcngrptgtffblokmspfezroxvvi tests/behaviours/dummy_strategy/__init__.py: bafybeiep5w5yckjzy724v63qd5cmzfn3uxytmnizynomxggfobbysfcttq tests/behaviours/dummy_strategy/dummy_strategy.py: bafybeig5e3xfr7gxsakfj4stbxqcwdiljl7klvgahkuwe3obzxgkg3qt2e - tests/behaviours/test_base.py: bafybeif6pglmr7pvojylatfzaxtlk65igx6a2omyrbxfihnnft6o7p75p4 + tests/behaviours/test_base.py: bafybeiboiox2eqfncvkj7iofsfrpsdfncahd2bak5jtexngusmgpmrheeu tests/conftest.py: bafybeidy5hw56kw5mxudnfbhvogofn6k4rqb4ux2bd45baedrrhmgyrude tests/states/test_base.py: bafybeigiuctxda3npkbvx7nsq4jvqpckvbzgqlj76hdpk2ntc52ppc4vnm tests/states/test_bet_placement.py: bafybeibvc37n2cluep4tasvgmvwxwne2deais6ptirducpogk67v4gj4ga @@ -84,27 +84,27 @@ fingerprint_ignore_patterns: [] connections: - valory/http_server:0.22.0:bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m contracts: -- valory/gnosis_safe:0.1.0:bafybeih3ropivth4wn7zbzudisx3qezbht5jyndd4w7az7fq634lpozoge -- valory/market_maker:0.1.0:bafybeihrz4q5ia7jnflsv2myg6kkung2dfiogqrevuy7xlmqws7tr27rdi -- valory/erc20:0.1.0:bafybeid2p2jyvjjlcsqugnawksdzsca6ljghpqbp2kfi3cxuxoy2233dbi +- valory/gnosis_safe:0.1.0:bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi +- valory/market_maker:0.1.0:bafybeigfhg57pnhy5xyaegz5keaulkmajshwapb5s4wdzjyqx7pckgs34q +- valory/erc20:0.1.0:bafybeientdgpccdi7prtu4x53m5g3yugh5tuh5hnroylfz3wwzyjniqure - valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y -- valory/mech:0.1.0:bafybeiejfjfoxqggghcme43sx53q5gruefrws3k2jam2opkxl5uzffoarm +- valory/mech:0.1.0:bafybeielwbnikog4eqmu6bo537kzp2e7qpmkzt7l5zuuugp2w4r47dbvwu - valory/conditional_tokens:0.1.0:bafybeibnzmqmeph4cj5vfh3s622mo2o5627vjjwc6bptrhj4dk65mzgvhe - valory/realitio:0.1.0:bafybeietgux6kkhdquspy35qera7gjwwqwrremmoeatjzwwokjb2lzsata - valory/realitio_proxy:0.1.0:bafybeidx37xzjjmapwacedgzhum6grfzhp5vhouz4zu3pvpgdy5pgb2fr4 -- valory/agent_registry:0.1.0:bafybeiblc4i5xjxbywnfccwtv3unhaghrgqls7panfbuqbpstbc34h42xq -- valory/transfer_nft_condition:0.1.0:bafybeid6z2tf7nc4rhwggktxk5f62bowxdczykrxc3y76sbt2ttlw5hmtq +- valory/agent_registry:0.1.0:bafybeibboljpn2zevzxnpgflxj6ykxk4bpxegtzjts25ajliaoadz35mca +- valory/transfer_nft_condition:0.1.0:bafybeicdtigdwlt47jg2tibxltwyyl4apysvlideo53lgiy3muuho3izpa protocols: - valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni - valory/ipfs:0.1.0:bafybeiftxi2qhreewgsc5wevogi7yc5g6hbcbo4uiuaibauhv3nhfcdtvm - valory/http:1.0.0:bafybeifugzl63kfdmwrxwphrnrhj7bn6iruxieme3a4ntzejf6kmtuwmae skills: -- valory/abstract_round_abci:0.1.0:bafybeib733xfbndtpvkf44mtk7oyodnficgloo6xhn7xmqxxeos33es65u -- valory/market_manager_abci:0.1.0:bafybeicztk62pslofv6ui3aw3giw2tnvlfwfmatqbyvvzv4ampneu6isqa -- valory/transaction_settlement_abci:0.1.0:bafybeic7q7recyka272udwcupblwbkc3jkodgp74fvcdxb7urametg5dae -- valory/mech_interact_abci:0.1.0:bafybeid6m3i5ofq7vuogqapdnoshhq7mswmudhvfcr2craw25fdwtoe3lm -- valory/staking_abci:0.1.0:bafybeictd5pxhscuhqntvctb7l5lfjausxt2m22rg5mkaiuj4cwwcxpvne +- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm +- valory/market_manager_abci:0.1.0:bafybeiaotaepzfcp3mvd7pp2zv6v6bbgfjblk4pzcvjbzbhkc5p463afba +- valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq +- valory/mech_interact_abci:0.1.0:bafybeib4vn6m2yumwoclh5aatcdt5yxcjc5owxmxy5o7t3nfzormgwkr64 +- valory/staking_abci:0.1.0:bafybeifzayvzmhuu54ut5ke2ohutmoprnw474kk63pmlrmlt5cg46slrji behaviours: main: args: {} @@ -250,28 +250,16 @@ models: use_nevermined: true policy_store_update_offset: 259200 mech_to_subscription_params: - - - base_url - - https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo - - - did - - did:nv:0ea01d5de3b34e3792db825f2a5f5595c393c68b19fd5efdacd00fcc63a53483 - - - escrow_payment_condition_address - - '0x9dDC4F1Ea5b94C138A23b60EC48c0d01d172629a' - - - lock_payment_condition_address - - '0xDE85A368Ee6f374d236500d176814365370778dA' - - - transfer_nft_condition_address - - '0xbBa4A25262745a55f020D0a3E9a82c25bb6F4979' - - - token_address - - '0xa30DE8C6aC39B825192e5F1FADe0770332D279A8' - - - order_address - - '0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4' - - - nft_amount - - '100' - - - payment_token - - '0x0000000000000000000000000000000000000000' - - - order_address - - '0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4' - - - price - - '1000000000000000000' + base_url: url + did: did + escrow_payment_condition_address: address + lock_payment_condition_address: address + transfer_nft_condition_address: address + token_address: address + order_address: address + nft_amount: amount + payment_token: address + price: price irrelevant_tools: - openai-text-davinci-002 - openai-text-davinci-003 @@ -283,16 +271,12 @@ models: - stabilityai-stable-diffusion-768-v2-1 tool_punishment_multiplier: 1 contract_timeout: 300.0 - file_hash_to_strategies_json: - - - hash - - - strategy_name + file_hash_to_strategies: {} strategies_kwargs: - - - bet_kelly_fraction - - 1.0 - - - floor_balance - - 500000000000000000 - - - bet_amount_per_threshold - - 0.0: 0 + bet_kelly_fraction: 1.0 + floor_balance: 500000000000000000 + bet_amount_per_threshold: + 0.0: 0 0.1: 0 0.2: 0 0.3: 0 diff --git a/packages/valory/skills/decision_maker_abci/states/check_benchmarking.py b/packages/valory/skills/decision_maker_abci/states/check_benchmarking.py index 97d3bdc76..daf8a1775 100644 --- a/packages/valory/skills/decision_maker_abci/states/check_benchmarking.py +++ b/packages/valory/skills/decision_maker_abci/states/check_benchmarking.py @@ -30,3 +30,4 @@ class CheckBenchmarkingModeRound(HandleFailedTxRound): done_event = Event.BENCHMARKING_ENABLED negative_event = Event.BENCHMARKING_DISABLED + none_event = Event.NONE diff --git a/packages/valory/skills/decision_maker_abci/states/claim_subscription.py b/packages/valory/skills/decision_maker_abci/states/claim_subscription.py index 53b41baf2..692bb27e1 100644 --- a/packages/valory/skills/decision_maker_abci/states/claim_subscription.py +++ b/packages/valory/skills/decision_maker_abci/states/claim_subscription.py @@ -19,7 +19,11 @@ """This module contains the decision receiving state of the decision-making abci app.""" -from packages.valory.skills.abstract_round_abci.base import VotingRound, get_name +from packages.valory.skills.abstract_round_abci.base import ( + NONE_EVENT_ATTRIBUTE, + VotingRound, + get_name, +) from packages.valory.skills.decision_maker_abci.payloads import ClaimPayload from packages.valory.skills.decision_maker_abci.states.base import ( Event, @@ -36,3 +40,9 @@ class ClaimRound(VotingRound): negative_event = Event.SUBSCRIPTION_ERROR no_majority_event = Event.NO_MAJORITY collection_key = get_name(SynchronizedData.participant_to_votes) + # the none event is not required because the `ClaimPayload` payload does not allow for `None` values + required_class_attributes = tuple( + attribute + for attribute in VotingRound.required_class_attributes + if attribute != NONE_EVENT_ATTRIBUTE + ) diff --git a/packages/valory/skills/decision_maker_abci/states/handle_failed_tx.py b/packages/valory/skills/decision_maker_abci/states/handle_failed_tx.py index cce575c88..10b03b2e0 100644 --- a/packages/valory/skills/decision_maker_abci/states/handle_failed_tx.py +++ b/packages/valory/skills/decision_maker_abci/states/handle_failed_tx.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023 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. @@ -19,7 +19,11 @@ """This module contains the blacklisting state of the decision-making abci app.""" -from packages.valory.skills.abstract_round_abci.base import VotingRound, get_name +from packages.valory.skills.abstract_round_abci.base import ( + NONE_EVENT_ATTRIBUTE, + VotingRound, + get_name, +) from packages.valory.skills.decision_maker_abci.payloads import VotingPayload from packages.valory.skills.decision_maker_abci.states.base import ( Event, @@ -33,6 +37,13 @@ class HandleFailedTxRound(VotingRound): payload_class = VotingPayload synchronized_data_class = SynchronizedData done_event = Event.BLACKLIST + none_event = Event.BLACKLIST negative_event = Event.NO_OP no_majority_event = Event.NO_MAJORITY collection_key = get_name(SynchronizedData.participant_to_votes) + # the none event is not required because the `VotingPayload` payload does not allow for `None` values + required_class_attributes = tuple( + attribute + for attribute in VotingRound.required_class_attributes + if attribute != NONE_EVENT_ATTRIBUTE + ) diff --git a/packages/valory/skills/decision_maker_abci/tests/behaviours/test_base.py b/packages/valory/skills/decision_maker_abci/tests/behaviours/test_base.py index 5f48f32e3..4e44949f7 100644 --- a/packages/valory/skills/decision_maker_abci/tests/behaviours/test_base.py +++ b/packages/valory/skills/decision_maker_abci/tests/behaviours/test_base.py @@ -21,14 +21,15 @@ import re from pathlib import Path -from typing import Any, Dict, Optional, Tuple, cast +from typing import Any, Callable, Dict, Optional, Tuple, TypeVar, Union from unittest import mock +from unittest.mock import MagicMock import pytest +from aea.configurations.base import PackageConfiguration from hypothesis import given, settings from hypothesis import strategies as st -from packages.valory.skills.abstract_round_abci.base import AbciAppDB from packages.valory.skills.abstract_round_abci.test_tools.base import ( FSMBehaviourBaseCase, ) @@ -41,14 +42,40 @@ from packages.valory.skills.decision_maker_abci.behaviours.blacklisting import ( BlacklistingBehaviour, ) -from packages.valory.skills.decision_maker_abci.states.base import SynchronizedData from packages.valory.skills.decision_maker_abci.tests.conftest import profile_name +from packages.valory.skills.market_manager_abci.behaviours import READ_MODE settings.load_profile(profile_name) FRACTION_REMOVAL_PRECISION = 2 CURRENT_FILE_PATH = Path(__file__).resolve() PACKAGE_DIR = CURRENT_FILE_PATH.parents[2] +DUMMY_STRATEGY_PATH = CURRENT_FILE_PATH.parent / "./dummy_strategy/dummy_strategy.py" + + +DefaultValueType = TypeVar("DefaultValueType") +ExecutablesMockReturnType = Union[Tuple[str, str], DefaultValueType] + + +def strategies_executables_get_mock_wrapper( + mock_strategy_name: str, + mock_method_name: str, +) -> Callable[[str, Any], ExecutablesMockReturnType]: + """Wrapper to mock the strategies executables dict's `get` method.""" + + def strategies_executables_get_mock( + strategy_name: str, default: DefaultValueType + ) -> ExecutablesMockReturnType: + """Mock the strategies executables dict's `get` method.""" + with open(DUMMY_STRATEGY_PATH, READ_MODE) as strategy_file: + dummy_strategy = strategy_file.read() + return ( + (dummy_strategy, mock_method_name) + if strategy_name == mock_strategy_name + else default + ) + + return strategies_executables_get_mock @st.composite @@ -100,26 +127,28 @@ def strategy_executables( class TestDecisionMakerBaseBehaviour(FSMBehaviourBaseCase): """Test `DecisionMakerBaseBehaviour`.""" + behaviour: BlacklistingBehaviour path_to_skill = PACKAGE_DIR - def ffw( - self, - behaviour_cls: Any, - db_items: Optional[Dict] = None, - ) -> None: - """Fast-forward to the given behaviour.""" - if db_items is None: - db_items = {} - - self.fast_forward_to_behaviour( - behaviour=self.behaviour, - behaviour_id=behaviour_cls.auto_behaviour_id(), - synchronized_data=SynchronizedData( - AbciAppDB( - setup_data=AbciAppDB.data_to_lists(db_items), - ) - ), - ) + @classmethod + def setup_class(cls, **kwargs: Any) -> None: + """Set up the class.""" + kwargs["config_overrides"] = { + "models": {"params": {"args": {"use_acn_for_delivers": True}}} + } + with mock.patch.object(PackageConfiguration, "check_overrides_valid"): + super().setup_class(**kwargs) + + def setup(self, **kwargs: Any) -> None: + """Setup.""" + self.round_sequence_mock = MagicMock() + context_mock = MagicMock(params=MagicMock()) + context_mock.state.round_sequence = self.round_sequence_mock + context_mock.state.round_sequence.syncing_up = False + context_mock.state.synchronized_data.db.get_strict = lambda _: 0 + self.round_sequence_mock.block_stall_deadline_expired = False + self.behaviour = BlacklistingBehaviour(name="", skill_context=context_mock) + self.benchmark_dir = MagicMock() @given(strategy_executables()) def test_strategy_exec( @@ -128,12 +157,8 @@ def test_strategy_exec( ) -> None: """Test the `strategy_exec` method.""" strategy_name, strategies_executables, expected_result = strategy - # use `BlacklistingBehaviour` because it overrides the `DecisionMakerBaseBehaviour`. - self.ffw(BlacklistingBehaviour) - behaviour = cast(BlacklistingBehaviour, self.behaviour.current_behaviour) - assert behaviour.behaviour_id == BlacklistingBehaviour.auto_behaviour_id() - behaviour.shared_state.strategies_executables = strategies_executables - res = behaviour.strategy_exec(strategy_name) + self.behaviour.shared_state.strategies_executables = strategies_executables + res = self.behaviour.strategy_exec(strategy_name) assert res == expected_result @pytest.mark.parametrize( @@ -169,10 +194,13 @@ def test_execute_strategy( expected_result: int, ) -> None: """Test the `execute_strategy` method.""" - # use `BlacklistingBehaviour` because it overrides the `DecisionMakerBaseBehaviour`. - self.ffw(BlacklistingBehaviour) - behaviour = cast(BlacklistingBehaviour, self.behaviour.current_behaviour) - assert behaviour.behaviour_id == BlacklistingBehaviour.auto_behaviour_id() + behaviour = self.behaviour + strategy_key = "trading_strategy" + if strategy_key in kwargs: + behaviour.shared_state.strategies_executables.get = strategies_executables_get_mock_wrapper( # type: ignore + kwargs[strategy_key], method_name # type: ignore + ) + current_dir = CURRENT_FILE_PATH.parent with open(current_dir / strategy_path) as dummy_strategy: behaviour.shared_state.strategies_executables["test"] = ( @@ -195,11 +223,7 @@ def test_collateral_amount_info( self, amount: int, benchmarking_mode_enabled: bool, is_wxdai: bool ) -> None: """Test the `collateral_amount_info` method.""" - # use `BlacklistingBehaviour` because it overrides the `DecisionMakerBaseBehaviour`. - self.ffw(BlacklistingBehaviour, {"sampled_bet_index": 0}) - behaviour = cast(BlacklistingBehaviour, self.behaviour.current_behaviour) - assert behaviour.behaviour_id == BlacklistingBehaviour.auto_behaviour_id() - + behaviour = self.behaviour behaviour.benchmarking_mode.enabled = benchmarking_mode_enabled with mock.patch.object(behaviour, "read_bets"): collateral_token = WXDAI if is_wxdai else "unknown" @@ -219,11 +243,7 @@ def test_mock_balance_check( self, collateral_balance: int, native_balance: int ) -> None: """Test the `_mock_balance_check` method.""" - # use `BlacklistingBehaviour` because it overrides the `DecisionMakerBaseBehaviour`. - self.ffw(BlacklistingBehaviour) - behaviour = cast(BlacklistingBehaviour, self.behaviour.current_behaviour) - assert behaviour.behaviour_id == BlacklistingBehaviour.auto_behaviour_id() - + behaviour = self.behaviour behaviour.benchmarking_mode.collateral_balance = collateral_balance behaviour.benchmarking_mode.native_balance = native_balance with mock.patch.object(behaviour, "_report_balance") as mock_report_balance: @@ -249,10 +269,7 @@ def test_get_bet_amount( expected_result: int, ) -> None: """Test the `get_bet_amount` method.""" - # use `BlacklistingBehaviour` because it overrides the `DecisionMakerBaseBehaviour`. - self.ffw(BlacklistingBehaviour) - behaviour = cast(BlacklistingBehaviour, self.behaviour.current_behaviour) - assert behaviour.behaviour_id == BlacklistingBehaviour.auto_behaviour_id() + behaviour = self.behaviour behaviour.download_strategies = lambda: (yield) # type: ignore behaviour.wait_for_condition_with_sleep = lambda _: (yield) # type: ignore behaviour.execute_strategy = lambda *_, **__: mocked_result # type: ignore diff --git a/packages/valory/skills/market_manager_abci/skill.yaml b/packages/valory/skills/market_manager_abci/skill.yaml index 44e6f05ad..4a94257e4 100644 --- a/packages/valory/skills/market_manager_abci/skill.yaml +++ b/packages/valory/skills/market_manager_abci/skill.yaml @@ -36,7 +36,7 @@ contracts: [] protocols: - valory/http:1.0.0:bafybeifugzl63kfdmwrxwphrnrhj7bn6iruxieme3a4ntzejf6kmtuwmae skills: -- valory/abstract_round_abci:0.1.0:bafybeib733xfbndtpvkf44mtk7oyodnficgloo6xhn7xmqxxeos33es65u +- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm behaviours: main: args: {} diff --git a/packages/valory/skills/staking_abci/behaviours.py b/packages/valory/skills/staking_abci/behaviours.py index 011705c6a..fd9c7cfe8 100644 --- a/packages/valory/skills/staking_abci/behaviours.py +++ b/packages/valory/skills/staking_abci/behaviours.py @@ -223,6 +223,7 @@ def contract_interact( contract_address, contract_id, contract_callable, + chain_id=self.params.mech_chain_id, **kwargs, ) if response_msg.performative != ContractApiMessage.Performative.RAW_TRANSACTION: diff --git a/packages/valory/skills/staking_abci/models.py b/packages/valory/skills/staking_abci/models.py index 460f4647b..6f715acb2 100644 --- a/packages/valory/skills/staking_abci/models.py +++ b/packages/valory/skills/staking_abci/models.py @@ -20,7 +20,7 @@ """Models for the Staking ABCI application.""" -from typing import Any +from typing import Any, Optional from packages.valory.skills.abstract_round_abci.models import BaseParams from packages.valory.skills.abstract_round_abci.models import ( @@ -40,6 +40,8 @@ class StakingParams(BaseParams): """Staking parameters.""" + mech_chain_id: Optional[str] + def __init__(self, *args: Any, **kwargs: Any) -> None: """Initialize the parameters' object.""" self.staking_contract_address: str = self._ensure( diff --git a/packages/valory/skills/staking_abci/rounds.py b/packages/valory/skills/staking_abci/rounds.py index 9485cb9c5..5770c7be2 100644 --- a/packages/valory/skills/staking_abci/rounds.py +++ b/packages/valory/skills/staking_abci/rounds.py @@ -33,6 +33,7 @@ CollectionRound, DegenerateRound, DeserializedCollection, + NONE_EVENT_ATTRIBUTE, get_name, ) from packages.valory.skills.staking_abci.payloads import CallCheckpointPayload @@ -100,6 +101,12 @@ class CallCheckpointRound(CollectSameUntilThresholdRound): ) collection_key = get_name(SynchronizedData.participant_to_checkpoint) synchronized_data_class = SynchronizedData + # the none event is not required because the `CallCheckpointPayload` payload does not allow for `None` values + required_class_attributes = tuple( + attribute + for attribute in CollectSameUntilThresholdRound.required_class_attributes + if attribute != NONE_EVENT_ATTRIBUTE + ) def end_block(self) -> Optional[Tuple[BaseSynchronizedData, Enum]]: """Process the end of the block.""" diff --git a/packages/valory/skills/staking_abci/skill.yaml b/packages/valory/skills/staking_abci/skill.yaml index 43e2dcc22..d80046dde 100644 --- a/packages/valory/skills/staking_abci/skill.yaml +++ b/packages/valory/skills/staking_abci/skill.yaml @@ -8,13 +8,13 @@ aea_version: '>=1.0.0, <2.0.0' fingerprint: README.md: bafybeifrpl36fddmgvniwvghqtxdzc44ry6l2zvqy37vu3y2xvwyd23ugy __init__.py: bafybeiageyes36ujnvvodqd5vlnihgz44rupysrk2ebbhskjkueetj6dai - behaviours.py: bafybeib5rcg26usohcbf2suahk5jticruzzdl2hdakchwsf6bptksi32oy + behaviours.py: bafybeifbfelfwlys6bsdhbqkbm26racle4sjdvkcelfvcw3ypy3qpremgu dialogues.py: bafybeiebofyykseqp3fmif36cqmmyf3k7d2zbocpl6t6wnlpv4szghrxbm fsm_specification.yaml: bafybeicuoejmaks3ndwhbflp64kkfdkrdyn74a2fplarg4l3gxlonfmeoq handlers.py: bafybeichsi2y5zvzffupj2vhgagocwvnm7cbzr6jmavp656mfrzsdvkfnu - models.py: bafybeidc6aghkskpy5ze62xpjbinwgsyvtzvyrlsfckrygcnj4cts54zpa + models.py: bafybeif6j6fad3o2zit4wuwcs6mowgnj4nxzrtbqf7tdnxpsfyst33k6oa payloads.py: bafybeibnub5ehb2mvpcoan3x23pp5oz4azpofwrtcl32abswcfl4cmjlwq - rounds.py: bafybeic7kre4hriounn6at63fjzttw45zoivxatg23cmojok4ah6fca7ca + rounds.py: bafybeiemfytlrp7uhz7x6cc7e434f5xckg7awa5bybh7hiehjkjzr6rrqu tests/__init__.py: bafybeid7m6ynosqeb4mvsss2hqg75aly5o2d47r7yfg2xtgwzkkilv2d2m tests/test_dialogues.py: bafybeidwjk52mufwvkj4cr3xgqycbdzxc6gvosmqyuqdjarnrgwth6wcai tests/test_handers.py: bafybeibnxlwznx3tsdpjpzh62bnp6lq7zdpolyjxfvxeumzz52ljxfzpme @@ -23,15 +23,15 @@ fingerprint: fingerprint_ignore_patterns: [] connections: [] contracts: -- valory/gnosis_safe:0.1.0:bafybeih3ropivth4wn7zbzudisx3qezbht5jyndd4w7az7fq634lpozoge -- valory/service_staking_token:0.1.0:bafybeihhcs3ewwzhy7yto4y36uqmice3pdvyl54fvxxv6jsxonesie4dxu -- valory/staking_token:0.1.0:bafybeiep4r6qyilbfgzdvx6t7zvpgaioxqktmxm7puwtnbpb2ftlib43gy -- valory/mech_activity:0.1.0:bafybeibmqmle5fnal3gxlpdmcos2kogzra4q3pr3o5nh7shplxuilji3t4 +- valory/gnosis_safe:0.1.0:bafybeihtqcpqthb37msgqabpzcc2xc3l3yzkp5pl2sodeghqyzzzyuevgi +- valory/service_staking_token:0.1.0:bafybeieg664oohr26gpcfn3uied4minlz6dmgd32xboewscnxqnv5kk4zi +- valory/staking_token:0.1.0:bafybeiaynt6clwbthtbndtocnwul7dp76ctmu4jxinp7fnqks4pxt65yuy +- valory/mech_activity:0.1.0:bafybeieadv7vnbguc7beu6xo3rs3mqbgzc7wayc7kvgb2tmitmjtpdcqkq protocols: - valory/contract_api:1.0.0:bafybeidgu7o5llh26xp3u3ebq3yluull5lupiyeu6iooi2xyymdrgnzq5i skills: -- valory/abstract_round_abci:0.1.0:bafybeib733xfbndtpvkf44mtk7oyodnficgloo6xhn7xmqxxeos33es65u -- valory/transaction_settlement_abci:0.1.0:bafybeic7q7recyka272udwcupblwbkc3jkodgp74fvcdxb7urametg5dae +- 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/trader_abci/dialogues.py b/packages/valory/skills/trader_abci/dialogues.py index 153b6ce50..9dccaf478 100644 --- a/packages/valory/skills/trader_abci/dialogues.py +++ b/packages/valory/skills/trader_abci/dialogues.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023 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. @@ -61,6 +61,12 @@ from packages.valory.skills.abstract_round_abci.dialogues import ( TendermintDialogues as BaseTendermintDialogues, ) +from packages.valory.skills.mech_interact_abci.dialogues import ( + AcnDialogue as BaseAcnDialogue, +) +from packages.valory.skills.mech_interact_abci.dialogues import ( + AcnDialogues as BaseAcnDialogues, +) AbciDialogue = BaseAbciDialogue @@ -88,3 +94,7 @@ IpfsDialogue = BaseIpfsDialogue IpfsDialogues = BaseIpfsDialogues + + +AcnDialogue = BaseAcnDialogue +AcnDialogues = BaseAcnDialogues diff --git a/packages/valory/skills/trader_abci/fsm_specification.yaml b/packages/valory/skills/trader_abci/fsm_specification.yaml index f00240b02..d4db79ca9 100644 --- a/packages/valory/skills/trader_abci/fsm_specification.yaml +++ b/packages/valory/skills/trader_abci/fsm_specification.yaml @@ -95,6 +95,7 @@ states: - ValidateTransactionRound transition_func: (BenchmarkingRandomnessRound, DONE): SamplingRound + (BenchmarkingRandomnessRound, NONE): ImpossibleRound (BenchmarkingRandomnessRound, NO_MAJORITY): BenchmarkingRandomnessRound (BenchmarkingRandomnessRound, ROUND_TIMEOUT): BenchmarkingRandomnessRound (BetPlacementRound, DONE): PreTxSettlementRound @@ -118,6 +119,7 @@ transition_func: (CheckBenchmarkingModeRound, BENCHMARKING_DISABLED): UpdateBetsRound (CheckBenchmarkingModeRound, BENCHMARKING_ENABLED): BenchmarkingRandomnessRound (CheckBenchmarkingModeRound, BLACKLIST): ImpossibleRound + (CheckBenchmarkingModeRound, NONE): ImpossibleRound (CheckBenchmarkingModeRound, NO_MAJORITY): CheckBenchmarkingModeRound (CheckBenchmarkingModeRound, NO_OP): ImpossibleRound (CheckBenchmarkingModeRound, ROUND_TIMEOUT): CheckBenchmarkingModeRound @@ -184,9 +186,11 @@ transition_func: (PreTxSettlementRound, REFILL_REQUIRED): PreTxSettlementRound (PreTxSettlementRound, ROUND_TIMEOUT): PreTxSettlementRound (RandomnessRound, DONE): SamplingRound + (RandomnessRound, NONE): ImpossibleRound (RandomnessRound, NO_MAJORITY): RandomnessRound (RandomnessRound, ROUND_TIMEOUT): RandomnessRound (RandomnessTransactionSubmissionRound, DONE): SelectKeeperTransactionSubmissionARound + (RandomnessTransactionSubmissionRound, NONE): RandomnessTransactionSubmissionRound (RandomnessTransactionSubmissionRound, NO_MAJORITY): RandomnessTransactionSubmissionRound (RandomnessTransactionSubmissionRound, ROUND_TIMEOUT): RandomnessTransactionSubmissionRound (RedeemRound, DONE): PreTxSettlementRound diff --git a/packages/valory/skills/trader_abci/handlers.py b/packages/valory/skills/trader_abci/handlers.py index 5f35925a0..9f841ca6a 100644 --- a/packages/valory/skills/trader_abci/handlers.py +++ b/packages/valory/skills/trader_abci/handlers.py @@ -39,6 +39,9 @@ from packages.valory.skills.decision_maker_abci.handlers import ( IpfsHandler as BaseIpfsHandler, ) +from packages.valory.skills.mech_interact_abci.handlers import ( + AcnHandler as BaseAcnHandler, +) TraderHandler = ABCIRoundHandler @@ -48,3 +51,4 @@ ContractApiHandler = BaseContractApiHandler TendermintHandler = BaseTendermintHandler IpfsHandler = BaseIpfsHandler +AcnHandler = BaseAcnHandler diff --git a/packages/valory/skills/trader_abci/models.py b/packages/valory/skills/trader_abci/models.py index 989c91347..b8c8188c8 100644 --- a/packages/valory/skills/trader_abci/models.py +++ b/packages/valory/skills/trader_abci/models.py @@ -108,10 +108,11 @@ class RandomnessApi(ApiSpecs): class TraderParams( # also contains the `StakingParams`. Must be before `MechInteractParams` because of the mech's contract address CheckStopTradingParams, + # must be before `MechInteractParams` because of the mech's chain id + TxSettlementMultiplexerParams, # also contains the `MechInteractParams` DecisionMakerParams, TerminationParams, - TxSettlementMultiplexerParams, ): """A model to represent the trader params.""" diff --git a/packages/valory/skills/trader_abci/skill.yaml b/packages/valory/skills/trader_abci/skill.yaml index 2a005c7d4..467a7f773 100644 --- a/packages/valory/skills/trader_abci/skill.yaml +++ b/packages/valory/skills/trader_abci/skill.yaml @@ -10,10 +10,10 @@ fingerprint: __init__.py: bafybeido7wa33h4dtleap57vzgyb4fsofk4vindsqcekyfo5i56i2rll2a behaviours.py: bafybeigc6hszbu66ccajny5eh7thfgsrlr36je4mzziwp4mupgvtaeu6aa composition.py: bafybeifxerfvssuhodqmtvkz6umlmrmdqjv5ptpszhnwlavzxaavdpdyly - dialogues.py: bafybeiebofyykseqp3fmif36cqmmyf3k7d2zbocpl6t6wnlpv4szghrxbm - fsm_specification.yaml: bafybeiea2w6rhdxwc2ogvdnoxw2wbklnlspsoxyzhpz6h6x6dnctqurnoi - handlers.py: bafybeibbxybbi66em63ad33cllymypr3za3f5xvor3m2krhuxoyxnqjnxu - models.py: bafybeih2vkf4ln7n7ar27iemho7w7sdr4clmhbnhbcznmsri6mc2skkky4 + dialogues.py: bafybeihouxm2nl2r6h3vlymmtrge43tcnwphtzhc2q3vludpgytigggguy + fsm_specification.yaml: bafybeibq4d3ol4ccz55yot3nzrvua4zn5y5xk7xuen7acewdw5dr7m473e + handlers.py: bafybeigrqsgqupy6kds2vqieacsymx3eucntwl52rlgi4cu4lrb6bglhti + models.py: bafybeigbnyvpuh7qq3bsgmcb27e6fz2kirp74eios55acar4352opv4ggm tests/__init__.py: bafybeiadatapyjh3e7ucg2ehz77oms3ihrbutwb2cs2tkjehy54utwvuyi tests/tests_handlers.py: bafybeifxvd63qblqpsmyvj7k4dbqubab2pshao5zd2zs2srs7rt32zvciu fingerprint_ignore_patterns: [] @@ -21,17 +21,17 @@ connections: [] contracts: [] protocols: [] skills: -- valory/abstract_round_abci:0.1.0:bafybeib733xfbndtpvkf44mtk7oyodnficgloo6xhn7xmqxxeos33es65u -- valory/registration_abci:0.1.0:bafybeibc7duasoaw5b4ene5oxfba2dmdzstsrws6ipi57ymgdtoxjadn54 -- valory/reset_pause_abci:0.1.0:bafybeigrdlxed3xlsnxtjhnsbl3cojruihxcqx4jxhgivkd5i2fkjncgba -- valory/transaction_settlement_abci:0.1.0:bafybeic7q7recyka272udwcupblwbkc3jkodgp74fvcdxb7urametg5dae -- valory/termination_abci:0.1.0:bafybeib5l7jhew5ic6iq24dd23nidcoimzqkrk556gqywhoziatj33zvwm -- valory/market_manager_abci:0.1.0:bafybeicztk62pslofv6ui3aw3giw2tnvlfwfmatqbyvvzv4ampneu6isqa -- valory/decision_maker_abci:0.1.0:bafybeig3sqaeqedobqdg7gynrxnbq2kgzh4gp5pe5gxo5kw4hczfjmj6e4 -- valory/tx_settlement_multiplexer_abci:0.1.0:bafybeibx63ico4nlp6etvtzgvlcrl3jdy6rx7zodwmxhvvb4phizd732l4 -- valory/staking_abci:0.1.0:bafybeictd5pxhscuhqntvctb7l5lfjausxt2m22rg5mkaiuj4cwwcxpvne -- valory/check_stop_trading_abci:0.1.0:bafybeib75qrimmvensqmskdp5kzki5ijjwolqk2ojekeommakaf64mzn54 -- valory/mech_interact_abci:0.1.0:bafybeid6m3i5ofq7vuogqapdnoshhq7mswmudhvfcr2craw25fdwtoe3lm +- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm +- valory/registration_abci:0.1.0:bafybeiagi6e2h7kochmlemy5c5yk6hwn37tfxiqvk2en74jhowsdwlmrny +- valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri +- valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq +- valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq +- valory/market_manager_abci:0.1.0:bafybeiaotaepzfcp3mvd7pp2zv6v6bbgfjblk4pzcvjbzbhkc5p463afba +- valory/decision_maker_abci:0.1.0:bafybeifljwg5jxxhazhopxo6rful5zc5tmghcos3njsldsjhxiqazzvkhu +- valory/tx_settlement_multiplexer_abci:0.1.0:bafybeicttcqp2n5q3vqdxaoqwawdrqyvh6eq55groaehdarpreufe5agda +- valory/staking_abci:0.1.0:bafybeifzayvzmhuu54ut5ke2ohutmoprnw474kk63pmlrmlt5cg46slrji +- valory/check_stop_trading_abci:0.1.0:bafybeicqcqhmrsswxyob7j2q2yosfu2ruknl2zibl4ewfmmgjsy3x7t6u4 +- valory/mech_interact_abci:0.1.0:bafybeib4vn6m2yumwoclh5aatcdt5yxcjc5owxmxy5o7t3nfzormgwkr64 behaviours: main: args: {} @@ -40,6 +40,9 @@ handlers: abci: args: {} class_name: TraderHandler + acn: + args: {} + class_name: AcnHandler contract_api: args: {} class_name: ContractApiHandler @@ -62,6 +65,9 @@ models: abci_dialogues: args: {} class_name: AbciDialogues + acn_dialogues: + args: {} + class_name: AcnDialogues benchmark_tool: args: log_dir: /logs @@ -125,6 +131,7 @@ models: service_id: trader service_registry_address: null agent_registry_address: '0x0000000000000000000000000000000000000000' + use_acn_for_delivers: false setup: all_participants: - '0x0000000000000000000000000000000000000000' @@ -200,39 +207,23 @@ models: tool_punishment_multiplier: 1 use_nevermined: true mech_to_subscription_params: - - - base_url - - https://marketplace-api.gnosis.nevermined.app/api/v1/metadata/assets/ddo - - - did - - did:nv:0ea01d5de3b34e3792db825f2a5f5595c393c68b19fd5efdacd00fcc63a53483 - - - escrow_payment_condition_address - - '0x9dDC4F1Ea5b94C138A23b60EC48c0d01d172629a' - - - lock_payment_condition_address - - '0xDE85A368Ee6f374d236500d176814365370778dA' - - - transfer_nft_condition_address - - '0xbBa4A25262745a55f020D0a3E9a82c25bb6F4979' - - - token_address - - '0xa30DE8C6aC39B825192e5F1FADe0770332D279A8' - - - order_address - - '0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4' - - - nft_amount - - '100' - - - payment_token - - '0x0000000000000000000000000000000000000000' - - - order_address - - '0xc7751eff5396a846e7bc83ac31d3cb7d37cb49e4' - - - price - - '1000000000000000000' + base_url: url + did: did + escrow_payment_condition_address: address + lock_payment_condition_address: address + transfer_nft_condition_address: address + token_address: address + order_address: address + nft_amount: amount + payment_token: address + price: price contract_timeout: 300.0 - file_hash_to_strategies_json: - - - hash - - - strategy_name + file_hash_to_strategies: {} strategies_kwargs: - - - bet_kelly_fraction - - 1.0 - - - floor_balance - - 500000000000000000 - - - bet_amount_per_threshold - - 0.0: 0 + bet_kelly_fraction: 1.0 + floor_balance: 500000000000000000 + bet_amount_per_threshold: + 0.0: 0 0.1: 0 0.2: 0 0.3: 0 diff --git a/packages/valory/skills/tx_settlement_multiplexer_abci/behaviours.py b/packages/valory/skills/tx_settlement_multiplexer_abci/behaviours.py index c19209f9f..280824ba5 100644 --- a/packages/valory/skills/tx_settlement_multiplexer_abci/behaviours.py +++ b/packages/valory/skills/tx_settlement_multiplexer_abci/behaviours.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023 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. @@ -62,6 +62,7 @@ def _get_balance(self, agent: str) -> Generator[None, None, Optional[int]]: performative=LedgerApiMessage.Performative.GET_STATE, # type: ignore ledger_callable="get_balance", account=agent, + chain_id=self.params.mech_chain_id, ) try: diff --git a/packages/valory/skills/tx_settlement_multiplexer_abci/models.py b/packages/valory/skills/tx_settlement_multiplexer_abci/models.py index 49c0e5dbd..ea5080b43 100644 --- a/packages/valory/skills/tx_settlement_multiplexer_abci/models.py +++ b/packages/valory/skills/tx_settlement_multiplexer_abci/models.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023 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. @@ -20,7 +20,7 @@ """Custom objects for the TxSettlementMultiplexer ABCI application.""" -from typing import Any +from typing import Any, Optional from packages.valory.skills.abstract_round_abci.models import BaseParams from packages.valory.skills.abstract_round_abci.models import ( @@ -42,6 +42,8 @@ class TxSettlementMultiplexerParams(BaseParams): """Staking parameters.""" + mech_chain_id: Optional[str] + def __init__(self, *args: Any, **kwargs: Any) -> None: """Initialize the parameters' object.""" self.agent_balance_threshold: int = self._ensure( diff --git a/packages/valory/skills/tx_settlement_multiplexer_abci/rounds.py b/packages/valory/skills/tx_settlement_multiplexer_abci/rounds.py index cee817002..0e36ee7c4 100644 --- a/packages/valory/skills/tx_settlement_multiplexer_abci/rounds.py +++ b/packages/valory/skills/tx_settlement_multiplexer_abci/rounds.py @@ -30,6 +30,7 @@ BaseSynchronizedData, CollectSameUntilThresholdRound, DegenerateRound, + NONE_EVENT_ATTRIBUTE, VotingRound, get_name, ) @@ -67,9 +68,16 @@ class PreTxSettlementRound(VotingRound): payload_class = VotingPayload synchronized_data_class = SynchronizedData done_event = Event.CHECKS_PASSED + none_event = Event.REFILL_REQUIRED negative_event = Event.REFILL_REQUIRED no_majority_event = Event.NO_MAJORITY collection_key = get_name(SynchronizedData.participant_to_votes) + # the none event is not required because the `VotingPayload` payload does not allow for `None` values + required_class_attributes = tuple( + attribute + for attribute in VotingRound.required_class_attributes + if attribute != NONE_EVENT_ATTRIBUTE + ) class PostTxSettlementRound(CollectSameUntilThresholdRound): @@ -77,6 +85,8 @@ class PostTxSettlementRound(CollectSameUntilThresholdRound): payload_class: Any = object() synchronized_data_class = SynchronizedData + # no class attributes are required because this round is overriding the `end_block` method + required_class_attributes = () def end_block(self) -> Optional[Tuple[BaseSynchronizedData, Enum]]: """ diff --git a/packages/valory/skills/tx_settlement_multiplexer_abci/skill.yaml b/packages/valory/skills/tx_settlement_multiplexer_abci/skill.yaml index 3f2dfba78..4817f26ec 100644 --- a/packages/valory/skills/tx_settlement_multiplexer_abci/skill.yaml +++ b/packages/valory/skills/tx_settlement_multiplexer_abci/skill.yaml @@ -8,12 +8,12 @@ aea_version: '>=1.0.0, <2.0.0' fingerprint: README.md: bafybeiegcjg2wjrsqhrmvyulioch3d67rnbzkx5af3ztkaw7kxathjreda __init__.py: bafybeide6k22zk4f3hyzhpapaoddsnxpw5elqcfvrxxj4nfvpzctv6jqhu - behaviours.py: bafybeictumcqn2pgo7y2duemvzoaafognfhl6s6il3tv53hq66tf7xgpsu + behaviours.py: bafybeib7vkjvvnz4locp6dyoxaiuublq3uzqyjktfpezzer7ui2ybak4nq dialogues.py: bafybeiebofyykseqp3fmif36cqmmyf3k7d2zbocpl6t6wnlpv4szghrxbm fsm_specification.yaml: bafybeicd7us5ffvsrxm7ybaanyzojbhmo7xtsfd3swtdem4dfsxkidxw7a handlers.py: bafybeiafbqr7ojfcbwohvee7x4zzswad3ymfrrbjlfz7uuuttmn3qdfs6q - models.py: bafybeigtmxoecoow663hgqnyinxarlrttyyt5ghpbdamdv4tc4kikcfx3a - rounds.py: bafybeig3dhhrf5tkj63b3bk2mqfprcwzk3galz2ukzvdenz4g2femaixku + models.py: bafybeiaokvfsyweqfop2cl42vr4jhynhlgvdmgxflosvsda4oosd56h2vi + rounds.py: bafybeial5c4cja2nhlrracay3mq362mcph3whuav5tejiixpo2epws63aq tests/__init__.py: bafybeiat74pbtmxvylsz7karp57qp2v7y6wtrsz572jkrghbcssoudgjay tests/test_handlers.py: bafybeiayuktfupylm3p3ygufjb66swzxhpbmioqoffwuauakfgbkwrv7ma fingerprint_ignore_patterns: [] @@ -22,10 +22,10 @@ contracts: [] protocols: - valory/ledger_api:1.0.0:bafybeihdk6psr4guxmbcrc26jr2cbgzpd5aljkqvpwo64bvaz7tdti2oni skills: -- valory/abstract_round_abci:0.1.0:bafybeib733xfbndtpvkf44mtk7oyodnficgloo6xhn7xmqxxeos33es65u -- valory/decision_maker_abci:0.1.0:bafybeig3sqaeqedobqdg7gynrxnbq2kgzh4gp5pe5gxo5kw4hczfjmj6e4 -- valory/staking_abci:0.1.0:bafybeictd5pxhscuhqntvctb7l5lfjausxt2m22rg5mkaiuj4cwwcxpvne -- valory/mech_interact_abci:0.1.0:bafybeid6m3i5ofq7vuogqapdnoshhq7mswmudhvfcr2craw25fdwtoe3lm +- valory/abstract_round_abci:0.1.0:bafybeigjddhk7epta7xpnfvv426xedff5abh4xlkwi6cqgp4vkutgkvydm +- valory/decision_maker_abci:0.1.0:bafybeifljwg5jxxhazhopxo6rful5zc5tmghcos3njsldsjhxiqazzvkhu +- valory/staking_abci:0.1.0:bafybeifzayvzmhuu54ut5ke2ohutmoprnw474kk63pmlrmlt5cg46slrji +- valory/mech_interact_abci:0.1.0:bafybeib4vn6m2yumwoclh5aatcdt5yxcjc5owxmxy5o7t3nfzormgwkr64 behaviours: main: args: {} diff --git a/poetry.lock b/poetry.lock index 7be6dc090..beeffdbf9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,13 +2,13 @@ [[package]] name = "aiohappyeyeballs" -version = "2.4.3" +version = "2.4.4" description = "Happy Eyeballs for asyncio" optional = false python-versions = ">=3.8" files = [ - {file = "aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"}, - {file = "aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586"}, + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, ] [[package]] @@ -238,38 +238,36 @@ tests = ["PyHamcrest (>=2.0.2)", "mypy", "pytest (>=4.6)", "pytest-benchmark", " [[package]] name = "bcrypt" -version = "4.2.0" +version = "4.2.1" description = "Modern password hashing for your software and your servers" optional = false python-versions = ">=3.7" files = [ - {file = "bcrypt-4.2.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:096a15d26ed6ce37a14c1ac1e48119660f21b24cba457f160a4b830f3fe6b5cb"}, - {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c02d944ca89d9b1922ceb8a46460dd17df1ba37ab66feac4870f6862a1533c00"}, - {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d84cf6d877918620b687b8fd1bf7781d11e8a0998f576c7aa939776b512b98d"}, - {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:1bb429fedbe0249465cdd85a58e8376f31bb315e484f16e68ca4c786dcc04291"}, - {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:655ea221910bcac76ea08aaa76df427ef8625f92e55a8ee44fbf7753dbabb328"}, - {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:1ee38e858bf5d0287c39b7a1fc59eec64bbf880c7d504d3a06a96c16e14058e7"}, - {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0da52759f7f30e83f1e30a888d9163a81353ef224d82dc58eb5bb52efcabc399"}, - {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3698393a1b1f1fd5714524193849d0c6d524d33523acca37cd28f02899285060"}, - {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:762a2c5fb35f89606a9fde5e51392dad0cd1ab7ae64149a8b935fe8d79dd5ed7"}, - {file = "bcrypt-4.2.0-cp37-abi3-win32.whl", hash = "sha256:5a1e8aa9b28ae28020a3ac4b053117fb51c57a010b9f969603ed885f23841458"}, - {file = "bcrypt-4.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:8f6ede91359e5df88d1f5c1ef47428a4420136f3ce97763e31b86dd8280fbdf5"}, - {file = "bcrypt-4.2.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:c52aac18ea1f4a4f65963ea4f9530c306b56ccd0c6f8c8da0c06976e34a6e841"}, - {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3bbbfb2734f0e4f37c5136130405332640a1e46e6b23e000eeff2ba8d005da68"}, - {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3413bd60460f76097ee2e0a493ccebe4a7601918219c02f503984f0a7ee0aebe"}, - {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8d7bb9c42801035e61c109c345a28ed7e84426ae4865511eb82e913df18f58c2"}, - {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3d3a6d28cb2305b43feac298774b997e372e56c7c7afd90a12b3dc49b189151c"}, - {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9c1c4ad86351339c5f320ca372dfba6cb6beb25e8efc659bedd918d921956bae"}, - {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:27fe0f57bb5573104b5a6de5e4153c60814c711b29364c10a75a54bb6d7ff48d"}, - {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8ac68872c82f1add6a20bd489870c71b00ebacd2e9134a8aa3f98a0052ab4b0e"}, - {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cb2a8ec2bc07d3553ccebf0746bbf3d19426d1c6d1adbd4fa48925f66af7b9e8"}, - {file = "bcrypt-4.2.0-cp39-abi3-win32.whl", hash = "sha256:77800b7147c9dc905db1cba26abe31e504d8247ac73580b4aa179f98e6608f34"}, - {file = "bcrypt-4.2.0-cp39-abi3-win_amd64.whl", hash = "sha256:61ed14326ee023917ecd093ee6ef422a72f3aec6f07e21ea5f10622b735538a9"}, - {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:39e1d30c7233cfc54f5c3f2c825156fe044efdd3e0b9d309512cc514a263ec2a"}, - {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f4f4acf526fcd1c34e7ce851147deedd4e26e6402369304220250598b26448db"}, - {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:1ff39b78a52cf03fdf902635e4c81e544714861ba3f0efc56558979dd4f09170"}, - {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:373db9abe198e8e2c70d12b479464e0d5092cc122b20ec504097b5f2297ed184"}, - {file = "bcrypt-4.2.0.tar.gz", hash = "sha256:cf69eaf5185fd58f268f805b505ce31f9b9fc2d64b376642164e9244540c1221"}, + {file = "bcrypt-4.2.1-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:1340411a0894b7d3ef562fb233e4b6ed58add185228650942bdc885362f32c17"}, + {file = "bcrypt-4.2.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ee315739bc8387aa36ff127afc99120ee452924e0df517a8f3e4c0187a0f5f"}, + {file = "bcrypt-4.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dbd0747208912b1e4ce730c6725cb56c07ac734b3629b60d4398f082ea718ad"}, + {file = "bcrypt-4.2.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:aaa2e285be097050dba798d537b6efd9b698aa88eef52ec98d23dcd6d7cf6fea"}, + {file = "bcrypt-4.2.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:76d3e352b32f4eeb34703370e370997065d28a561e4a18afe4fef07249cb4396"}, + {file = "bcrypt-4.2.1-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:b7703ede632dc945ed1172d6f24e9f30f27b1b1a067f32f68bf169c5f08d0425"}, + {file = "bcrypt-4.2.1-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:89df2aea2c43be1e1fa066df5f86c8ce822ab70a30e4c210968669565c0f4685"}, + {file = "bcrypt-4.2.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:04e56e3fe8308a88b77e0afd20bec516f74aecf391cdd6e374f15cbed32783d6"}, + {file = "bcrypt-4.2.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cfdf3d7530c790432046c40cda41dfee8c83e29482e6a604f8930b9930e94139"}, + {file = "bcrypt-4.2.1-cp37-abi3-win32.whl", hash = "sha256:adadd36274510a01f33e6dc08f5824b97c9580583bd4487c564fc4617b328005"}, + {file = "bcrypt-4.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:8c458cd103e6c5d1d85cf600e546a639f234964d0228909d8f8dbeebff82d526"}, + {file = "bcrypt-4.2.1-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:8ad2f4528cbf0febe80e5a3a57d7a74e6635e41af1ea5675282a33d769fba413"}, + {file = "bcrypt-4.2.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:909faa1027900f2252a9ca5dfebd25fc0ef1417943824783d1c8418dd7d6df4a"}, + {file = "bcrypt-4.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cde78d385d5e93ece5479a0a87f73cd6fa26b171c786a884f955e165032b262c"}, + {file = "bcrypt-4.2.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:533e7f3bcf2f07caee7ad98124fab7499cb3333ba2274f7a36cf1daee7409d99"}, + {file = "bcrypt-4.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:687cf30e6681eeda39548a93ce9bfbb300e48b4d445a43db4298d2474d2a1e54"}, + {file = "bcrypt-4.2.1-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:041fa0155c9004eb98a232d54da05c0b41d4b8e66b6fc3cb71b4b3f6144ba837"}, + {file = "bcrypt-4.2.1-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f85b1ffa09240c89aa2e1ae9f3b1c687104f7b2b9d2098da4e923f1b7082d331"}, + {file = "bcrypt-4.2.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c6f5fa3775966cca251848d4d5393ab016b3afed251163c1436fefdec3b02c84"}, + {file = "bcrypt-4.2.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:807261df60a8b1ccd13e6599c779014a362ae4e795f5c59747f60208daddd96d"}, + {file = "bcrypt-4.2.1-cp39-abi3-win32.whl", hash = "sha256:b588af02b89d9fad33e5f98f7838bf590d6d692df7153647724a7f20c186f6bf"}, + {file = "bcrypt-4.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:e84e0e6f8e40a242b11bce56c313edc2be121cec3e0ec2d76fce01f6af33c07c"}, + {file = "bcrypt-4.2.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76132c176a6d9953cdc83c296aeaed65e1a708485fd55abf163e0d9f8f16ce0e"}, + {file = "bcrypt-4.2.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e158009a54c4c8bc91d5e0da80920d048f918c61a581f0a63e4e93bb556d362f"}, + {file = "bcrypt-4.2.1.tar.gz", hash = "sha256:6765386e3ab87f569b276988742039baab087b2cdb01e809d74e74503c2faafe"}, ] [package.extras] @@ -927,97 +925,111 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "cytoolz" -version = "1.0.0" +version = "1.0.1" description = "Cython implementation of Toolz: High performance functional utilities" optional = false python-versions = ">=3.8" files = [ - {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"}, + {file = "cytoolz-1.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cec9af61f71fc3853eb5dca3d42eb07d1f48a4599fa502cbe92adde85f74b042"}, + {file = "cytoolz-1.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:140bbd649dbda01e91add7642149a5987a7c3ccc251f2263de894b89f50b6608"}, + {file = "cytoolz-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e90124bdc42ff58b88cdea1d24a6bc5f776414a314cc4d94f25c88badb3a16d1"}, + {file = "cytoolz-1.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e74801b751e28f7c5cc3ad264c123954a051f546f2fdfe089f5aa7a12ccfa6da"}, + {file = "cytoolz-1.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:582dad4545ddfb5127494ef23f3fa4855f1673a35d50c66f7638e9fb49805089"}, + {file = "cytoolz-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd7bd0618e16efe03bd12f19c2a26a27e6e6b75d7105adb7be1cd2a53fa755d8"}, + {file = "cytoolz-1.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d74cca6acf1c4af58b2e4a89cc565ed61c5e201de2e434748c93e5a0f5c541a5"}, + {file = "cytoolz-1.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:823a3763828d8d457f542b2a45d75d6b4ced5e470b5c7cf2ed66a02f508ed442"}, + {file = "cytoolz-1.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:51633a14e6844c61db1d68c1ffd077cf949f5c99c60ed5f1e265b9e2966f1b52"}, + {file = "cytoolz-1.0.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f3ec9b01c45348f1d0d712507d54c2bfd69c62fbd7c9ef555c9d8298693c2432"}, + {file = "cytoolz-1.0.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1855022b712a9c7a5bce354517ab4727a38095f81e2d23d3eabaf1daeb6a3b3c"}, + {file = "cytoolz-1.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9930f7288c4866a1dc1cc87174f0c6ff4cad1671eb1f6306808aa6c445857d78"}, + {file = "cytoolz-1.0.1-cp310-cp310-win32.whl", hash = "sha256:a9baad795d72fadc3445ccd0f122abfdbdf94269157e6d6d4835636dad318804"}, + {file = "cytoolz-1.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:ad95b386a84e18e1f6136f6d343d2509d4c3aae9f5a536f3dc96808fcc56a8cf"}, + {file = "cytoolz-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2d958d4f04d9d7018e5c1850790d9d8e68b31c9a2deebca74b903706fdddd2b6"}, + {file = "cytoolz-1.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0f445b8b731fc0ecb1865b8e68a070084eb95d735d04f5b6c851db2daf3048ab"}, + {file = "cytoolz-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f546a96460a7e28eb2ec439f4664fa646c9b3e51c6ebad9a59d3922bbe65e30"}, + {file = "cytoolz-1.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0317681dd065532d21836f860b0563b199ee716f55d0c1f10de3ce7100c78a3b"}, + {file = "cytoolz-1.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c0ef52febd5a7821a3fd8d10f21d460d1a3d2992f724ba9c91fbd7a96745d41"}, + {file = "cytoolz-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5ebaf419acf2de73b643cf96108702b8aef8e825cf4f63209ceb078d5fbbbfd"}, + {file = "cytoolz-1.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5f7f04eeb4088947585c92d6185a618b25ad4a0f8f66ea30c8db83cf94a425e3"}, + {file = "cytoolz-1.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f61928803bb501c17914b82d457c6f50fe838b173fb40d39c38d5961185bd6c7"}, + {file = "cytoolz-1.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d2960cb4fa01ccb985ad1280db41f90dc97a80b397af970a15d5a5de403c8c61"}, + {file = "cytoolz-1.0.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b2b407cc3e9defa8df5eb46644f6f136586f70ba49eba96f43de67b9a0984fd3"}, + {file = "cytoolz-1.0.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:8245f929144d4d3bd7b972c9593300195c6cea246b81b4c46053c48b3f044580"}, + {file = "cytoolz-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e37385db03af65763933befe89fa70faf25301effc3b0485fec1c15d4ce4f052"}, + {file = "cytoolz-1.0.1-cp311-cp311-win32.whl", hash = "sha256:50f9c530f83e3e574fc95c264c3350adde8145f4f8fc8099f65f00cc595e5ead"}, + {file = "cytoolz-1.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:b7f6b617454b4326af7bd3c7c49b0fc80767f134eb9fd6449917a058d17a0e3c"}, + {file = "cytoolz-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fcb8f7d0d65db1269022e7e0428471edee8c937bc288ebdcb72f13eaa67c2fe4"}, + {file = "cytoolz-1.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:207d4e4b445e087e65556196ff472ff134370d9a275d591724142e255f384662"}, + {file = "cytoolz-1.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21cdf6bac6fd843f3b20280a66fd8df20dea4c58eb7214a2cd8957ec176f0bb3"}, + {file = "cytoolz-1.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a55ec098036c0dea9f3bdc021f8acd9d105a945227d0811589f0573f21c9ce1"}, + {file = "cytoolz-1.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a13ab79ff4ce202e03ab646a2134696988b554b6dc4b71451e948403db1331d8"}, + {file = "cytoolz-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e2d944799026e1ff08a83241f1027a2d9276c41f7a74224cd98b7df6e03957d"}, + {file = "cytoolz-1.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88ba85834cd523b91fdf10325e1e6d71c798de36ea9bdc187ca7bd146420de6f"}, + {file = "cytoolz-1.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a750b1af7e8bf6727f588940b690d69e25dc47cce5ce467925a76561317eaf7"}, + {file = "cytoolz-1.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:44a71870f7eae31d263d08b87da7c2bf1176f78892ed8bdade2c2850478cb126"}, + {file = "cytoolz-1.0.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c8231b9abbd8e368e036f4cc2e16902c9482d4cf9e02a6147ed0e9a3cd4a9ab0"}, + {file = "cytoolz-1.0.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:aa87599ccc755de5a096a4d6c34984de6cd9dc928a0c5eaa7607457317aeaf9b"}, + {file = "cytoolz-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:67cd16537df51baabde3baa770ab7b8d16839c4d21219d5b96ac59fb012ebd2d"}, + {file = "cytoolz-1.0.1-cp312-cp312-win32.whl", hash = "sha256:fb988c333f05ee30ad4693fe4da55d95ec0bb05775d2b60191236493ea2e01f9"}, + {file = "cytoolz-1.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:8f89c48d8e5aec55ffd566a8ec858706d70ed0c6a50228eca30986bfa5b4da8b"}, + {file = "cytoolz-1.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6944bb93b287032a4c5ca6879b69bcd07df46f3079cf8393958cf0b0454f50c0"}, + {file = "cytoolz-1.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e027260fd2fc5cb041277158ac294fc13dca640714527219f702fb459a59823a"}, + {file = "cytoolz-1.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88662c0e07250d26f5af9bc95911e6137e124a5c1ec2ce4a5d74de96718ab242"}, + {file = "cytoolz-1.0.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:309dffa78b0961b4c0cf55674b828fbbc793cf2d816277a5c8293c0c16155296"}, + {file = "cytoolz-1.0.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:edb34246e6eb40343c5860fc51b24937698e4fa1ee415917a73ad772a9a1746b"}, + {file = "cytoolz-1.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a54da7a8e4348a18d45d4d5bc84af6c716d7f131113a4f1cc45569d37edff1b"}, + {file = "cytoolz-1.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:241c679c3b1913c0f7259cf1d9639bed5084c86d0051641d537a0980548aa266"}, + {file = "cytoolz-1.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5bfc860251a8f280ac79696fc3343cfc3a7c30b94199e0240b6c9e5b6b01a2a5"}, + {file = "cytoolz-1.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c8edd1547014050c1bdad3ff85d25c82bd1c2a3c96830c6181521eb78b9a42b3"}, + {file = "cytoolz-1.0.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b349bf6162e8de215403d7f35f8a9b4b1853dc2a48e6e1a609a5b1a16868b296"}, + {file = "cytoolz-1.0.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1b18b35256219b6c3dd0fa037741b85d0bea39c552eab0775816e85a52834140"}, + {file = "cytoolz-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:738b2350f340ff8af883eb301054eb724997f795d20d90daec7911c389d61581"}, + {file = "cytoolz-1.0.1-cp313-cp313-win32.whl", hash = "sha256:9cbd9c103df54fcca42be55ef40e7baea624ac30ee0b8bf1149f21146d1078d9"}, + {file = "cytoolz-1.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:90e577e08d3a4308186d9e1ec06876d4756b1e8164b92971c69739ea17e15297"}, + {file = "cytoolz-1.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f3a509e4ac8e711703c368476b9bbce921fcef6ebb87fa3501525f7000e44185"}, + {file = "cytoolz-1.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a7eecab6373e933dfbf4fdc0601d8fd7614f8de76793912a103b5fccf98170cd"}, + {file = "cytoolz-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e55ed62087f6e3e30917b5f55350c3b6be6470b849c6566018419cd159d2cebc"}, + {file = "cytoolz-1.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43de33d99a4ccc07234cecd81f385456b55b0ea9c39c9eebf42f024c313728a5"}, + {file = "cytoolz-1.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:139bed875828e1727018aa0982aa140e055cbafccb7fd89faf45cbb4f2a21514"}, + {file = "cytoolz-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22c12671194b518aa8ce2f4422bd5064f25ab57f410ba0b78705d0a219f4a97a"}, + {file = "cytoolz-1.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:79888f2f7dc25709cd5d37b032a8833741e6a3692c8823be181d542b5999128e"}, + {file = "cytoolz-1.0.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:51628b4eb41fa25bd428f8f7b5b74fbb05f3ae65fbd265019a0dd1ded4fdf12a"}, + {file = "cytoolz-1.0.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:1db9eb7179285403d2fb56ba1ff6ec35a44921b5e2fa5ca19d69f3f9f0285ea5"}, + {file = "cytoolz-1.0.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:08ab7efae08e55812340bfd1b3f09f63848fe291675e2105eab1aa5327d3a16e"}, + {file = "cytoolz-1.0.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e5fdc5264f884e7c0a1711a81dff112708a64b9c8561654ee578bfdccec6be09"}, + {file = "cytoolz-1.0.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:90d6a2e6ab891043ee655ec99d5e77455a9bee9e1131bdfcfb745edde81200dd"}, + {file = "cytoolz-1.0.1-cp38-cp38-win32.whl", hash = "sha256:08946e083faa5147751b34fbf78ab931f149ef758af5c1092932b459e18dcf5c"}, + {file = "cytoolz-1.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:a91b4e10a9c03796c0dc93e47ebe25bb41ecc6fafc3cf5197c603cf767a3d44d"}, + {file = "cytoolz-1.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:980c323e626ba298b77ae62871b2de7c50b9d7219e2ddf706f52dd34b8be7349"}, + {file = "cytoolz-1.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:45f6fa1b512bc2a0f2de5123db932df06c7f69d12874fe06d67772b2828e2c8b"}, + {file = "cytoolz-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f93f42d9100c415155ad1f71b0de362541afd4ac95e3153467c4c79972521b6b"}, + {file = "cytoolz-1.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a76d20dec9c090cdf4746255bbf06a762e8cc29b5c9c1d138c380bbdb3122ade"}, + {file = "cytoolz-1.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:239039585487c69aa50c5b78f6a422016297e9dea39755761202fb9f0530fe87"}, + {file = "cytoolz-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c28307640ca2ab57b9fbf0a834b9bf563958cd9e038378c3a559f45f13c3c541"}, + {file = "cytoolz-1.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:454880477bb901cee3a60f6324ec48c95d45acc7fecbaa9d49a5af737ded0595"}, + {file = "cytoolz-1.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:902115d1b1f360fd81e44def30ac309b8641661150fcbdde18ead446982ada6a"}, + {file = "cytoolz-1.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e68e6b38473a3a79cee431baa22be31cac39f7df1bf23eaa737eaff42e213883"}, + {file = "cytoolz-1.0.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:32fba3f63fcb76095b0a22f4bdcc22bc62a2bd2d28d58bf02fd21754c155a3ec"}, + {file = "cytoolz-1.0.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:0724ba4cf41eb40b6cf75250820ab069e44bdf4183ff78857aaf4f0061551075"}, + {file = "cytoolz-1.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c42420e0686f887040d5230420ed44f0e960ccbfa29a0d65a3acd9ca52459209"}, + {file = "cytoolz-1.0.1-cp39-cp39-win32.whl", hash = "sha256:4ba8b16358ea56b1fe8e637ec421e36580866f2e787910bac1cf0a6997424a34"}, + {file = "cytoolz-1.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:92d27f84bf44586853d9562bfa3610ecec000149d030f793b4cb614fd9da1813"}, + {file = "cytoolz-1.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:83d19d55738ad9c60763b94f3f6d3c6e4de979aeb8d76841c1401081e0e58d96"}, + {file = "cytoolz-1.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f112a71fad6ea824578e6393765ce5c054603afe1471a5c753ff6c67fd872d10"}, + {file = "cytoolz-1.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a515df8f8aa6e1eaaf397761a6e4aff2eef73b5f920aedf271416d5471ae5ee"}, + {file = "cytoolz-1.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92c398e7b7023460bea2edffe5fcd0a76029580f06c3f6938ac3d198b47156f3"}, + {file = "cytoolz-1.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3237e56211e03b13df47435b2369f5df281e02b04ad80a948ebd199b7bc10a47"}, + {file = "cytoolz-1.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba0d1da50aab1909b165f615ba1125c8b01fcc30d606c42a61c42ea0269b5e2c"}, + {file = "cytoolz-1.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25b6e8dec29aa5a390092d193abd673e027d2c0b50774ae816a31454286c45c7"}, + {file = "cytoolz-1.0.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:36cd6989ebb2f18fe9af8f13e3c61064b9f741a40d83dc5afeb0322338ad25f2"}, + {file = "cytoolz-1.0.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a47394f8ab7fca3201f40de61fdeea20a2baffb101485ae14901ea89c3f6c95d"}, + {file = "cytoolz-1.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d00ac423542af944302e034e618fb055a0c4e87ba704cd6a79eacfa6ac83a3c9"}, + {file = "cytoolz-1.0.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a5ca923d1fa632f7a4fb33c0766c6fba7f87141a055c305c3e47e256fb99c413"}, + {file = "cytoolz-1.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:058bf996bcae9aad3acaeeb937d42e0c77c081081e67e24e9578a6a353cb7fb2"}, + {file = "cytoolz-1.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69e2a1f41a3dad94a17aef4a5cc003323359b9f0a9d63d4cc867cb5690a2551d"}, + {file = "cytoolz-1.0.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67daeeeadb012ec2b59d63cb29c4f2a2023b0c4957c3342d354b8bb44b209e9a"}, + {file = "cytoolz-1.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:54d3d36bbf0d4344d1afa22c58725d1668e30ff9de3a8f56b03db1a6da0acb11"}, + {file = "cytoolz-1.0.1.tar.gz", hash = "sha256:89cc3161b89e1bb3ed7636f74ed2e55984fd35516904fc878cae216e42b2c7d6"}, ] [package.dependencies] @@ -2098,18 +2110,18 @@ nicer-shell = ["ipython"] [[package]] name = "open-aea" -version = "1.53.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.53.0-py3-none-any.whl", hash = "sha256:1244855875effe09e2c965750ac401a973a1ae56cdc880045eea70f19ed90dcb"}, - {file = "open_aea-1.53.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:d0a848e33798599953dc764d37083fc37642140a91624e06a56b8d2f95ae6cb9"}, - {file = "open_aea-1.53.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:48f5715f13a0389799b9461bc776e9638e6ae38173d0f2bf6d28bad637232914"}, - {file = "open_aea-1.53.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:87e4ae903ec9a7268eba0ead449f9693cb5bedb6dfc5846c90f94f2354bd35ab"}, - {file = "open_aea-1.53.0-py3-none-win32.whl", hash = "sha256:182e9f8a77fe8efcc768360ac7308a0951ec16bcb12e2ad4f55886b12258d702"}, - {file = "open_aea-1.53.0-py3-none-win_amd64.whl", hash = "sha256:cef9d4d177ea7d959ebacab962fbd1d03d7243c0b72d10a3ee7850df8d922e06"}, - {file = "open_aea-1.53.0.tar.gz", hash = "sha256:6fcb82ceed0b6841c0f41d116b207308556e3d18807fe140e9ef1a898c7a8a0b"}, + {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] @@ -2137,13 +2149,13 @@ test-tools = ["click (>=8.1.0,<9)", "coverage (>=6.4.4,<8.0.0)", "jsonschema (>= [[package]] name = "open-aea-cli-ipfs" -version = "1.53.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.53.0-py3-none-any.whl", hash = "sha256:335a02473d1c6820bb63a31e2931749ba644f586a7acbc650da9efc4c7168efa"}, - {file = "open_aea_cli_ipfs-1.53.0.tar.gz", hash = "sha256:499a66a45925064e6946ec72f482182390263cc7726409832f1317fe831b6289"}, + {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] @@ -2153,13 +2165,13 @@ pytest = ">=7.0.0,<7.3.0" [[package]] name = "open-aea-ledger-cosmos" -version = "1.53.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.53.0-py3-none-any.whl", hash = "sha256:79b2eafc8723593634b72973da39e3e3c01bceae04b330b51a5059eb1200262b"}, - {file = "open_aea_ledger_cosmos-1.53.0.tar.gz", hash = "sha256:14a032918d7f0659fedbe21a53fa668b24505bb9e97358340b20325943f9fa26"}, + {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] @@ -2171,13 +2183,13 @@ pycryptodome = ">=3.10.1,<4.0.0" [[package]] name = "open-aea-ledger-ethereum" -version = "1.53.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.53.0-py3-none-any.whl", hash = "sha256:501eb9e9e228552bf9f6f8811d780f33dbbf477ddb33b63d335caaeb24840274"}, - {file = "open_aea_ledger_ethereum-1.53.0.tar.gz", hash = "sha256:734f335061c33a171b945ab1bcea5d47be9b9532457ed361b3aab727e85bca0d"}, + {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] @@ -2188,30 +2200,30 @@ web3 = ">=6.0.0,<7" [[package]] name = "open-aea-test-autonomy" -version = "0.14.14.post1" +version = "0.18.3" description = "Plugin containing test tools for open-autonomy packages." optional = false python-versions = "*" files = [ - {file = "open_aea_test_autonomy-0.14.14.post1-py3-none-any.whl", hash = "sha256:5071bd3dd385d75e5fa94f32494ad972354f60936c1a6c70b23ac22d4080d0d5"}, - {file = "open_aea_test_autonomy-0.14.14.post1.tar.gz", hash = "sha256:9e56d43ad40ec7a4f624f3be20ddc9483e6635693327d85368d71d477839199a"}, + {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.53.0,<2.0.0", extras = ["all"]} -open-aea-ledger-ethereum = ">=1.53.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.14.14.post1" +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.14.14.post1-py3-none-any.whl", hash = "sha256:9efe0bc73eaf8c45fb406b62c5249fd712e74bd43be37917563a6342cb291d69"}, - {file = "open_autonomy-0.14.14.post1.tar.gz", hash = "sha256:d0dd58a77e1a93735244baa1e810d760ca68b78d49ca686dda22dd7f3b0001af"}, + {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] @@ -2223,8 +2235,8 @@ Flask = ">=2.0.2,<3.0.0" gql = "3.5.0" hexbytes = "*" jsonschema = ">=4.3.0,<4.4.0" -open-aea = {version = "1.53.0", extras = ["all"]} -open-aea-cli-ipfs = "1.53.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" @@ -2237,8 +2249,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.53.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.53.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" @@ -3239,13 +3251,13 @@ type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12 [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] @@ -3294,13 +3306,43 @@ files = [ [[package]] name = "tomli" -version = "2.1.0" +version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" files = [ - {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, - {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, + {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"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] @@ -3443,13 +3485,13 @@ files = [ [[package]] name = "virtualenv" -version = "20.27.1" +version = "20.28.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" files = [ - {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, - {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, + {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, + {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, ] [package.dependencies] @@ -3800,4 +3842,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = "<3.12,>=3.8" -content-hash = "43c654a308c15072bda54f5c78ee81e355a9c7172183b4deeb3e61f2728eb6f8" +content-hash = "1eb2ddd0e52eaf2c6ed97552b2aac8b485528d43707f06d6e2492b408ed76ab0" diff --git a/pyproject.toml b/pyproject.toml index 3afa98363..1a383910c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,21 +16,21 @@ include = "packages" [tool.poetry.dependencies] python = "<3.12,>=3.8" -open-autonomy = "==0.14.14.post1" +open-autonomy = "==0.18.3" requests = "<2.31.2,>=2.28.1" py-multibase = "==1.0.3" py-multicodec = "==0.2.1" py-eth-sig-utils = "*" grpcio = "==1.53.0" asn1crypto = "<1.5.0,>=1.4.0" -open-aea-ledger-ethereum = "==1.53.0" -open-aea-ledger-cosmos = "==1.53.0" +open-aea-ledger-ethereum = "==1.60.0" +open-aea-ledger-cosmos = "==1.60.0" protobuf = "<4.25.0,>=4.21.6" hypothesis = "==6.21.6" -open-aea-test-autonomy = "==0.14.14.post1" +open-aea-test-autonomy = "==0.18.3" web3 = "<7,>=6.0.0" ipfshttpclient = "==0.8.0a2" -open-aea-cli-ipfs = "==1.53.0" +open-aea-cli-ipfs = "==1.60.0" aiohttp = "<4.0.0,>=3.8.5" certifi = "==2021.10.8" multidict = "*" diff --git a/scripts/bump.py b/scripts/bump.py index a868d23cf..257de5658 100644 --- a/scripts/bump.py +++ b/scripts/bump.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # -# Copyright 2023 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. @@ -117,7 +117,7 @@ def dump_git_cache() -> None: def make_git_request(url: str) -> requests.Response: """Make git request""" - auth = os.environ.get("GITHUB_AUTH") + auth = os.getenv("GITHUB_AUTH") if auth is None: return requests.get(url=url) return requests.get(url=url, headers={"Authorization": f"Bearer {auth}"}) diff --git a/tox.ini b/tox.ini index aba6913e7..d71977ff7 100644 --- a/tox.ini +++ b/tox.ini @@ -18,21 +18,21 @@ deps = [deps-packages] deps = {[deps-tests]deps} - open-autonomy==0.14.14.post1 + open-autonomy==0.18.3 requests<2.31.2,>=2.28.1 py-multibase==1.0.3 py-multicodec==0.2.1 py-eth-sig-utils grpcio==1.53.0 asn1crypto<1.5.0,>=1.4.0 - open-aea-ledger-ethereum==1.53.0 - open-aea-ledger-cosmos==1.53.0 + open-aea-ledger-ethereum==1.60.0 + open-aea-ledger-cosmos==1.60.0 protobuf<4.25.0,>=4.21.6 hypothesis==6.21.6 - open-aea-test-autonomy==0.14.14.post1 + open-aea-test-autonomy==0.18.3 web3<7,>=6.0.0 ipfshttpclient==0.8.0a2 - open-aea-cli-ipfs==1.53.0 + open-aea-cli-ipfs==1.60.0 aiohttp<4.0.0,>=3.8.5 certifi multidict @@ -216,7 +216,7 @@ commands = isort --check-only --gitignore {env:SERVICE_SPECIFIC_PACKAGES} script [testenv:check-hash] skipsdist = True usedevelop = True -deps = open-autonomy[all]==0.14.14.post1 +deps = open-autonomy[all]==0.18.3 commands = autonomy init --reset --author ci --remote --ipfs --ipfs-node "/dns/registry.autonolas.tech/tcp/443/https" autonomy packages sync @@ -640,4 +640,6 @@ pathable: ==0.4.3 pyinstaller: ==6.8.0 pyinstaller-hooks-contrib: >=2024.6 ; sub-dep of aiohttp, has PSF-2.0 License https://github.com/aio-libs/aiohappyeyeballs/blob/main/LICENSE -aiohappyeyeballs: >=2.3.4,<3.0.0 \ No newline at end of file +aiohappyeyeballs: >=2.3.4,<3.0.0 +; licence is MIT, but the tool does not detect it +attrs: ==24.3.0