diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c7c322e4..4135284f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -87,26 +87,3 @@ jobs:
with:
command: check
args: --workspace --all-targets --all-features
- dependency:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Install latest stable
- uses: actions-rs/toolchain@v1
- with:
- toolchain: stable
- override: true
- - name: Create dependency
- run: |
- cargo new dep_test
- cp test/depCargo.toml dep_test/Cargo.toml
- cd dep_test
- - name: Build dependency
- uses: actions-rs/cargo@v1
- with:
- command: check
- args: --verbose
- - name: Clean up
- run: |
- cd ..
- rm -rf dep_test
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 51d8aa01..66acff98 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,21 +1,12 @@
-Contributing to LNP/BP projects
-===============================
+Contributing guidelines
+=======================
-:+1::tada:
-First and foremost, thanks for taking the time to contribute!
-:tada::+1:
-
-The following is a set of guidelines for contributing to [LNP/BP Standards
-Association](https://lnp-bp.org) projects, which are hosted in the GitHub
-organizations listed in [readme](https://github.com/LNP-BP#Working-groups).
-These are mostly guidelines, not rules. Use your best judgment, and feel free to
-propose changes to this document in a pull request.
+Contributions are very welcome. When contributing code, please follow these
+simple guidelines.
#### Table Of Contents
-- [General](#general)
-- [Communication channels](#communication-channels)
-- [Asking questions](#asking-questions)
- [Contribution workflow](#contribution-workflow)
+ * [Proposing changes](#proposing-changes)
* [Preparing PRs](#preparing-prs)
* [Peer review](#peer-review)
- [Coding conventions](#coding-conventions)
@@ -23,41 +14,22 @@ propose changes to this document in a pull request.
- [Testing](#testing)
- [Going further](#going-further)
+Overview
+--------
-General
--------
-The LNP/BP projects operate an open contributor model where anyone is welcome to
-contribute towards development in the form of peer review, documentation,
-testing and patches.
-
-Anyone is invited to contribute without regard to technical experience,
-"expertise", OSS experience, age, or other concern. However, the development of
-standards & reference implementations demands a high-level of rigor, adversarial
-thinking, thorough testing and risk-minimization. Any bug may cost users real
-money. That being said, we deeply welcome people contributing for the first time
-to an open source project or pick up Rust while contributing. Don't be shy,
-you'll learn.
-
-Communications Channels
------------------------
-Communication about LNP/BP standards & implementations happens primarily
-on #lnp-pb IRC chat on Freenode with the logs available at
-
-
-Discussion about code base improvements happens in GitHub issues and on pull
-requests.
-
-Major projects are tracked [here](https://github.com/orgs/LNP-BP/projects).
-Project roadmap is tracked in each repository GitHub milestones.
+* Before adding any code dependencies, check with the maintainers if this is okay.
+* Write properly formatted comments: they should be English sentences, eg:
-Asking Questions
-----------------
-> **Note:** Please don't file an issue to ask a question. Each repository - or
-> GitHub organization has a "Discussions" with Q&A section; please post your
-> questions there. You'll get faster results by using this channel.
+ // Return the current UNIX time.
-Alternatively, we have a dedicated developer channel on IRC, #lnp-bp@libera.chat
-where you may get helpful advice if you have questions.
+* Read the DCO and make sure all commits are signed off, using `git commit -s`.
+* Follow the guidelines when proposing code changes (see below).
+* Write properly formatted git commits (see below).
+* Run the tests with `cargo test --workspace --all-features`.
+* Make sure you run `rustfmt` on your code (see below details).
+* Please don't file an issue to ask a question. Each repository - or
+ GitHub organization has a "Discussions" with Q&A section; please post your
+ questions there. You'll get faster results by using this channel.
Contribution Workflow
---------------------
@@ -67,39 +39,49 @@ facilitates social contribution, easy testing and peer review.
To contribute a patch, the workflow is a as follows:
- 1. Fork Repository
- 2. Create topic branch
- 3. Commit patches
+1. Fork Repository
+2. Create topic branch
+3. Commit patches
-In general commits should be atomic and diffs should be easy to read. For this
-reason do not mix any formatting fixes or code moves with actual code changes.
-Further, each commit, individually, should compile and pass tests, in order to
+In general commits should be atomic and diffs should be easy to read. For this
+reason do not mix any formatting fixes or code moves with actual code changes.
+Further, each commit, individually, should compile and pass tests, in order to
ensure git bisect and other automated tools function properly.
-When adding a new feature thought must be given to the long term technical debt.
+When adding a new feature thought must be given to the long term technical debt.
Every new features should be covered by unit tests.
When refactoring, structure your PR to make it easy to review and don't hesitate
to split it into multiple small, focused PRs.
-The Minimal Supported Rust Version is nightly for the period of active
-development; it is enforced by our Travis. Later we plan to fix to some specific
-Rust version after the initial library release.
-
Commits should cover both the issue fixed and the solution's rationale.
-These [guidelines](https://chris.beams.io/posts/git-commit/) should be kept in
+These [guidelines](https://chris.beams.io/posts/git-commit/) should be kept in
mind.
-To facilitate communication with other contributors, the project is making use
-of GitHub's "assignee" field. First check that no one is assigned and then
-comment suggesting that you're working on it. If someone is already assigned,
-don't hesitate to ask if the assigned party or previous commenters are still
+To facilitate communication with other contributors, the project is making use
+of GitHub's "assignee" field. First check that no one is assigned and then
+comment suggesting that you're working on it. If someone is already assigned,
+don't hesitate to ask if the assigned party or previous commenters are still
working on it if it has been awhile.
+### Proposing changes
+
+When proposing changes via a pull-request or patch:
+
+* Isolate changes in separate commits to make the review process easier.
+* Don't make unrelated changes, unless it happens to be an obvious improvement to
+ code you are touching anyway ("boyscout rule").
+* Rebase on `master` when needed.
+* Keep your changesets small, specific and uncontroversial, so that they can be
+ merged more quickly.
+* If the change is substantial or requires re-architecting certain parts of the
+ codebase, write a proposal in English first, and get consensus on that before
+ proposing the code changes.
+
### Preparing PRs
-The main library development happens in the `master` branch. This branch must
-always compile without errors (using Travis CI). All external contributions are
+The main library development happens in the `master` branch. This branch must
+always compile without errors (using Travis CI). All external contributions are
made within PRs into this branch.
Prerequisites that a PR must satisfy for merging into the `master` branch:
@@ -122,20 +104,60 @@ Additionally, to the `master` branch some repositories may have `develop` branch
for any experimental developments. This branch may not compile and should not be
used by any projects depending on the library.
+### Writing Git commit messages
+
+A properly formed git commit subject line should always be able to complete the
+following sentence:
+
+ If applied, this commit will _____
+
+In addition, it should be capitalized and *must not* include a period.
+
+For example, the following message is well formed:
+
+ Add support for .gif files
+
+While these ones are **not**: `Adding support for .gif files`,
+`Added support for .gif files`.
+
+When it comes to formatting, here's a model git commit message[1]:
+
+ Capitalized, short (50 chars or less) summary
+
+ More detailed explanatory text, if necessary. Wrap it to about 72
+ characters or so. In some contexts, the first line is treated as the
+ subject of an email and the rest of the text as the body. The blank
+ line separating the summary from the body is critical (unless you omit
+ the body entirely); tools like rebase can get confused if you run the
+ two together.
+
+ Write your commit message in the imperative: "Fix bug" and not "Fixed bug"
+ or "Fixes bug." This convention matches up with commit messages generated
+ by commands like git merge and git revert.
+
+ Further paragraphs come after blank lines.
+
+ - Bullet points are okay, too.
+
+ - Typically a hyphen or asterisk is used for the bullet, followed by a
+ single space, with blank lines in between, but conventions vary here.
+
+ - Use a hanging indent.
+
### Peer review
Anyone may participate in peer review which is expressed by comments in the pull
request. Typically reviewers will review the code for obvious errors, as well as
test out the patch set and opine on the technical merits of the patch. PR should
-be reviewed first on the conceptual level before focusing on code style or
+be reviewed first on the conceptual level before focusing on code style or
grammar fixes.
Coding Conventions
------------------
-Our CI enforces [clippy's](https://github.com/rust-lang/rust-clippy)
+Our CI enforces [clippy's](https://github.com/rust-lang/rust-clippy)
[default linting](https://rust-lang.github.io/rust-clippy/rust-1.52.0/index.html)
and [rustfmt](https://github.com/rust-lang/rustfmt) formatting defined by rules
-in [.rustfmt.toml](./.rustfmt.toml). The linter should be run with current
+in [.rustfmt.toml](./.rustfmt.toml). The linter should be run with current
stable rust compiler, while formatter requires nightly version due to the use of
unstable formatting parameters.
@@ -150,35 +172,25 @@ cargo +nightly fmt --all
Security
--------
-Security is the primary focus of LNP/BP libraries; disclosure of security
-vulnerabilities helps prevent user loss of funds. If you believe a vulnerability
-may affect other implementations, please inform them. Guidelines for a
-responsible disclosure can be found in [SECURITY.md](./SECURITY.md) file in the
-project root.
-
-Note that some of LNP/BP projects are currently considered "pre-production".
-Such projects can be distinguished by the absence of `SECURITY.md`. In such
-cases there are no special handling of security issues; please simply open
+Responsible disclosure of security vulnerabilities helps prevent user loss of
+privacy. If you believe a vulnerability may affect other implementations, please
+inform them. Guidelines for a responsible disclosure can be found in
+[SECURITY.md](./SECURITY.md) file in the project root.
+
+Note that some of our projects are currently considered "pre-production".
+Such projects can be distinguished by the absence of `SECURITY.md`. In such
+cases there are no special handling of security issues; please simply open
an issue on GitHub.
-Testing
--------
-Related to the security aspect, LNP/BP developers take testing very seriously.
-Due to the modular nature of the project, writing new functional tests is easy
-and good test coverage of the codebase is an important goal.
-
-Fuzzing is heavily encouraged: feel free to add related material under `fuzz/`
-
-Mutation testing is planned; any contribution there would be warmly welcomed.
-
Going further
-------------
-You may be interested in Jon Atack guide on
+You may be interested in Jon Atack guide on
[How to review Bitcoin Core PRs][Review] and [How to make Bitcoin Core PRs][PR].
-While there are differences between the projects in terms of context and
+While there are differences between the projects in terms of context and
maturity, many of the suggestions offered apply to this project.
Overall, have fun :)
+[1]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[Review]: https://github.com/jonatack/bitcoin-development/blob/master/how-to-review-bitcoin-core-prs.md
[PR]: https://github.com/jonatack/bitcoin-development/blob/master/how-to-make-bitcoin-core-prs.md
diff --git a/Cargo.lock b/Cargo.lock
index b339b865..2eea3442 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -129,7 +129,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "client_side_validation"
-version = "0.9.0"
+version = "0.10.0-beta.1"
dependencies = [
"commit_verify",
"serde",
@@ -138,7 +138,7 @@ dependencies = [
[[package]]
name = "commit_verify"
-version = "0.9.0"
+version = "0.10.0-beta.1"
dependencies = [
"amplify",
"bitcoin_hashes",
@@ -329,7 +329,7 @@ dependencies = [
[[package]]
name = "single_use_seals"
-version = "0.9.0"
+version = "0.10.0-beta.1"
dependencies = [
"amplify_derive",
"async-trait",
@@ -337,8 +337,9 @@ dependencies = [
[[package]]
name = "strict_encoding"
-version = "2.0.0-beta.4"
-source = "git+https://github.com/strict-types/strict-encoding#b96036176bd08b12af3ce243fcefff3454d095fa"
+version = "2.0.0-beta.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8ce22c5bba8139f2182001358188f145b40b177a9a442545cf15574335fba88"
dependencies = [
"amplify",
"strict_encoding_derive",
@@ -347,7 +348,8 @@ dependencies = [
[[package]]
name = "strict_encoding_derive"
version = "2.0.0-beta.2"
-source = "git+https://github.com/strict-types/strict-encoding#b96036176bd08b12af3ce243fcefff3454d095fa"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cb9b35c9d7429212d20ae38bb86ecbc6cd3b3ccf5db6a12d1e2aafa7cedf5b0"
dependencies = [
"amplify_syn 2.0.0-beta.1",
"heck",
diff --git a/Cargo.toml b/Cargo.toml
index 64fac5db..4e7d8873 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,7 +12,7 @@ default-members = [
[package]
name = "client_side_validation"
-version = "0.9.0"
+version = "0.10.0-beta.1"
license = "Apache-2.0"
authors = ["Dr. Maxim Orlovsky "]
description = "Client-side validation foundation library"
@@ -22,7 +22,7 @@ keywords = ["lnp-bp", "cryptocurrency", "smart-contracts", "blockchain"]
categories = ["cryptography::cryptocurrencies", "encoding", "parsing"]
readme = "README.md"
edition = "2021"
-rust-version = "1.59.0"
+rust-version = "1.66.0"
exclude = [".github", "commit_verify", "single_use_seals"]
[lib]
@@ -30,8 +30,8 @@ name = "client_side_validation"
path = "src/lib.rs"
[dependencies]
-commit_verify = { version = "0.9.0", path = "./commit_verify" }
-single_use_seals = { version = "0.9.0", path = "./single_use_seals" }
+commit_verify = { version = "0.10.0-beta.1", path = "./commit_verify" }
+single_use_seals = { version = "0.10.0-beta.1", path = "./single_use_seals" }
serde_crate = { package = "serde", version = "1", features = ["derive"], optional = true }
[features]
@@ -43,6 +43,3 @@ serde = ["serde_crate", "commit_verify/serde"]
[package.metadata.docs.rs]
features = [ "all" ]
-
-[patch.crates-io]
-strict_encoding = { git = "https://github.com/strict-types/strict-encoding" }
diff --git a/DCO b/DCO
new file mode 100644
index 00000000..69175c98
--- /dev/null
+++ b/DCO
@@ -0,0 +1,28 @@
+Developer's Certificate of Origin 1.1
+Copyright © 2004, 2006 The Linux Foundation and its contributors.
+
+---
+
+By making a contribution to this project, I certify that:
+
+(a) The contribution was created in whole or in part by me and I
+ have the right to submit it under the open source license
+ indicated in the file; or
+
+(b) The contribution is based upon previous work that, to the best
+ of my knowledge, is covered under an appropriate open source
+ license and I have the right under that license to submit that
+ work with modifications, whether created in whole or in part
+ by me, under the same open source license (unless I am
+ permitted to submit under a different license), as indicated
+ in the file; or
+
+(c) The contribution was provided directly to me by some other
+ person who certified (a), (b) or (c) and I have not modified
+ it.
+
+(d) I understand and agree that this project and the contribution
+ are public and that a record of the contribution (including all
+ personal information I submit with it, including my sign-off) is
+ maintained indefinitely and may be redistributed consistent with
+ this project or the open source license(s) involved.
diff --git a/LICENSE b/LICENSE
index a6a3b8bc..e1720699 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright 2019-2022 LNP/BP Standards Association, Switzerland
+ Copyright 2019-2023 LNP/BP Standards Association, Switzerland
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
new file mode 100644
index 00000000..a3af1e08
--- /dev/null
+++ b/MAINTAINERS.md
@@ -0,0 +1,6 @@
+Maxim Orlovsky
+---------------
+- GitHub: [@dr-orlovsky](https://github.com/dr-orlovsky)
+- GPG: `EAE730CEC0C663763F028A5860094BAF18A26EC9`
+- SSH: `BoSGFzbyOKC7Jm28MJElFboGepihCpHop60nS8OoG/A`
+- EMail: [dr@orlovsky.ch](mailto:dr@orlovsky.ch)
diff --git a/MANIFEST.yml b/MANIFEST.yml
new file mode 100644
index 00000000..6ec60bd5
--- /dev/null
+++ b/MANIFEST.yml
@@ -0,0 +1,14 @@
+Name: strict_encoding
+Type: Library
+Kind: Free software
+License: Apache-2.0
+Language: Rust
+Compiler: 1.66
+Author: Maxim Orlovsky
+Maintained: UBIDECO Institute, Switzerland
+Maintainers:
+ Maxim Orlovsky:
+ GitHub: @dr-orlovsky
+ GPG: EAE730CEC0C663763F028A5860094BAF18A26EC9
+ SSH: BoSGFzbyOKC7Jm28MJElFboGepihCpHop60nS8OoG/A
+ EMail: dr@orlovsky.ch
diff --git a/README.md b/README.md
index c3df3bf2..f98f9a63 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Client-side-validation Foundation Libraries
+# Foundation Libraries for Client-side-validation
![Build](https://github.com/LNP-BP/client_side_validation/workflows/Build/badge.svg)
![Tests](https://github.com/LNP-BP/client_side_validation/workflows/Tests/badge.svg)
@@ -12,18 +12,19 @@
This is an implementation defining standard of client-side-validation
representing a set of its Foundation libraries. The standards covered by the
-libraries include [LNPBP-4], [LNPBP-7], [LNPBP-8], [LNPBP-9], [LNPBP-42], and
-[LNPBP-81] (see [Components](#components) section below for more details).
+libraries include [LNPBP-4], [LNPBP-7], [LNPBP-8], [LNPBP-9], and [LNPBP-81]
+(see [Components](#components) section below for more details).
Client-side-validation is a paradigm for distributed computing, based on top of
proof-of-publication/commitment medium layer, which may be a bitcoin blockchain
or other type of distributed consensus system.
-The development of the library is supported by [LNP/BP Standards Association](https://lnp-bp.org).
+The development of the library is supported by [LNP/BP Standards Association][lnpbp-web]
+and is performed on its [GitHub page][lnpbp-github].
+
The original idea of client-side-validation was proposed by Peter Todd with its
-possible applications designed by Giacomo Zucco. It was shaped into a protocol-
-level design by Dr Maxim Orlovsky with a big input from the community and
-implemented by him as this set of libraries.
+possible applications designed by Giacomo Zucco. It was shaped into the protocol
+design by Dr Maxim Orlovsky with a big input from the community.
Minimum supported rust version for the library (MSRV) is 1.66 and 2021 rust
edition.
@@ -31,12 +32,14 @@ edition.
## Documentation
-Detailed developer & API documentation for all libraries can be accessed
-at
+Detailed developer & API documentation for all libraries can be accessed at:
+-
+-
+-
To learn about the technologies enabled by the library please check
-[slides from our tech presentations](https://github.com/LNP-BP/FAQ/blob/master/Presentation%20slides/)
-and [LNP/BP tech talks videos](https://www.youtube.com/channel/UCK_Q3xcQ-H3ERwArGaMKsxg)
+[slides from our tech presentations][presentations] and
+[LNP/BP tech talks videos][lnpbp-youtube].
## Components
@@ -44,8 +47,6 @@ and [LNP/BP tech talks videos](https://www.youtube.com/channel/UCK_Q3xcQ-H3ERwAr
This library consists of the following main three components, which define
independent parts constituting together client-side-validation API and its core
functionality. These are:
-- [Confined encoding](confined_encoding/README.md) ([LNPBP-7] standard): binary
- standard of encoding client-side-validated data.
- [Commit-verify](commit_verify/README.md) client-side-validation-specific APIs:
* consensus commitments (part of [LNPBP-8] standard)
* multi-commitments ([LNPBP-4] standard)
@@ -67,7 +68,6 @@ To use libraries, you just need latest version of libraries, published to
```toml
client_side_validation = "1" # "Umbrella" library including all of the tree libraries below
-confined_encoding = "1" # Confined encoding API and derivation macros
commit_verify = "1" # Consensus and multi-message commitments
single_use_seals = "1" # Generic (non-bitcoin-specific) API
```
@@ -90,9 +90,7 @@ The library has four feature flags, all of which are not used by default:
during LNPBP-4 multi-commitments);
- `serde`, providing support for data structure serialization with serde across
all library;
-- `bitcoin`, providing implementation of strint encoding for bitcoin data types;
-- `crypto`, adding strict encoding support for Ed25519/X25519, Grin Secp256k1zkp
- Pedersen commitments and bulletproofs data types.
+- `async`, providing async traits for projects using async rust.
For specific features which may be enabled for the libraries, please check
library-specific guidelines, located in `README.md` files in each of library
@@ -110,10 +108,6 @@ libraries:
bitcoin UTXO single-use-seal implementations for pay-to-contract and
sign-to-contract types of seals, as well as a library for deterministic
bitcoin commitments. This library is maintained by LNP/BP Association.
-- Mimblewimble: [MW Core Lib](https://github.com/pandoracore/mw-core) from
- [Pandora Core](https://pandoracore.com) – a very early prototypes and proofs
- of concept applying client-side-validation to mimblewimble-types of
- blockchains.
- [Pandora sealchain](https://github.com/pandora-network/sealchain-rs), an
experimental blockchain of [Pandora Network](https://pandora.network),
playing with client-side-validation using modified bitcoin consensus rules,
@@ -132,6 +126,11 @@ The libraries are distributed on the terms of Apache 2.0 opensource license.
See [LICENCE](LICENSE) file for the license details.
+[lnpbp-web]: https://lnp-bp.org
+[lnpbp-github]: https://github.com/LNP-BP
+[lnpbp-youtube]: https://www.youtube.com/@LNPBP
+[presentations]: https://github.com/LNP-BP/FAQ/blob/master/Presentation%20slides/
+
[LNPBP-4]: https://github.com/LNP-BP/LNPBPs/blob/master/lnpbp-0004.md
[LNPBP-7]: https://github.com/LNP-BP/LNPBPs/blob/master/lnpbp-0007.md
[LNPBP-8]: https://github.com/LNP-BP/LNPBPs/blob/master/lnpbp-0008.md
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000..22101c1e
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,59 @@
+# Security
+
+We take the security of our software products and services seriously, which
+includes all source code repositories managed through our GitHub organizations.
+
+If you believe you have found a security vulnerability in any of our repository
+that meets [definition of a security vulnerability][definition], please report
+it to us as described below.
+
+## Reporting Security Issues
+
+**Please do not report security vulnerabilities through public GitHub issues.**
+
+Instead, please report them to the repository maintainers by sending a **GPG
+encrypted e-mail** to _all maintainers of a specific repo_ using their GPG keys.
+
+A list of repository maintainers and their keys and e-mail addresses are
+provided inside MAINTANERS.md file and MANIFEST.yml, with the latter also
+included in the README.md as a manifest block, which looks in the following way:
+
+```yaml
+Name:
+...
+Maintained:
+Maintainers:
+ :
+ GPG:
+ EMail:
+ :
+ ...
+```
+
+You should receive a response within 72 hours. If for some reason you do not,
+please follow up via email to ensure we received your original message.
+
+Please include the requested information listed below (as much as you can
+provide) to help us better understand the nature and scope of the possible
+issue:
+
+* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
+* Full paths of source file(s) related to the manifestation of the issue
+* The location of the affected source code (tag/branch/commit or direct URL)
+* Any special configuration required to reproduce the issue
+* Step-by-step instructions to reproduce the issue
+* Proof-of-concept or exploit code (if possible)
+* Impact of the issue, including how an attacker might exploit the issue
+
+This information will help us triage your report more quickly.
+
+## Preferred Languages
+
+We prefer all communications to be in English.
+
+## Policy
+
+We follow the principle of [Coordinated Vulnerability Disclosure][disclosure].
+
+[definition]: https://aka.ms/opensource/security/definition
+[disclosure]: https://aka.ms/opensource/security/cvd
diff --git a/commit_verify/Cargo.toml b/commit_verify/Cargo.toml
index ad052ac6..42ac9975 100644
--- a/commit_verify/Cargo.toml
+++ b/commit_verify/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "commit_verify"
-version = "0.9.0"
+version = "0.10.0-beta.1"
license = "Apache-2.0"
authors = ["Dr. Maxim Orlovsky "]
description = "Commit-verify API for client-side validation"
@@ -10,7 +10,7 @@ keywords = ["lnp-bp", "cryptography", "smart-contracts", "commit-verify"]
categories = ["cryptography", "encoding"]
readme = "README.md"
edition = "2021"
-rust-version = "1.59.0"
+rust-version = "1.66.0"
[lib]
name = "commit_verify"
@@ -19,7 +19,7 @@ path = "src/lib.rs"
[dependencies]
amplify = { version = "4.0.0-beta.8", features = ["hex", "apfloat"] }
bitcoin_hashes = "0.11.0"
-strict_encoding = "2.0.0-beta.2"
+strict_encoding = "2.0.0-beta.5"
rand = { version = "0.8.5", optional = true }
serde_crate = { version = "1.0", package = "serde", optional = true }
diff --git a/commit_verify/README.md b/commit_verify/README.md
index cf422851..6b34f059 100644
--- a/commit_verify/README.md
+++ b/commit_verify/README.md
@@ -10,16 +10,21 @@
[![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)
[![Apache-2 licensed](https://img.shields.io/crates/l/commit_verify)](./LICENSE)
-This is an implementation of [LNPBP-4] multi-commitment standard and [LNPBP-9]
-standard, defining to cryptographic commitment schemes used in
-client-side-validation. It is a part of more generic [`client_side_validation`]
-library covering other client-side-validation standards.
+This is an implementation of [LNPBP-4] multi-commitment standard, [LNPBP-9]
+standard, defining to cryptographic commitment schemes used in
+client-side-validation, and [LNPBP-81] tagged merkle tree standard. It is a part
+of more generic [`client_side_validation`] library covering other
+client-side-validation standards.
Client-side-validation is a paradigm for distributed computing, based on top of
proof-of-publication/commitment medium layer, which may be a bitcoin blockchain
or other type of distributed consensus system.
-The development of the library is supported by [LNP/BP Standards Association](https://lnp-bp.org).
+The development of the library is supported by [LNP/BP Standards Association][lnpbp-web]
+and is performed on its [GitHub page][lnpbp-github].
+
+Minimum supported rust version for the library (MSRV) is 1.66 and 2021 rust
+edition.
## Documentation
@@ -28,8 +33,8 @@ Detailed developer & API documentation for the library can be accessed
at
To learn about the technologies enabled by the library please check
-[slides from our tech presentations](https://github.com/LNP-BP/FAQ/blob/master/Presentation%20slides/)
-and [LNP/BP tech talks videos](https://www.youtube.com/channel/UCK_Q3xcQ-H3ERwArGaMKsxg)
+[slides from our tech presentations][presentations]
+and [LNP/BP tech talks videos][lnpbp-youtube]
## Usage
@@ -64,3 +69,11 @@ The libraries are distributed on the terms of Apache 2.0 opensource license.
See [LICENCE](LICENSE) file for the license details.
[`client_side_validation`]: https://crates.io/crates/client_side_validation
+[lnpbp-web]: https://lnp-bp.org
+[lnpbp-github]: https://github.com/LNP-BP
+[lnpbp-youtube]: https://www.youtube.com/@LNPBP
+[presentations]: https://github.com/LNP-BP/FAQ/blob/master/Presentation%20slides/
+
+[LNPBP-4]: https://github.com/LNP-BP/LNPBPs/blob/master/lnpbp-0004.md
+[LNPBP-9]: https://github.com/LNP-BP/LNPBPs/blob/master/lnpbp-0009.md
+[LNPBP-81]" https://github.com/LNP-BP/LNPBPs/blob/master/lnpbp-0081.md
diff --git a/commit_verify/src/commit.rs b/commit_verify/src/commit.rs
index 1d5273c0..74747f65 100644
--- a/commit_verify/src/commit.rs
+++ b/commit_verify/src/commit.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//! Base commit-verify scheme interface.
diff --git a/commit_verify/src/conceal.rs b/commit_verify/src/conceal.rs
index 25d9d656..0cdc4f40 100644
--- a/commit_verify/src/conceal.rs
+++ b/commit_verify/src/conceal.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
/// Trait that should perform conversion of a given client-side-validated data
/// type into a concealed (private) form, for instance hiding some of the data
diff --git a/commit_verify/src/convolve.rs b/commit_verify/src/convolve.rs
index c2110479..db341971 100644
--- a/commit_verify/src/convolve.rs
+++ b/commit_verify/src/convolve.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//! Convolved commitments (convolve-commit-verify scheme).
diff --git a/commit_verify/src/embed.rs b/commit_verify/src/embed.rs
index 5b9633b5..067df019 100644
--- a/commit_verify/src/embed.rs
+++ b/commit_verify/src/embed.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//! Embedded commitments (commit-embed-verify scheme).
diff --git a/commit_verify/src/encode.rs b/commit_verify/src/encode.rs
index cc6e0d27..137a12b3 100644
--- a/commit_verify/src/encode.rs
+++ b/commit_verify/src/encode.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//! Encoding and data preparation for commitment procedures in
//! client-side-validation as defined by [LNPBP-9] standard.
diff --git a/commit_verify/src/id.rs b/commit_verify/src/id.rs
index 563a6d41..4ca3283a 100644
--- a/commit_verify/src/id.rs
+++ b/commit_verify/src/id.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
use bitcoin_hashes::sha256::Midstate;
use bitcoin_hashes::{sha256, Hash};
diff --git a/commit_verify/src/lib.rs b/commit_verify/src/lib.rs
index 4fa82974..75a1846f 100644
--- a/commit_verify/src/lib.rs
+++ b/commit_verify/src/lib.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
#[macro_use]
extern crate amplify;
diff --git a/commit_verify/src/merkle.rs b/commit_verify/src/merkle.rs
index 2031a598..dbe02058 100644
--- a/commit_verify/src/merkle.rs
+++ b/commit_verify/src/merkle.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
use std::collections::BTreeSet;
use std::io::{self, Write};
diff --git a/commit_verify/src/mpc/atoms.rs b/commit_verify/src/mpc/atoms.rs
index 48906143..e4db8d1f 100644
--- a/commit_verify/src/mpc/atoms.rs
+++ b/commit_verify/src/mpc/atoms.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
use std::io::Write;
diff --git a/commit_verify/src/mpc/block.rs b/commit_verify/src/mpc/block.rs
index 18b94590..573af175 100644
--- a/commit_verify/src/mpc/block.rs
+++ b/commit_verify/src/mpc/block.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
#![allow(unused_braces)]
diff --git a/commit_verify/src/mpc/mod.rs b/commit_verify/src/mpc/mod.rs
index d1395d6e..d8d28f84 100644
--- a/commit_verify/src/mpc/mod.rs
+++ b/commit_verify/src/mpc/mod.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//! Multi-protocol commitments according to [LNPBP-4] standard.
//!
diff --git a/commit_verify/src/mpc/tree.rs b/commit_verify/src/mpc/tree.rs
index adf06099..129e99cf 100644
--- a/commit_verify/src/mpc/tree.rs
+++ b/commit_verify/src/mpc/tree.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
use std::collections::BTreeMap;
diff --git a/single_use_seals/Cargo.toml b/single_use_seals/Cargo.toml
index a7980d62..353a36df 100644
--- a/single_use_seals/Cargo.toml
+++ b/single_use_seals/Cargo.toml
@@ -1,16 +1,16 @@
[package]
name = "single_use_seals"
-version = "0.9.0"
+version = "0.10.0-beta.1"
license = "Apache-2.0"
authors = ["Dr. Maxim Orlovsky "]
-description = "Single-use-seals foundation API. For bitcoin-specific implementation check bp-seals"
+description = "Single-use-seals foundation API"
repository = "https://github.com/LNP-BP/client_side_validation"
homepage = "https://github.com/LNP-BP"
keywords = ["lnp-bp", "cryptography", "smart-contracts", "single-use-seals"]
categories = ["cryptography", "cryptography::cryptocurrencies"]
readme = "README.md"
edition = "2021"
-rust-version = "1.59.0"
+rust-version = "1.66.0"
[lib]
name = "single_use_seals"
@@ -18,7 +18,7 @@ path = "src/lib.rs"
[dependencies]
amplify_derive = "4.0.0-alpha.3"
-async-trait = { version = "0.1.57", optional = true }
+async-trait = { version = "0.1.64", optional = true }
[features]
default = []
diff --git a/single_use_seals/README.md b/single_use_seals/README.md
index b9b738cd..c83a3746 100644
--- a/single_use_seals/README.md
+++ b/single_use_seals/README.md
@@ -21,7 +21,11 @@ paradigm for distributed computing, based on top of proof-of-publication/
commitment medium layer, which may be a bitcoin blockchain or other type of
distributed consensus system.
-The development of the library is supported by [LNP/BP Standards Association](https://lnp-bp.org).
+The development of the library is supported by [LNP/BP Standards Association][lnpbp-web]
+and is performed on its [GitHub page][lnpbp-github].
+
+Minimum supported rust version for the library (MSRV) is 1.66 and 2021 rust
+edition.
## Documentation
@@ -30,8 +34,8 @@ Detailed developer & API documentation for the library can be accessed
at
To learn about the technologies enabled by the library please check
-[slides from our tech presentations](https://github.com/LNP-BP/FAQ/blob/master/Presentation%20slides/)
-and [LNP/BP tech talks videos](https://www.youtube.com/channel/UCK_Q3xcQ-H3ERwArGaMKsxg)
+[slides from our tech presentations][presentations]
+and [LNP/BP tech talks videos][lnpbp-youtube]
## Usage
@@ -137,4 +141,9 @@ The libraries are distributed on the terms of Apache 2.0 opensource license.
See [LICENCE](LICENSE) file for the license details.
[`client_side_validation`]: https://crates.io/crates/client_side_validation
+[lnpbp-web]: https://lnp-bp.org
+[lnpbp-github]: https://github.com/LNP-BP
+[lnpbp-youtube]: https://www.youtube.com/@LNPBP
+[presentations]: https://github.com/LNP-BP/FAQ/blob/master/Presentation%20slides/
+
[LNPBP-8]: https://github.com/LNP-BP/LNPBPs/blob/master/lnpbp-0008.md
diff --git a/single_use_seals/src/lib.rs b/single_use_seals/src/lib.rs
index 58a50cfd..88661554 100644
--- a/single_use_seals/src/lib.rs
+++ b/single_use_seals/src/lib.rs
@@ -1,21 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
//
-// The author of the code acknowledges significant input from Peter Todd,
-// who is the author of single-use-seal concept and who spent a lot of his time
-// to help to understanding single-use-seal concept and write the current
-// implementation.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
// Coding conventions
#![recursion_limit = "256"]
diff --git a/src/api.rs b/src/api.rs
index 77f90b3f..1599865a 100644
--- a/src/api.rs
+++ b/src/api.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
use std::fmt::{self, Debug, Display, Formatter};
use std::hash::Hash;
diff --git a/src/lib.rs b/src/lib.rs
index 9f193cd3..e2bd144e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,16 +1,23 @@
-// LNP/BP client-side-validation foundation libraries implementing LNPBP
-// specifications & standards (LNPBP-4, 7, 8, 9, 81)
+// Client-side-validation foundation libraries.
//
-// Written in 2019-2022 by
-// Dr. Maxim Orlovsky
+// SPDX-License-Identifier: Apache-2.0
//
-// To the extent possible under law, the author(s) have dedicated all
-// copyright and related and neighboring rights to this software to
-// the public domain worldwide. This software is distributed without
-// any warranty.
+// Written in 2019-2023 by
+// Dr. Maxim Orlovsky
//
-// You should have received a copy of the Apache 2.0 License along with this
-// software. If not, see .
+// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
// Coding conventions
#![recursion_limit = "256"]
diff --git a/test/depCargo.toml b/test/depCargo.toml
deleted file mode 100644
index f8942753..00000000
--- a/test/depCargo.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-# This is an add-on that must be added to any dependency using this library
-
-client_side_validation = { path = "../client_side_validation" }
-
-[workspace]