* Squashing all the changes
initial router
started expanding the API
initial empty openapi/swagger
populated build-info endpoint
wip: populating rest of swagger
missing swagger data + using closure capture for immutable state
running the api as a proper task in gateway 'run'
fixing some version/feature clashes
refactored routes structures
initial host information endpoint
expanded on gateway-related endpoints
signing host information
moved all models to separate crate
unified http api client
routes unification + node api client
new generic cache and refresher
nym-api caching node self described information
removed old cache type
temporarily wired up NymContractCache to NodeDescriptionProvider
caching self reported host info
clients using self-described gateway information
fixed request timeouts for wasm
fixed wasm builds
post rebase fixes
cargo fmt
brought in wg routes into nym-node router
added ErrorResponse for wireguard routes
basic swagger support for wg endpoints
turns out swagger can be happy with strongly typed requests
output type support for wg routes
using concrete error type for nym node request error
fixed the registration test
landing page configurability
increased configurability
fixed build and lints of other crates
added default user-agent to http-api-client
reduced severity of gateway details lookup failure
changed default http port from 80 to 8080
nym-api using new default port for queries
added health endpoint
nym-api trying multiple ports for the client
using camelcase for node status
corrected health endpoint description
restored and revamped 'force_tls' flag to filter all gateways that support the wss protocol
fixed 'pub_key' path param in open api schema
derived Debug on 'NymNodeDescription'
ensuring valid public ips
added init and run flags to set hostname and public ips
fixed listening address being pushed to public ip
fixed the positional local flag
logging remote ip address of the request
updated helper function to query for described gateways
enabled tls in gateway client
removed hack-opts from mix fetch
additional changes after rebasing against origin/develop
* clippy
* wasm-related target locking
* more clippy, but this time in tests
* Move the functionality to issue credentials from the credential binary and connect it with nym-cli
* finished CLI part, trying to fit SDK part
* finished Rust SDK
* fix: cleanup
* linting
* linting
* linting
* remove one layer of coconut in nym-cli
* linting
* Fixes based on PR comments
* formatting
* fixes based on PR comments
* formatting
* fixing clippy errors
* fixed post-rebasing issues and converted the lib into shared dep for other binaries
* removed credentials client in favour of moving the functionality to nym-cli
* removed redundant 'issue_credential' example (it did the same thing as 'bandwdith')
* removed credentials client from build server
* made the coconut cli also accept nym-api configs
* fixed support for socks5 and NR
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* wasm-compatible reqwest-based rpc client
* better constructors for the reqwest based client
* fixed usages of the client
* introduced /network/details endpoint to nym-api to return used network information (#3758)
* introduced /network/details endpoint to nym-api to return used network information
* introduced endpoints for nym contract information
* WIP: initial work
* wupwup
* WIP: experiments
* Move topology provider and requests to own crate
* Make sure we use the new crate everywhere
* Sort Cargo.toml
* Extract out some functions in geo_aware_provider
* rustfmt
* Add CountryGroup type
* Assign unknown as well
* wipwip
* Add command line flag to socks5-client
* Use geo-aware mixnode selection in nym-connect when in medium mode
* rustfmt
* clippy
* Fix nym-connect build
* wasm fix
* Spelling
* additional unfiltered endpoints for nym-api
* add poor performance UI
* display appropriate UI when node is blacklisted
* update explorer api with blacklisted nodes
* add new unfiltered endpoint
add new unfiltered endpoint
* show blacklisted detail even when node description is unavailable
remove console.log
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* create service providers route
* make request for well known service providers
* fetch and display service providers
* service provider overview
handle undefined data
fix linting
fix type
* use full width column
* update tooltips for routing and average score
* fix up table alignment
fix lint errors
* add node_performance to explorer api response for mixnodes
* use mixnode node_performance for avg and lastest values
* move stake sat to top table
fix lint errors
* update stake saturation text color
* oak-2
* oak-8
* oak-13
* oak-15
* oak-18
* Minor clippy nit
* 2023-01-13-OAK-6
* 2023-01-13-OAK-3
* 2023-01-13-OAK-13
Implemented via direct dependency on cw2 and calling the appropriate code on migration
* Removed few instances of password being unecessarily copied
* 2023-01-13-OAK-10
* 2023-01-13-OAK-12
* 2021-09-13-JP-S-NYM-02
* 2021-09-13-JP-S-NYM-03
* Removed further instances of needlessly copying the mnemonic
* 2021-09-13-JP-O-PROT-03
* 2021-09-13-JP-S-NYM-01*
*: we still have one vulnerability on 'time' pulled from chrono via sqlx. However, apparently its usage is fine... Having said that, I'd still recommend removing all dependencies on chrono, but this will require some database migrations...
* 2023-01-13-OAK-11 (#3009)
* wip
* Introducing the concept of starting epoch transition in `nym-api`
* split epoch operations into multiple files
* epoch operation failure recovery
* sending rewarding transactions in correct order
* tests and fixes due to epoch state progression
* lint
* missed rebasing import changes
* Setting cw2 contract version during first migration run
* calling 'reconcile_epoch_events' at least once
* Made message to BeginEpochTransition more consistent with other variants
* Merge layer assignment updates
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Rename to nym-task
* Update imports to use nym_task
* Update to nym_task in explicit module prefix
* Touchups and rustfmt
* rustfmt
* crate metadata
* fix nym-connect-android
* task dependency
* unifying some startup code and passing TaskClient around
* graceful shutdown handling for mix socket listener
* graceful shutdown handling for clients listener
* graceful shutdown handling for packet forwarding
* unified waiting for interrupt across binaries
* made 'validate_bech32_address_or_exit' into a function that returns proper Result
* printing formatted message on main error
* fixed failing test
* removed duplicate code that should have been gone ages ago
* ibid
* removed biased selection for authenticated handler
* minor refactoring to 'ensure_config_version_compatibility'
* Renaming all instances of nymd to nyxd
* Might as well get the changelogs too
* Making it clearer that an ApiClient is a NymApiClient
* Lining up config templates with struct keys on gateway
* Changed the last references to validator_urls to nyxd_urls
* Fixed up a few type errors after refactoring
* Changed the changelog
* Fixed typo in changelog
* Further instances of renaming 'nymd' + introducing additional clap aliases
* updated environmental variables and allowed usage of deprecated variants
* missing occurences of coconut-locked environmental variables
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* fixed all uses of deprecated clap methods
* updated all uses of clap to 4.0
* unified obtaining build information
* moved around the imports
* Moved all nym-api arguments to ApiArgs and simplified parsing
* Using common shutdown signal code
* Using clap for parsing Vec<Url>
* stricter validation of socks5-client arguments
* ibid for the native client
* ibid for the gateway
* ibid for the mixnode
* clippy