* Add dynamic connect support to ip packet router
* Disconnect inactive clients
* Don't generate ip same as tun device
* clippy
* Extract a few functions to separate mod
* clippy
* Try revised request response connect types
* wip: try to get data requests work
* Also serialize response
* tweak log
* Add code path for connect response fail
* Convenience functions on ip packet request
* Remove commented out code
* Restore log to debug
* Add wireguard_mode flag to SDK
* Add to builder in sdk too
* Move hardcoded IP in a lighter crate
* Put in network defaults
* Fix linux
* Move wireguard mode swap before init
* Use the updated gateway hosts
* Set wireguard IP even for pre-inited mix client
* Fix typo
* Change mixnode, gateway, network and nym-api binary licenses to GPLv3
* Add license to cargo files
* Revert model license to match crate
* Add license to nym-node
* Revert model license to match crate
* Fix formatting
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Stop ActionController only after both incoming channels closed
* Downgrade task getting dropped message to debug level
* The warning to the user is not a warning that things didn't work
* rustfmt
* fix channel close logic
* Don't close real traffic stream and sent notification listener too aggressively
* wip
* Use common interface request response
* wip: extract crates
* wip
* new structure compiles
* Create tun_common subdir
* Comment out return_mix_delays for now
* Remove unused boringtun dependency
* Revert to previous packet encoding
* Allow dead code on non-linux
* Add new function
* Rework error handling in tun device
* Extract out timeout constants
* Experiment with timeouts
* Update error msg
* try_send in one direction as hotfix for deadlock
* Downgrade some log from info to debug
* Update comment
* rustfmt
- why?
when using the mixfetch SDK, i was encountering issues, when posting requests to specific endpoints. It was not parsing the response correctly with:
Error: panic:syscall/js: Value.Call: property getReader is not a function
By updating the above, i've tested this works on all variations of post and get request using mixfetch.
Locally I had to upgrade my version of go to 1.20
* adjusting ts mixnet client constructor
* added forceTls argument to 'ClientOptsSimple'
* more sdk types removed
* fixed import
* removed go debug code
* printing wasm blob version on load
* version bump
* temporarily removed 'nym/nym/wasm/full-nym-wasm'
* changed workspaces definition
* correctly setting initial rc.0 suffix
* updated crate versions
* reverted 'useWorkspaces' lerna option
* Fix up dependency versions
* Add dev mode toggle to SDK publish scripts
* Show location of WASM package
* Change dev mode and CI build order
* Bump package versions in SDK docs
* Remove two versions of `mix-fetch` from SDK docs and only use `-full-fat` version
* Remove old arguments for mixFetch and rename to bust cache
* Remove `nym-wasm-sdk` from linting
* Release v1.2.3 of Typescript SDK
* Force WSS on mixnet client
* Bump TS SDK to 1.2.4-rc.0
* Clean up lock file
* Update node-tester version to 1.2.3 in nym-wallet
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* fix: sdk publish script
The bash implementation used in the GitHub CI runner seems to have an
issue with incrementing a variable with `(( COUNTER++ ))` while `((
COUNTER=+1 ))` works fine.
* Add more sdk packages to workspace and normalize build sdk scripts
* Disable workspaces in npm publish sdk
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
* Continue publishing even when it fails
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
---------
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
During the merge of the nodejs-wasm-client there seems to be some
losses, this commit makes nodejs-client and the nodejs mix-fetch work
with the internal tools. Still looking into Tommys qa feedback.
* exit policy types
* simple client for grabbing the policy
* moved allowed_hosts to a submodule
* started integrating exit policy into a NR
* ability to construct ExitPolicyRequestFilter
* fixed policy parsing to look for comment char from the left
* conditionally setting up request filter
* [wip] setting up correct url for exit policy upstream
* clap flags for running with exit policy
* fixed NR template
* updated NR config template
* making sure to perform request filtering in separate task
* initial, placeholder, exit policy API endpoint
* serving exit policy from an embedded NR
* double slash sanitization
* socks5 query for exit policy
* adjusted address policy logging
* cargo fmt
* Updated exit policy url to point to the correct mainnet file
* removed unecessary mutability in filter tests
* fixed the code block showing example policy being interpreted as doc test
* 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
* Extract out parse_peer
* wip: handle_packet extract
* Extract out active_peers.rs
* wip: rework to struct from free function
* udp_listener working
* wip
* more udp_listener
* tun_device
* wip
* tun_device
* Remove some old commented out stuff
* tidy
* Remove commented out line
* Forward directly on known addr
* Extract out test dev creation
* Extract out RegisteredPeers
* Extract out registered_peers.rs
* Reset main rate limiter on a timer
* Some pedantic clippy
* minor tidy
* Add missing continue
* wireguard: try to have a flow where we parse the public key up front
* Fix bug with continue instead of return in loop
* fix clippy::enum-variant-names
* Fix rust-analyzer warnings
Fix some warnings that rust-analyzer emits due to enabling all features.
These are annoying when you try to list all warnings in the entire
workspace.
* Revert change to signing client
* Instead add nested feature
* Initial work on reverse nat
* wip
* Refine key gen
* Rename to wg_tunnel
* Forward packet to peer
* Remove source_addr
* Check if allowed to write to tunnel
* Extract out network_table
* Move map struc definitions to udp_listener
* Delegate ip network table calls
* Fix mac compilation
* Add TunTaskTx type
* Add HTTP API and Client registry to Gateway
* Update CHANGELOG
* Smooshify structure
* Reify x25519 public key
* Hmac message verification
* Add lightweight handshake with replay protection
* Tidy up, move registartion to its own file
* Test for the registration flow
* Fix nonce loop hole
* Initial experiments with using tun device
* Remove some unused stuff and start tidying
* Match stored peer addr
* Refine comments and names
* Fix deadlock
* Annotate with some more logging
* Tweak log statements in handle_routine
* wip: temp logging
* log to info
* Refine logging
* clippy
* [wasm-client] keeping ownership over 'ReceivedBufferRequestSender' channel when spawning 'ResponsePusher'
* Bump version of Typescript SDK to RC.10
* GitHub Actions workflow to publish SDK to NPM
* Bump package version manually
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Attempt at simplifying top-level Makefile
* Another sweep at tidying up Makefile
* Further refinements
* Remove deprecated clippy-happy and no-clippy targets
* Remove unused Makefile target
* Split out ci-contracts-upload-binaries
* Remove the contracts from the main workflow
* Rename build-and-upload-binaries-ci
* Rename network-explorer name
* Rename network-explorer filename and check-merge-conflicts
* Rename three more workflows
* Rename sdk-publish
* Remove deprecated clippy-all
* Rename matrix includes json and delete one that is unused
* Typo in filename
* Delete nym-wallet-release.yml
* Rename two workflows to fit naming scheme
* ci-build name change
* Rename 3 more workflows to ci- names
* Rename wallet.yml and nym-wallet-nightly-build to reverse naming scheme
* Rename to ci-contracts.yml
* Delete nym-wallet webdriverio workflow
* Update some workflow names
* always using port 443 for tls gateway connection
* bumping up rc version
* hack: additional hardcoded gateways
it disables topology refresh
* Add NPM packages to tool for bumping versions
* Bump RC versions of SDK packages
* Use manual gateway details
* Add progress to `publish.sh` script
* Add docs for WSS workaround
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Remove unused Makefile target
* Split out ci-contracts-upload-binaries
* Remove the contracts from the main workflow
* Rename build-and-upload-binaries-ci
* Rename network-explorer name
* Rename network-explorer filename and check-merge-conflicts
* Rename three more workflows
* Rename sdk-publish
* Remove deprecated clippy-all
* Rename matrix includes json and delete one that is unused
* Typo in filename
* Delete nym-wallet-release.yml
* Rename two workflows to fit naming scheme
* ci-build name change
* Rename 3 more workflows to ci- names
* Rename wallet.yml and nym-wallet-nightly-build to reverse naming scheme
* Rename to ci-contracts.yml
* Delete nym-wallet webdriverio workflow
* Update some workflow names
* js error message
* Ability to explicitly disconnect mixfetch
* removed unused import
* added disconnect method directly to sdk package
* simplifying error throw
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
* added onunload event listener handler
* Using global instance of mixfetch to disconnect
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
* Bump RC versions
* MixFetch, move unload handler to creation and check for undefined `window`
* Bump RC version
* Force TLS on mixFetch demo
* Add info about working around mixed content errors for mixFetch
---------
Co-authored-by: Mark Sinclair <14054343+mmsinclair@users.noreply.github.com>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Squashing commits
added forceTls argument to 'MixFetchOptsSimple'
made forceTls flag optional in mix fetch opts
whacking those moles
* GitHub Actions: install node
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Bug fix `mixFetch` build
* Batch integration tests for mixFetch
* Bump RC version
* Tidy up READMEs
* Bump version to RC4 and fix up a few interfaces
* Bump version to RC5 and fix opts
* NodeJS SDK
* mixFetch usage example
* Update internal dev tester readme
* Add NodeJS packages to publish script
* Update lock file
* Upgrade `lerna`
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* changed NymConfigTemplate trait to call 'template' by reference
* network requester lib
* introduced generic parameter to 'MixTrafficController' to allow non-remote gateways
* allowing for custom gateway sender
* types cleanup
* minor gateway cmds refactor + initial NR work
* wip
* running a NR inside gateway
note: this NR isnt tied to the gateway yet
* rebase fixes
* propagating same shutdown handle
* wip
* starting NR with appropriate local transceiver
* fixed premature shutdown
* wiring up PacketRouter
* both ends wired together
* actually working
so much cleanup to do now
* started removing dead code
* wip
* temp: hardcode gateway
* further cleanup
* fixed build of other binaries
* setup-network-requester subcmd
* overriding NR config in gateway init/run
* wip making it wasm-compatible [again]
* refactored 'GatewaySetup'
* clippy and friends
* removed debug code
* rust 1.72 lints
* ensuring local gateway is available + some comments
* correctly putting network requester data in the same underlying details struct
* improved gateway errors
* changed 'network_requester_config' deserialization
* missing clap annotation for 'enabled' flag in 'setup-network-requester' command
* saving config file after 'setup-network-requester'
* removed dead code
* review comments
* make embedded NR wait for gateway to come online (for at most 70min)
* fixed shutdown on successful gateway wait
* updated NR config override
You can't specify profile in the manifest of a crate when it's part of a
workspace. Move the profile directives that cargo complains about to the
top-level workspace Cargo.toml
* wip
* wip
* Most channels are in place
* tidy
* Send data to tunnel
* wip: adding in boringtun
* Handle timers
* Add consume_wg
* Split into mod
* Reorder
* Comments
* Refine channel handling
* Sort out dependency conflict
* Move wireguard listener in gateway beind a feature flag
* wip
* post-cherry pick fixes
* wip
* wip
* using sqlite-based indexeddb shim
* running nymClient in worker thread
* improved received handling
* building node mix-fetch
* fixed mix fetch request constructor if args[1] == undefined
* fixed build target
* nodejs origin bypass
* mix fetch in node
but I dont think anyone should use it over normal client...
* target locking
* fixed post-rebasing issues
* Docs: post process output to fix paths so that many mdbooks can be served from sub-directories
* Prevent theme from being modified
* Upload docs to Vercel
* Post process docs
* Process local links
* Docs: only process `index.html` files from the root,
All other files have the correct relative paths to serve assets properly and link to files relatively.
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* gateway: disconnect inactive duplicate clients
* wip: see if we can switch to single ping at a time
* Finish reworking ping pong request flow
* Use workspace version of tokio
* Bundle active client channels into struct
* Fix typo
* 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>
This was originally a commit 'b0a45c03b16c74697d8b46428fd83a25a5168add'.
However, we had to manually reapply it due to accidentally messing up the branch history.
* network-requester: disable poisson process by default
* network-requester: instead add new top-level config field
* Remove quoation marks in template
* 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
* Validate nym address
* wip: check client_id match
* wip: now compiles
* Fix first set of tests
* Another set of fixed tests
* Fix rebase issues
* rustfmt
* register tests updated
* integration tests now working
* Remove commented out code and unused imports
* Tidy up
* Fix error
* Update schema
* Fix example
* Add assertion in test
* update nym-cli to be able to register names
* Remove left-over dbg
* additional logs in abci queries
* added serde aliases for deserialization of contract types using their old format
* installing rust toolchain during the schema CI
* making the workflow be executed on our custom runner
* checking for diff only in the schema directory
* 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
* set up development process for docs
* set up development process for docs
* Add local installs for Typedoc on gitignore
* Add Typedoc comments on types.ts file
* add typedoc config file
* update types and add annotations
* Add updates on types file
* add examples + manage sort order for doc items
* update client methods with examples
* add description of NymMixnetClientOptions
* add description of NymMixnetClientOptions
* fix linting
---------
Co-authored-by: Lorexia <alexia.lorenza.martinel@protonmail.com>
* 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
* added a global flag to disable the printed out banner inside tty
* added a 'build-info' command to our binaries
* added binary name to BinaryBuildInformation
* clippy
* 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
* Split fetching network-requesters from gateways
* Tidy names
* Select gateway independenty in frontend
* Fix threshold value
* Fix gateway type
* Fix naming for setGateway and setServiceProvider
* Unshadow variable
* Naming conventions
* Missing semicolon
* Explicit types in invoke calls
* Dedup random function
* Inline some functions
* Silence handlebars in log
* Emojis in healthcheck log statements
* Remove gateway from service provider type
* Remove unneeded type cast
* fix linting
* Remove gateway field from harbour master response type
---------
Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk>
* New TypeScript SDK example: Google Chrome
Example of a simple manifest v3 extension to load a Nym client within a
popup view.
* Firefox Extension example for Nym TypeScript SDK
* Fix typo
* Add basic install script
* fix up html files
* remove unnecessary background page
* bundle extensions with webpack
* use icons from shared assets
* ignore sdk index file
* import sdk lib
* create new build script for non-inline workers
* import workers and build as separate files using webpack
* update html titles
* create react app node tester example
* add readme file
* update readme for FF extension
* code formatting
---------
Co-authored-by: Nadim Kobeissi <nadim@symbolic.software>
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* create parcel example
* update plain html example
* move chat examples into own dir
* add examples to workspace
* update tsconfig path
* move webpack base to parent dir
* 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
* create node tester package dir
* start building node tester package
* refactor code + build updates
* fix up types
* add more methods and fix up types
* use node tester sdk inside wallet
* fix frontend state
* Use Node 18 instead of 16
* Fix up dependencies and yarn workspace
* Fix lint error
* Try to fix up linting error
* Remove explorer linting and move it to the existing action
* Add wasm-pack build to linting GH Action
* change lerna to use workspaces and fix linting errors
* Fix up node versions in GitHub Actions and add wasm-pack
* fix build:lint target in sdk
* exclude all worker.js from eslint for sdk
---------
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* Don't fully turn off background task when cover traffic is disabled
* Leave no_cover function alone
* Add methods on config struct instead of explicitly setting options
* Add medium toggle to network-requester run command
* clippy
* rustfmt
* Unused
* error handling + edge cases + types
* use bonded node id
* add UI and move feature to node-settings dir
* use error modal
* add type for postMessage arg
* add timeout for node test
* update storybook ci
* fix CI for typescript linting
* fix print node test results
* replace react-to-print lib with vanilla solution
* async print
* update wallet changelog
* 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
* Ability to disconnect and reconnect GatewayClient
* usage of ibid. inside NodeTester
* example
* wasm-compatible `wait_for_shutdown` (for the future)
* 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
Can't think of a scenario where we don't want to close one at the same
time as the other, but let's be conservative and keep it a very low
number for now.
* 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>
* wip
* semi-hacky way of persisting wasm-client gateway config
a better way shall be introduced after config refactoring
* cargo fmt
* wasm client clippy
* removed artifacts from other branches
* socks5 inbound: stop reading when closing connection
* Wait for lane at select top-level
* Allow closing connection while waiting for lanes to clear
* Some tidy in inbound.rs
* Put chained future back inline in the select
* Remove commented out line
* Disable the read data branch on is_finished
wasm-opt has a known issue on Apple Silicon:
https://github.com/rustwasm/wasm-pack/issues/913
The workaround currently seems to be running wasm-opt locally instead of
defining it as part of the Rust package's build pipeline in Cargo.toml.
I hope this is okay!
* allow loading modal to display custom text
* use loading modal
* dont repeatedly reset delegation state
* show loading modal when loading + no other modal is open
* fix lint errors
* log any delegations errors
* fix typo
* refresh interval in delegations page
* added cargo config file to explicitly specify build target
* wip
* Config option to disable topology refreshing
* extracted common parsing code
* helper trait for working on wasm topology
* wasm topology parsing
* restored (slightly modified) old js-example
* wip
* Moved message preparation into a trait
* wip
* long-winded way of sending test packet
* standalone NymNodeTester
* finishing the test upon receiving all packets even if timeout wasnt reached
* initial round of cleanup
* sending multiple test packets in normal NymClient
* javascript-side cleanup
* starting mixnode test on btn click
* Improved NymNodeTester constructors
* improved error handling and constructors
* tester utils error handling
* further cleanup + using BTreeMap for NymTopology mixnodes
* handling missed errors
* splitting up 'test_node'
* split up and cleaned up generation of test result
* clippy + fixed example
* post rebase fixes
* another broken test
* prevent running multiple parallel tests
* cargo fmt
* Added nym- prefix to node tester utils
* reduced noise in CODEOWNERS
* Add @octol to codeowners
* added @mfahampshire as owner of /documentation
---------
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* basic contract work for 'decrease_pledge' functionality
note: it doesn't yet return tokens back to the operator
* returning extra tokens after decreasing pledge
* added vesting message to track pledge decrease
* attaching the track message when processing delegation decrease
* checking for zero value request
* fixed event test
* allowing to decrease pledge from the vesting contract
* integration test for the feature
* reorganised the integration tests
* updated nyxd client traits
* wallet support
* typescript helpers
* moved 'pledge more' functionality to operator commands
* cli commands for decreasing pledge
* changed error variant to make clippy happier
* removed unused import
* eslint
* fixed post-rebase imports
* added cargo config
* added PendingMixNodeChanges to MixNodeDetails
* returning event id after creating it
* Streamlined getting mixnode details by identity key
* setting pending pledge changes on increase/decrease
* clearing the value on resolving the event
* checking for correct invariants when clearing events
* further pending events unit tests fixes
* new unit tests for tx endpoints
* queries for pending events (by id)
* migration code
* using default value for pending changes if unavailable
* improved integration test assertions
* Reduce logging of warnings associated with Poisson process throttling
* More granularity when logging about slow gateway
* Refine logging of elevated delay multiplier
* clippy
* Tweak output when printing address
* rustfmt
* Fix initial delay
Tidy the service provider directory contract after implementing query
methods on the validator-client.
- split out response types and use consistently
- query msg use "By" prefix
- pass address as String and validator
* Replace expect with error
* Move PersistentStorage in separate file
* Add in-memory cred manager
* Make wasm and mobile build
* Unify wasm and mobile cred storage
* Network defaults has mainnet default
* Add network_details to SDK
* Move BandwidthController in its own crate
* Move out credential into lib crate
* Remove nyxd arg in credential binary
* Use acquire cred in sdk
* Add example file, in sandbox
* Mobile lock file
* Update changelog
* Clearer builder methods and more documentation for them
* Sign only amount, without denom
* Toggle credentials mode on when enabled
* POC measurement
* parent ce76790761
author durch <durch@users.noreply.github.com> 1680116778 +0200
committer durch <durch@users.noreply.github.com> 1680683399 +0200
Instrument packet processing
* Cleanup and format
* Feature gate tracing
* Add .gitkeep to wallet dist
* Squashed commit of the following:
commit 0b1b6947e8
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:28:28 2023 +0200
Replace mobile flag with target_os = android (#3278)
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
commit c79b2cfb78
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:27:38 2023 +0200
Service provider directory contract (#3220)
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
commit dd699bce9a
Merge: 5ce017ef3e6957e7a9
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 10:18:16 2023 +0100
Merge pull request #3235 from nymtech/feature/performance-active-set-selection
Feature/performance active set selection
commit 5ce017ef3d
Author: benedetta davico <46782255+benedettadavico@users.noreply.github.com>
Date: Wed Apr 5 10:57:45 2023 +0200
adding vesting tests (#3279)
commit 59c1ce2639
Merge: 4fb63d889276edfd56
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 09:50:53 2023 +0100
Merge pull request #3261 from nymtech/feature/refresh-allow-list
Feature/refresh allow list
commit 4fb63d8892
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Wed Apr 5 09:22:43 2023 +0100
Feature/vesting delegation amount query (#3229)
* moved queries and transactions out of contract.rs
* added queries for vesting delegation details
* nyxd_client support
commit 276edfd562
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:56:21 2023 +0100
clippy
commit 605f8fcde3
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:06:12 2023 +0100
updated and cleaned up tests
commit f0e4d1a7cf
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 14:01:36 2023 +0100
configurable stored lists locations
commit 055ec4bdd5
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:57:02 2023 +0100
updating stored allow list on file changes
commit 5761f9ac7f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:15:45 2023 +0100
file watcher
commit 32620fd55f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 17:47:12 2023 +0100
updating standard list in a timer
commit abb5cdbe06
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 16:43:58 2023 +0100
extracted domain and ipnet information to separate struct
commit e6957e7a99
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 11:25:43 2023 +0100
use combination of stake and performance for rewarded set selection
commit de2406a2c7
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 10:54:14 2023 +0100
Moved MixnodeWithPerformance to helpers
* Squashed commit of the following:
commit 0b1b6947e8
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:28:28 2023 +0200
Replace mobile flag with target_os = android (#3278)
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
commit c79b2cfb78
Author: Jon Häggblad <jon.haggblad@gmail.com>
Date: Wed Apr 5 11:27:38 2023 +0200
Service provider directory contract (#3220)
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
commit dd699bce9a
Merge: 5ce017ef3e6957e7a9
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 10:18:16 2023 +0100
Merge pull request #3235 from nymtech/feature/performance-active-set-selection
Feature/performance active set selection
commit 5ce017ef3d
Author: benedetta davico <46782255+benedettadavico@users.noreply.github.com>
Date: Wed Apr 5 10:57:45 2023 +0200
adding vesting tests (#3279)
commit 59c1ce2639
Merge: 4fb63d889276edfd56
Author: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
Date: Wed Apr 5 09:50:53 2023 +0100
Merge pull request #3261 from nymtech/feature/refresh-allow-list
Feature/refresh allow list
commit 4fb63d8892
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Wed Apr 5 09:22:43 2023 +0100
Feature/vesting delegation amount query (#3229)
* moved queries and transactions out of contract.rs
* added queries for vesting delegation details
* nyxd_client support
commit 276edfd562
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:56:21 2023 +0100
clippy
commit 605f8fcde3
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 15:06:12 2023 +0100
updated and cleaned up tests
commit f0e4d1a7cf
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 14:01:36 2023 +0100
configurable stored lists locations
commit 055ec4bdd5
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:57:02 2023 +0100
updating stored allow list on file changes
commit 5761f9ac7f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Fri Mar 31 12:15:45 2023 +0100
file watcher
commit 32620fd55f
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 17:47:12 2023 +0100
updating standard list in a timer
commit abb5cdbe06
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Thu Mar 30 16:43:58 2023 +0100
extracted domain and ipnet information to separate struct
commit e6957e7a99
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 11:25:43 2023 +0100
use combination of stake and performance for rewarded set selection
commit de2406a2c7
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date: Tue Mar 28 10:54:14 2023 +0100
Moved MixnodeWithPerformance to helpers
* Remove old lock file
* Start replacing mobile with android
* Regex replace all mobile with android
* Remove the mobile feature flag
* keep the cfg mobile in tauri
* first commit of service provider directory contract proof of concept
* *added config set on instantiation,
*removed greetQuery test function
* commit before mapping change
* *changed mapping of service to use client address instead of cosmos addr
* commit before mapping change
* added acl to delete()
* added test for acl in delete()
* changed whitelist<vec> to standrd_whitelist bool in Service struct
* removed old comments and commented out code
* rustfmt
* wup
* wup
* Older version of cw-multi-test that works with 1.0.0
* wip
* Remove .gitignore
* Basic tests for announce and query now works
* Restore tests for delete as well
* Consolidate tests
* Tidy
* fmt
* Start reworking test helpers
* Tidy tests
* More test work
* More test improvements
* More work on tests
* Tweaks
* Further tests
* rustfmt
* Add some comments
* Initial work on requiring deposit
* wip
* Work on updating tests for handling funds
* Start updating integration tests
* Integration tests updated
* merge test mods in state
* Address review comments
* Enable wasm-opt
* Unify Result type
* consistent amount in error type
* WIP: paging output
* IndexedMap working
* extract to config file
* WIP: middle of extracting out types
* Extract types
* wip
* Types now extracted out:
* Paged response type too
* rustfmt
* Start working on switching to cw Admin
* Complete switch to Admin
* Remove owner from announce msg
* remove unused imports
* Assert owner
* Extract out types to common crate
* Fix test compilation
* Add query by owner and nym address
* Move msg to common crate
* rustfmt
* tests for service id
* service storage tests
* state services tests
* function rename
* tidy
* Fix clippy warning
* User ServiceId instead and not u32
* Delete by nym address
* Emit explicit events
* Swap ToString for Display
* Move all storage keys to constants.rs
* clippy
* Test for deleting by name
* Tidy integration tests
* Remove to_string
* Some comments to tests
* Integration test for paging
* serde snake_csae for NymAddress and ServiceType
* Add migrate entry point
* Add query contract version
* A few more asserts for balance
* Make MigrateMsg a struct
---------
Co-authored-by: mx <maxhampshire@pm.me>
* Use full socks5 config when setting client config
Also move socks5 setup sleep inside the sdk function
* SDK Socks5 Mixnet Client
* Remove NymClientConfig from sdk
* Update changelog
* Remove pub modifier
* Replace sleep with waiting on the control channel
* Add error on simple connect if socks5 configured
* Move client-core to common dir
* Factor out socks5-client in its own crate
* Possible sdk-socks5 integration
* Update changelog
* Remove socks5 client lib
* Rename crate to include nym- prefix
* Trim the socks5 wrapped message so that it's printable
* Fix intellij auto refactoring
* Post merge fixes
* renamed secp265k1 to secp256k1
* added optional 'explicit_signer_data' argument for sign method
* wip
* made client signer generic
which required to undertake an adventure into coconut bandwidth trait bounds...
* separate wrapper for TxSigner
* moves signing-related features to separate module
* fixed build of binaries from outside default workspace
* offline signing example
* fixed wallet build
* post rebasing formatting
* fixed bity integration build
* making clippy happier
* fixed post-rebase bip39 dependency version
* wip family creation signatures + cli
* nym-cli commands for creating families
* Changed family join signature inside the contract
* Generating family join permit via nym-cli
* ability to join families via nym-cli
* more strongly typed FamilyHead arguments
* initial work on removing redundant family signatures
* removed all redundant signatures from families in the mixnet contract
* moved up the call stack
* nym-cli family operations
* fixed family related unit tests
* family member kick
* removed family operations from the wallet
* clippy
* add gateway settings button
* remove unneeded mixnode type check
* add additional properties to gateway type
* update node settings nav options
* set up gateway update requests
* create gateway settings page
* use update gateway validation
* PR updates
* dont show playground on gateways
* set up gateway config update
* fix lint errors in wallet
* run cargo fmt
* Generalise MessageReceiver
* Generics all the way
* Generalise MessageReceiver
* Generics all the way
* Fix Cargo.lock
---------
Co-authored-by: benedettadavico <benedetta.davico@gmail.com>
* Reorder Makefile
* split out the fmt targets
* split cargo test
* Split up clippy targets
* Add commit
* Use env variable for no-mobile instead
* Extract out target generation to use function
* Remove commented out code
* Add comment
* Minor tidy
While developing the service-provider-directory contract I ran into
issues with the lock file being inconsistent for cosmwasm-std (1.0 vs
1.2) and was hidden due to ignoring the lock file
* Compare verified vks against current group instead of initial dealers
* Fix various dkg logs
* API auto-advance epoch even on corrupt states
* Use verified vks as ultimate truth for dealers
* Set initial dealers based of verified vk
* Extend register period even more
* Fix test
* Use shares from current epoch
* Save initial dealers only when triggering resharing
* Fix tests
* Backup the last InProgress state too
* Reset previous signers that are not initial dealers
* Add unit test for bug reproduction
* More verbose debug logging
* Handle edge case for coconut keypair removal
* Update dkg api test
* Remove dealings directly for each key
* Replacement data is saved only on the first reshare start
* More debug logging
* On failed DKG, just reset
* Clippy fix
* updated bip39 dependency to simplify our zeroize story
* Replaced UserPassword wrapper with Zeroizing type alias
* fixed wallet-types cosmwasm-std dependency version
* 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
* ability to specify custom TopologyProvider in TopologyRefresher
* topology provider builder method for base client
* ability to take manual control over topology
* wasm fixes
* added topology injection to nym-sdk API
* added examples to nym-sdk and exposed additional helper methods
* 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>
* nym-api: cache updates as node performance
* nym-api: update get mixnode avg_uptime endpoint
* nym-api: mixnode report to use cached data
* nym-api: annotate gateway bond with node performance
* nym-api: gateway report to use cached data
* wip
* Add get_gateway_avg_uptime
* Add comment
* update NR gateways to include node_performance on frontend
* use node_performance values on frontend
* fixup select gateway from list
* fix up lint errors
---------
Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk>
* wip
* new option to select gateways based on latency
* further changes for wasm-compatibility
* post rebase fixes + clippy
I know, I should have probably included them properly during rebasing ¯\_(ツ)_/¯
* android change
* wasm: the gift that keeps on giving
* revamped calculation of spendable coins and behaviour of stakes
* added new queries to the VestingQueryClient
* fixed return types for the query client
* updated wallet commands
* updated common commands
* 🔥 removed dead and commented out code
* comment regarding the 'state_dump_decoder'
* query for withdrawn coins
* 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
* network-requester: replace websocket with mixnet client
* network-requester: mini tidy
* network-requester: add info line about own address
* network-requester: update to nym-crypto rename
* Add new route and initial UI
* allow IdentityKeyFormField to have a small size option
* add disabled prop to the shared IdentityKeyFormField component
* defined custom gateway type
* use custom gateway in state
* set and validate custom gateway in settings page
* validate user gateway when moving away from page
* use storage
* hide gateway input when inactive
* add explorer link to settings page
* nym-sdk: remove unneeded function
* rust-sdk: rework send api a bit
* rust-sdk: add send_wait without impl
* fix doc test failures
* more doctest fixes
* feat(nc-android): fit the design to mobile
* refactor(nc-android): resync with nc desktop
* fix(nc-android): tauri version
* refactor(nc-android): resync with nc desktop (rust)
* chore(nc-android): format code
* chore(nc-android): bump version
* add button animations
* pulse and disable button on connecting/disconnecting status
* update button component story
* disabled hover on connecting/disconnecting
* add transition delay
fix up overflow
* Add resharing parameter
* Fix equality of dealers and members
* Contract resharing handling
* Dealer verification unit test
* Dealing commit unit test
* Epoch state unit tests
* Fix clippy
* Fmt
* Query initial dealer data
* Resharing nym-api changes
* Implement the mockups for nym-api dkg tests
* Dealing test
* Vk unit test
* Fix skipping vk submission
* Fix clippy
* Missing dealing for noninitial resharing dealer
* Check master vk holds after resharing on nym-apis
* Update changelog
* Fix clippy
* chore(nc-android): prepare for production build
* refactor(nc-android): remove dead code
* feat(nc-android): update native color theme
* feat(nc-android): update native color theme
* build(nc-android): fix rfd version issue
* build(nc-android): fix dist dir no such file error
* fix(nc-android): post rebase changes
* added additional workspace-wide dependencies
* Added conditional serialization on 'BinaryBuildInformationOwned'
* initial framework for service provider messages
* updated request/response tags to account for existing variants of Socks5Message
* handling legacy deserialization
* another serialization revamp to account for legacy version
* legacy client working with versioned network requester
* socks5 client deserializing responses into updated structures
* using new structures for sending in socks5 client
* SendRequest wrapper for Request::Send variant
* created named fields for all variants of 'ControllerCommand'
* Versioning socks5 requests + moving to proper Socks5Request struct
* Updated backwards compatible Socks5Response
* unused imports
* poc ServiceProvider trait
* wip
* implemented 'ServiceProvider' trait on the Network Requester
* Socks5RequestError
* added properly serialized ErrorResponse to ControlResponse
* fixed version serialization + feature selection
* handling of version control requests
* improved SocksProxyError by providing more concrete variants and removing generic case
* got rid of ServiceProviderClient trait and wrote simple example showing control requests
* tests for serialisation backwards compatibility
* post-merge fixes due to method renaming
* enum boxing to make clippy happier
* making sure to not drop buffer channel when starting `DirectClient`
* Using nym-sdk in the example
* Replaced printing version to stdout with proper log call
* reduce window size
* use new highlight color
* use react router
* render new routes
* remove old help page
* render app routes
* update connection status UI
* remove service provider info
* remove unneeded additional step
* render title from route
* experimental warning as component
* render connection page
* nym-connect: connectivity status improvements (#2915)
* connect: keep track of connectivity state
* nym-connect: query connection state
* nym-connect: function for kicking of the health check task
* rustfmt
* nym-connect: extract out into function
* nym-connect: extract out events.rs
* add app version to menu page
* help page content and style updates
* update guide content
* use layout component on disconnect page
* handle gateway issues
* only show info modal once after connecting
* power button colors
* update stories and button colors
---------
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Remove `--all-features` from the clippy command because
1. with the removal of `cocunut` it's not really needed
2. the new `mobile` flag is a bit hacky and mutually incompatible with
some existing configs
* feat: adding routing score on gateway list
* feat(explorer): adding routing score on gateway list
* feat(explorer): add routing score on gateway list
* connect: keep track of connectivity state
* nym-connect: query connection state
* nym-connect: function for kicking of the health check task
* rustfmt
* nym-connect: extract out into function
* nym-connect: extract out events.rs
* Setting default 'id' if not provided
* Modified 'NymConfig' to always require 'id'
* moved creation of nym-api directories away from 'override_config'
* missing optional id usage in nym-connect
* changelog
* Removed default value for '--id' argument
* WASM Client: simplify sending of custom messages by always setting headers and a mime-type for the content
* Use rollup to bundle the web worker script to support more downstream bundlers
The WASM bundle is embedded as a base64 encoded resource and loaded synchronously, because this is the only mechanism widely supported to load WASM inside a web worker currently. Hopefully in the future this can be changed to pure modules.
* Suppress errors in build script
* Add Parcel 2.0 example
* WASM client: fix tests
* Update SDK docs and images
* wasm-client: add method to validate a recipient's address
* Revert "Removing unused prestart"
This reverts commit cbeac10383.
* Revert "Removing pointless dependency build command from TypeScript SDK example"
This reverts commit 0e0a62938d.
* Add typing for React 18
* Improve README files
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
* clients: make surb storage more flexible
- in the rust-sdk we make the surb storage generic and pluggable, with
the fs_backend the default.
- make it possible to disable fs_backend at runtime
* Add comment
* changelog: add note
* client-core: tidy up some minor things
* Reset contract state when dkg needs rerun
* Reset nym-api for rerun
* Gateway updates signer APIs at runtime
* Fix clippy
* Add epoch id
* Use IndexedMap for shares
* Query with epoch id
* Add Clone to client traits
* Pass nyxd client instead of api data
* Get the specific epoch vk
* Make wasm work
* Remove wasm test runs
As there are no wasm tests and the target_arch macros are not compatible
with the cargo test environment, we can safely remove (for now) the wasm
test target runs.
* Put epoch_id in storage pk
* Gateway uses old keys but current verifiers
* Add group contract to env
* Move group msg in common
* Only run DKG if part of group
* Clippy test
* Rename wasm_storage to wasm_mockups
* Update changelog
* Changed `listening_address` to `websocket_address` to make things a bit more clear
Stricly speaking, service providers don't "listen" on a port, they make
an outbound connection to a websocket which is already listening on the
provided port on localhost.
* Using un-imported network_defaults module name as it fits nicely
and reduces guessing as to what's going on in the code
* Using full module path for logs
* Some minor renames and extractions
* Fixing a few clippy warnings about double references
* Ripped the allowed_hosts module out into separate module files
* Removing old comment
* Removing unused import
* Knocking down visibility on function
* Docs on OutboundRequestFilter
* Removing a function that doesn't justify its existence
* Keeping struct with its impl
* Renamed a few modules
* Smoothing and rearranging code, no big changes
* It's now possible to inject a standard allowed_list
* Logging all standard allowed domains at network requester startup
* Fixing printed comment
* 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'
* new react and reactdom packages in wallet
* new react and reactdom packages in root
* new react and reactdom packages in nym connect
* new react and reactdom packages in root
* update react and reactdom for explorer
* react and react-dom upgrade for ts-packages
remove unused import
fix linting error
* use custom FC typing
move typings folder
* fix type error
* Fixed typo in node_status_cache constant
* ibid
* Moved some caching stuff around so I can see what depends on what
* Finishing merge of conflicted files
* Minor smoothing
* Got cache reads working for circ supply and refactored common cache
* Refactored nyxd client usages to make things bit more clear
* Moved caching support stuff into the support folder
* Moved storage code into support module
* Removed dead code
* Tweaks
* Handling cases a little more nicely in circulating supply api
* Renamed nymd_client to nyxd_client
* Pulled CacheNotification into the caching support module
* Pulled some domain-specific helpers out of cache refresher
* Moving some more helper methods out of the cache refresher
* Deleting unused code
* Extracted a few more functions out of the cache refresher
* A few comments as breadcrumbs
* Renaming the anemic "helpers" to "node_sets"
* Renaming the validator_cache module to nym_contract_cache
* Renaming nym contract cache stuff to make things clearer
* Renamging a few things in comments
* Renaming validator_cache to nym_contract_cache
* foomp
* Started refactoring http and cli
* Extracted cli arg parsing into its own module
* Cleanup
* Extracted start methods into various modules to clean main up
* WIP commit
* Build working, swagger not
* Fixed swagger docs metadata
* Removed log statement
* Circulating supply cache now working with simple logic
* Fixed up circulating supply method names
* Starting to work in some (wrong) constants
* Documented the cache
* Renaming circulating-supply route
* nym-api compiling after the rebasing
but most likely not fully working yet
* removed unused imports
* only starting RewardedSetUpdater if the config flag is set
* nym-api compiling with coconut feature
* removed redundant process_runner
* removed generic aspect of nym-api nyxd::Client
* signle entry point for starting nym_contract_cache
* do not eagerly grab instances of managed state
* inlining openapi route spec
* CirculatingSupplyResponse type
* fixed compilation of coconut tests
* calculating circulating supply based on mixmining reserve and vesting tokens
* separated different variants of caching intervals
* allow nym-api to specify address of the vesting contract
* fixed types export
* renamed the query on the vesting contract
* reorganised startup procedure and made all start methods independent from rocket
* cleaned up startup procedure for nym-api
* startup checks for rewarding permisssions
* updated changelog
* added config flag to control whether circulating supply should be updated
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
* set up ui for gateway performance in nym-connect
remove duplicated imports
* set and reset (when necessary) gateway performance
* remove unneeded useEffect
* remove log
* set up ui for gateway performance in nym-connect
* reset gateway performance state periodically
* remove duplicated imports
* set and reset (when necessary) gateway performance
* align gateway performance text left
* checks for existing staking account
* removed code for v2 migration
* using stronger types for storage keys
* Added type alias for the storage key and documented each `Map`
* remove the hacky way of storing staker information
* allow the staking address account to perform delegations with the additional msg argument
* new unit tests
* updated client code
* modified migrate msg to explicitly require confirming having performed manual checks
* re-ordered arguments
* wip
* Introduced paged queries for getting list of all vesting accounts and for amount of vesting coins
* Added the queries to VestingQueryClient trait
* Added default implementations to all trait queries
* Fixed naming for the vesting coins query
* Helper functions for dealing with paging
* Updated changelog
* Defined OptionalSet trait
* extended the trait to handle environment
* sample implementation for the gateway
* implementation for mixnode
* Added the same feature to nym-api config + made some config types stricter
* fixed compilation and linter issues
* keeping track of parsing error
* attempt at using the trait for the client configs
* Streamlined more arguments
* Removed deprecation on setters
* fixed incorrect test constructor
* missed rebase fixes
* 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
* Renamed "address" argument in "sign" command to "wallet-address"
* Ability to optionally describe mixnode with command line arguments
* renamed 'validators' arguments to 'nym-apis' in mixnode binary
* cleaned up gateway validator-related url arguments
* fixup! Renamed "address" argument in "sign" command to "wallet-address"
* renamed 'use_anonymous_sender_tag' to 'use_anonymous_replies'
* 'nymd_endpoints => 'nymd_validators'
* more consistency for nymd_validators and nym_apis urls arguments
* updated changelog
* initial ui for test my node
use svg for node path
add stories for test my node
* add initial rewards calculation
* update validation for rewards playground
* init playground with default values
* get node uptime
* get mixnode reward estimation
* calculate saturation
calculate stake saturation
* Make ComputeRewardEstParam derive Debug
* set active set to be always true
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* Preserve information about original transmission lanes when buffering reply packets
* Attempting to send partial data in 'handle_send_reply' if we don't have enough surbs immediately
* Display logging of reply surb request target
* promoted reply_controller to a directory
* moved channels and messages to separate file
* simplifications due to rust 1.66
* Using a shoarthand for obtaining connection_id
* made TransmissionBuffer generic
* Moved transmissaion buffer to a higher level directory + defined wasm helpers
* Using transmission buffer in reply controller
* Using the pending replies size in lane lenghts queries
* fixed an out of bounds use of fragments
* Fixed dropped channel in getting lane queue length
* Fixed an edge case failure for reply retransmissions
* measuring (and logging) time it takes to obtain lane lenghts
* decreased logging level
* Removed non-wasm lock on total_size
- add logging and clear local storage menu items
- bump nym-connect version
- add app version number
- add reset trigger when clearing SP storage
- bump tauri version (nym-connect and nym-wallet)
- fix webpack config for prod builds
- new selector for services, with an advanced section for service providers
* initial ui for test my node
use svg for node path
add stories for test my node
* add initial rewards calculation
* update validation for rewards playground
* init playground with default values
* get node uptime
* get mixnode reward estimation
* calculate saturation
calculate stake saturation
* Make ComputeRewardEstParam derive Debug
* set active set to be always true
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* Add dkg epoch
* Make epoch state advancement dependent only on time
* Nym api tries advancing the dkg epoch state
* Update the time table a bit
It still needs to be changed before production, as the sign-up timeframe
needs to be something like a few days.
* Update changelog
* Fix tests
* Fix clippy after rustc update
* socks5: send network-requester error in status channel
* Minor tidy
* task-manager: send status msg to indicate ready
* changelog: add note
* coconut/tests: fix clippy for rustc 1.66
* checking for correct surb metadata on db load
* archiving corrupted database on load and attempting to start fresh session instead
* checking for data corruption by looking at flush timestamp
* Moving public import to separate section
* Defaulting to 'false' value for 'send_anonymously' in socks5 config if not present
* Created method to change all empty core client config fields to their default values
* Using default values for surb reply storage in 'run' command if left unset
* Renaming validator-api to nym-api
* nym-api: simplified crate name
* Added nym-api rename to changelog
* Changed some output messages
* Renamed validator-api-requests to nym-api requests
* Removing more references to validator-api-requests
* Additional lockfile name changes after full build
* Removing mistakenly added merge files
* ibid
* ibid
* Getting rid of ref to validator_api deep inside validator-client
* Fixing file storage paths
* Renaming struct function names referring to validator_api
* Simplifying struct init
* Fixed up all other instances of nym_api.
* Renaming validatorApi to nymApi in TypeScript client for consistency
v
* Found a few more Rust instances
* Changed examples in TypeScript SDK
* Found one more instance of the use of validator instead of nym apis
* Aliasing config key name for deserialization to preserve compatibility with old configs
* cleaned up MixProcessingError
* Added Error impl to (hopefully) all error enums in the codebase
* Replaced all occurences of error("{0}") with error(transparent)
* Changelog entry
* Feature/multi surbs (#1796)
* bunch of wip with focus on serialization
* Being able to send normal data (NO SURBS yet) to yourself again
* Fixed RepliableMessage deserialization
* Recovering data from surb messages
* Extracted common code in sphinx payload construction
* Cleanup within received buffer
* requesting, sending and using additional reply surbs
* Following discussion with @simonwicky, removing sender proof and decreasing size of sender tag
* Made sender tag more easily configurable
* Refactoring of message creation
* Propagating reply surb acks but not retransmitting them yet
* Surb retransmissions
* requesting additional surbs from the retransmission flow
* correctly determining the point of requesting additional surbs
* Ability to use socks5 (and network requester) with surbs
* Improved surbs retranmsission reliability
* naive way of not over-requesting surbs
* wip on tag storage
* Improved error propagation for message construction
* Requesting more surbs for stale entries
* Better controlling the point of having to request additional surbs
* Using pseudorandom sender tag instead of a hardcoded one
* First cleanup round in MessageHandler
* Error cleanup and if simplification
* Assigned a more permanent name to the ReplyController
* Removed PendingReply redundant type
* Made socks5 client less eager to over-send reply surbs
* 'anonymous' field on socks5 client to decide whether to use surbs or attach address
* Dead code and import removal in client-core
* Updating ClientRequest variants
* Adjusted decision threshold for requesting more surbs
* Native client cleanup
* Made socks5 client usage of surbs configurable
* Restored statistics in network requester
* Validator-api compiles once again
* Further improved surb request logic
* boxing the recipient in controller requests
* Removal of hardcoded values in favour of propagating them from the config
* more validation during surb requests
* Fixed ClientRequest::Send deserialization
* Added length checks for request deserialization
* post-merge formatting
* Unit tests once again compile and pass
* controlling retransmission_reply_surb_request_size from config
* More Recipient boxing action
* Requesting additional reply surbs for retransmission BEFORE dipping below the threshold
* Making clippy generally happier
* Wasm client compiles (but might not yet work correctly)
* 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
* 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>
* real_traffic_stream: reduce frequency of status print (#1794)
* Properly defined unnamed errors
* Dealing with previously ignored errors
* logging improvements
* Removed old example code
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* Missing changelog entry for multi-surbs (#1802)
* Making anonymous sender tag human readable (#1801)
* Created wrapper with string serialization for AnonymousSenderTag
* Using Display implementation of AnonymousSenderTag for logs
* Using Display implementation of MessageRecoveryError when logging (#1803)
* Using Display implementation of MessageRecoveryError when logging
* Updated changelog
* Defined socks5 client startup flag to enable reply-surb communication (#1804)
* Feature/persistent surbs data (#1835)
* prototyping wip
* Implemented ReplyStorageBackend trait for the sql-backed storage
* Storing correct surb threshold
* using correct database path
* Starting surb persistent storage in native and socks5 clients
* loading or creating fresh surb storage in socks5 and native clients
* making clippy happier + fixing config templates
* Creating status table on database rotation
* Completed the 'Empty' ReplyStorageBackend
* feature locking wasm-incompatible bits and pieces
* Feature/develop resync (#1844)
* 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>
* Making native client wait for shutdown
* Marking dead test code
* Feature/multi surbs invalidation (#1858)
* Cleaned up RealMessagesController constructor
* introduced config field for maximum_reply_surb_age
* Handling edge-case reply-surb failures
* invalidating old reply surbs
* Removing old reply keys from cache
* Invalidating old reply keys
* missing config changes
* logging created tag details
* Fixed clippy warning in test code
* Saving reply key timestamp on data flush (#1867)
* Remove panic if ReconstructedMessagesReceiver is closed (#1868)
Instead log error and return because presumably the shutdown procedure has started
* Feature/multi surbs basic wasm interface (#1846)
* 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
* Reverted hard requirement for gateway protocol presence (#1875)
* Feature/prioritise surb retransmission (#1883)
* Improved error messages + removed redundant variants
* Improved estimation of 'expected_forward_delay'
* Removed old wasm-specific startup code
* Removed old unused reply-related code
* hacky and temporary way of buffering retransmission data
* offloading retransmission reply handling to ReplyController
* fixed linter errors + rebuffering retransmission data on failure
* Removed unused fields from wasm client debug config
* Chore/v1.2.0 update (#2666)
* 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
* feat(wallet): buy page bootstrap
* feat(wallet-buy): tutorial
* feat(explorer-api): add route to fetch nym terms&cdts
* Revert "feat(explorer-api): add route to fetch nym terms&cdts"
This reverts commit 876f752697d89061b1904e1ddd1d5bcb7045dc5c.
* feat(wallet-buy-nym): buy page new ui
* fix(wallet-buy-nym): signature output
* feat(wallet-buy-nym): update signature modal ui
* 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)
* feat(wallet): add link to nym exchange interface
* update nym connect error text (#1809)
* refactor(wallet): clean code
* set flag to false
* Fix wait_for_signal_and_error on win (#1811)
* Use config URLs in clients before the env values (#1813)
* 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
* Feature/dkg integration tests (#1815)
* DKG contract e2e test
* Refactor to the same format as other contracts
* Vk share tests
* State tests
* Dealings tests
* Dealer tests
* Api dkg tests
* Fix path to contract after refactor
* Fix test target clippy
* 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
* 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
* Fix a few errors in socks5 client and network-requester (backport) (#1824)
* Fix two unwraps in socks5 and network-requester
* Make sure client task never sends shutdown signal
* nym-connect: update lock file
* fix(wallet): typo
* avoid mix tokens pools
* fix(wallet): typo
* fix(wallet): buy tutorial ui responsivness
* 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
* Node family management (#1670)
* Family management messages
* Add family queries
* Add queries to client
* Layer assignment message
* Paged family queries, annotate mixnodes with family
* Add layer assignments to epoch operations
* Remove family layer peristence
* Add NotImplemented error for kick
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Fixed layer distribution skewness check (#1766)
* client: add --no-cover and update --fastmode (#1831)
* adding a oversaturaded bonding more modal
* Use better naming on gateway credential handling (#1834)
* Fix comment in configuration file (#1836)
* common/task: extract out spawn_with_report_error (#1837)
* nym-connect/changelog: add note about disconnect fix
* Feature/simplify credential binary (#1841)
* Expose name of standard directories
* Use one command instead of two
* nym-connect: append error to failed message (#1839)
* nym-connect: append error to failed message
* changelog: add note
* Fix clippy
* remove extra checks to display vesting schedule(#1826)
* Set explorer to use rpc.nymtech.net
* update versions for platfrom, nym-connect and nym-wallet to v1.1.2
* changed nym-connect version to 1.1.1
* Modifying changelog for v1.1.2
* changed nym-connect version to 1.1.2
* update nym-connect CHANGELOG
* Updated changelog for wallet
* Feature/wallet content updates (#1825)
* fix up balance screen
* fix up app bar and nym logo alignment
* fix up delegation action icon font weight
* fix up bond page
* Corrected env variable name in workflows
* Use config URLs in clients before the env values (#1813)
* Feature/dkg integration tests (#1815)
* DKG contract e2e test
* Refactor to the same format as other contracts
* Vk share tests
* State tests
* Dealings tests
* Dealer tests
* Api dkg tests
* Fix path to contract after refactor
* Fix test target clippy
* Node family management (#1670)
* Family management messages
* Add family queries
* Add queries to client
* Layer assignment message
* Paged family queries, annotate mixnodes with family
* Add layer assignments to epoch operations
* Remove family layer peristence
* Add NotImplemented error for kick
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Fixed layer distribution skewness check (#1766)
* Use better naming on gateway credential handling (#1834)
* Fix comment in configuration file (#1836)
* nym-connect/changelog: add note about disconnect fix
* Feature/simplify credential binary (#1841)
* Expose name of standard directories
* Use one command instead of two
* Fix clippy
* feat(wallet): buy page bootstrap
* feat(wallet-buy): tutorial
* feat(explorer-api): add route to fetch nym terms&cdts
* Revert "feat(explorer-api): add route to fetch nym terms&cdts"
This reverts commit 876f752697d89061b1904e1ddd1d5bcb7045dc5c.
* feat(wallet-buy-nym): buy page new ui
* fix(wallet-buy-nym): signature output
* feat(wallet-buy-nym): update signature modal ui
* feat(wallet): add link to nym exchange interface
* refactor(wallet): clean code
* fix(wallet): typo
* fix(wallet): typo
* fix(wallet): buy tutorial ui responsivness
* update versions for platfrom, nym-connect and nym-wallet to v1.1.2
* changed nym-connect version to 1.1.1
* Modifying changelog for v1.1.2
* changed nym-connect version to 1.1.2
* update nym-connect CHANGELOG
* Updated changelog for wallet
* Resolve merge conflicts
* Update qa-qwerty.env
* Fixed URL to branch
* changed ubuntu-latest on GH actions to ubuntu-20.04
* docs: updated changelog for contracts release v1.1.2 and updated versions of mixnet and vesting contracts as well
* Add ignore to dkg expensive tests (#1856)
* introduce minimize button in custom title bar (#1843)
* refresh balance after sending tokens (#1857)
* Feature/fix client multi cred consume (#1859)
* Mark consumed credentials in the db
* Add signature log
* Fix wasm mock Storage trait
* Fix clippy
* Feature/verify bte proof (#1866)
* Update lock file
* Include bte public key verification
* Wallet - Buy, copy changes (#1855)
* use mix_id for account to get correct pending cost event (#1869)
* use mix_id for account to get correct pending cost event
* Properly add consumed to table (#1870)
* nym-connect: update Cargo.lock to 1.1.2
* Clients: save init results to JSON (#1865)
* clients: output results of init to json
* Remove leftover dbg
* Tidy
* Fix nym-connect
* Client: dedup setup gateway during init (#1871)
* clients: dedup gateway setup logic
* nym-connect: extract out print_save_config
* Feature/dkg state to disk (#1872)
* Add PersistentState
* Save and load state to/from disk
* If in progress, don't continually write the same state
* Fix tests and add serde one
* Update changelog
* Fix clippy
* network-requester: return error on socket close (#1876)
* network-requester: return error when the socket closes
* changelog: add note
* clients: further deduplicate init code (#1873)
* client-core: move init helpers to module
* WIP
* socks5: return error instead of terminate in init
* Extract out reuse_existing_gateway_config
* rustfmt
* Remove comment out code
* nym-connect: use setup_gateway
* Linebreak
* changelog: update
* Tweak log
* rustfmt
* client: pick from old lanes probabilisticlly (#1877)
* Pick from old lanes probabilisticly
* changelog: update
* clients: dont panic in base client gateway client handling (#1878)
* client-core: fix some panics related to gateway-client
* changelog: update
* fix
* changelog: fix wording
* Use default mainnet values when nothing is specified (#1884)
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: pierre <dommerc.pierre@gmail.com>
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>
Co-authored-by: Drazen Urch <drazen@urch.eu>
Co-authored-by: durch <durch@users.noreply.github.com>
Co-authored-by: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
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>
Co-authored-by: pierre <dommerc.pierre@gmail.com>
Co-authored-by: Drazen Urch <drazen@urch.eu>
Co-authored-by: durch <durch@users.noreply.github.com>
Co-authored-by: Tommy Verrall <60836166+tommyv1987@users.noreply.github.com>
* nym-connect: send status messages from socks5 task to tauri backend
* common/tasks: fix spawn for wasm
* Tidy up some names
* make status channel bounded in case there is no one listening
* Add PersistentState
* Save and load state to/from disk
* If in progress, don't continually write the same state
* Fix tests and add serde one
* Update changelog
* Fix clippy
* DKG contract e2e test
* Refactor to the same format as other contracts
* Vk share tests
* State tests
* Dealings tests
* Dealer tests
* Api dkg tests
* Fix path to contract after refactor
* Fix test target clippy
* 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
* 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
* DKG contract e2e test
* Refactor to the same format as other contracts
* Vk share tests
* State tests
* Dealings tests
* Dealer tests
* Api dkg tests
* Fix path to contract after refactor
* Fix test target clippy
* 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
* 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>
* 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
* Fix decrypting stored received msg
* rustfmt
* Moving binary message recovery to separate function
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* 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
* 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
* Fix decrypting stored received msg
* rustfmt
* Moving binary message recovery to separate function
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* 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
* 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
* Setup with 1 epoch and full test that skips key update
* Remove a bunch of epoch code
* Remove unnecessary map from one element vector
* Remove tau, epoch and lambda_t
* Removed lambda_t completely
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* fix undelegating with vesting tokens
* update version number
* update tauri conf version
* fix(wallet): explorer links
* refactor(explorer): rename mixnodeidentitykey to mixid
* fix(wallet): broken explorer links
Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk>
Co-authored-by: pierre <dommerc.pierre@gmail.com>
* WIP: QA network details
* Initial implementation to multiplex socks5-client sends
* Introduce TransmissionLane enum
* WIP
* WIP: client requests connection id
* WIP
* mulitplex somewhat done
* Remove closed lanes
* WIP: connection handling over ws
* Remove unused published active connections shared data
* Start on status timer
* Max number of connections, and prune
* Some tidy
* Remove commented out code and tweak log
* Tidy
* Tweak log output
* Rename to TransmissionBuffer
* Use number of msg sent instead of time to rank age of lanes
* Create client-connections crate
* Remove waker call that probably are not needed
* Extract out some types from real traffic stream module
* Revert to develop qa.env
* Tweak comments, tidy for getting ready to merge
* Update changelog
* wasm client compile fixes
* rustfmt
* Bump version of nym-cli to 1.1.0 and move CHANGELOG to standalone file
* Bump version of nym-connect to v1.1.0 and update CHANGELOG
* Bump version of nym-wallet to v1.1.0 and update CHANGELOG
* Bump version of explorer-api to v1.1.0
* Bump versions of binaries (native-client, socks5-client, mixnode, gateway, network-requester) to v1.1.0
* Bump version of validator-api to v1.1.0
* Bump version of mixnet contract to v1.1.0 (vesting contract already v1.1.0 from #1472)
* Bump Nym Platform version to v1.1.0 and update CHANGELOG
* Update CHANGELOG.md
* Update CHANGELOG.md
* Updated changelog with v2-related changes
* Update CHANGELOG.md
Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com>
Co-authored-by: Fouad <fmtabbara@hotmail.co.uk>
Co-authored-by: Pierre Dommerc <dommerc.pierre@gmail.com>
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Co-authored-by: Jess <31625607+jessgess@users.noreply.github.com>
* refactor delegations list to include separate delegation and pending delegation item
* show tooltip on delegation with unbonded node
* feat(wallet): add operating cost in delegations list
* add additional state to check for unbonding event
* disable actions when pending unbond event
* add request and type guard for pending unbond event
* add mixnode_is_unbonding to delegation item type
Co-authored-by: pierre <dommerc.pierre@gmail.com>
* socks5: wait to close buffer
This is the fix proposed by @simonwicky in
https://github.com/nymtech/nym/issues/1701
* socks5: fix typo in patch
* socks5: fix tests
* socks5: add type for returned data and index
* socks5: make closed_at_index an Option
* changelog: add note
* changelog: update
* client: add error type to native client, and start handling them
* client: handle two more error cases
* changelog: add note
* socks5: add error type and start handle run errors
* network-requester: add some error types
* rustfmt
* changelog: update note
* network-requester: remove unused import
* socks5: wait to close buffer
This is the fix proposed by @simonwicky in
https://github.com/nymtech/nym/issues/1701
* socks5: fix typo in patch
* socks5: fix tests
* socks5: add type for returned data and index
* socks5: make closed_at_index an Option
* changelog: add note
* access gateway report from node status api
* Create 4 response types for gateway and mixnode uptime and status
* Add the three remaining validator-client functions
* display gatways routing scores
* handle undefined gateway report
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* 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
* Disallowing the use of unwraps and expects in vesting and mixnet contracts
* Removed dodgy unwraps from the mixnet contract
* Removed dodgy unwraps from the vesting contract
* Removed unwraps/expects from common contracts crate
* ...but adding the unwraps in tests
* Add per account pledge caps
* Address PR comments
* Update CHANGELOG
* No cap if no locked
* Fail account creation if taking account already exists
* Delegated free should be counted from vesting period start
* simple multi-node simulator
* Extending simulator with multi-node feature + testing against known good values
* Mixnet contract test fixes
* comment explaining the epsilon choice
* Renamed the type alias NodeId to MixId and fixed some usages
* fix(wallet): bonding context
* fix(wallet): remove ip field (type error)
Co-authored-by: pierre <dommerc.pierre@gmail.com>
* 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
* Made config.toml values in validator-api take precedence over mainnet defaults
* Updated mixnode and gateway configs with similar priority adjustments
* Changelog
* Replaced serde renames to aliases
Ideally I would have removed all serde macros, but then it would have broken existing QA deployments - perhaps we should do it later
* Renamed 'node_id' in Delegation to 'mix_id'
* Further renamings of 'node_id' to 'mix_id' in various places
* Update to latest set of selection chance buckets
* Fixup after rebase
* Lock file update
* storybook update
* update storybook
Co-authored-by: Gala <calero.vg@gmail.com>
* Query for node stake saturation
* Queries for currently pending events
* Rewarded set query
* Moved ContractState to common types
since it's being returned as a result of one of the queries on the mixnet contract and thus it needs to be accessible outside the contract itself
* Cleaend up storage initialisation
* started restoring unit tests
* Removed attached 1ucoin for cross-contract execute msgs
* wip
* query for rewarding details of a mix node
* Changes for mixnodes and gateways
* Furher progress on v2 changelog(-ish) description
* wip
* first version of the description
* mixnode bonding queries tests and fixes
* ibid for storage
* MixnodeEventType enum + created events for missing mixnode txs
* tests for adding new mixnode
* Additional mixnode-related tests + bug fixes
* Display for Percent
* Bunch of tests for try_reward_mixnode
* More tests and fixes
* ibid
* tests for updating rewarding params + important bug fix
* Started removing unused imports
* rewarding queries tests + undelegation bugfix
* A lot of todo()-ing and commenting out unimplemented code
* implements https://github.com/nymtech/team-core/issues/113
* Delegation tests + fixes
* Emiting events by top level interval txs + incorporating limit
* question
* Missing events emissions
* removed some code duplication
* wip
* pending delegation tests
* Vesting contract update
* More tests (and fixes) for pending events txs
* Restored gateway tx tests
* Another cleanup iteration
* removed redundant comment
* Unit tests, fixes and simplifcations for interval-related txs
* Unit tests for helper functions
* Interval queries unit tests
* Test for correct contract initialisation
* Another round of cleanup
* Work on mixnet_query_client trait
* mixnet_signing_client trait
* Removed redundant methods
* Slowly restoring validator client functionality
* Added deprecated query for mix details by identity
* wip restoration of validator-api
* Work on deprecating validator API routes
* Further validator-api routes
* Restored rest of status api routes
* Resolved all todos in ValidatorApiStorage
There's still bunch left in StorageManager though
* Changed NodeId from u64 to u32
* Updating sql code
* Network monitor internals
* Changed behaviour of full_epoch_id and updated epoch operations
* Fixed sql queries
* [most likely] finished updating rest of the validator API
* Post rebasing fixes
* Feature/rewarding revamp explorer api changes (#1511)
* Changed cache to allow for non-string keys
* Helper method for best-effort conversion of pubkey to nodeid
* Updated validator-api client routes
* Updated routes to use mix-id indexing
* Introduction of deprecated routes callable by identity key
* Fixed mixnode compatibility by changing read node details fields (#1512)
* Fixed bond to topology conversion for client compatibility (#1513)
* Updated 'verify_gateway_owner' to use correct nymd_client method for obtaining gateway details (#1515)
* Updated constructor for ValidatorCacheInner
* Fixed wasm client topology construction
* Run cargo fmt on the entire codebase
* Feature/rewarding revamp wallet backend changes (#1529)
* Updated mixnode-related ts types
* Updated nym-wallet-types
* Updated 'get_contract_settings' and commented out code of other tauri commands
* 'update_contract_settings'
* 'bond_gateway'
* unbond_gateway'
* Utility commands for the transition period
* 'bond_mixnode'
* 'unbond_mixnode'
* Ability to update mixnode cost paramaters
* Mixnode config update
* Updated mixnode_bond_details
It also returns a different underlying type now
* Updated 'gateway_bond_details'
* Obtaining pending operator rewards
* Improved way of obtaining number of mixnode delegators
* simplified error handling in 'fetch_mix_node_description'
* mixnode and gateway ownership queries
* updated get_number_of_mixnode_delegators to use mix_id since we have the conversion utils helper
* mixnode delegation
* undelegating
* Obtaining pending delegator rewards
* Command for obtaining current interval details
* Queries to handle paging for pending events
* Additional level of indirection to pending events to incorporate event id into response
* Wallet compatible pending event types
* Commands fo obtaining pending events
* Re-implemented pending delegation events
* Further work on delegation
* Removed unused imports
* Commands for withdrawing rewards
* Admin-related simulations
* mixnet-related simulation commands
* Validator-api related routes
* Bond-related vesting operations
* Vesting simulations
* Vesting handler for UpdateMixnodeCostParams
* Vesting reward claiming
* Vesting queries
* claim_locked_and_unlocked_delegator_reward
* The massive delegation query
* cleanup
* updated typescript requests
* sorted the new type exports in ts-rs-cli
* Regenerated typescript types
* temporarily ignoring unreachable code in vesting migration
* Updated missed test fixture
* Fixed missing coconut-specific import
* cargo fmt
* Exporting reward-related types
* utility to convert stringified decimal to cosmjs Decimal
* deriving Eq alongside PartialEq
* wip - typescript fixes
* using default operating cost when bonding mixnode
* Using default operating cost when updating mixnode cost params
* most delegation fixes
* Wrapping delegation with node identity
* Added MultiIndex on owner and identity key to unbonded mixnodes
* Support for queries for unbonded nodes by owner or by identity key
* Cargo fmt + ts types update
* feature locking unused imports
* fix(nym-wallet): typing and error (#1548)
* post-rebase fixes
* Changed storage key for new delegations map in vesting contract
* fix(wallet): typing issues (#1562)
* fix(wallet): error UI feedback (#1565)
* clean(wallet): remove useless files (with flamethrowers 🔥) (#1567)
* Changed default_mixnode_cost_params to allow accepting f32 instead
* Revert "Changed default_mixnode_cost_params to allow accepting f32 instead"
This reverts commit fb62a0014f.
* Fixed APY calculation for 0 pledge value
* Don't send rewarding transactions for empty rewarded set
* Fixed mixnode rewarding in validator API
* fix(nym-wallet): profit margin (#1574)
* Correctly assigning Delegate event type to PendingEpochEventData::Delegate
* Replaced 'history' in with 'pending_events' in DelegationWithEverything
* Updated typescript side of things
* Removed todo!() from vesting contract migration since its going to be dealt with differently
* fix(nym-wallet): stake saturation and delegations (#1578)
* fix(nym-wallet): stake saturation percentage
* fix(nym-wallet): stake saturation percentage
* Correctly assigning Delegate event type to PendingEpochEventData::Delegate
* fix(nym-wallet): get rid of delegation history
* Replaced 'history' in with 'pending_events' in DelegationWithEverything
* Updated typescript side of things
* Correctly assigning Delegate event type to PendingEpochEventData::Delegate
* Replaced 'history' in with 'pending_events' in DelegationWithEverything
* Updated typescript side of things
* fix(nym-wallet): welcome back pending events and delegation menu
* fix(nym-wallet): stake saturation percentage
* fix(nym-wallet): stake saturation percentage
* fix(nym-wallet): get rid of delegation history
* Updated typescript side of things
* fix(nym-wallet): welcome back pending events and delegation menu
* fix(nym-wallet): fix clippy
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Updated vesting contract migration to update the mixnet contract address
* feat(wallet): add confirmation/warning modal for unbonding
* Post rebasing fixes
* commented out all code
* Bunch of work in progres, but working simulator
* Removing redundant fields + increased precision to 9decimal places
* deserialization of Percent with value validation
* wip
* Further moving things around + mixnode bonding
* Mixnode unbonding
* Starting restoration on contract state
* Revamping interval
* More work on epoch/interval
* progress on mixnode rewarding
* Moved MixNodeRewarding to rewards storage
* wip on delegations
* Removed concept of periods and historical records and moved cummulative reward ratio directly to delegation
* more wip delegation
* Full delegation flow
* mixnode config updates
* Mixnode cost function updates
* Work on moving mixnode unbonding to post-epoch actions
* Unbonding
* Processing undelegation
* changing cost params
* Uncommented existing gateways features
without much changes so far, however, things like unbonding should probably also go to epoch queue
* ExecuteMsg cleanup
* unit tests for withdrawing rewards against known values
* Transactions for withdrawing rewards
* Transactions for updating various parameters
* First round of post-tx cleanup
* Moved all storage keys to constants.rs
* Using correct initial gateway pledge amount
* Renamed sybil_resistance_percent to sybil_resistance with percent being implicit from the typ
* Starting with contract queries
* Keeping minimal details of unbonded mixnoces
* Checking for owner address rather than rewarding validator when updating rewarding params
* Mixnode-related queries
* Gateway-related queries
* Query for paged unbonded mixnodes
* Delegations queries
* Query for current interval details
* Removed 'fixed' dependency from the mixnet common
* wip on implementing rewards-related queries
* Pending rewards queries
* Query for node stake saturation
* Queries for currently pending events
* Rewarded set query
* Moved ContractState to common types
since it's being returned as a result of one of the queries on the mixnet contract and thus it needs to be accessible outside the contract itself
* Cleaend up storage initialisation
* started restoring unit tests
* Removed attached 1ucoin for cross-contract execute msgs
* wip
* query for rewarding details of a mix node
* Changes for mixnodes and gateways
* Furher progress on v2 changelog(-ish) description
* wip
* first version of the description
* mixnode bonding queries tests and fixes
* ibid for storage
* MixnodeEventType enum + created events for missing mixnode txs
* tests for adding new mixnode
* Additional mixnode-related tests + bug fixes
* Display for Percent
* Bunch of tests for try_reward_mixnode
* More tests and fixes
* ibid
* tests for updating rewarding params + important bug fix
* Started removing unused imports
* rewarding queries tests + undelegation bugfix
* A lot of todo()-ing and commenting out unimplemented code
* implements https://github.com/nymtech/team-core/issues/113
* Delegation tests + fixes
* Emiting events by top level interval txs + incorporating limit
* question
* Missing events emissions
* removed some code duplication
* wip
* pending delegation tests
* Vesting contract update
* More tests (and fixes) for pending events txs
* Restored gateway tx tests
* Another cleanup iteration
* removed redundant comment
* Unit tests, fixes and simplifcations for interval-related txs
* Unit tests for helper functions
* Interval queries unit tests
* Test for correct contract initialisation
* Another round of cleanup
* Work on mixnet_query_client trait
* mixnet_signing_client trait
* Removed redundant methods
* Slowly restoring validator client functionality
* Added deprecated query for mix details by identity
* wip restoration of validator-api
* Work on deprecating validator API routes
* Further validator-api routes
* Restored rest of status api routes
* Resolved all todos in ValidatorApiStorage
There's still bunch left in StorageManager though
* Changed NodeId from u64 to u32
* Updating sql code
* Network monitor internals
* Changed behaviour of full_epoch_id and updated epoch operations
* Fixed sql queries
* [most likely] finished updating rest of the validator API
* Post rebasing fixes
* Feature/rewarding revamp explorer api changes (#1511)
* Changed cache to allow for non-string keys
* Helper method for best-effort conversion of pubkey to nodeid
* Updated validator-api client routes
* Updated routes to use mix-id indexing
* Introduction of deprecated routes callable by identity key
* Fixed mixnode compatibility by changing read node details fields (#1512)
* Fixed bond to topology conversion for client compatibility (#1513)
* Updated 'verify_gateway_owner' to use correct nymd_client method for obtaining gateway details (#1515)
* Updated constructor for ValidatorCacheInner
* Fixed wasm client topology construction
* Run cargo fmt on the entire codebase
* Feature/rewarding revamp wallet backend changes (#1529)
* Updated mixnode-related ts types
* Updated nym-wallet-types
* Updated 'get_contract_settings' and commented out code of other tauri commands
* 'update_contract_settings'
* 'bond_gateway'
* unbond_gateway'
* Utility commands for the transition period
* 'bond_mixnode'
* 'unbond_mixnode'
* Ability to update mixnode cost paramaters
* Mixnode config update
* Updated mixnode_bond_details
It also returns a different underlying type now
* Updated 'gateway_bond_details'
* Obtaining pending operator rewards
* Improved way of obtaining number of mixnode delegators
* simplified error handling in 'fetch_mix_node_description'
* mixnode and gateway ownership queries
* updated get_number_of_mixnode_delegators to use mix_id since we have the conversion utils helper
* mixnode delegation
* undelegating
* Obtaining pending delegator rewards
* Command for obtaining current interval details
* Queries to handle paging for pending events
* Additional level of indirection to pending events to incorporate event id into response
* Wallet compatible pending event types
* Commands fo obtaining pending events
* Re-implemented pending delegation events
* Further work on delegation
* Removed unused imports
* Commands for withdrawing rewards
* Admin-related simulations
* mixnet-related simulation commands
* Validator-api related routes
* Bond-related vesting operations
* Vesting simulations
* Vesting handler for UpdateMixnodeCostParams
* Vesting reward claiming
* Vesting queries
* claim_locked_and_unlocked_delegator_reward
* The massive delegation query
* cleanup
* updated typescript requests
* sorted the new type exports in ts-rs-cli
* Regenerated typescript types
* temporarily ignoring unreachable code in vesting migration
* Updated missed test fixture
* Fixed missing coconut-specific import
* cargo fmt
* Exporting reward-related types
* utility to convert stringified decimal to cosmjs Decimal
* deriving Eq alongside PartialEq
* wip - typescript fixes
* using default operating cost when bonding mixnode
* Using default operating cost when updating mixnode cost params
* most delegation fixes
* Wrapping delegation with node identity
* Added MultiIndex on owner and identity key to unbonded mixnodes
* Support for queries for unbonded nodes by owner or by identity key
* Cargo fmt + ts types update
* feature locking unused imports
* fix(nym-wallet): typing and error (#1548)
* post-rebase fixes
* Changed storage key for new delegations map in vesting contract
* fix(wallet): typing issues (#1562)
* fix(wallet): error UI feedback (#1565)
* clean(wallet): remove useless files (with flamethrowers 🔥) (#1567)
* Changed default_mixnode_cost_params to allow accepting f32 instead
* Revert "Changed default_mixnode_cost_params to allow accepting f32 instead"
This reverts commit fb62a0014f.
* Fixed APY calculation for 0 pledge value
* Don't send rewarding transactions for empty rewarded set
* Fixed mixnode rewarding in validator API
* fix(nym-wallet): profit margin (#1574)
* Correctly assigning Delegate event type to PendingEpochEventData::Delegate
* Replaced 'history' in with 'pending_events' in DelegationWithEverything
* Updated typescript side of things
* Removed todo!() from vesting contract migration since its going to be dealt with differently
* fix(nym-wallet): stake saturation and delegations (#1578)
* fix(nym-wallet): stake saturation percentage
* fix(nym-wallet): stake saturation percentage
* Correctly assigning Delegate event type to PendingEpochEventData::Delegate
* fix(nym-wallet): get rid of delegation history
* Replaced 'history' in with 'pending_events' in DelegationWithEverything
* Updated typescript side of things
* Correctly assigning Delegate event type to PendingEpochEventData::Delegate
* Replaced 'history' in with 'pending_events' in DelegationWithEverything
* Updated typescript side of things
* fix(nym-wallet): welcome back pending events and delegation menu
* fix(nym-wallet): stake saturation percentage
* fix(nym-wallet): stake saturation percentage
* fix(nym-wallet): get rid of delegation history
* Updated typescript side of things
* fix(nym-wallet): welcome back pending events and delegation menu
* fix(nym-wallet): fix clippy
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Updated vesting contract migration to update the mixnet contract address
* feat(wallet): add confirmation/warning modal for unbonding
* Post rebasing fixes
* Removed deprecation on GetMixnodeDetailsByIdentity
* Fixed nym-cli
* Removed needless borrow
* Updated colorMap and textMap
Co-authored-by: durch <durch@users.noreply.github.com>
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
Co-authored-by: Pierre Dommerc <dommerc.pierre@gmail.com>
* Add a second entry point to the webpack config for the logging window
* tauri operations to show a log window
* LogViewer react component
* Upgrade tauri and use default tauri app menu for MacOS and add `Help` menu with `Show log` entry to show the logging window
* wip
* Proof of concept
* Fix format inside debug with ferm
* Put new menubar and log behind env variable flag
* Remove unused deps
* rustfmt
* Add changelog note
* Fix up imports
* Remove old code
* Improve log viewer
* Remove old code
* Add color to output, even if tauri hides it
* Remove redundant level from tauri log msg
* Since menu bar visible by default, change feature flag name
* Fix up webpack config so correct chunks get injected into entry points and remove inline CSS causing CSP issue
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
This gives type hinting in editors. I can no longer remember why we
didn't set it up like this a long time ago, but it builds and tests
fine. Feel free to revert if it causes any problems.
* Fix compile error
* Expose signing wallet for signing client
* Add stub tauri operation to sign a message with the current account
* feat(wallet): add a request to verify a signature
* feat(wallet): add support to verify from account address
* feat(wallet): add support to verify from account address
* fix(wallet): verify tauri request signature
* wallet-recovery-cli: upgrade clap to 3.2
* Fix compile error
* Expose signing wallet for signing client
* Add stub tauri operation to sign a message with the current account
* feat(wallet): add a request to verify a signature
* feat(wallet): add support to verify from account address
* feat(wallet): add support to verify from account address
* fix(wallet): verify tauri request signature
* Fix deserializtion of U128
* feat(wallet): avoid unwrap
* refactor(wallet):suggested feedbacks
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: durch <durch@users.noreply.github.com>
* common/socks5: Use thiserror and add copyright notice
* Send allowlist failure msg back to socks5 client
* Add some serde unit tests
* Fix clippy after rustup update
* Update changelog
* Rewarded set updater shutdown (partial) handling
* Shutdown handling in monitor
* Remove shutdown from packet receiver
* Configurable shutdown timeout
* Select on test_run too
* Remove unnecessary await/async
* Add bias to shutdown select and concurrency for big tasks
* Put cpu-bound packet prep on separate thread, to avoid blocking
* Use a better fit timeout value
* Fix clippy warnings
* Update changelog
* Fix wasm client
* Added contract queries for vesting delegations
* Added the queries on NymdClient
* Added account_id to DelegationTimesResponse
* Returning raw u64 as opposed to wrapped Timestamp
* Updated changelog
* validator-api: create node status cache with selection probabilies
Create a node status cache to complement the contract cache. Initially
we store the simulated active set selection probabilities.
* validator-api: add validator cache watch channel
* changelog: add note
* validator-api: clippy fixes
* validator-api: fix clippy
* validator-api: additional fields to inclusion probabilities response
* selection chance: revert back to 3 buckets
* selection chance: revert buckets again
* rustfmt
* validator-api: remove the old get_mixnode_inclusion_probability
* node-status-cache: return error when refreshing
* inclusion-simulator: cap on wall clock time
* node status cache: tidy
* feat(nym-connect): local storage service provider
* feat(nym-connect): local storage service provider
* feat(nym-connect): local storage service provider
* Add some extra height to the window to stop the scrollbar apearing
* Show the service description when selecting a Service Provider
* Bump version
* Update changelog
* fix(nym-connect): hotfix
* fix(nym-connect): hotfix
* fix(nym-connect): wrong disabled state for connection button
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
* feat(wallet-bonding): bonding page, new bond form wip
* feat(wallet-bonding): add node table component
feat(wallet-bonding): new dialog component
* feat(wallet-bonding): node settings flow
* feat(wallet-bonding): bond more flow (done)
* feat(wallet): use confirmation modal component
* feat(wallet-bonding): node menu ui
* refactor(wallet-bonding): bonding flow with new gasFee estimation
* feat(wallet-bonding): unbond with gasFee and request
* refactor(wallet-bonding): switch to simpledialog component to keep modals consistency
* feat(wallet-bonding): fetch mixnode status
* update coin types in new bonding page
* fix displayed denom
* rebuild BondedNodeCard using existing shared components
* create reuseable ActionMenu component
* new mixnode form
* add gateway bond form
* check balance and fetch fee on bond mixnode request
* node settings
* get node description
* fix up rust request
* lint fixes + used NodeTypeSelector component
* temporarily remove estimated operator reward
* update return on rust function
* dont display node name UI if name doesnt exist
* rebase develop
* fix uppercase address bug
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
Co-authored-by: pierre <dommerc.pierre@gmail.com>
* Fix NC filter for domains suffix-only domains
* Update CHANGELOG
* Fix unit test for filter
Some domains might be composed of the suffix only.
There are no nonsense domains, as they can be defined even on the local
machine. The underlying library doesn't resolve them, but rather uses a
fixed list of public suffixes to assess the domains.
* Fix clippy
* feat(wallet): move receive page in modal
* feat(wallet-receive): some ui work
* feat(wallet): simple modal component
show or not the Ok button based on onOk props
* feat(wallet): fix sx props type imports
* Return Err from compound transactions
* Remove malicious nodes migration
* Reduce total delegation, before adding to it
* Blacklist malicious nodes, prevent future bonding
* Blacklisted gets no reward, enable compound
* Add GetBlacklistedNodes message
* Rebase on develop
* Remove TODO
* Clients use env
* Explorer api uses env
* Mainnet and qa env files
* Set CONFIGURED on the mainnet defaulting
* Gateway uses env
* Mixnode uses env
* Wallet error simplification
* Network requester takes only mainnet client address
* Validator api uses env
* Mixnet contract uses denom from instantiate
* Vesting contract uses denom from instantiate
* More contract test refactoring
* Coconut bandwidth contract uses denom from instantiate
* Bandwidth claim contract uses denom from instantiate and remove from Cargos
* More remove from Cargos and one missed DEFAULT_NETWORK
* Refactor some other missed places
* Minor fixes
* Test and clippy fixes
* Update CHANGELOG
* add filters UI
* use filter schema
* filter mixnode based on selected filters
* only show filters on the mixnode page
* use base api to get all mixnodes to avoid setting mixnodes in state
* prevent additional request when status changes
* create isMobile hook
* Add spend credential endpoint to coconut bandwidth contract
* Store spent credentials support
* Add query endpoint for spent credentials
* Proposals allowed only from special (contract) address
* Include check for admin in tests
* Create proposal from CBC
* Refactor into coconut integration tests
* Create proposal with spend credential integration test
* Resolve mixnet warnings
* Refactor to re-enable build
* Call CBC from gateway and remove validator-api workaround
* Include migration for the first deployment of multisig
* Fix bug in proposal id parsing
* Remove more validator-api create proposal code
* Check for InProgress status of credential
* Check the proposed voucher value
* Unwrapping cosmos msg from gateway
* Improve error message
* More nit fixing
* Test getting validator api cosmos address endpoint
* Refactor to prepare for distributed comm channel
* Refactor coconut e2e test for reuse
* Verification of cred endpoint test
* Update CHANGELOG
* Introduced concept of denom details
No longer exposing plain 'DENOM'
Denom registration + conversion
Generating typescript type for DecCoin
'New' API on 'send'
Further WIP work on transforming usages of MajorCurrencyAmount into DecCoin
Further replacements of MajorCurrencyAmount into DecCoin
Attempt at dec-coinifying get_all_mix_delegations
Finished purge of MajorCurrencyAmount
Display for Fee
More unification for conversion methods
Fixed up tests and made clippy happier
Minor post-merge fixes
Removed explicit Arc and RwLock from all tauri commands
Fixed conversion to display coin
More type-restrictive exported denom type
Regenerated rust => ts types
* post-rebase fixes
* update frontend
* fix lint errors
* Adjusted Display implementation of DecCoin to include space between amount and denom
* Adding separate base and display denoms for account
* Fixed account constructor
* Using CurrencyDenom for display_mix_denom
* uppercase denom on frontend
* Changed AutoFeeGrant constructor
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* typescript validator client: add `denom` argument to constructor and a simple test for querying a balance.
Add to yarn workspaces.
* Update CHANGELOG
* Temporarily point cosmrs to PR branch
* Expose grant allowance in client
* Move functions in coconut verifier
* Do execute from gateway
* Explicit fee payment by granter
* Include revoke grant after finishing with the op
* Gateway checks the proposal content before proceeding
* Clippy fixes
* CHANGELOG update
* nym-connect: update package versions to resolve conflict
* nym-connect: add pre-target to build shared packages when building storybook
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
* dark mode for balance page
* nav bar dark mode styles
* test wallet stories modes view
* Action Modals and Simple Modal stories
* Redeem Modals stories
* Delegation Modals
* mode handling
* remove not used code
* updating modal historial after update with develop
* wallet: more modals refactor for storybook
* more refactor
* non use redundant boolean value
* dark mode for balance page
* nav bar dark mode styles
* test wallet stories modes view
* adding missing import
* fixing modals in stories
* Action Modals and Simple Modal stories
* Redeem Modals stories
* Delegation Modals
* wrapper dialog content with a paper
* nym-connect: use monorepo workspace and dependent packages
* nym-wallet: fix up dependencies
* nym-connect: ip and port copy values to clipboard with UI hint in tooltip
* nym-connect: update icons and word mark
* nym-connect: add automatic updater
* nym-connect: update CHANGELOG
* socks5: upgrade clap to latest and use declarateive derive form
* socks5: rustfmt and clippy
* socks5: missing doc strings
* socks5: default values for eth arguments
* socks5: tidy
* client: upgrade native client to latest clap and declerative form
* changelog: add note
* use confirmation modal for successful/failed unbond
* show loading modal when getting fees
* use new back button
* use new confirmation modal component
* add simulate send function
* extract loading modal into its own component
* move appbar component into folder
* add additional prop for making modal list item text bold
* create new send UI and stories
* remove old send page
* use simulated fee in send request
* use new confirmation modal component
* set up transfer token component with fee included
* open transfer modal after balance refresh
* create fee warning component
* use confirmation modal
Comment out 3 failing tests. These have been failing for some time
(forever?), and were beind `ignore` flags. However recently we've
started using `ignore` for slow tests per the suggestion in the Rust
book, so we can't have failing ignored tests anymore.
* 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
* Move coconut validator api req out of coconut interface
and expose a new cosmos-address endpoint
* Finish cosmos address endpoint
* Guard under coconut feature gateway & validator-api code
* Update CHANGELOG
* Incorporating GasAdjustment into wallet fee simulation
* Adjusting the gas only a single time
* Hacky implementation of ts_rs on FeeDetails
* changelog
* validator-api: compute and return APY for all mixnode bonds
* validator-api: tidy
* validator-api: handle the absence of storage
* validator-api: some comments
* validator-api: refinements to apy calc
* validator-api: extract out some calculations
* changelog: add note
* Constructing `EpochRewardParams` with proper staking_supply
* Query for current staking supply
* More crate visibility on epoch reward params
* unused import
* Remove duplicate save of epoch_reward_params
* test fixes
* Changelog
* Moved PR references to correct section
* cargo fmt
* Removed old migration code
* Adding simple hardware info reporting to the mixnode HTTP API
* Adding sgx availability as another example field
* Added sysinfo crate for addtitional simple hardware reporting
* Added reporting on number of cpu cores and available ram
* Cleanup of unused struct
* Fixing merge conflict
* Checking for supported system before using sysinfo
* Breaking commit containing additional types
...and a painfully wrong implementation of the SMT processor cores type.
* Handling unavailable brand string
* Fixed getting SMT logical processor count
* Rebase with develop + cleaned up changelog
* unused import
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Make gateway mnemonic optional
* Remove unnecessary timer struct
* Prepare for code reuse
* Use trait for stats collector
* Put trait definition in common crate
* Gateway stats runner
* Custom statistics url arg
* Build & send stats req to url
* Storage support for new stats type
* Make gateway stats opt in
* Test&clippy fixes
* CHANGELOG update
* wip checking ts-package
* adding the validation to the identity form field
* changing the error message
* changing node oversaturated error mss
* adding oversaturated modal blocker
* adding error colour to palette, and styles to basic modal
* wip
* wip
* some refactor
* dont validate field till we have api response
* fix typo
* adding line break
* catch error when node is not valid
* handle error out of the field component
* removing logs
* Adding disableCompoundRewards prop in DelegationsActionsMenu
* Adding disableCompoundRewards to DelegationsActionsMenu
* refactor validation
* Revert some not needed changes
* adding line break
* adding stories
Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk>
* Add TODO reminders to implement vesting contract checks for operator reward compounding and redemption
* Add tauri operation to compound and redeem for locked and unlocked tokens
* Remove rewards from delegations context
* Claim and compound rewards for rewards context
* Delegations modal handles multiple transactions and can show the vested token balance (when present)
* Integrate changes to reward and delegation contexts
* Remove unused files
* Fix eslint errors
* Regenerate types
* Add tauri operation to undelegate using the mixnet and vesting contracts for a mixnode, producing two txs
* Fix up undelegation for mixed mixnet and vesting contract delegations
* Changelog grooming
* Update changelog
* feat(wallet): style changes to match new design
* fix(wallet): style
* feat(wallet): remove useless color
* feat(wallet): some style changes
in balance page, show entire address
set a small size to avatar account
set vertical alignment to start for page cards
* feat(wallet): fix padding
* Delegation UI:
Update QA vars
fmt
re-map coin type for qa
add correct bech32 address as the network-explorer-api was complaining
clean up
fmt
Delegation components
Show delegation story on paper
Remove actions header from delegations list
Add copy to clipboard for delegation list node ids
Move tooltip
Modals
Extract modal styles
Fix exports
Rewards summary and redeem modal
Factor out simple modal
Delegations actions modals: delegate, delegate more, undelegate
Coin mark and move logo stories
Rust types
React components handle currency
Form field to enter and display an Identity Key
Fix up build order
Update README
Flat buttons
End adornment
Currency form field
Add more props
Export components
Add currency and mixnode fields
Group stories into folders and add flow
Change exports from shared packages to stop webpack bundling issues
Fix logo import
Add mock for tauri api in storybook that shows a console error for operations that are not mocked
Delegations views and routes for wallet
Delegations list show pending delegations and undelegations
wip - delegations page status
Add typescript type checking to storybook webpack config and more mocks for tauri
Add more interstitial states and confirmation modals
Copy change
Move config to inside source tree
Fix up `Console` typings
Add wrapper around Tauri `invoke` that logs operations in development mode
wip
wip
wip
ts-rs: remove old files
ts-rs: update paths to `ts-packages/types`
ts-rs: remove old files
ts-rs: export new types to `ts-packages/types`
Add `MajorCurrencyAmount` to convert to and from TS types for various backend currency types
New crate `nym-types` to provide types for frontend apps (wallet, explorer, etc)
wip
update type imports and fix some lint errors
update packages
update type imports
update type imports
update type imports
update type imports
start pulling out use of minorMajor and majorMinor
update type imports
update import
Add missing types generated by ts-rs
fix types
Adding denom to account
type updates
Handle micro currency denoms
Fix type conversion mistake
Add clean target
eslint: formatting
Update React currency components to use `MajorCurrencyAmount`
Add separators and extra props to currency components
replace currency mapper with denom returning from service
Adjust type while generation is broken
start integrating new CurrencyFormField component
update balance and vesting on client change (not only client address)
Fix up conversion from cosmwasm coin to major currency for minor denoms
Fix up typings and validations to remove more `Coin` usage
fix conflict
fix delegations form
start fixing validation
type update
remove console log
tidy up
remove more unused types
remove more unused types
Fix `Coin` denom to be `minor`
Fix up to minor_cosmos_coin
Fix up send
Remove `Coin` type
Fix up exported types
start delegation UI
more UI work
close actions modal on action select
update label
fix old delegateion form
minor updates
undo change to currency in stringD
Fix up types
Add feature flag for generating typescript
Generate types behind feature flag
Use custom cli tool to export `ts-rs` types
`ts-rs-cli` moves files into place and fix up `Makefile`
Update generations target
Add missing types for generation
Generate typescript types
reorder imports
use make generate-typescript for new types + type import updates
update types
Add delegate with everything
Add get block to nymd client
More conversions
Get a big list of delegations with lots of stuff
Add `avg_uptime_percent`
component api updates
ui updates and fixes
Add delegation history and pending events
Fix up addition
Fix up pending delegation event types
Filter pending delegation events
add history and pending events
set total delegations
rebase
fix breaking type change on delegate page
Fix mixnode mapping
Add back refresh and set periodic refresh
upgrade to react router 6
Add logging
Export new types for gas and transactions
increase container size!
add sendtx type
update onOK to return MAjorCurrencyAmount
align table items
display dash if amount not availble
work on delegate and undelegate
Make serializable
More types
Fix up errors
align item icon
type updates
Add operation to get all pending delegation/undelegation events
Fix up logging
Add more logging
Fix undelegate error
get pending delegation events
remove unused import
* Fix rebase errors
* Integrate fees changes:
- make operations available as requests (typed with any for now, needs changing)
- move `FeeDetails` to `common/types`
- mock `getGasFee()`
* get wallet balance after transactions
* fix duplicate key
* use token pool selector
* update wording
* Created nymd internal coin
* spell delegations correctly!
* Additional From implementations plus a constructor
* try_add
* Changed client API to use the new coin type
* CoinConverter trait
* Made wallet compilable with the recent changes
* Simplified the API by removing the generics in favour of explicit Coin type
* Fixed validator api
* integrate modal divider with modal component
* handle undelegation of locked tokens
* only return events table if there are events
* Fixed up tests and clippy
* Refactored missed coin-generic API methods
* changelog
* refresh on network or client details change
* Bunch of temporary workaround to have wallet working-ish
* Add claim and compound wallet endpoints, proc_macro to generate execute and simulate
* CHANGELOG
* Sort CHANGELOG lines
* PR comments
* allow sorting of pending events
* fix lint errors
* handle page overflow
* handle reedem and vesting redeem requests
* set up compound rewards
* refresh locked tokens on page load
* remove old delegations pages + remove settings modal + update network explorer url
* update validation for hostname (prevent leading spaces)
* add compound success case
* display est fee until new simulations are used
* fix up coin validation
* tommy fixes
* Show app version at bottom of nav
* Show admin page when account matches account id from `.env` file `ADMIN_ADDRESS` map. Value is fetch from GH Actions secrets at build time.
* Update change log
Co-authored-by: tommy <tommyvez@protonmail.com>
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Co-authored-by: durch <durch@users.noreply.github.com>
* Replace client address with service address
* Copy over the server parts of the statistics server
* Separate API in module
* Rename struct
* Add insertion endpoint
* Remove unused code from network requester
* Box big rocket error
* Remove the feature-specific code
* Construct http req
* Clippy + Cargo.lock update
* Re-added needed sqlx feature
* Wrap http req in ordered msg
* Add http headers
* Move common api functionality into the separate crate
* Make stats server address configurable, especially for testing
* Update changelog
* Fix clippy
* Help command update
* mixnode: add graceful notification to most tasks
* Add note about remaining work
* task/shutdown: add shutdown timer
* changelog: add entry for shutdown
* mixnode: revert some temp changes
* common/task: make sure to use latest tokio
* 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
* Removed Add/Sub that somehow got brought back in a merge
* Created 'get_old_and_incorrect_hardcoded_fee' to make wallet as it did before
* Brought back all Operation variants just in case
* Created nymd internal coin
* Additional From implementations plus a constructor
* try_add
* Changed client API to use the new coin type
* CoinConverter trait
* Made wallet compilable with the recent changes
* Simplified the API by removing the generics in favour of explicit Coin type
* Fixed validator api
* Fixed up tests and clippy
* Refactored missed coin-generic API methods
* changelog
* Add more data to reward-estimate response
* Fix uptime integer division error
* typo
* Reify tuple response
* Fix uptime calculation
* Use lambda and sigma instead of ticked versions for delegator and operator rewards calculation
* Changelog
* Updated cosmrs
* Simpler fmt::Display for Operation
* Adjusted GasPrice parsing test due to changes in Denom FromStr impl
* Removed direct dependency on cosmrs in the wallet
* Removed TryFrom<GasPrice> for Coin as it didn't make much sense
* disgusting workaround for providing serde for fee
* NymdError improvements
* Ability to simulate "send"
* Removed needless conversions
* Changedi nterface to "normal" send to account for new fee
* Removed outdated imports in tests
* Removal of 'Operation' enum
* Implemented simulate endpoints for all other txs
* Added abci::Data field to ExecuteResult
* optional serde support for ed25519 keys
* optional serde support for x25519 keys
* actually calling dotenv at validator API startup
* Added STATE_DENOM network specific constant
* unit test fixes
* Send message from service provider to stats service
* Put some actual data in stats
* Put stats sender on its own thread and send response data too
* Use SQLite for storing stats
* Add the data interval and timestamp
* Fix clippy
* Set description at boot
* Guard stats service functionality under a feature for now
* Make stats service address data into consts
* Add README to network requester
* Retrieve sql data in interval
* Expose sql data via rocket rest api
* Add entry to changelog
* wallet: add support for validator nymd name
* changelog: add entry for wallt validator name
* rustfmt
* wallet: keep nymd_name entirely on wallet side
* wallet: lint fixes
* adding delegators number info on mixnode details
* add PM, Delegators and Avg. Uptime fields to the node list hardcoded
* make delegations number dynamic
* fixing bg color bug
* wip node info statistics
* adding basic tooltip new section and some ui
* tooltip customisation
* progress bar styles
* remove not used import
* fix info icons color
* remove discord icon
* Economic dynamics stats endpoint on the explorer API with dummy fixture data
* fetching economic-dynamics-stats
* Populating the endpoint with real data aggregated from validator api
* Introduced new cache functionalities
* using explorer-api data
* adding marging profit
* adding average update
* Update network-explorer.yml
* adding more info on mix nodes page
* display only part of wallet and node id
* typo
* remove log
* adding new values on node response and fix a typo
* remove delegators number column
* Endpoints for average mixnode uptime
* remove TODO
* Clippy
* some ui fixes for percentage linear progress
* GitHub Actions: build storybook for the Network Explorer and add to notification
* Fix file extension to `.ts`
* Fix up formatting and types
* Add storybook
* Add story for mix node details economics
* Fix unused warning
* adding percentage symbol on uptime in mix nodes
* Change eslint config
* some refactor
* progress bar story
* wip refactoring
* more refactor
* adding empty state to the story
* change default values for empty state
* refactor naming and progress bar contrast
* adding hardcoded selection chance and update the storybook
* adding selection chance stories
* adding the progress bar back
* tooltip button padding fix
* Endpoints for average mixnode uptime
* Fix unused warning
* Rustfmt
* moking selection chance response and new colors
* remove log
* fix camelCases issue
* remove hardcoded code
* remove avg_uptime at mixnodes table
* Add jsonchema to uptimeresponse struct
- add the route for avg_uptimes
* adding space between words
* update selection chance colours
* adding the 2 missing tooltips
* fix up uptimeresponse
* fix duplicate entry
* fmt
* validator-client: use statement
* explorer: PR requests
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Co-authored-by: Fouad <fmtabbara@hotmail.co.uk>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
Co-authored-by: tommy <tommyvez@protonmail.com>
* workflow: add wallet rust ci job
* workflow: remove not used matrix file
* workflow: add wallet rust part to nightly build
* workflow: add nym-wallet to step names
* workflow: tweak wallet names
* workflow: run on ubuntu-latest
* workflow: skip sccache
* workflow: tweak name
* workflow: switch back to self-hosted tag
* Bumped up version numbers to 1.0.1
* Updated changelog attempting to use new format
* Bumped up wallet version number
* Updated changelog attempting to use new format
* Updated tauri version
* Broadcast tx in a sync mode and poll for its inclusion
* Adjusted internal type used in TauriTxResult
* Re-exported MsgSend
* Increased polling rate + removed print
* Fix gateway test wallet address
Since we're switching to mainnet as default, use the correct wallet
address format.
* Fix other test with prefix problems
* Passing proxy value when attempting to compound delegator reward
* Do not attempt to delegate reward to mixnode if its zero
* Additional guards against sending 0 tokens
* Removed sign of sloppiness
* Fixes to rewards and delegation events storage
* Remove block count check, epoch cannot be advanced while in progress
* Add reward compound ops to vesting contract
* Migration to remove 0 value delegationns
Co-authored-by: durch <durch@users.noreply.github.com>
* Utility for parsing Vec<ProtoCoin>
* Support for different types of vesting accounts
* Derived Debug for Account
* Exposed method for querying for account details
* Renamed ibid. to a more appropriate name
* 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>
* Cosmwasm beta6 => beta8 upgrade
* Introducing additional unique index constraint on sphinx key
* Unit test for checking for duplicate sphinx key
* Fixed other unit tests due to changed constraint
* Work in progress NIDKG
* Encryption of multiple shares
* Extracted baby-step giant-step lookup table as a separate entity
* Proof of discrete log
* Adjusted discrete log domainn
* Producing proof of log during keygen
* Zeroize for epoch
* Proof of secret sharing
* empty main for compiler appeasement
* Construction of proof of chunking
* Initial untested verification of proof of chunking
* Converted chunk responses from Scalar to u64
* Additional tests for proof of chunking
* Minor cleanup and reorganisation
* Fixed enc/dec to use f0
* Deriving node coverage of required tree nodes
* Finally seemingnly working encryption under nonzero epoch
* Branch park
* Decryption key updates to specified epochs
* Ciphertext integrity checks
* Progress in integration tests
* Fixed ciphertext combining and integration test
* Dealing type and simplification of the integration test
* Benchmark for creation of baby-step-giant-step lookup table
* Initial import cleanup + broken 2nd integration test
* Using correct assertions in the integration test (and correctly combining shares)
* Removed unused modules
* Changed proof of sharing to allow for node indices being different from [1,2,...n]
* Reorganised bte module
* Benchmark for g2 precomputation
* Created more strongly typed Epoch type
which is essentially a Tau such that it is a leaf node
* Extending tau with a temporary oracle output
* Using random oracle for tau extension
* More benchmarks!
* encryption-related benchmarks
* Serialization of PublicKeyWithProof
* Typos
* Removed any changes made in validator-api or smart contracts
* Made the integration test slightly more concise
* Further purge of unused modules
* Fixed combining share to use lagrangian interpolation
* Recovery of verification keys from the dealings
* Verification key verification + extended integration tests
* Fixed Tau not being included in digest for producing Tau_h
* Tau serialization
* Serialization of a BTE Node
* Serialization of DecryptionKey
* Serialization of PublicCoefficients
* Utility method for setting constant coefficient of a polynomial
* Serialization of Ciphertexts
* Serialization of Proof of Secret Sharing
* Serialization of Proof of Chunking
* Serialization of Dealing
* Adjusted capacity of responses_r in proof of chunking
* Made notation more consistent with the paper equivalents
* Optional arguments for creating/verifying resharing dealings
* Have reward set updater run its own timer (#1200)
* Have reward set updater run its own timer
* Filter rocket log spam
* Take last day of uptime for rewarding (#1202)
* Take last day of uptime for rewarding
* Rejigger calculations
* Blacklist based on last 24 hr
* Cleanup
* Clippy
* Additional, more informative routes
* Improve blacklist updates
* Fix rewards estimation
* wallet: support multiple accounts per encrypted login
Rework wallet storage to allow grouping accounts under a single
encrypted entry, in a way that is backwards compatible.
* wallet: remove commented out lines
* Economic dynamics stats endpoint on the explorer API with dummy fixture data
* Populating the endpoint with real data aggregated from validator api
* Introduced new cache functionalities
* new password flow
* update global error and load state from children
* fix linting
* dont load account when creating mnemonic
* wallets: provide placeholder functions for ui password
* wallet: platform_constants
* wallet: swap println to log
* UI for existing mnemonic to be use
* wallet: inline encryption of wallet file
* wallet: tweak error enum names
* wallet: general wallet_storage tidy
* wallet: tweak some type names
* create sign-in context
* update sign in functions
* move state to context
* update pages
* connect new rust methods with frontend
* update components
* remove non-existent method
* add separate sign in pages for mnemonic and password
* add a hook for clipboard copy
* fix workmark svg sizing issue
* create step component
* use new sign in pages
* reorder pages
* use clipboard lib directly
* ui tweaks
* use login type selector
* update password strength test + use autofocus prop for password input
* start adding routes
* restructure with routes
* wip
* more wip
* more wip
* reset state where required
* minor flow updates
* validate version (any valid semver version)
* reset error on page move
* flow tweaks
* content update
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* new password flow
* update global error and load state from children
* fix linting
* dont load account when creating mnemonic
* wallets: provide placeholder functions for ui password
* wallet: platform_constants
* wallet: swap println to log
* UI for existing mnemonic to be use
* wallet: inline encryption of wallet file
* wallet: tweak error enum names
* wallet: general wallet_storage tidy
* wallet: tweak some type names
* create sign-in context
* update sign in functions
* move state to context
* update pages
* connect new rust methods with frontend
* update components
* remove non-existent method
* add separate sign in pages for mnemonic and password
* add a hook for clipboard copy
* fix workmark svg sizing issue
* create step component
* use new sign in pages
* reorder pages
* use clipboard lib directly
* ui tweaks
* use login type selector
* update password strength test + use autofocus prop for password input
* start adding routes
* restructure with routes
* wip
* more wip
* more wip
* reset state where required
* wallet: remove unused rust use statements
* fix unbond page
Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Co-authored-by: Tommy Verrall <tommyvez@protonmail.com>
* Type safe bounds
* Debug get_all_delegations
* List raw delegations
* query all delegation values
* Get all keys and values
* Differentiate on len
* Clean up duplicates
* Remove stop gap
* Cleanup, fix paged query key
* Reduce queries required to get all delegations
* Sandbox migration
* Delete migration
* 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
* Add QueryPendingDelegationEvents QueryMsg
* Add pending_delegation_events to nymd client
* Add pending delegation events to wallet
* Get rid of double epoch accounting
* Fix reward saving
* Try batching operations to reduce fees
* Bundle all transactions into one
* make nice
* Change accumulated reward to Option, migrate delegations
* Remove interval from the validator cache
* Add info to db errors
* Remove interval fetch from the contract
* Rework epochs
* Fix undelegation errors
* Emit error event instead of error
* make no-clippy
* Fix clippy lints
* add pedersen.rs and first alias type
* replace ciphertexts in BlindSignRequest by commitments and adapt try_from
* update BlindSignRequest.to_byte_vec
* add TODO to issuance.rs
* [WIP] update CmCs proof to use commitments
* complete ProofCmCs construct implementation
* [WIP] ProofCmCs verify
* complete ProofCmCs verify implementation
* complete ProofCmCs to_bytes implementation
* complete ProofCmCs from_bytes implementation
* WIP update ProofCmCs roundtrip tests
* WIP update prepare_blind_sign
* update prepare_blind_sign
* WIP update blind_sign
* update blind_sign
* update BlindedSignature and try_from
* update BlindedSignature unblind
* update BlindedSignature to_bytes
* move elgamal encrypto to elgamal and manage imports
* add verification keys for g1 method
* upadate tests to work with Pedersen commitments
* unused remove pedersen.rs
* update error message
* fix proof_cm_cs_bytes_roundtrip test
* Move generation of commitment openings into prepare blind signature function
* Edits
* Extende the verification key; remove validator's secret key from the unblind function
* Update the unblind function throughout the whole nymcoconut repo
* Fix broken tests
* Run cargo clippy and fmt
* Add benchmark measurements
* Add more detailed printouts
* Change byte printout
* Update benchmarks
* add public attributes as part of the commitment
* update bytes order comment for ProofCmCs
* check proof_cm_cs_bytes_roundtrip test and remove TODO
* remove irrelevant prints in blind signature tests
* remove inappropriate function to get betas_g1
* remove irrelevant prints in verification
* Remove print statement and add additional checks on the verification key
* Run clippy
* Fix coconut call in validator-api
* Update dependend packages
* Update the input to the obtain partial credential function
* Fix the verification key bytes calculation
* Run cargo fmt on keygen.rs
* Run cargo fmt for validator-api
* Run cargo fmt for credentials
* Replace concat with chain
* Remove unneccessary mut
* Run cargo fmt
* fix type conversion
Co-authored-by: aniampio <anna.piotrowska.15@ucl.ac.uk>
* Use shared ts-packages in wallet
* Add eslint rules
* Formatting: run eslint --fix on all files
* Formatting: fix linting errors for dependencies
* linting fixes
* fix sign in pages
* fix breaking change
* fix ts errors
fix ts and es errors
* Fix up typings for image and json modules
Add tsconfig for eslint to process webpack config
* Use shared webpack config
* Use shared logo component
* Remove unused images
* Allow html path to be passed as an argument in shared webpack config
* Fix up webpack config for html template
* Build shared ts-packages before starting dev mode
* Fix webpack config
* use shared logo component
Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk>
Co-authored-by: mmsinclair <mmsinclair@users.noreply.github.com>
* Use new eslint rules and apply fixes. Use new logo component and shared theme + webpack config.
* Add shared component to display a copy icon and copy to clipboard with confirmation state
* Organise imports
* Add copy mixnode identity key to list of mixnodes and detail view
* Update nvm node version to 16
* Update GitHub Actions for Network Explorer to use yarn and yarn workspaces
* Switch favicon for smaller N icon
* Update README
* Add error boundary
@@ -34,8 +35,8 @@ Notifications are run by adding the snippet above to a GitHub Action, and:
1. Installing node packages needed at run time
2. Set the env vars as required:
-`NYM_NOTIFICATION_KIND` matches the directory in `.github/workflows/support-files/${NYM_NOTIFICATION_KIND}` to provide the templates and extra scripting in `index.js`
-Keybase credentials, channel and other env vars for the status of the build and repo
3. Replacing the default entry point shell script on the `keybaseio/client:stable-node` docker image to run `.github/workflows/support-files/notifications/entry_point.sh`
-Matrix credentials, room and other env vars for the status of the build and repo
3. Replacing the default entry point shell script on the `keybaseio/client:stable-node` docker image to run `.github/workflows/support-files/notifications/entry_point.sh`
### Running locally
@@ -43,7 +44,7 @@ You will need:
- Node 16 LTS
- npm
Copy `.github/workflows/support-files/.env.example` to `.github/workflows/support-files/.env` and valid Keybase credentials.
Copy `.github/workflows/support-files/.env.example` to `.github/workflows/support-files/.env` and valid Matrix credentials.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.