* imported libp2p to monorepo
* fixed vanilla ping example
* added libp2p client to workspace
* naively replaced dockerised client with the sdk
* moved libp2p code to sdk examples
* reduced number of dependencies required for libp2p example
* updated readmes
* added protobuf compiler to build dependencies
* added protoc dependency to readme for chat and ping examples
---------
Co-authored-by: mfahampshire <maxhampshire@pm.me>
* Feature/ephemera compile (#3437)
* Include ephemera node code in repo
* Upgrade deps
* Bump minor version of cosmwasm-std
* Include ephemera in nym-api dep and downgrade rusqlite
* Fix clippy and ephemera docs code
* More clippy on ephemera
---------
Co-authored-by: Andrus Salumets <andrus@nymtech.net>
* Start ephemera components in nym-api (#3475)
* Start ephemera components in nym-api
* Pass nyxd client and use common metric structures
* Swap url endpoint with contract for sending rewarding messages
* Fix build after rebase
* Perform ephemera rewards computation before normal nym-api ones
* Remove contract mock from ephemera
* Take raw rewards from network monitor
* Remove ephemera old reward version
* Use nym shutdown procedure in ephemera
* Temporary fix for some warnings
* Umock contract membership of ephemera (#3574)
* Pass nyxd client to members provider
* Basic ephemera contract
* Add register peer tx
* Add query all peers
* Nyxd ephemera client
* Add registration of ephemera peer
* Replace epoch http api with actual contract
* Merge ephemera config into nym-api config
* Load cluster from contract
* Guard nym-outfox out of cosmwasm builds (#3650)
* Feature/fixes while testing (#3668)
* Commit local peer before querying contract
* Default to anyonline
* Remove string from template
* Fix avg computing
* Use updated qa env
* Fix clippy
* Add unit tests for ephemera contract
* Upload ephemera contract in CI
* Add group check for peer signup
* Peer registration unit test
* Start ephemera only on monitoring
* Remove old MixnodeToReward struct
* Move all ephemera config to its file
* Skip with serde ephemera config
* Fix default value in args
* Feature/add ephemera flag (#3727)
* Replace unwrap with error handling
* Add ephemera enable flag
* Fix template
* Add json schema to ephemera contract (#3735)
* Update lock files
* Update changelog
---------
Co-authored-by: Andrus Salumets <andrus@nymtech.net>
* 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
* removed sealed impl of serde for tx::Fee
* further upgraded cosmwasm to 1.3.0
* wip
* created schema for mixnet contract
* updated return type of 'GetBondedMixnodeDetailsByIdentity' query
* fixed imported version of serde_json_wasm
* updated return type of 'GetFamilyByHead' query
* updated return type of 'GetFamilyByLabel' query
* updated return type of 'GetFamilyMembersByHead' and 'GetFamilyMembersByLabel' queries
* fixed broken tests due to type changes
* added support for GetFamilyMembersByLabel and GetFamilyMembersByHead queries in 'mixnet_query_client'
* moved 'Account' and 'VestingContractError' to common crate
* created schema for vesting contract
* Added documentation for all query messages in the vesting contract
* improved mixnet contract schema by adding documentation to all query types
* feature-locking cw2 import
* created schema for the name service contract
* created schema for the service provider directory contract
* created schema for the coconut bandwidth contract
* created schema for the coconut dkg contract
* created schema for the coconut cw4 group contract
* created schema for the coconut cw3 multisig contract
* fixed missing import and adjusted makefile
* cargo fmt
* clippy
* adjusted contract CI to build with --lib flag
* missing --lib flag in the makefile
* updated lock files
* makefile for generating the schemas
* added github action to check for schema difference
* adding missing step to checkout the repo
* separated signing and nyxd-client features
* updated cosmrs to the most recent version
* using tendermint_rpc directly for the Client trait
* fixed rest of the codebase
* removed nyxd-client feature
* export more types
* clippy that seems to have been skipped in makefile
* Add nonce state
* Update name-service types and make it build
* wip: convert tests
* Fixed all tests in names.rs
* Add TestName
* Move TestSetup to integration tests
* Tests in contract.rs done
* Move error mod to common crate
* All tests ported
* Update other crates in workspace
* rustfmt
* clippy
* Remove commented out code
* Shortcut for name.name
* Lock files
* Add flag to disable cover traffic
* Add flag to disable per hop delays
* Add flag to enable mixed size packets
* Add meta flag to set medium speed
* Special case zero averge hop delay to be exactly zero
* Extract out generate_hop_delays function
* Initial version
* Add open_proxy request
* Start adding cli commands
* use commands
* Common response type
* json output
* Tidy
* Remove the All case
* Remove empty file
* Remove todo
* Add ping command
* Ping 4 times by default
* Logic for controlling number of loops
* Some print tweaks
* wip client core
* hashing shared key in persisted details
* native client using on-disk gateway details
* ibid for socks5
* ibid for NR
* nym sdk
* non-wasm fixes
* wasm
* missed cargo fmt
* fixed nym-connect build
* changed serialization of the key hash to be more human readable
* allowing some dead code
* fixed gateway details deserializtion
* removed needless borrow in wasm client
* removed deadcode
* exhaustive match on GatewaySetup after having loaded the keys
* wip: playing around
* WIP
* wip
* Add query request
* Create new example
* Restore control_requests example
* Remove ControlRequest::OpenProxy
* Remove Socks5RequestContent::OpenProxy
* Remove bunch of debug logging
* Remove more old leftovers
* Another few lines of leftovers to remove
* Disable logging in example
* Return error if incoming request if future version
* Serialization unit tests
* Network requester in example
* Cargo.lock
* create_payload and call from nym-cli
* Remove some commented out code
* wip
* Service announce now compiles
* Fix other compilation issues
* Move ServiceDetails into Service
* Move service_id inside Service type
* wip: start sorting out tests
* wip: sorting out testing
* wip: first announce test now works
* wip: more work on announce test
* Move nonce
* Add check for nonce
* Extract out some helpers to separate files
* reenable state::services tests
* wip: start going through the integration tests
* All integration tests reenabled
* Remove some unused stuff
* Iterate on integration tests
* More iteration on test setup
* Rename to test_setup.rs
* Add more tests specific to signing
* Tweak
* Another nonce test and reorg
* Rename to announce.rs and delete.rs
* Tidy
* Make some inner modules private
* Use IdentityKey alias
* Update nym-api contract cache
* Fix that nym-cli was asking for signing nonce from wrong contract
* Add sign comment to network-requester
* Uploaded updated service provider contract to qwerty
* Allow large enum variant
* lock files
* Remove dbg
* Move error.rs to service-provider common
* Update code for moving errors.rs to common crate
* Rename to SpContractError
* constants module not pub
* lock file
* rustfmt
* Move IdentityKey type to contract-common
* clippy
* Add nym-socks5-listener to main workspace
* add socks5-listener to CI build path trigger
* Using repr(u8) instead of repr(C) for ClientState enum
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* initial crate
* foomp
* Make it work for x86_64-linux-android
* remove unused stuff
* Add header
* another layer of hacks
* additional target os locking
* cleanup
* bootstrap android app
* android jni function
* instructions + xcode project
* update jni name
* add native socks5 class
* typo
* gitkeep android native lib path
* add native socks5 class
* add socks5 native lib in java
* add build script
* fix jni dependency declaration
* wip
* Update build.sh
* Move build.sh to new subdir
* rename to build-android.sh
* fix typo in FFI function name
* use a good SP
* wip not crashing state
* add android network permissions
* android_logging
* starting client on button in swift + safer ffi
* set tag for libnyms5 logs
* testing callbacks
* android: start socks5 process in a separated thread
* non-blocking client with callbacks
* Remove the old non-working logger
* Restore commented out functionality in socks5 client
* basic file write/load + possible android fix
* Fully working state (minus task manager)
* Remove unused function
* data persistence + cb with address
* Remove stray old MyClass file from the merge
* Make storage_dir and Option
* Fix char_p for android
* Android now works with the new branch
* Tidy up a little in the jni code
* Move android mod to seperate file
* jni wrap start/stop
* Add android build to Makefile
* android: add basic UI and start/stop actions
* typo
* add nym word
* dirty persistence restored
* dirty android fixes
* even dirtier workaround
* Move rust crate to sdk/lib
* Update cargo.toml
* Strip release binary
* Update lib name in android project
* Move ios project to nym-connect directory
* remove old gitignore file
* Move ios client one step deeper
* fixed xcode lib paths
* removed old tracked file
* move android app under new path
* a bit of cleanup
* hopefully fixing the CI issues (🤞)
* Update Makefile
* android: add better support for persistent state
* updating ios UI on ffi callbacks
* missing dead code
* Added toggle button (wip)
* swapped connect and disconnect methods around
* icon
* fixed android build
* reset button + reuse service provider
* disabling reset button
* android: run proxy in a worker as foreground service
* todo user cancel action
* android build script: add aarch64
* add stop action from notification
* add simple callbacks to the socks5 bridge
* pick a sp randomly
* pass stop cb to lib call
* add loading state support
* refactor(android): base connection state on callback calls
* android: add optimistic ui
* android: unique instance of libnym
* removing deadcode
---------
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Co-authored-by: pierre <dommerc.pierre@gmail.com>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>