* Added builder to wasm client
* missing wasm_bindgen macros
* Added constructor macro on GatewayEndpointConfig
* Attempting to use updated wasm client api
* Removing dead code
* Exposed other messages types in wasm client
* cleanup in js-example
* Changed 'self_address' to be a method call
* Removed needless borrow when cloning an Arc
* Improving arguments in 'on_message' callback
* fixed wasm-client dependency/features
* Network-requester: throttle inbound connections (#1789)
* Return and handle ClientRequest::LaneQueueLenghts
* Pass lane queue lengths to inbound future
* Remove unused self reference
* Request lane queue lengths periodically for all open connections
* Add timeouts
* Rename to ConnectionCommandSender and Receiver
* Rename to client_connection_tx/rx
* Fix wasm build
* Replace bool with enum
* rust: bump required version to 1.65 in some crates that need it
* Add step to release GH actions (#1792)
* feat: add a release step to nym contracts GH action
* feat: add shrinking the size of wasm
* Possibilty to change gateway ws listener (#1779)
* add: set gatewayListener
* Update types.ts
* Update worker.ts
* Update contracts-build.yml
* real_traffic_stream: reduce frequency of status print (#1794)
* Update wallet and connect lock files (#1793)
* client-core: add warning when delay multiplier is larger than 1
* Fix decrypting stored received msg (#1786)
* Fix decrypting stored received msg
* rustfmt
* Moving binary message recovery to separate function
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Feature/use expect instead of panicking (#1797)
* Implementation of 'Debug' on 'RealMessage'
* expect with failed channel name instead of throwing empty panics
* Introduced Debug trait constraint in ProxyRunner
* Derive Debug for socks5_requests::Message
* Make connection_id optional in ClientRequest::Send (#1798)
* changelog: add missing entry for fixing message decrypt in gateway-client
* websocket-requests: fix length check before deserialize (#1799)
* Fix export dkg contract addr (#1800)
* Export dkg contract for mainnet when no config file present
* Remove redundant env files
* nym-cli: improve error reporting/handling and changed `vesting-schedule` queries to use query client instead of signing client
* Feature/gateway client protocol version (#1795)
* Introducing concept of gateway protocol version
* Remove version-based gateway filtering
* Fixed the unit test
* grammar
* Set build on latest release on schedule event
* Added nightly build workflow on second latest release
* socks5: if any task panics, signal all other tasks to shutdown (#1805)
* socks5: signal shutdown on error
* Mark as success
* Tidy
* Reduce wait to 5 sec
* Replace unwrap with expect
* Two more unwraps
* Update changelog
* client-core: less frequent status logging (#1806)
* Feature/nym connect UI updates (#1784)
* create custom titlebar
* create help page
* create generic modal component
* create separate connection time component
* link to shipyard docs
* move timer to separate component and update connection status component usage
* use separate component for copying ip and port details
* only show infomodal once after connection
* set service provider on tauri side
* Emit events when stopped
* listen and unlisten for tauri events
* connect: add trace log to get_services
* Add back CI notifications
* Update README
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
* Use default serde value for upgrade (#1807)
* fix ui overflow bug (#1808)
* update nym connect error text (#1809)
* set flag to false
* Fix wait_for_signal_and_error on win (#1811)
* Add socks5-client changes to nym-connect changelog
* Fix links in nym-connect changelog
* More entries in nym-connect CHANGELOG
* Fix typo in changelog
* Update CHANGELOG.md
* Experiment/client refactoring (#1814)
* experimenting with extracting more common client code
* drying up the wasm client
* allowing some dead code for the time being
* fixed formatting in nym-connect
* made socks5 client inside nym-connect immutable
* made clippy a bit happier
* hidden away target locking for recv timeout
* New transactions for increasing amount of pledged tokens
* unit tests
* Added an option to pledge extra tokens through the vesting contract
* Introduced wallet endpoints for new operations
* Using updated pledge cap in the vesting contract
* Bumping version numbers
* Changelog for v1.1.1
* Bumping final version numbers for 1.1.1
* Bumping nym-cli version, missed it last time
* socks5-client: SOCKS4a support (#1822)
* socks5-client: SOCKS4a support
* Tidy
* Fix a few errors in socks5 client and network-requester (#1823)
* Fix two unwraps in socks5 and network-requester
* Make sure client task never sends shutdown signal
* Fix panic on getting socks version
* wip
* connecting to the back and making the requests work
* display details modal
* logs removal
* Feature/pledge more (#1679)
* New transactions for increasing amount of pledged tokens
* unit tests
* Added an option to pledge extra tokens through the vesting contract
* Introduced wallet endpoints for new operations
* Using updated pledge cap in the vesting contract
* Changelog update
* nym-connect: update lock file
* avoid mix tokens pools
* amount error
* envs/mainnet: update to latest mixnet contract and nymd validator url
* validator-api: add missing shortform for --config-env-file (#1830)
* gateway-client: handle shutdown listener (#1829)
* WIP
* WIP: try another approach
* WIP
* Reworked
* Tidy
* fix
* validator-api: remove storage dependency in contract cache (#1685)
* validator-api: remove storage dependency in contract cache
* validator-client: update detailed routes
* contract_cache: forward to new endpoints for compat
* Move reward_estimate
* client: add --no-cover and update --fastmode (#1831)
* adding a oversaturaded bonding more modal
* common/task: extract out spawn_with_report_error (#1837)
* stop panic on failed buffer request
* Compilable wasm client
* Enabled hard error on lack of gateway-client protocol version
* Missing generic parameter for ClientCoreError in BackendError
* Removed unused imports
* Additional wasm feature locking
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Fran Arbanas <arbanasfran@gmail.com>
Co-authored-by: cgi-bin/ <6095048+sven-hash@users.noreply.github.com>
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
Co-authored-by: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
Co-authored-by: Raphaël Walther <raphael@nymtech.net>
Co-authored-by: Fouad <fmtabbara@hotmail.co.uk>
Co-authored-by: Gala <calero.vg@gmail.com>
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
* Fix decrypting stored received msg
* rustfmt
* Moving binary message recovery to separate function
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Save to disk coconut keypair
* Check verification keys of the other signers
* Post verification key to chain
* Add multisig propose/vote for vks
* Execute the proposal
* Parse announce address argument
* Gateway uses chain data
* Network requester uses chain data
* Native&socks5 clients use chain data
* Credential client signature uses chain data
* Remove redundant api endpoints
* Undo debugging logging
* Fix some tests
* Fix clippy
* Fix wasm client and contract test
* More contract clippy
* Update CHANGELOG
* Use a bigger expiry period then the testing one
* Rename to ExtendedPacketSize32
* Add two more extended packet sizes
* Update config handling for new packet sizes
* Update wasm-client
* Changelog: update
* wasm-client: fix ref
* Switch use enum instead of string for config
* Compiles but runtime time fails
* wip
* Beginning of clean-up - creation of config to keep things together
* Removed unused module
* Removed hardcoded constants
* Easier way of sending binary messages
* WIP cleanup before machine switch
* Upgrade wasm-bindgen to 0.2.83
* Fixed compilation warnings for wasm client
* all clients compiling without warnings
* disabling topology refresh in wasm
* Added a config option to disable loop cover traffic stream
* config changes
* Make webassembly work in a web worker
- `wasm-timer` modified to work in web worker
- add worker target to webpack
- add client to call from HTML
- update README to build WASM for bundling (this does not build ES modules)
* Restored topology refreshing
* correctly polling items in the wasm delay_queue
* Allow client to read up to 8 messages at once from gateway connection (#1669)
* Allow client to read up to 8 messages at once from gateway connection
* Importing tokio::select in wasm32 target
* Updated changelog
* missing imports
* Introduced disable_main_poisson_packet_distribution to force real_traffic_stream to disable poisson sending (#1664)
* Introduced disable_main_poisson_packet_distribution to force real_traffic_stream to disable poisson sending
* Updated changelog
* Adjusting default settings
* Introduced a client-configurable option to force it to use extended packet size
* local adjustments
* Removed warning associated with receiving extended packets
* Minimal v2-required changes
* Updated changelog
* explicitly allowing clippy drop_non_drop
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
* Introduced a client-configurable option to force it to use extended packet size
* cargo fmt
* Removed warning associated with receiving extended packets
* Updated changelog
* github: clippy review annotations for the workspace too
* client-libs: remove unused imports
* client-libs: tweak use dep
* client-libs: try to regroup cfg conditional use items
* Add coconut verifier structure for coconut protocol in gateway
* Add endpoint for validator-api cred verification
* Remove unused signature field
* Register new endpoint
* Improve validator-api config handling
* Aggregate verif result from all apis
* Simplify aggregate functions
* Verify cred on apis correctly
* Introduced coconut bandwidth contract to validator client
* Fix rebase double import
* Fix clippy on non-coconut
* Add multisig contract address to validator client
* Refactor Credential struct
* Do bincode magic in the coconut interface
* Implement serialization for credential and remove bindcode
* Fix clippy and don't remove dkg
* Client release funds proposal
* Add wrapper for blinded serial number
Also compare theta with a blinded serial number (in base 58 form)
for future double spend protection.
* Only post blinded serial number to blockchain
* Validator api propose credential spending
* Fix wallet
* Gateway calls proposal creation
* Query for proposal in verify coconut
* Remove db from git
* Verify against proposal description
* Validator apis vote based on verification of cred
* Fix wallet fmt
* Execute the release of funds
* Fix translation between token and bytes
* Update CHANGELOG
* Import cw3-flex-multisig and cw4-group contracts
* Add release_funds to coconut-bandwidth-contract
* Create contract.rs file
* Add cw multi test and a test that uses it
* Use mnemonic for coconut mode too
* Stricter access to config file, which contains mnemonic
* Update tests
* Remove signed deposits dir after merging that into sql db
* Clippy nits
* More clippy
* Remove backtraces features to pass clippy tests
* Merge the same mnemonic for rewarding and coconut
* Simplify things, letting network monitor use testnet-mode with gateways
* Unify the nymd clients
* Sqlx common storage for buying/consuming credentials
* Link credential storage to credential client
* Trigger rewarded_set update on bootstrap error
* Fix bug on message signing
* Simplify coconut feature in code and set it in validator-api
* Update some local consts
* Link clients to credential storage
* Simplify sql query and change socks5 too
* Update attr handling such that public ones are usable
* Normalize test addresses
* Fix clippy
* Merge storages for (non)coconut creds
* Fmt miss
* Disable wasm client support for now
Co-authored-by: durch <durch@users.noreply.github.com>
* Add placeholder client for implementing coconut interactions
* Add db for persistance
* Add nymd client
* Add new coconut-bandwidth contract
* Call deposit function
* Introduce error handling
* Call the old flow of getting a signature
* List available tx hashes
* Add signed req in body
* Save signature received
* Add event generation
* Checks in validator-api
* Fail with error instead of panic in validator-api route
* Fix contract address and small bug
* Add file db for storing previous signatures
* Encrypt and store data in validator-api
* Decrypt the received signature
* Remove tx hashes after getting credentials
* Small listing changes in client
* Change response so that it easier to serialize
* Error message is sent to client for display
* Remove already signed error and return the previous sig
* Merge signature with deposit data in client
* Entrypoint for getting the encrypted signature
* Refactor blinding stuff so that it can be backed up
* Backed up the blind sign request
* Client can re-request the encrypted signature shares
* Update crypto features
* Fix clippy
* Activate instantiate test and remove unused code
* Add tx tests
* Add verification key endpoint test
* Voucher consistency test
* Test for some errors and a race condition on blind signing
* Refactor and add client trait for enabling better testing env
* Test some more of blind sign
* Finished testing all extract_encryption_key paths
* Split into function test and endpoint test
* Test for correct signature
* Test for state functions
* Remove print
* Test blind_sign endpoint
* Test for cached signature endpoint
* Stricter types in voucher
* Rename signature with partial_bandwidth_credential
* Extra route levels
* Length check and remove some unused code from coconut interface
* Renamed coconut-bandwidth common crate
* Renamed verification_key to identity_key
* Use const instead of hardcoded values
* Use type aliases for crypto algorithms
* Remove unused mods, until needed
* Remove unneeded unwrap
* Fix some coconut issues that were blocking the wasm client build
* Move from sled to existing sql database
* Update tests for new db type
* Fix wasm for coconut too
* Remove sled from dependencies
Resolved dependency issues in testnet-faucet
Removed the outdated react example
Updated js example dependencies
Using sandbox in js example
Feature locking imports
Running wasm client in testnet mode by default
Allow using `None` BandwidthController in testnet mode
Reverted endianness change and left it for others to deal with
Fixed up websocket js-example
Changed endianness of aes counter
* Save gateway owner for later use in erc20 bandwidth request
* Pass owner in network monitor
* Switch to variable length owner address
* Add erc20 bridge contract in validator client
* Check bandwidth credential refers to gateway
* Check the owner of the gateway from the eth event
* Fix wasm client
* Hack to avoid unused warning on coconut path
* Hacked, one-time payment
* Remove print
* Update arg format
* Fix token check
* Fix native template
* Use utokens instead of full token
... when talking to eth
* Fix parse event for new field
* Fix socks5 template
* Add estimation of gas call
* Make fs backup more reliable
* Fix clippy
* Fix unused import
* Update waiting time
* Remove defaults from run, as it they should be set on init
* Remove debugging prints
* Replaced unwrap with error
* Fix build
* Make eth contract address dependent of network
* Use tokio for sleep
* Add approve before spending token on bandwidth
* Put bandwidth claim only at the beginning of the process
* Fix wasm client
* Re-enable CI on wasm client
There is an `unused-unit` lint that will fail for now, but this is
regarded as a false positive and should eventualy get fixed:
https://github.com/rustwasm/wasm-bindgen/issues/2774
* The wasm tests would be run under native arch
* Removed outdated constant
* ClaimFreeTestnetBandwidth ClientControlRequest
* Configuration option for the testnet mode in gateway
* Made testnet mode deserialize to default value if not present
* Fixed testnet mode override
* Testnet config options for clients and validator api
* Changed error message for when gateway is not using testnet mode
* Incorporated testnet mode into gateway client
* Activating testnet mode based on config values
* Allowing clippy warnings
* Fixed use of moved value in wasm build
Co-authored-by: Bogdan-Ștefan Neacșu <bogdan@nymtech.net>
* Remove check for bandwidth for incoming packets
We should only accunt for packets that the client inputs to the mixnet
* Introduce BandwidthController for both types of bandwidth creds
* Add some non-coconut token bandwidth handling
* Use thiserror for gateway-client lib
* Add error handling
* Unable to build for wasm for now
* Fix wasm strange error
* Disable non-coconut credentials for wasm client
* Check for status and throw the error up
* Send encrypted token cred from client
* Gateway receive message and signature validation
* Put the correct amount of tokens that were burned
* [ci skip] Generate TS types
* Eth endpoint and secret key as config parameters
* Add eth_endpoint config argument for gateway
* Update test as well
* Separate panicable code from the safe one
* Move some bandwidth controller panics up the call stack
* Save contract corresponding to the eth endpoint
* Fix template
* Pass the web3 interface as well
* Made event reads possible in gateway
* Add checks for event data
* Cosmos contract for double spending prevention
* Add workflow for the new contract
* Add validator rest URL to config
* Rename eth_events to erc20_bridge
* Pass cosmos mnemonic as well, and put the nymd client in ERC20Bridge
* Call cosmos contract for final verification
* Ask for config parameters in cli
* Fix various stuff
* Increase timeout to allow gateway to check the two chains
* Put some logs for the new flow
* Set consumed bandwidth invariantly of coconut feature
* Fix clippy error
* Add non-coconut checks
* Use 2018 rust instead of 2021
* More verbose nymd error
* Explicitly specify TOKENS_TO_BURN constant
* Put eth burn function in a constant
* Replace to_vec & append with iter & chain
* Test for (de)serialization of TokenCredential
* Minor rename
* Separate credential creation from bandwidth claiming
* Switch from panics to errors when claiming coconut bandwidth
* Another append changed to chain
* Update QA cosmos contract address
* Simplify build/test/clippy separation on coconut feature
* Fix bad features arg positioning
* Use the start_after in cosmos contract query
* Set a limit in line with a range on cosmos queries
* Added unit tests for new cosmos contract
* Fix bandwidth_remaining comparation
* Get remaining bandwidth from gateway
* Add contract build flag
* Add a useful info log
* Use a more robust eth depth for release builds
* Include recipt logs in error message
* Fix clippy for tests
* Use Arc instead of clone
* Rename as_bytes to to_bytes
* Make signature verification in contract more verbose
* Missed rename of paging constant
* Fix gateway start with coconut enabled
* Rename function to claim_token
* Simplify nymd client setup
* Check with block buffer on gateway as well
* Update comment of double spending protection
* Correct contract address
* Backup the keypairs used for buying tokens, in case of error cases
* Don't take any chances with the gateway timeout
* [ci skip] Generate TS types
* Updated cosmos contract to latest QA address
* Add cli options for eth
* Update network monitor timeout value as well
Co-authored-by: neacsu <neacsu@users.noreply.github.com>
* Removed separated ipv4 and ipv6 testing
* Testing network using chosen core nodes
This should have probably been like 20 independent commits... sorry...
* SQL migrations for updated schema
* SQL updates
* Using absolute uptime directly
* New uptime calculations
* Config entries, more DB work, some cleanup
* Additional API query routes
* More SQL and API work
* Changed `_` to `-` in new routes
* Removed good topology from config
* Fixed gateways reader yield condition
* Initial gateways pinger
* Minor cleanup and logging level decreases
* Missing trait derivations
* Further logging adjustments
* Unused commented out import
* Claiming additional bandwidth in coconut feature when low
* Fixed build with coconut feature
* Minimum number of test routes
* Making beta/nightly clippy happier
* 'Coconut' feature in gateway
* Enabled coconut feature in gateway-requests
* Native client coconut feature
* Ibid for socks5 client
* Ibid for wasm client
* Coconut feature flag for validator-api
* Added coconut feature flag to our CI
* build.yml typo
* Continue on windows errors
* Missing quote
* Another typo in build.yml
* Reclaiming disk space when building for windows on CI
* Sqlx struct stub
* Initial schema
* Initial error enum
* Managed for persisted shared keys
* Initial inbox manager
* Comments
* Using new database in clients handler
* Extending gateway storage API
* tokio::main + placeholder values
* Removed old client store
* Simplified logic of async packet processing
* Renamed table + not null restriction
* BandwidthManager
* Removed sled dependency
* Using centralised storage for bandwidth
* Dead code removal
* WIP connection_handler split and simplification
Maybe it doesn't look like it right now, but once completed it will remove bunch of redundant checks for Nones etc
* Further more explicit clients handler split
* Minor cleanup
* Temporary store for active client handles
* Fixed error types
* Error trait on iv and encrypted address
* Authentication and registration moved to the handler
* Removal of clients handler
* Further logic simplification + returned explicit bandwidth values
* Further cleanup and comments
* Updated config with relevant changes
* Basic bandwidth tracking in client
* FreshHandle doc comments + fixed stagger issue
* Removed side-effects from .map
* More doc comments
* Database migration on build
* Increased default claimed bandwidth
* Renaming
* Fixed client determining available bandwidth
* Removed dead sql table that might be used in the future
* Windows workaround
* Comment
* Return error rather than cap credential
* Call perform_initial_authentication instead of register in clients
* Refactor the register/authenticate functions a bit
* Introduce Bandwidth request type
* Add encryption layer to cred
* Remove cred pass and check from handshake
* Replaced unreachable! with error
* Changed decrypt_tagged signature to not take mutable ownership of data
* Put handle_bandwidth work inside a function
* Add check before unwrap
* Remove unnecessary async
* Decouple bandwidth credential from authentication
* Use new_error for ServerResponse:Error
* Send a fresh IV each time the BandwidthCredential request is sent
* Remove unwrap of bincode::serialize
* Add comment regarding Bandwidth response
* Remove _mut from naming
* Leave Debug trait alone, as the initial error doesn't reproduce anymore
* Pass iv as Vec<u8> instead of base58 string
* Renamed AuthenticationIV to IV, as it is now used for more the just authentication
* Did some IV refactorization
* Hand coconut issuance off the validator-api
* git to cargo
* Move to own module
* Integrate tauri-client, extract common interface
* cargo fmt
* Ergonomics
* Facelift
* Wrap up tauri client
* Set up publish
* Fix fmt
* Install CI dependencies
* Inline deps
* Remove mac deps
* Add dist dir
* Fix beta clippy nag
* Commit some gateway work
* Thread coconut creds through gateway handshake
* Push in progress patch
* Move State from tauri client to coconut interface
* Move get_aggregated_signature from tauri client to coconut interface
* Move prove_credential from tauri client to coconut interface
* Update sphinx version
* Mount coconut routes and manage config file in rocket
* Split default validator endpoint into host and port
* Add init for simple credential initialization
* Fix common gateway client
* Add coconut cred to webassembly client
* Add coconut cred to socks5 client
* Add coconut cred to native client
* Remove direct coconut-rs dependency
* Use only coconut interface in validator api
* Leave validator-api out of workspace and update Cargo.lock
* Fix clippy warnings and update Cargo.lock after rebase
* Switch from attohttpc to reqwest for async gets
This is not only needed for using async requests, but also because attohttpc
causes OpenSSL issues when cross compiling the webassembly client.
* Replace attohttpc with reqwest for puts too
* Make tauri client commands async
* Fix borrow error
* Guard gateway server code from compiling for wasm (client)
* Fix clippy wasm client
* Fix tests
* Fix clippy in tauri client
* Remove commented code
* Update comment of init message
* Remove unnecessary hex dependency
* Replace config argument with key_pair
* Use `trim()` for whitespace removal
* Move verification key query higher up the function calls
* Put KeyPair instead of Config into rocket's managed items
* Re-enable tauri client verify button
* Move verification key up the function calls for prove_credential
* Use consts for verification_key and blind_sign routes of validator-api
* Replace `match` with `map_err`
* Fix typo
* Remove now unnecessary `Clone` derives
... as config is no longer managed by rocket
* Replace `match` with `map_err`
* Make `InternalSignRequest` really internal to validator-api
* Make `with_keypair` live up to its name
* Update Cargo.lock after rebase
* Replace String error with HandshakeError
* Add CoconutInterfaceError to coconut-interface
* Format the new error in tauri client
* Remove from default, as wasm client doesn't build
* Put public key as init argument...
... for the public attributes of the credential
* Use the hash_to_scalar function to make public key into attribute
Use the function from cli-demo-rs from https://github.com/nymtech/coconut
to make the identity public key into a public attribute.
* Replace vector with array for InitMessage
As we know beforehand the size of the keys, we can use fixed size array
instead of vectors. This eliminates the need for a prefixed length in
the serialized form of the InitMessage structure and enables a easy
deserialization of the remote identity before the actual bincode
deserialization that we do in the handshake process.
Before this, the `extract_remote_identity_from_register_init` function
attempted to deserialize into a public key the length-prefixed public key
received from the client, thus failing sporadically with a `Cannot decompress
Edwards point` error.
* Pass public and private attributes to state `init` instead of PublicKey
* Make tauri call with dummy attributes
* Make clients call with their keypairs
* Revert "Make clients call with their keypairs"
This reverts commit b348f47f7a.
* Put dummy, bandwidth private attribute
Co-authored-by: Bogdan-Ștefan Neacșu <bogdan@nymtech.net>
* Basic storage stub
* New models for new node status api
* Route handling
* Mounting new routes
* Missing selective commit
* Moved network monitor related files to separate package
* Starting to see some sqlx action
* Schema updates
* Log statement upon finished migration
* Removed old diesel related imports
* Converted mixnode cache initialisation into a fairing
* Moved cache related functionalities to separate package
Also defined staging there
* Created run method for validator cache + removed unwrap
* Removed old node-status-api types and left bunch of todo placeholders in their place
* Fixed managing validatorcache
* Status reports are starting to get constructed
* Submitting some dummy results to the database
* Removing duplicate code for generating reports
* Removed statuses older than 48h
* Initial attempt at trying to obtain reports for all active nodes
* Removed duplicates from the full report
* Grabbing uptime history
* Updating historical uptimes of active nodes
* Updated sqlx-data.json
* Removed all placeholder foomp owner values
* Changed Layer serde behaviour for easier usage
* Extended validator api config
* Initial (seems working !) integration with network monitor
* Added database path configuration to config
* Using ValidatorCache in NetworkMonitor
* Flag indicating whether validator cache has been initialised
* Introduced a locla-only route for reward script to perform daily chores
* Flag to save config to a file
* Moved spawning of receiving future to run method rather than new
* Removed arguments that dont make sense to be configured via CLI
* Removed dead code from config file
* More dead code removal
* Added validator API to CI
* Corrected manifest-path arguments
* Constructing network monitor by passing config
* Combined validator API CI with the main CI file
* Using query_as for NodeStatus
* Checking if historical uptimes were already calculated on particular day
* Making id field NOT NULL
* More query_as! action
* Updated sqlx-data.json
* Removed unused chrono feature
* Renamed the migration file
* Changed default validator endpoint to point to local validator
* Removing unnecessary clone
* More appropriate naming
* Removed dead code
* Lock file updates
* Updated network monitor address in contract code
* Don't stage node status api if network monitor is disabled
* cargo fmt
* Updated all license notices to SPDX