⋰·⋰ Feeless is a Nano cryptocurrency node, wallet, tools, and Rust crate.

Overview

⋰·⋰ Feeless

What is Feeless?

Feeless is a Nano cryptocurrency node, wallet, tools, and Rust crate. This is not the official project for Nano, only an implementation written in Rust. The official Nano node implementation lives here.

This is a work in progress. It's not ready to use as a real node!

I decided to start this project as a personal adventure of understanding Nano. I give no promises about my future motivation to complete this project 🤐 .

What is Nano?

Nano is digital money that significantly improves on Bitcoin and other cryptocurrencies.

The main features of Nano are:

  • No transaction fees.

  • Extremely fast to send money--less than 1 second for 100% confirmation.

    Bitcoin takes 10 minutes on average for ~80%1 confirmation. Nano is more asynchronous than Bitcoin--individual transactions are voted on separately from the rest of the network.
  • Highly decentralized.

    Using the Nakamoto coefficient measurement, it is more decentralized than Bitcoin2 3.

  • No inflation.

  • Green--Massively less energy use than Bitcoin.

For more information on what Nano is, see the Nano documentation: https://docs.nano.org/what-is-nano/overview/

Nano is also known as: Nano cryptocurrency, Nano coin, RaiBlocks.

1. The Bitcoin white paper, under section 11 "Calculations" explains there's a ~80% chance for an attacker with 10% mining power to overtake the longest chain. https://bitcoin.org/bitcoin.pdf 2. Measuring Decentralization in Bitcoin and Ethereum using Multiple Metrics and Granularities https://arxiv.org/pdf/2101.10699.pdf 3. List of representative nodes showing a Nakamoto coefficient of 8 at the time of writing (2021-02) https://nanocharts.info/

Working Features

  • Can be used as a crate. No examples or documentation yet. The source code is fairly straightforward if you want to take a look.
  • feeless pcap [file.pcapng] can dump a capture file and dissect the packets. There are additional arguments you can see with --help. To do this as successfully as possible, capture with Wireshark, set the filter to nano, File -> Export Specified Packets, make sure "Displayed" is selected.

Installation

Currently the only way to do this is to install Rust, then run cargo install feeless. This will create a file in your rust's bin directory, or to specify a location run cargo install feeless --root [install-dir].

Goals

General

  • Correctness before performance.

Rust crate

  • A complete library that a Rust developer can use to handle wallets, keys, blocks, signing, proof of work, etc.

Tools

  • A command line tool for particular actions, e.g. generating seeds, conversions between keys, addresses, etc.
  • A command line client for the official Nano RPC server.

Nano node

  • A functional Nano node with business logic from the official C++ implementation.
  • Correct rebroadcasting rules
  • Representative voting
  • Bootstrapping
  • It has to perform well enough to help the network. I don't want Nano to slow down if people start using this! 🤦‍♀️

Non-goals

  • Only support protocol v18+ (Maybe only v19+ depending on timing)
  • No UDP support
  • No user interface

Task list

A medium term task list:

  • Seeds
    • Mnemonic (word list) seed generation/parsing (BIP39)
    • Derive keys from mnemonic (BIP33)
    • Hex seeds
  • Keys (ed25519/blake2b)
    • Private keys
    • Public keys
    • Nano addresses
      • Validation
      • Parsing
      • Conversion to/from public keys
  • Nano amount conversions
    • raw
    • nano
    • Mnano/NANO
  • Proof of work (core)
    • Verification against a threshold
    • Generation
    • Dynamic threshold
  • Blocks
    • Hashing
    • Work
    • State blocks
    • <v18 blocks?
  • Packet dissector
    • Parse pcap file
    • Dump some message types to console
    • Mark this done when all packets are decoded successfully (see below)
  • Node
    • Configuration
      • Initial command line interface
      • Network
      • Database
      • ...
    • Networks
      • Live (Don't worry, I'm only connecting to my own node at the moment!)
      • Test
      • Beta
    • Bootstrap peer connection (peering.nano.org)
    • Validate given peer network
    • Validate given peer versions
    • Multiple peer connectivity (currently only connects to one peer)
      • Configurable maximum peer limit
    • Header parsing
      • Network
      • Versions
      • Extensions
        • Handshake query/response flags
        • Count
        • Block type
        • Telemetry size
        • Extended params present
    • Logic
      • Rebroadcasting
      • Representatives
      • Publish retries (difficulty changes)
      • Respond to telemetry request
      • ...
    • Messages
      • Node ID Handshake
        • Serialize (TODO: needs small refactor)
        • Deserialize
        • Send cookie
        • Cookie/peer store and logic
        • Validate response
        • Validate signature
      • Confirm Req
        • Serialize
        • Deserialize
          • Hash pairs
          • Block selector
        • Handle response
      • Confirm Ack
        • Serialize
        • Deserialize
          • Vote by hash
          • Block
        • Validate signature
      • Keepalive
        • Serialize
        • Deserialize
      • Publish
        • Serialize
        • Deserialize
          • State blocks
          • Other blocks
      • Bulk pull
      • Bulk pull account
      • Bulk pull blocks
      • Bulk push
      • Telemetry Req
        • Serialize
        • Deserialize
      • Telemetry Ack
        • Serialize
        • Deserialize
          • Most fields
          • Timestamp
          • Active difficulty
        • Validate signature
      • Frontier Req
        • Serialize
        • Deserialize
    • Storage
      • Basic KV store to file
      • Basic cookie/peer storage
      • Peers
      • Blocks
      • ...
    • RPC
  • Rust
    • Ask around for a code review
    • Use either zerocopy or make all core types zero-copy with storing [u8] and methods as accessors. zerocopy did work for most things when I tried but had problems with enums. Might revisit.
    • Use thiserror instead of anyhow in certain places.
    • Github actions CI (including cargo clippy)
  • Future things
    • Fast bootstrapping related to the user's wallet
    • Performance
      • Automated comparison
    • Proof of work
      • Server
      • GPU
    • WASM

Credits and references

Other implementations

License

Licensed under either of these at your option:

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Comments
  • Created CI Environment Base

    Created CI Environment Base

    Currently only unit test is running but in the future, it can incorporate static analysis, integration test etc.

    The main focus of the environment setup are

    • Maximize portability across all platforms (Windows / OSX / Linux), only using Python3
    • CI technology agnostic (treating Github Actions as a simple entrypoint, steps graph and machine resource). This means each steps in CI runs in the exact same container environment, either locally or in Github Actions
    opened by fsw0422 6
  • Vanity address tool

    Vanity address tool

    Generate a phrase, seed or private key to product a Nano address that matches some sort of criteria.

    For example, I might want to have an address that starts with nano_1gakman.

    Could use ANSI to show the status on the same line, or just print a new line for each status update. The status updates should be put into standard error, so that standard output should only contain the result, e.g. a phrase or a private key.

    > feeless vanity phrase 1gak
    Generating random phrases to look for 1gak
    5,000 phrases generated
    10,000 phrases generated
    Found!
    logic unlock retreat water shell outdoor dress spatial wood proud push salute produce pipe mammal tail powder print flower fashi
    on stove agent dwarf organ
    

    An option might allow a regular expression, and maybe just --ending-with.

    I think the positional argument should just be an optional "starting with", but also have the option to be consistent.

    --starting-with [text] also default positional argument
    --ending-with [text]
    --re [text]
    

    This would also need to make sure the text entered must match the possible characters in a Nano address.

    Multiple CPU threads would be ideal, along with letting the user choose how many threads or use all CPU threads by default.

    • [x] feeless vanity command
    • [x] Default positional argument for --starting-with
    • [x] --ending-with
    • [x] --re
    • [x] stderr status/progress
    • [x] Final result for
      • [x] Phrase
        • [x] Must support same arguments as feeless phrase new, i.e. language and words
      • [x] Seed
      • [x] Private key
    • [x] --threads
    • [x] Default threads based on CPU logical processors
    enhancement 
    opened by gak 3
  • Bump once_cell from 1.7.2 to 1.16.0

    Bump once_cell from 1.7.2 to 1.16.0

    Bumps once_cell from 1.7.2 to 1.16.0.

    Changelog

    Sourced from once_cell's changelog.

    1.16.0

    • Add no_std implementation based on critical-section, #195.
    • Deprecate atomic-polyfill feature (use the new critical-section instead)

    1.15.0

    • Increase minimal supported Rust version to 1.56.0.
    • Implement UnwindSafe even if the std feature is disabled.

    1.14.0

    • Add extension to unsync and sync Lazy mut API:
      • force_mut
      • get_mut

    1.13.1

    • Make implementation compliant with strict provenance.
    • Upgrade atomic-polyfill to 1.0

    1.13.0

    • Add Lazy::get, similar to OnceCell::get.

    1.12.1

    • Remove incorrect debug_assert.

    1.12.0

    • Add OnceCell::wait, a blocking variant of get.

    1.11.0

    • Add OnceCell::with_value to create initialized OnceCell in const context.
    • Improve Clone implementation for OnceCell.
    • Rewrite parking_lot version on top of parking_lot_core, for even smaller cells!

    1.10.0

    • upgrade parking_lot to 0.12.0 (note that this bumps MSRV with parking_lot feature enabled to 1.49.0).

    1.9.0

    • Added an atomic-polyfill optional dependency to compile race on platforms without atomics

    1.8.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump anyhow from 1.0.40 to 1.0.66

    Bump anyhow from 1.0.40 to 1.0.66

    Bumps anyhow from 1.0.40 to 1.0.66.

    Release notes

    Sourced from anyhow's releases.

    1.0.66

    • Reduce unhelpful backtrace frames in backtraces captured during a context call (#279)

    1.0.65

    • impl Provider for anyhow::Error

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    1.0.62

    • Fix extra rebuilding when interleaving command-line cargo invocations with IDE builds (#261)

    1.0.61

    • Work around rust-analyzer builds poisoning all subsequent command-line cargo builds (#252)

    1.0.60

    • Propagate --target to rustc invocation when deciding about backtrace support (#249, thanks @​RalfJung)

    1.0.59

    • Update crates.io metadata to include no-std category

    1.0.58

    • Fix some broken links in documentation

    1.0.57

    • Remove a log4rs-specific workaround from bail! macro implementation

    1.0.56

    • Add must_use warning when an Error created by anyhow! is not used, perhaps because the programmer meant to write bail! instead (#229)

    1.0.55

    • Documentation improvements

    1.0.54

    • Construct more helpful error message from ensure! when the expression involves a negative literal const generic as the first generic argument of a method call (#224)

    1.0.53

    1.0.52

    • Reduce overhead of backtrace capture in the case that backtraces are not enabled (#212)

    1.0.51

    • Show doc for Ok fn

    1.0.50

    ... (truncated)

    Commits
    • 8de29aa Release 1.0.66
    • 54fc812 Merge pull request #279 from dtolnay/contextbacktrace
    • 131249b Remove 2 frames of noise from 'context' backtraces
    • f2123ab Ui test changes for trybuild 1.0.66
    • 9bd74a1 Restore pre-nightly-2022-10-05 behavior of test_path PhantomData tests
    • 77c4fa4 Update test suite to nightly-2022-10-05
    • 7b171d6 Ignore bool_to_int_with_if clippy lint in test suite
    • 94ae34b Raise minimum tested toolchain to rust 1.56
    • 94f6f4d Remove default package.readme metadata from Cargo.toml
    • 4de2068 Release 1.0.65
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump once_cell from 1.7.2 to 1.15.0

    Bump once_cell from 1.7.2 to 1.15.0

    Bumps once_cell from 1.7.2 to 1.15.0.

    Changelog

    Sourced from once_cell's changelog.

    1.15.0

    • Increase minimal supported Rust version to 1.56.0.
    • Implement UnwindSafe even if the std feature is disabled.

    1.14.0

    • Add extension to unsync and sync Lazy mut API:
      • force_mut
      • get_mut

    1.13.1

    • Make implementation compliant with strict provenance.
    • Upgrade atomic-polyfill to 1.0

    1.13.0

    • Add Lazy::get, similar to OnceCell::get.

    1.12.1

    • Remove incorrect debug_assert.

    1.12.0

    • Add OnceCell::wait, a blocking variant of get.

    1.11.0

    • Add OnceCell::with_value to create initialized OnceCell in const context.
    • Improve Clone implementation for OnceCell.
    • Rewrite parking_lot version on top of parking_lot_core, for even smaller cells!

    1.10.0

    • upgrade parking_lot to 0.12.0 (note that this bumps MSRV with parking_lot feature enabled to 1.49.0).

    1.9.0

    • Added an atomic-polyfill optional dependency to compile race on platforms without atomics

    1.8.0

    • Add try_insert API -- a version of set that returns a reference.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump anyhow from 1.0.40 to 1.0.65

    Bump anyhow from 1.0.40 to 1.0.65

    Bumps anyhow from 1.0.40 to 1.0.65.

    Release notes

    Sourced from anyhow's releases.

    1.0.65

    • impl Provider for anyhow::Error

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    1.0.62

    • Fix extra rebuilding when interleaving command-line cargo invocations with IDE builds (#261)

    1.0.61

    • Work around rust-analyzer builds poisoning all subsequent command-line cargo builds (#252)

    1.0.60

    • Propagate --target to rustc invocation when deciding about backtrace support (#249, thanks @​RalfJung)

    1.0.59

    • Update crates.io metadata to include no-std category

    1.0.58

    • Fix some broken links in documentation

    1.0.57

    • Remove a log4rs-specific workaround from bail! macro implementation

    1.0.56

    • Add must_use warning when an Error created by anyhow! is not used, perhaps because the programmer meant to write bail! instead (#229)

    1.0.55

    • Documentation improvements

    1.0.54

    • Construct more helpful error message from ensure! when the expression involves a negative literal const generic as the first generic argument of a method call (#224)

    1.0.53

    1.0.52

    • Reduce overhead of backtrace capture in the case that backtraces are not enabled (#212)

    1.0.51

    • Show doc for Ok fn

    1.0.50

    1.0.49

    • Add a function anyhow::Ok(v) equivalent to Ok::<_, anyhow::Error>(v) (#192)

    ... (truncated)

    Commits
    • 4de2068 Release 1.0.65
    • 07acdac Merge pull request #271 from dtolnay/provider
    • ee49ec0 Add impl Provider in build.rs probe
    • b7448d3 impl std::any::Provider for anyhow::Error
    • 916e22b Release 1.0.64
    • 480e480 Merge pull request #268 from dtolnay/provide
    • b30f5c5 Include outer backtrace when called as source.provide
    • 4b8df91 GitHub Workflows security hardening
    • 007c69c Merge pull request #267 from dtolnay/demand
    • 1b298fe Rename &mut Demand arguments to 'demand'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump anyhow from 1.0.40 to 1.0.64

    Bump anyhow from 1.0.40 to 1.0.64

    Bumps anyhow from 1.0.40 to 1.0.64.

    Release notes

    Sourced from anyhow's releases.

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    1.0.62

    • Fix extra rebuilding when interleaving command-line cargo invocations with IDE builds (#261)

    1.0.61

    • Work around rust-analyzer builds poisoning all subsequent command-line cargo builds (#252)

    1.0.60

    • Propagate --target to rustc invocation when deciding about backtrace support (#249, thanks @​RalfJung)

    1.0.59

    • Update crates.io metadata to include no-std category

    1.0.58

    • Fix some broken links in documentation

    1.0.57

    • Remove a log4rs-specific workaround from bail! macro implementation

    1.0.56

    • Add must_use warning when an Error created by anyhow! is not used, perhaps because the programmer meant to write bail! instead (#229)

    1.0.55

    • Documentation improvements

    1.0.54

    • Construct more helpful error message from ensure! when the expression involves a negative literal const generic as the first generic argument of a method call (#224)

    1.0.53

    1.0.52

    • Reduce overhead of backtrace capture in the case that backtraces are not enabled (#212)

    1.0.51

    • Show doc for Ok fn

    1.0.50

    1.0.49

    • Add a function anyhow::Ok(v) equivalent to Ok::<_, anyhow::Error>(v) (#192)

    1.0.48

    ... (truncated)

    Commits
    • 916e22b Release 1.0.64
    • 480e480 Merge pull request #268 from dtolnay/provide
    • b30f5c5 Include outer backtrace when called as source.provide
    • 4b8df91 GitHub Workflows security hardening
    • 007c69c Merge pull request #267 from dtolnay/demand
    • 1b298fe Rename &mut Demand arguments to 'demand'
    • 2c8f71b Revert "Disable backtrace test until converted to provider API"
    • 036c5f8 Release 1.0.63
    • 546342c Merge pull request #266 from dtolnay/provider
    • 46d3d2c Use backtrace via generic member access
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump once_cell from 1.7.2 to 1.14.0

    Bump once_cell from 1.7.2 to 1.14.0

    Bumps once_cell from 1.7.2 to 1.14.0.

    Changelog

    Sourced from once_cell's changelog.

    1.14.0

    • Add extension to unsync and sync Lazy mut API:
      • force_mut
      • get_mut

    1.13.1

    • Make implementation compliant with strict provenance.
    • Upgrade atomic-polyfill to 1.0

    1.13.0

    • Add Lazy::get, similar to OnceCell::get.

    1.12.1

    • Remove incorrect debug_assert.

    1.12.0

    • Add OnceCell::wait, a blocking variant of get.

    1.11.0

    • Add OnceCell::with_value to create initialized OnceCell in const context.
    • Improve Clone implementation for OnceCell.
    • Rewrite parking_lot version on top of parking_lot_core, for even smaller cells!

    1.10.0

    • upgrade parking_lot to 0.12.0 (note that this bumps MSRV with parking_lot feature enabled to 1.49.0).

    1.9.0

    • Added an atomic-polyfill optional dependency to compile race on platforms without atomics

    1.8.0

    • Add try_insert API -- a version of set that returns a reference.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump anyhow from 1.0.40 to 1.0.63

    Bump anyhow from 1.0.40 to 1.0.63

    Bumps anyhow from 1.0.40 to 1.0.63.

    Release notes

    Sourced from anyhow's releases.

    1.0.63

    1.0.62

    • Fix extra rebuilding when interleaving command-line cargo invocations with IDE builds (#261)

    1.0.61

    • Work around rust-analyzer builds poisoning all subsequent command-line cargo builds (#252)

    1.0.60

    • Propagate --target to rustc invocation when deciding about backtrace support (#249, thanks @​RalfJung)

    1.0.59

    • Update crates.io metadata to include no-std category

    1.0.58

    • Fix some broken links in documentation

    1.0.57

    • Remove a log4rs-specific workaround from bail! macro implementation

    1.0.56

    • Add must_use warning when an Error created by anyhow! is not used, perhaps because the programmer meant to write bail! instead (#229)

    1.0.55

    • Documentation improvements

    1.0.54

    • Construct more helpful error message from ensure! when the expression involves a negative literal const generic as the first generic argument of a method call (#224)

    1.0.53

    1.0.52

    • Reduce overhead of backtrace capture in the case that backtraces are not enabled (#212)

    1.0.51

    • Show doc for Ok fn

    1.0.50

    1.0.49

    • Add a function anyhow::Ok(v) equivalent to Ok::<_, anyhow::Error>(v) (#192)

    1.0.48

    ... (truncated)

    Commits
    • 036c5f8 Release 1.0.63
    • 546342c Merge pull request #266 from dtolnay/provider
    • 46d3d2c Use backtrace via generic member access
    • 9f40a1e Update ui test suite to nightly-2022-08-20
    • b73a04a Release 1.0.62
    • b916fa9 Revert "Work around RA's RUSTC_WRAPPER poisoning all subsequent command-line ...
    • b88a699 Make private module more clearly private
    • 6be2da9 Bump clippy.toml msrv to match rust-version in Cargo.toml
    • a752fd9 Resolve renamed_and_removed_lints warning on logic_bug
    • 180b96c Merge pull request #258 from dtolnay/cargopr
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump futures from 0.3.15 to 0.3.24

    Bump futures from 0.3.15 to 0.3.24

    Bumps futures from 0.3.15 to 0.3.24.

    Release notes

    Sourced from futures's releases.

    0.3.24

    • Fix incorrect termination of select_with_strategy streams (#2635)

    0.3.23

    • Work around MSRV increase due to a cargo bug.

    0.3.22

    • Fix Sync impl of BiLockGuard (#2570)
    • Fix partial iteration in FuturesUnordered (#2574)
    • Fix false detection of inner panics in Shared (#2576)
    • Add Mutex::lock_owned and Mutex::try_lock_owned (#2571)
    • Add io::copy_buf_abortable (#2507)
    • Remove Unpin bound from TryStreamExt::into_async_read (#2599)
    • Make run_until_stalled handle self-waking futures (#2593)
    • Use FuturesOrdered in try_join_all (#2556)
    • Fix orderings in LocalPool waker (#2608)
    • Fix stream::Chunk adapters size hints (#2611)
    • Add push_front and push_back to FuturesOrdered (#2591)
    • Deprecate FuturesOrdered::push in favor of FuturesOrdered::push_back (#2591)
    • Performance improvements (#2583, #2626)
    • Documentation improvements (#2579, #2604, #2613)

    0.3.21

    • Fix potential data race in FlattenUnordered that introduced in 0.3.20 (#2566)

    0.3.20

    • Fix stacked borrows violations when -Zmiri-tag-raw-pointers is enabled. This raises MSRV of futures-task to 1.45. (#2548, #2550)
    • Change FuturesUnordered to respect yielding from future (#2551)
    • Add StreamExt::{flatten_unordered, flat_map_unordered} (#2083)

    0.3.19

    • Remove unstable read-initializer feature (#2534)
    • Fix panic in FuturesUnordered (#2535)
    • Fix compatibility issue with FuturesUnordered and tokio's cooperative scheduling (#2527)
    • Add StreamExt::count (#2495)

    0.3.18

    • Fix unusable Sink implementation on stream::Scan (#2499)
    • Make task::noop_waker_ref available without std feature (#2505)
    • Add async LineWriter (#2477)
    • Remove dependency on proc-macro-hack. This raises MSRV of utility crates to 1.45. (#2520)

    0.3.17

    • Use FuturesOrdered in join_all (#2412)
    • Add {future, stream}::poll_immediate (#2452)
    • Add stream_select! macro (#2262)
    • Implement Default for OptionFuture (#2471)
    • Add Peekable::{peek_mut, poll_peek_mut} (#2488)
    • Add BufReader::seek_relative (#2489)

    ... (truncated)

    Changelog

    Sourced from futures's changelog.

    0.3.24 - 2022-08-29

    • Fix incorrect termination of select_with_strategy streams (#2635)

    0.3.23 - 2022-08-14

    • Work around MSRV increase due to a cargo bug.

    0.3.22 - 2022-08-14

    • Fix Sync impl of BiLockGuard (#2570)
    • Fix partial iteration in FuturesUnordered (#2574)
    • Fix false detection of inner panics in Shared (#2576)
    • Add Mutex::lock_owned and Mutex::try_lock_owned (#2571)
    • Add io::copy_buf_abortable (#2507)
    • Remove Unpin bound from TryStreamExt::into_async_read (#2599)
    • Make run_until_stalled handle self-waking futures (#2593)
    • Use FuturesOrdered in try_join_all (#2556)
    • Fix orderings in LocalPool waker (#2608)
    • Fix stream::Chunk adapters size hints (#2611)
    • Add push_front and push_back to FuturesOrdered (#2591)
    • Deprecate FuturesOrdered::push in favor of FuturesOrdered::push_back (#2591)
    • Performance improvements (#2583, #2626)
    • Documentation improvements (#2579, #2604, #2613)

    0.3.21 - 2022-02-06

    • Fix potential data race in FlattenUnordered that introduced in 0.3.20 (#2566)

    0.3.20 - 2022-02-06

    NOTE: This release has been yanked due to a bug fixed in 0.3.21.

    • Fix stacked borrows violations when -Zmiri-tag-raw-pointers is enabled. This raises MSRV of futures-task to 1.45. (#2548, #2550)
    • Change FuturesUnordered to respect yielding from future (#2551)
    • Add StreamExt::{flatten_unordered, flat_map_unordered} (#2083)

    0.3.19 - 2021-12-18

    • Remove unstable read-initializer feature (#2534)
    • Fix panic in FuturesUnordered (#2535)
    • Fix compatibility issue with FuturesUnordered and tokio's cooperative scheduling (#2527)
    • Add StreamExt::count (#2495)

    0.3.18 - 2021-11-23

    NOTE: This release has been yanked. See #2529 for details.

    • Fix unusable Sink implementation on stream::Scan (#2499)
    • Make task::noop_waker_ref available without std feature (#2505)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump anyhow from 1.0.40 to 1.0.62

    Bump anyhow from 1.0.40 to 1.0.62

    Bumps anyhow from 1.0.40 to 1.0.62.

    Release notes

    Sourced from anyhow's releases.

    1.0.61

    • Work around rust-analyzer builds poisoning all subsequent command-line cargo builds (#252)

    1.0.60

    • Propagate --target to rustc invocation when deciding about backtrace support (#249, thanks @​RalfJung)

    1.0.59

    • Update crates.io metadata to include no-std category

    1.0.58

    • Fix some broken links in documentation

    1.0.57

    • Remove a log4rs-specific workaround from bail! macro implementation

    1.0.56

    • Add must_use warning when an Error created by anyhow! is not used, perhaps because the programmer meant to write bail! instead (#229)

    1.0.55

    • Documentation improvements

    1.0.54

    • Construct more helpful error message from ensure! when the expression involves a negative literal const generic as the first generic argument of a method call (#224)

    1.0.53

    1.0.52

    • Reduce overhead of backtrace capture in the case that backtraces are not enabled (#212)

    1.0.51

    • Show doc for Ok fn

    1.0.50

    1.0.49

    • Add a function anyhow::Ok(v) equivalent to Ok::<_, anyhow::Error>(v) (#192)

    1.0.48

    • Include a Debug rendering of lhs and rhs in ensure! messages (#193, #194, #195, #196, #197, #198)

      Example:

      ensure!(flags.len() <= 40);
      
      ensure!(kind == Kind::File);
      

    ... (truncated)

    Commits
    • b73a04a Release 1.0.62
    • b916fa9 Revert "Work around RA's RUSTC_WRAPPER poisoning all subsequent command-line ...
    • b88a699 Make private module more clearly private
    • 6be2da9 Bump clippy.toml msrv to match rust-version in Cargo.toml
    • a752fd9 Resolve renamed_and_removed_lints warning on logic_bug
    • 180b96c Merge pull request #258 from dtolnay/cargopr
    • b3dcb92 Add link to Cargo RUSTC_WRAPPER PR
    • d2c83e2 Release 1.0.61
    • 6e6af39 Merge pull request #252 from dtolnay/rerun
    • 77317b5 Work around RA's RUSTC_WRAPPER poisoning all subsequent command-line builds
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump once_cell from 1.7.2 to 1.17.0

    Bump once_cell from 1.7.2 to 1.17.0

    Bumps once_cell from 1.7.2 to 1.17.0.

    Changelog

    Sourced from once_cell's changelog.

    1.17.0

    • Add race::OnceRef for storing a &'a T.

    1.16.0

    • Add no_std implementation based on critical-section, #195.
    • Deprecate atomic-polyfill feature (use the new critical-section instead)

    1.15.0

    • Increase minimal supported Rust version to 1.56.0.
    • Implement UnwindSafe even if the std feature is disabled.

    1.14.0

    • Add extension to unsync and sync Lazy mut API:
      • force_mut
      • get_mut

    1.13.1

    • Make implementation compliant with strict provenance.
    • Upgrade atomic-polyfill to 1.0

    1.13.0

    • Add Lazy::get, similar to OnceCell::get.

    1.12.1

    • Remove incorrect debug_assert.

    1.12.0

    • Add OnceCell::wait, a blocking variant of get.

    1.11.0

    • Add OnceCell::with_value to create initialized OnceCell in const context.
    • Improve Clone implementation for OnceCell.
    • Rewrite parking_lot version on top of parking_lot_core, for even smaller cells!

    1.10.0

    • upgrade parking_lot to 0.12.0 (note that this bumps MSRV with parking_lot feature enabled to 1.49.0).

    1.9.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump anyhow from 1.0.40 to 1.0.68

    Bump anyhow from 1.0.40 to 1.0.68

    Bumps anyhow from 1.0.40 to 1.0.68.

    Release notes

    Sourced from anyhow's releases.

    1.0.68

    • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

    1.0.67

    • Improve the backtrace captured when context() is used on an Option (#280)

    1.0.66

    • Reduce unhelpful backtrace frames in backtraces captured during a context call (#279)

    1.0.65

    • impl Provider for anyhow::Error

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    1.0.62

    • Fix extra rebuilding when interleaving command-line cargo invocations with IDE builds (#261)

    1.0.61

    • Work around rust-analyzer builds poisoning all subsequent command-line cargo builds (#252)

    1.0.60

    • Propagate --target to rustc invocation when deciding about backtrace support (#249, thanks @​RalfJung)

    1.0.59

    • Update crates.io metadata to include no-std category

    1.0.58

    • Fix some broken links in documentation

    1.0.57

    • Remove a log4rs-specific workaround from bail! macro implementation

    1.0.56

    • Add must_use warning when an Error created by anyhow! is not used, perhaps because the programmer meant to write bail! instead (#229)

    1.0.55

    • Documentation improvements

    1.0.54

    • Construct more helpful error message from ensure! when the expression involves a negative literal const generic as the first generic argument of a method call (#224)

    1.0.53

    1.0.52

    • Reduce overhead of backtrace capture in the case that backtraces are not enabled (#212)

    ... (truncated)

    Commits
    • 867763b Release 1.0.68
    • c0a87d0 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 1cc707b Release 1.0.67
    • 613b261 Update build status badge
    • 0f922d7 Disable backtrace CI on Rust 1.50
    • acecd9b Update ui test suite to nightly-2022-12-15
    • 0bac51f Time out workflows after 45 minutes
    • 60e8800 Fix renamed let_underscore_drop lint
    • 8d1c734 Update ui test suite to nightly-2022-11-16
    • 451651b Update ui test suite to nightly-2022-11-11
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump futures from 0.3.15 to 0.3.25

    Bump futures from 0.3.15 to 0.3.25

    Bumps futures from 0.3.15 to 0.3.25.

    Release notes

    Sourced from futures's releases.

    0.3.25

    • Fix soundness issue in join! and try_join! macros (#2649)
    • Implement Clone for sink::Drain (#2650)

    0.3.24

    • Fix incorrect termination of select_with_strategy streams (#2635)

    0.3.23

    • Work around MSRV increase due to a cargo bug.

    0.3.22

    • Fix Sync impl of BiLockGuard (#2570)
    • Fix partial iteration in FuturesUnordered (#2574)
    • Fix false detection of inner panics in Shared (#2576)
    • Add Mutex::lock_owned and Mutex::try_lock_owned (#2571)
    • Add io::copy_buf_abortable (#2507)
    • Remove Unpin bound from TryStreamExt::into_async_read (#2599)
    • Make run_until_stalled handle self-waking futures (#2593)
    • Use FuturesOrdered in try_join_all (#2556)
    • Fix orderings in LocalPool waker (#2608)
    • Fix stream::Chunk adapters size hints (#2611)
    • Add push_front and push_back to FuturesOrdered (#2591)
    • Deprecate FuturesOrdered::push in favor of FuturesOrdered::push_back (#2591)
    • Performance improvements (#2583, #2626)
    • Documentation improvements (#2579, #2604, #2613)

    0.3.21

    • Fix potential data race in FlattenUnordered that introduced in 0.3.20 (#2566)

    0.3.20

    • Fix stacked borrows violations when -Zmiri-tag-raw-pointers is enabled. This raises MSRV of futures-task to 1.45. (#2548, #2550)
    • Change FuturesUnordered to respect yielding from future (#2551)
    • Add StreamExt::{flatten_unordered, flat_map_unordered} (#2083)

    0.3.19

    • Remove unstable read-initializer feature (#2534)
    • Fix panic in FuturesUnordered (#2535)
    • Fix compatibility issue with FuturesUnordered and tokio's cooperative scheduling (#2527)
    • Add StreamExt::count (#2495)

    0.3.18

    • Fix unusable Sink implementation on stream::Scan (#2499)
    • Make task::noop_waker_ref available without std feature (#2505)
    • Add async LineWriter (#2477)
    • Remove dependency on proc-macro-hack. This raises MSRV of utility crates to 1.45. (#2520)

    0.3.17

    • Use FuturesOrdered in join_all (#2412)
    • Add {future, stream}::poll_immediate (#2452)
    • Add stream_select! macro (#2262)

    ... (truncated)

    Changelog

    Sourced from futures's changelog.

    0.3.25 - 2022-10-20

    • Fix soundness issue in join! and try_join! macros (#2649)
    • Implement Clone for sink::Drain (#2650)

    0.3.24 - 2022-08-29

    • Fix incorrect termination of select_with_strategy streams (#2635)

    0.3.23 - 2022-08-14

    • Work around MSRV increase due to a cargo bug.

    0.3.22 - 2022-08-14

    • Fix Sync impl of BiLockGuard (#2570)
    • Fix partial iteration in FuturesUnordered (#2574)
    • Fix false detection of inner panics in Shared (#2576)
    • Add Mutex::lock_owned and Mutex::try_lock_owned (#2571)
    • Add io::copy_buf_abortable (#2507)
    • Remove Unpin bound from TryStreamExt::into_async_read (#2599)
    • Make run_until_stalled handle self-waking futures (#2593)
    • Use FuturesOrdered in try_join_all (#2556)
    • Fix orderings in LocalPool waker (#2608)
    • Fix stream::Chunk adapters size hints (#2611)
    • Add push_front and push_back to FuturesOrdered (#2591)
    • Deprecate FuturesOrdered::push in favor of FuturesOrdered::push_back (#2591)
    • Performance improvements (#2583, #2626)
    • Documentation improvements (#2579, #2604, #2613)

    0.3.21 - 2022-02-06

    • Fix potential data race in FlattenUnordered that introduced in 0.3.20 (#2566)

    0.3.20 - 2022-02-06

    NOTE: This release has been yanked due to a bug fixed in 0.3.21.

    • Fix stacked borrows violations when -Zmiri-tag-raw-pointers is enabled. This raises MSRV of futures-task to 1.45. (#2548, #2550)
    • Change FuturesUnordered to respect yielding from future (#2551)
    • Add StreamExt::{flatten_unordered, flat_map_unordered} (#2083)

    0.3.19 - 2021-12-18

    • Remove unstable read-initializer feature (#2534)
    • Fix panic in FuturesUnordered (#2535)
    • Fix compatibility issue with FuturesUnordered and tokio's cooperative scheduling (#2527)
    • Add StreamExt::count (#2495)

    0.3.18 - 2021-11-23

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump serde_with from 1.9.1 to 1.14.0

    Bump serde_with from 1.9.1 to 1.14.0

    Bumps serde_with from 1.9.1 to 1.14.0.

    Release notes

    Sourced from serde_with's releases.

    serde_with v1.14.0

    Added

    • Add support for time crate v0.3 #450

      time::Duration can now be serialized with the DurationSeconds and related converters.

      // Rust
      #[serde_as(as = "serde_with::DurationSeconds<u64>")]
      value: Duration,
      

      // JSON "value": 86400,

      time::OffsetDateTime and time::PrimitiveDateTime can now be serialized with the TimestampSeconds and related converters.

      // Rust
      #[serde_as(as = "serde_with::TimestampMicroSecondsWithFrac<String>")]
      value: time::PrimitiveDateTime,
      

      // JSON "value": "1000000",

      time::OffsetDateTime can be serialized in string format in different well-known formats. Two formats are supported, time::format_description::well_known::Rfc2822 and time::format_description::well_known::Rfc3339.

      // Rust
      #[serde_as(as = "time::format_description::well_known::Rfc2822")]
      rfc_2822: OffsetDateTime,
      #[serde_as(as = "Vec<time::format_description::well_known::Rfc3339>")]
      rfc_3339: Vec<OffsetDateTime>,
      

      // JSON "rfc_2822": "Fri, 21 Nov 1997 09:55:06 -0600", "rfc_3339": ["1997-11-21T09:55:06-06:00"],

    • Deserialize bool from integers #456 462

      Deserialize an integer and convert it into a bool. BoolFromInt<Strict> (default) deserializes 0 to false and 1 to true, other numbers are errors. BoolFromInt<Flexible> deserializes any non-zero as true. Serialization only emits 0/1.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump cmd_lib from 1.0.13 to 1.3.0

    Bump cmd_lib from 1.0.13 to 1.3.0

    Bumps cmd_lib from 1.0.13 to 1.3.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • [DRAFT] Add bootstrap handling

    [DRAFT] Add bootstrap handling

    This adds bootstrap handling in a built-in way. I'm publishing this as a draft PR as I'm not sure this should be merged (wanted to build a dedicated module for bootstrap) but I don't want to lose track of the progress so far.

    opened by gurghet 0
Owner
null
A Bitcoin wallet collider that brute forces random wallet addresses written in Rust.

Plutus-Rustus Bitcoin Brute Forcer A Bitcoin wallet collider that brute forces random wallet addresses written in Rust. This is a straight port of Plu

null 46 Dec 23, 2022
Open source Rust implementation of the Witnet decentralized oracle protocol, including full node and wallet backend 👁️🦀

witnet-rust is an open source implementation of the Witnet Decentralized Oracle Network protocol written in Rust. Components witnet-rust implements ma

The Witnet Project 155 Nov 21, 2022
A mnemonic brute forcing tool for nano and banano.

brute a mnemonic brute forcing tool for nano and banano. What is brute? It is a mnemonic brute forcing tool which can be used to recover an account fr

null 8 Nov 30, 2022
An open source Rust high performance cryptocurrency trading API with support for multiple exchanges and language wrappers. written in rust(🦀) with ❤️

Les.rs - Rust Cryptocurrency Exchange Library An open source Rust high performance cryptocurrency trading API with support for multiple exchanges and

Crabby AI 4 Jan 9, 2023
A Rust library for generating cryptocurrency wallets

Table of Contents 1. Overview 2. Build Guide 2.1 Install Rust 2.2a Build from Homebrew 2.2b Build from Crates.io 2.2c Build from Source Code 3. Usage

Aleo 552 Dec 29, 2022
Simple node and rust script to achieve an easy to use bridge between rust and node.js

Node-Rust Bridge Simple rust and node.js script to achieve a bridge between them. Only 1 bridge can be initialized per rust program. But node.js can h

Pure 5 Apr 30, 2023
A node and runtime configuration for polkadot node.

MANTA NODE This repo is a fresh FRAME-based Substrate node, forked from substrate-developer-hub/substrate-node-templte ?? It links to pallet-manta-dap

Manta Network 14 Apr 25, 2021
Complete Ethereum and Celo wallet implementation and utilities in Rust

ethers.rs Complete Ethereum and Celo wallet implementation and utilities in Rust Documentation Extensive documentation and examples are available here

Georgios Konstantopoulos 1.5k Jan 8, 2023
Sample lightning node command-line app built on top of Ldk Node (similar to ldk-sample).

ldk-node-sample Sample lightning node command-line app built on top of Ldk Node (similar to ldk-sample ). Installation git clone https://github.com/op

optout 3 Nov 21, 2023
Automated Solana tool for quick arbitrage, customizable, with real-time data and wallet integration. Trade responsibly.

Solana Arbitrage Trading Tool The Solana Arbitrage Trading Tool is an automated solution crafted to spot and capitalize on arbitrage opportunities wit

null 43 Mar 12, 2024
🧩Creating a blockchain wallet and integrating a couple of cryptographic algorithms to securely save the secrets.🧩

Rust Library For Cryptocurrency Wallet Folder Structure src : contains the source code of the library examples : contains some examples of the library

rstkey 3 Aug 12, 2024
Core Rust-C FFI for Stackmate Wallet.

STACKMATE-CORE A Rust-C FFI library exposing composite functionality from rust-bitcoin & bdk; to create cross-platform descriptor wallets. Currently u

Vishal Menon 5 May 31, 2022
A wallet library for Elements / Liquid written in Rust!

EDK Elements Dev Kit A modern, lightweight, descriptor-based wallet library for Elements / Liquid written in Rust! Inspired by BDK for Elements & Liqu

luca vaccaro 11 Dec 11, 2021
Minimal Bitcoin wallet intended for teaching rust-bitcoin

Insanely minimal Bitcoin wallet intended for demonstration of Rust Bitcoin ecosystem Absolutely DO NOT use with mainnet funds!!! No privacy - address

Martin Habovštiak 4 May 5, 2023
Modern, lightweight & standard-compliant bitcoin wallet runtime & cli without rust-bitcoin dependencies

Bitcoin protocol command-line wallet & tools Modern, minimalistic & standard-compliant cold wallet from LNP/BP Standards Association. Contributing Con

BP: Bitcoin protocol 3 Jul 31, 2023
HD wallet BIP-32 related key derivation utilities.

HDWallet Docs HD wallet(BIP-32) key derivation utilities. This crate is build upon secp256k1 crate, this crate only provides BIP-32 related features,

jjy 23 Nov 27, 2022
Vectis - Smart Contract Wallet

A smart contract wallet project to add functionality for users of DApps to manage their keys by allowing for recovery and account freeze, whilst preserving user control, and enabling relayer capability for gas provisioning

Nymlab 27 Dec 29, 2022
MyCitadel Wallet app for Linux, Windows & MacOS desktop made with GTK+

MyCitadel Desktop Bitcoin, Lightning and RGB wallet MyCitadel is a wallet for bitcoin, digital assets and bitcoin finance (#BiFi) smart contracts. It

My Citadel 88 Jan 2, 2023
MevWallet is a smart contract wallet that allows the user to capture MEV from Searchers, or create MEV on purpose.

MevWallet MevWallet is a smart contract wallet that allows the user to capture MEV from Searchers, or create MEV on purpose. This repo contains the so

Blunt Instruments 94 Jan 26, 2023