Bug Fixes
* Add message for dont_notify_geode. ([ee632dc](https://github.com/Geodefi/geonius/commit/ee632dc00204bfd836dc4811f17c1aa328200f7a))
* add missing equal sign ([bf6b9ea](https://github.com/Geodefi/geonius/commit/bf6b9ea3386b42b82581bba776da8a58061a3a24))
* all of the imports are fixed. minor issues are fixed on some SQL queries ([b053b0c](https://github.com/Geodefi/geonius/commit/b053b0c3a084a449607bd378af260a4c442afcf6))
* allow python any version up to 3.13 ([9aa700c](https://github.com/Geodefi/geonius/commit/9aa700c797163afd585167c802a03b6cd45e75ca))
* check_and_stake. Created can_stake portal helper, used with multithread. Removed unused CannotStakeError ([51afe46](https://github.com/Geodefi/geonius/commit/51afe46e45e7c3b2b6c68899077d51cd90ec074a))
* config for the latest changes about mail ([ff19580](https://github.com/Geodefi/geonius/commit/ff195808e90689cf3238a5507b4a09e51026bbd4))
* config.email instead of config. print the error when EmailError ([a6bfab8](https://github.com/Geodefi/geonius/commit/a6bfab8c658635fa5b0697794b9ea341995ba45e))
* convert an old hotfix into TODO (circular import) ([6bbe670](https://github.com/Geodefi/geonius/commit/6bbe670142259d1c3ae5bb12f3385b84ecc8a2d2))
* correct file name for ExpectPubkeysTrigger ([c40344d](https://github.com/Geodefi/geonius/commit/c40344dc6a1e7024db0c45a70d745738dbd4f8ef))
* deposit value for ethdo and fork version ([b8a5a93](https://github.com/Geodefi/geonius/commit/b8a5a93a7fb9f1c1d8b9d89fa2d20c83de12553e))
* do not use getattr pattern on Loggable, instead utilize logger directly. ([eed1842](https://github.com/Geodefi/geonius/commit/eed1842ce2c48cefd21c7dbe4bfe02e43b09ba7a))
* dont expect json response from ethdo for other commands. generate_deposit_data returns json though. ([4df6200](https://github.com/Geodefi/geonius/commit/4df620007795a15ebcc7b9ad4a8908b4c4f6108b))
* dont_notify_geode. Also add message for dont_notify_geode. ([65b2889](https://github.com/Geodefi/geonius/commit/65b2889a0ae259ef2f53e2a8d97bfd8ea2e60e0b))
* email is working now. ([8bf13f1](https://github.com/Geodefi/geonius/commit/8bf13f19ec88c709c2741d31d08fcf48b0d6149c))
* faulty import ([31ddf28](https://github.com/Geodefi/geonius/commit/31ddf281b65821f500bf6ce5920a4aecfe8e48fd))
* fetching credential instead of address fixed ([6f07ec4](https://github.com/Geodefi/geonius/commit/6f07ec4367e49761c56b4d5200ea4f6e6456b28e))
* fix build_transaction function call ([4daa163](https://github.com/Geodefi/geonius/commit/4daa16365404c41aa2d3a394bc41847f6eb605bf))
* fix deposit data dict reachings ([09c2512](https://github.com/Geodefi/geonius/commit/09c25128880301d50928c6d1c988539c22f1b794))
* fix deposit transaction script ([4ee0eef](https://github.com/Geodefi/geonius/commit/4ee0eefe2b567d2ed3ed5c2f33aa68c773549939))
* fix deposit_size during max proposal count calculation ([ca4969f](https://github.com/Geodefi/geonius/commit/ca4969f166bf1a71ea15ce0cef9dbd063b1f7b06))
* fix faulty env setup. utilize api keys appropriately ([b9c18d2](https://github.com/Geodefi/geonius/commit/b9c18d2782aa939de3132f71f832b28532b59dc8))
* fix get_transaction_count function call ([e2598e8](https://github.com/Geodefi/geonius/commit/e2598e8edeb5c41b6dfd9efb5f36680afb2d420c))
* fix get_withdrawal_address function to return address without converting to hex ([76a351f](https://github.com/Geodefi/geonius/commit/76a351fce138ef89bd0de578b4f6e7b20e1b9241))
* fix how to reach min_proposal_queueu and max_proposal_delay ([7063fa9](https://github.com/Geodefi/geonius/commit/7063fa98244891c0a20bcf569015f14f357d46e9))
* fix index adding if index is 0 ([3f4bb70](https://github.com/Geodefi/geonius/commit/3f4bb70d85a24eb25b14da4f0600fa446cacc01d))
* fix multiplication cause scientific form of the number display ([9508bcb](https://github.com/Geodefi/geonius/commit/9508bcba5158493cd31de07d3d247345b15952cf))
* fix not calling functions ([a39d7a6](https://github.com/Geodefi/geonius/commit/a39d7a6a4ead37d225acd0873f45dafa088f3a1d))
* fix proposeStake function call ([f21beb6](https://github.com/Geodefi/geonius/commit/f21beb66fef289f37287e3ebf6253467d1c0a6b0))
* fix proposeStake function transaction creation ([c450a16](https://github.com/Geodefi/geonius/commit/c450a16585d1be85ddba5ff41bcb62be8553f3c0))
* fix validatoraccount parameter ([65b4160](https://github.com/Geodefi/geonius/commit/65b416021075db5b4730ec749fbebceabb4838c6))
* instead of calling sys.exit on main, just rereaise. Deleted done TODO ([478d0cf](https://github.com/Geodefi/geonius/commit/478d0cf01e9215f0e818106e9b1a8a2bdedefab8))
* interpret flags before env ([cca6a90](https://github.com/Geodefi/geonius/commit/cca6a9085602d3b0765bfc192f6ad1deb62e40a3))
* key errors ([96c2205](https://github.com/Geodefi/geonius/commit/96c22059a6572bc640e18f97337359604f54d444))
* max gas should be in wei ([7881aa5](https://github.com/Geodefi/geonius/commit/7881aa5b9090305dfeedf3c088f07555aa2af719))
* no need to check if call_proposeStake is succesful anymore. ([e27fdfd](https://github.com/Geodefi/geonius/commit/e27fdfd2499f5c89d12a6a0617f68fae7d250316))
* only create account for validator when not found ([58be4e2](https://github.com/Geodefi/geonius/commit/58be4e240770852d0be7f781720279c3a44f0000))
* place event_daemon exceptions back in place ([99e629d](https://github.com/Geodefi/geonius/commit/99e629d125679f84fe5bbd34917d3966c0616f8c))
* preflight_checks should raise MissingConfigurationError - not KeyError ([03f5915](https://github.com/Geodefi/geonius/commit/03f59159f49034fd3ce13250806823cdbe6ddea8))
* remove name from mail ([730f1c3](https://github.com/Geodefi/geonius/commit/730f1c3188411945f48348a7549710b5161cf3a6))
* revert the command name to the correct form of validator ([398e68f](https://github.com/Geodefi/geonius/commit/398e68f1fde765a1b5fe0f0efa064ba6c53c079a))
* small change to release on pypi ([7a5ed1c](https://github.com/Geodefi/geonius/commit/7a5ed1c5148365bf524170378a5287cc7231e7d1))
* SQL injection bug is done. refactor: sql queries. ([962b1a7](https://github.com/Geodefi/geonius/commit/962b1a728ffd9233b2f36583916f3c862e910e2a))
* start command should be 'run' ([c6a684d](https://github.com/Geodefi/geonius/commit/c6a684d688153d74300c2df8cd5004ca319541cd))
* try to fix input values for proposeStake ([1bec2c0](https://github.com/Geodefi/geonius/commit/1bec2c087dae724439287bfea57ad2b11138eb28))
* typos ([6651da8](https://github.com/Geodefi/geonius/commit/6651da8a86589bb1bd3656eae50d2c402a5fd073))
Features
* Created database folder. Also, should not use __init__ to store functions, but obj definions. ([09af4e2](https://github.com/Geodefi/geonius/commit/09af4e2be8d9639255725fb76c42a9966332fad6))
* add chain flag to all scripts, make main into function ([f7b7a8a](https://github.com/Geodefi/geonius/commit/f7b7a8aab5a893332d9b2b332ae84360bdd6e095))
* add change-maintainer command and move scripts into commands folder ([08c5832](https://github.com/Geodefi/geonius/commit/08c58325b63ff32f43a169c12f96d81532b9742f))
* add github action to be triggered on push to main with tag and publish package to PyPI ([71b7eb1](https://github.com/Geodefi/geonius/commit/71b7eb147372ff98ad34811b048081b0b1d1fa97))
* add mutexes ([db77ce2](https://github.com/Geodefi/geonius/commit/db77ce2c476596d5b4e8e7f15187b62d4301fc51))
* add operator-id flag. With this, all config can be flag except gas and mail which are optional anyways. Double checked and organised the config.json and its handlers. All good. Also, pushing the env var setters for the flags. ([3e03c20](https://github.com/Geodefi/geonius/commit/3e03c20faa384d2273bc9f5dc8e4362887659cee))
* add poetry scripts ([b1b3163](https://github.com/Geodefi/geonius/commit/b1b3163d9b6c542ab4bbd5ced08ba5eb6a81c877))
* add send_test_email option. Remove get_env, use os.getenv. Load env first thing while processing the main-dir flag. ([549658d](https://github.com/Geodefi/geonius/commit/549658df809f1df38aff3552340c9c4d217deb65))
* add test_email, test_ethdo, test_operator parameters to preflight check. ([7cde641](https://github.com/Geodefi/geonius/commit/7cde6418b93e302c9be6b08e3416fdc918308b5b))
* appropriate env vars can be flags. main-dir is not eager. ([30faf6f](https://github.com/Geodefi/geonius/commit/30faf6f7a67cc415777866929246243e7e0b8373))
* change env var names ([8c7da9d](https://github.com/Geodefi/geonius/commit/8c7da9d080b7698d144bf4de4b16fc40b9ed0191))
* change not_notify_geode to dont_notify_geode ([6a6e50f](https://github.com/Geodefi/geonius/commit/6a6e50ffde2ec57cb48d68135641e9c8d83fb6dd))
* click implementation for all commands ([67f8ec6](https://github.com/Geodefi/geonius/commit/67f8ec67484e96daf8053993594b7b24dbb6d941))
* click implementation for check_wallet ([9e787a9](https://github.com/Geodefi/geonius/commit/9e787a9713013465b5884f61e3ce13daa4ac945d))
* convert receivers into a list and check planned points for sending emails ([a99da2b](https://github.com/Geodefi/geonius/commit/a99da2bb3a5cd101dd6e5e9778d278e792920140))
* create setup.py for setup_globals function and call it from all scripts. ([5c56913](https://github.com/Geodefi/geonius/commit/5c56913f9bacb55649038142489ed8a67d18eab7))
* create wallet if not exist on config. check for the wallet on preflight_checks ([7f80a7e](https://github.com/Geodefi/geonius/commit/7f80a7e83a32d0b6cc3a8092885ec41f4c200c23))
* delete PythonVersionException use geodefi ([12d9a19](https://github.com/Geodefi/geonius/commit/12d9a19ed1d21d77c1d9d644b7b74b673d299fd5))
* double check flags, fix missing ones. apart from gas and email services. ([bb12b36](https://github.com/Geodefi/geonius/commit/bb12b3657adfe27ceae3feba0664608cb33d2e6f))
* expect deposit now can wait balance or status or both. +Some more docs changes. ([2233449](https://github.com/Geodefi/geonius/commit/22334496c7bfcc2c31977807eb2945bef16ef108))
* ExpectDepositsTrigger is now waiting for a balance ([cddc10a](https://github.com/Geodefi/geonius/commit/cddc10a65dbfd1128d9938e5ab52e766acc9cc62))
* ExpectDepositsTrigger: instead of waiting for all, get the processed ones, then save&discard on pubkeys list ([1c559ba](https://github.com/Geodefi/geonius/commit/1c559baac364b9fc9e61c4dfdf138b6018b7a521))
* finalize main.py. use dir instead of directory. use chain_name instead of flag.chain. remove set/get flag. ([0c4d1ca](https://github.com/Geodefi/geonius/commit/0c4d1ca05bdc363d95e76a2d8107633155a38b8d))
* first try logger/raising instead of print ([b513c3c](https://github.com/Geodefi/geonius/commit/b513c3ceaf96049d9b377c5538f47af2ca5b31ad))
* for sure now we dont need mutexes while creating event tables ([9457de7](https://github.com/Geodefi/geonius/commit/9457de7d4e0d80aebb4ef32c1221f33340d0265b))
* implement check-wallet command ([3bd606a](https://github.com/Geodefi/geonius/commit/3bd606a132593d73f206a66ef392a1a8a7a0579b))
* implement config command ([36b8db0](https://github.com/Geodefi/geonius/commit/36b8db0a80fb71337e32bc25400323c1d3fc1b33))
* implement geonius start command ([81f1667](https://github.com/Geodefi/geonius/commit/81f1667b24ec5f010236ec01e2b524e2a344e489))
* implement StakeProposalTrigger ([9e72f96](https://github.com/Geodefi/geonius/commit/9e72f9653acb50bf85b780320bfc25a6d74222f6))
* implement VerificationTrigger ([66cabfa](https://github.com/Geodefi/geonius/commit/66cabfa9cbf9a950eaa4538b3c72ec583154ff96))
* implement wallet scripts and improve others with flags ([a8d28cd](https://github.com/Geodefi/geonius/commit/a8d28cd3410a8196291952771f2b52557cf8e2fe))
* implemented ExpectDepositsTrigger for delayed deposits: 12h init delay with 15m interval ([84934c6](https://github.com/Geodefi/geonius/commit/84934c6fa28ad855402581947b9d866595e3c159))
* implemented StakeTrigger ([92e04d7](https://github.com/Geodefi/geonius/commit/92e04d725aabd35a5030142cd0b4fd12f8c6663b))
* improve Error handling on daemon tasks ([9854cbf](https://github.com/Geodefi/geonius/commit/9854cbfed65d5943218aaf45f9dd2b1574d963a1))
* improve exceptions on config.py. fix hasattr issue & filter None flags. Add some preflight checks -- needs to be improved. add chain flag that is required. ([a9cf684](https://github.com/Geodefi/geonius/commit/a9cf6847063206f4c06898a6e5a796efbe4e48ff))
* improve gas errors + convert gwei to wei ([af46082](https://github.com/Geodefi/geonius/commit/af46082bf6d57009be6a401fde60ad455c16d549))
* improve logger.etherscan ([b60a523](https://github.com/Geodefi/geonius/commit/b60a5237ad4c7a18591055916288733568973857))
* improve logger.etherscan. use no_stream,no_file flags instead of reverse ([081549a](https://github.com/Geodefi/geonius/commit/081549a475de17f40ab9e7651b99bff544d849cf))
* improve preflight checks, all TODOs are done. ([fe0f5de](https://github.com/Geodefi/geonius/commit/fe0f5de24dac0468625b35924807a5612d8f6e87))
* improve scripts: add main-directory to utilize if provided as a flag like main geonius script ([3aedaf4](https://github.com/Geodefi/geonius/commit/3aedaf4212c34d9823fef9eaf11e49d0e251a2eb))
* improve type checking on attribute dict, +chores ([203b73d](https://github.com/Geodefi/geonius/commit/203b73d7e700632a22b4380a243b1b4ae5ddf591))
* improved email notifications and created EmailError. improved error handling on Daemons ([b8cbd4b](https://github.com/Geodefi/geonius/commit/b8cbd4b3add7247db79fbc2b2c6a290f198216aa))
* instead of initializing the db on triggers, do it on main when reset flag is not provided ([465ba2e](https://github.com/Geodefi/geonius/commit/465ba2ee8354dda635c8fd72f57377b448206417))
* move log for triggers to more general spot ([3b14fd0](https://github.com/Geodefi/geonius/commit/3b14fd0c32a146fd538ef2a0a4fc619f26bb45c1))
* move some vars from .env to config. move env.sample into .geonius ([1a7d57c](https://github.com/Geodefi/geonius/commit/1a7d57c76417770861670dbb6b03eacf9df33d0f))
* no mo relative imports, yey ([a8d83bd](https://github.com/Geodefi/geonius/commit/a8d83bda9892f6720c4c4b82d696082855d53859))
* no need to use mutex on ethdo actions ([5e54cd8](https://github.com/Geodefi/geonius/commit/5e54cd81a9e1bd98590a1959f6d55d90d2e6ee20))
* ping_account function for ethdo ([e7d84cd](https://github.com/Geodefi/geonius/commit/e7d84cde85eac5f8acd216edef031609237b6f13))
* prepare the commands for click integration ([a7c95a9](https://github.com/Geodefi/geonius/commit/a7c95a9fec3b030fca02f48ff7c1f5d9e7e03885))
* prevent circular imports with set/get method ([2843e2e](https://github.com/Geodefi/geonius/commit/2843e2ef73dc9138b9d8f4d6d3be979df35543fb))
* pushing remaining implementation: added get_maintainer, get_wallet_balance and tested ([1a56656](https://github.com/Geodefi/geonius/commit/1a56656978d13caa3ee33f9a4a3f36544fff9de0))
* reintroduce gettattr to Loggable to be able to use .etherscan ([f7ca49a](https://github.com/Geodefi/geonius/commit/f7ca49aee94c7a50bf09aa405a1e1534aa2e890b))
* release preperation workflow is added and tested with **act** ([6dcb494](https://github.com/Geodefi/geonius/commit/6dcb494de986b7f2cee2b461b00f8ec163faf441))
* rename setup to setup_globals ([0537f3d](https://github.com/Geodefi/geonius/commit/0537f3d537f7147b8be38ddc8bd792da16190883))
* Setup poetry ([3b1ff8f](https://github.com/Geodefi/geonius/commit/3b1ff8f9b403f316bb3d4c23286073633f758faa))
* use config.operator_id instead of get_env().OPERATOR_ID ([3ff9055](https://github.com/Geodefi/geonius/commit/3ff9055d926b2dbe2ed1ba246437f743e6338184))
* use create_account before generating depositdata ([551068e](https://github.com/Geodefi/geonius/commit/551068eb78502f397e9a8f5a34a6a5d0d45ab6b7))
* use create_account before generating depositdata + change account name on conf ([637bb87](https://github.com/Geodefi/geonius/commit/637bb8712948c5e26bd0a18e8585e6be3c5cb406))
* use ExpectDepositsTrigger on reboot with no delay, at any point fill_validators_table being utilized ([fcd3925](https://github.com/Geodefi/geonius/commit/fcd3925c21f508ed053b524bcca6a1a6b05c7aac))