- (feature) crowdfunding support (experimental)
- (feature) marketplace support (experimental)
- (feature + commandline) added "asset" subcommand
- (package) this is also available standalone via the "niftygate-asset" crate.
- provides discovery of Solidity compiler versions.
- can download any version of Solidity with no external tooling required.
- provides transparent on-disk compression for cached assets.
- supports LZ4, Deflate (gzip), and Brotli, depending on your needs.
- integrity verification, to facilitate secure supply chains.
- provides transparent on-disk compression for cached assets.
- flexible caching policies to support environments like CI/CD, air-gapped, or immutable deployments.
- granular network access policies to reduce attack surface when downloading.
- supports custom mirrors, for trusted build environments.
- respects various platform-specific standards for paths
- automation and scripting-friendly.
- provides built-in tooling for cache maintenance (usage reporting, cleanup, etc).
- built-in filtering with support for Regular Expressions and Semantic Versioning constraints.
- user-friendly interative prompts to guide you (optional, of course).
- (experimental) able to extract embedded WebAssembly from soljson release artifacts.
- (unsupported) built-in benchmarking of supported compression schemes.
- (unsupported) built-in tooling for analyzing soljson release artifacts.
- (fix) CLI enforces required arguments for TLS support.
- (internal) replace a fallible conversion with an infallible one.
- (feature) added TLS support to embedded demo application.
- (package) "guide" subcommand moved into "niftygate-guide" crate.
- (package) "contract" subcommand moved into "niftygate-contract" crate.
- (niftygate-certificate) now with more accurate help text!
- (commandline) "units" subcommand can now convert values.
- this introduces a "units convert" subcommand for use in scripting.
- the previous functionality is still available via "units show".
- (library) BalanceScale now implements
Copy
. - (deprecation) WrappedError is deprecated, use anyhow::Error.
- (deprecation) WrappedResult is deprecated, use anyhow::Result.
- (deprecation) command::run() is deprecated, use command::Command.execute().
- (deprecation) command::HexData is deprecated as an import path. It has been moved to the crate root.
- (breaking) rename command::Options to command::Command.
- (breaking) command::Options::Web3 enum variant moved to struct command::web3::Command.
- (breaking) command::Options::Demo enum variant moved to struct command::demo::Command.
- (breaking) command::Options::Units enum variant moved to struct command::units::Command.
- (breaking: niftygate-certificate) command::Generate takes time::OffsetDateTime now, now chrono::DateTime
- this is due to a change in a dependency, not an active choice to move away from Chrono.
- (dependency) anyhow 1.0.43 -> 1.0.57
- (dependency) async-std 1.10.0 -> 1.11.0
- (dependency) async-trait 0.1.51 -> 0.1.53
- (dependency) blake3 1.2.0 -> 1.3.1
- (dependency) brotli 3.3.2 -> 3.3.4
- (dependency) console 0.14.1 -> 0.15.0
- (dependency) dialoguer 0.9.0 -> 0.10.1
- (dependency) digest 0.10.1 -> 0.10.3
- (dependency) ethcontract 0.15.3 -> 0.17.0
- (dependency) ethcontract-generate 0.15.3 -> 0.17.0
- (dependency) heck 0.3.3 -> 0.4.0
- (dependency) pem 0.8.3 -> 1.0.2
- (dependency) rcgen 0.8.13 -> 0.9.2
- (dependency) regex 1.5.4 -> 1.5.5
- (dependency) secp256k1 0.20.3 -> 0.21.3
- (dependency) semver 1.0.4 -> 1.0.9
- (dependency) serde 1.0.130 -> 1.0.137
- (dependency) serde_json 1.0.67 -> 1.0.81
- (dependency) structopt 0.3.23 -> 0.3.26
- (dependency) strum 0.21.1 -> 0.24.0
- (dependency) surf 2.3.1 -> 2.3.2
- (dependency) thiserror 1.0.29 -> 1.0.31
- (dependency) wasm-bindgen-futures 0.4.28 ->? 0.4.29
- (dependency) web3 0.17.0 -> 1.18.0
- (dependency) x509-parser 0.11.0 -> 0.13.1
- (dependency) xdg 2.4.0 -> 2.4.1
- (feature) add TLS support!
- (commandline) added --with-tls option.
- (commandline) added --tls-certificate-path option.
- (commandline) added --tls-key-path option.
- (feature + commandline) added "certificate" subcommand.
- (package) this is also available standalone via the "niftygate-certificate" crate.
- can generate self-signed certificates, CA certs, and can sign certs.
- this provides a way to generate and sign certificates without external tools.
- includes support for constrained authorities
- can restrict the number of intermediate authorities allowed.
- can limit the scope of the authority based on DNS, IP, Directory Name, or Email.
- constraints can be combined, and exclusions are supported.
- (lint) fixed collapsible_if(s)
- (lint) fixed needless_borrow(s)
- (lint) fixed redundant_static_lifetimes(s)
- (depencency) added anyhow
- (dependency) added thiserror
- (dependency) added tide-rustls
- (dependency) async-std 1.9.0 -> 1.10.0
- (dependency) ethcontract 0.12.2 -> 0.15.3
- (dependency) ethcontract-generate 0.12.2 -> 0.15.3
- (dependency) serde 1.0.129 -> 1.0.130
- (dependency) serde_json 1.0.66 -> 1.0.67
- (dependency) structopt 0.3.22 -> 0.3.23
- (dependency) surf 2.2.0 -> 2.3.1
- (dependency) web3 0.16.0 -> 0.17.0
- (internal) regenerate bindings
- (internal) split into packages.
- niftygate is the main package, containing the app and library.
- niftygate-bindings contains the bindings for various smart contracts.
- niftygate-bindgen contains the code generator for the contract bindings.
- there should be no impact to compatibility with this change.
- this resolves an ongoing challenge with dependency upgrades.
- (library) updated bindings for OpenZeppelin contracts to 4.3.1 - see Changelog for details.
- (internal) added support for (I)GovernorCompatiblityBravo contracts to generator.
- (internal) added support for IERC1363 contracts to generator.
- (internal) removed unfinished support for legacy contract bindings from generator.
- (breaking) renamed from sig-proxy to niftygate.
- (library) updated bindings for OpenZeppelin contracts to 4.2.0 - see Changelog for details.
- (deprecation) ERC20FlashMint no longer a draft extension.
- update import path by removing
draft::
to fix.
- update import path by removing
- (deprecation) ERC20FlashMint no longer a draft extension.
- (dependency) secp256k1 0.20.2 -> 0.20.3
- (dependency) structopt 0.3.21 -> 0.3.22
- (internal) added support for upgradeable contracts to generator.
- (library) added generated bindings for upgradeable OpenZeppelin contracts.
- (fix) clearer error message when asked to provide signatures, but no secret key is given.
- (breaking) Contract methods that took Vec now take Bytes<Vec>
- (breaking) ethcontract::Void was removed, replaced with ()
- (dependency) ethcontract 0.11.3 -> 0.12.2
- (dependency) ethcontract-generate 0.11.3 -> 0.12.2
- (dependency) heck 0.3.2 -> 0.3.3
- (dependency) strum 0.20.0 -> 0.21.0
- (dependency) web3 0.15.0 -> 0.16.0
- (commandline) added help text to the
events
subcommand. - (lint) disabled clippy lints for generated code.
- (lint) replaced some
.and_then(|x| Ok(y))
with.map(|x| y)
. - (lint) stopped calling
clone()
onCopy
types.
- (breaking + library) changed type of ProvidesAccountVerification.web3 from Web3 to Web3
- (breaking + library) changed type of BalanceRequirement.web3 from Web3 to Web3
- (breaking + library) changed type of ProvidesSignature.web3 from Web3 to Web3
- (internal) added command::contract::dump module for console output.
- (internal) added util::web3_from_url for converting URLs.
- (internal) everything uses DynTransport now.
- (internal) use exported web3 from ethcontract.
- (library) contract events are (de)serializable now.
- (commandline) added tools to query and stream events for deployed contracts.
- (dependency) add serde
- (dependency) add serde_json
- (fix) stopped counterintuitively parsing U256 CLI options as hex
- (internal) added program to generate bindings for OpenZeppelin contracts
- (library) added generated bindings for OpenZeppelin contracts
- (library) added surf, ethcontract, ethabi to prelude
- (library + commandline) added support for ERC20 tokens
- (library + commandline) added support for ERC721 tokens
- (library + commandline) added support for ERC777 tokens
- (library + commandline) added support for ERC1155 tokens
- (commandline) added interactive guide to choose a token type
- (commandline) added tools to deploy embedded contracts
- (commandline) added tools to interact with deployed contracts
- (dependency) secp256k1 0.20.1 -> 0.20.2
- (dependency) added dialoguer
- (dependency) added console
- (dependency) added ethcontract
- (dependency) changed features for surf and tide to omit non-Rust dependencies
- Forcing a fixed terminal width is rude. Stopped doing that.
- Fixed a bug where an extra
surf::Client
was allocated on every proxied request. Thanks to @jbr for catching this.