diff --git a/CHANGELOG.md b/CHANGELOG.md index 7db3e9c..6f2129c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,26 @@ # Changelog -## 0.0.13 (TODO) +## 0.0.14 (2021-07-21) + +### Fixed + +- DID documents generated were missing the `index` property in the objects in the `keys` list. + +### Changed + +- Separated `sign` and `signWithKey` methods on `MorpheusOperationSigner` both in WASM and FFI + +## 0.0.13 (2021-07-09) ### Added - You can now set the vendor field (aka. smart bridge field) and set a manual fee on Hydra core transactions using the 2 new optional arguments TypeScript SDK HydraTxBuilder factory methods got. +- Added some missing bindings to WASM and FFI, `SecpKeyId.toAddress` being the most important one. +- Multicipher objects (`MPrivateKey`, `MPublicKey` and `MKeyId`) can be safely downcasted in Rust to secp256p1 and ed25519 cipher objects. Not supported in WASM and FFI yet. ### Changed +- Separated node-wasm and sdk-wasm, so hydra-core plugins can have code that does not bloat the SDK - Merged morpheus-rust and keyvault-rust repositories as iop-rs ## 0.0.12-hotfix1 (2021-05-06) diff --git a/coeus-node/Cargo.toml b/coeus-node/Cargo.toml index ddd5053..2f1aa48 100644 --- a/coeus-node/Cargo.toml +++ b/coeus-node/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-coeus-node" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] edition = "2018" license = "LGPL-3.0-or-later" @@ -8,11 +8,11 @@ license = "LGPL-3.0-or-later" [dependencies] anyhow = "1.0.32" -iop-coeus-proto = "0.0.13" -iop-journal-proto = "0.0.13" -iop-keyvault = "0.0.13" -iop-morpheus-proto = { version = "0.0.13", optional = true } -json-digest = "0.0.13" +iop-coeus-proto = "0.0.14" +iop-journal-proto = "0.0.14" +iop-keyvault = "0.0.14" +iop-morpheus-proto = { version = "0.0.14", optional = true } +json-digest = "0.0.14" serde = { version="1.0.121", features = ["derive"] } serde_json = { version = "1.0.64", features = ["preserve_order"] } serde_str = "0.1.0" diff --git a/coeus-proto/Cargo.toml b/coeus-proto/Cargo.toml index 1c9a3af..06d79d8 100644 --- a/coeus-proto/Cargo.toml +++ b/coeus-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-coeus-proto" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] edition = "2018" license = "LGPL-3.0-or-later" @@ -8,9 +8,9 @@ license = "LGPL-3.0-or-later" [dependencies] anyhow = "1.0.32" -iop-journal-proto = "0.0.13" -iop-keyvault = "0.0.13" -json-digest = "0.0.13" +iop-journal-proto = "0.0.14" +iop-keyvault = "0.0.14" +json-digest = "0.0.14" serde = { version="1.0.121", features = ["derive"] } serde_json = { version = "1.0.64", features = ["preserve_order"] } serde_bytes = "0.11.5" diff --git a/hydra-proto/Cargo.toml b/hydra-proto/Cargo.toml index e21c087..3e25a0f 100644 --- a/hydra-proto/Cargo.toml +++ b/hydra-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-hydra-proto" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] license = "LGPL-3.0-or-later" edition = "2018" @@ -10,11 +10,11 @@ edition = "2018" anyhow = "1.0.32" byteorder = "1.3.4" hex = "0.4.2" -iop-coeus-proto = "0.0.13" -iop-journal-proto = "0.0.13" -iop-keyvault = "0.0.13" -iop-morpheus-proto = "0.0.13" -json-digest = "0.0.13" +iop-coeus-proto = "0.0.14" +iop-journal-proto = "0.0.14" +iop-keyvault = "0.0.14" +iop-morpheus-proto = "0.0.14" +json-digest = "0.0.14" num-derive = "0.3.2" num-traits = "0.2.12" rand = { version = "0.8.3", features = ["getrandom"] } diff --git a/hydra-sdk/Cargo.toml b/hydra-sdk/Cargo.toml index c5e5900..3886ed2 100644 --- a/hydra-sdk/Cargo.toml +++ b/hydra-sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-hydra-sdk" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] license = "LGPL-3.0-or-later" edition = "2018" @@ -10,10 +10,10 @@ edition = "2018" anyhow = "1.0.32" byteorder = "1.3.4" hex = "0.4.2" -iop-hydra-proto = "0.0.13" -iop-keyvault = "0.0.13" -iop-morpheus-proto = "0.0.13" -iop-vault = "0.0.13" +iop-hydra-proto = "0.0.14" +iop-keyvault = "0.0.14" +iop-morpheus-proto = "0.0.14" +iop-vault = "0.0.14" parking_lot = { version = "0.11.1", features = ["serde", "wasm-bindgen"] } rand = { version = "0.8.3", features = ["getrandom"] } serde = { version="1.0.121", features = ["derive"] } diff --git a/journal-proto/Cargo.toml b/journal-proto/Cargo.toml index 9d3a0db..b4cf979 100644 --- a/journal-proto/Cargo.toml +++ b/journal-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-journal-proto" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] license = "LGPL-3.0-or-later" edition = "2018" diff --git a/json-digest-wasm/Cargo.toml b/json-digest-wasm/Cargo.toml index ca6e2b2..5c96024 100644 --- a/json-digest-wasm/Cargo.toml +++ b/json-digest-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "json-digest-wasm" -version = "0.0.13" +version = "0.0.14" edition = "2018" description = "WebAssembly wrappers for the json-digest crate." authors = ["IOP Ventures LLC ", "wigy ", "Rache Bartmoss "] @@ -16,7 +16,7 @@ categories = ["cryptography", "cryptography::cryptocurrencies", "wasm"] crate-type = ["cdylib", "rlib"] [dependencies] -json-digest = "0.0.13" +json-digest = "0.0.14" serde = { version="1.0.121", features = ["derive"] } serde_json = { version = "1.0.64", features = ["preserve_order"] } wasm-bindgen = { version = "0.2.73", features = ["serde-serialize"] } diff --git a/json-digest/Cargo.toml b/json-digest/Cargo.toml index 77e8979..b42c4c6 100644 --- a/json-digest/Cargo.toml +++ b/json-digest/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "json-digest" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] edition = "2018" description = "Allow selective masking of JSON subdocuments for privacy, preserving the digest of the whole document." diff --git a/keyvault-wasm/Cargo.toml b/keyvault-wasm/Cargo.toml index f2c581a..38a7de0 100644 --- a/keyvault-wasm/Cargo.toml +++ b/keyvault-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-keyvault-wasm" -version = "0.0.13" +version = "0.0.14" edition = "2018" description = "WebAssembly wrappers for the iop-keyvault crate." authors = ["IOP Ventures LLC ", "wigy ", "Rache Bartmoss "] @@ -14,6 +14,6 @@ categories = ["cryptography", "cryptography::cryptocurrencies", "wasm"] crate-type = ["cdylib", "rlib"] [dependencies] -iop-keyvault = "0.0.13" +iop-keyvault = "0.0.14" serde_json = { version = "1.0.64", features = ["preserve_order"] } wasm-bindgen = { version = "0.2.73", features = ["serde-serialize"] } diff --git a/keyvault/Cargo.toml b/keyvault/Cargo.toml index 4122441..320b933 100644 --- a/keyvault/Cargo.toml +++ b/keyvault/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-keyvault" -version = "0.0.13" +version = "0.0.14" edition = "2018" description = "A general-purpose hierarchical deterministic generator for asymmetric keys." authors = ["IOP Ventures LLC ", "wigy ", "Rache Bartmoss "] diff --git a/morpheus-node/Cargo.toml b/morpheus-node/Cargo.toml index d1bc90e..c2d7bba 100644 --- a/morpheus-node/Cargo.toml +++ b/morpheus-node/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-morpheus-node" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] edition = "2018" license = "LGPL-3.0-or-later" @@ -9,11 +9,11 @@ license = "LGPL-3.0-or-later" [dependencies] anyhow = "1.0.32" chrono = { version = "0.4.15", features = ["wasmbind"] } -iop-hydra-proto = "0.0.13" -iop-journal-proto = "0.0.13" -iop-keyvault = "0.0.13" -iop-morpheus-proto = "0.0.13" -json-digest = "0.0.13" +iop-hydra-proto = "0.0.14" +iop-journal-proto = "0.0.14" +iop-keyvault = "0.0.14" +iop-morpheus-proto = "0.0.14" +json-digest = "0.0.14" jwt-compact = { version = "0.2.0", default-features = false } #multibase = "0.9.1" rand = { version = "0.8.3", features = ["getrandom"] } diff --git a/morpheus-proto/Cargo.toml b/morpheus-proto/Cargo.toml index 75fc9d9..40ec9a7 100644 --- a/morpheus-proto/Cargo.toml +++ b/morpheus-proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-morpheus-proto" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] edition = "2018" license = "LGPL-3.0-or-later" @@ -10,9 +10,9 @@ license = "LGPL-3.0-or-later" [dependencies] anyhow = "1.0.32" chrono = { version = "0.4.15", features = ["wasmbind"] } -iop-journal-proto = "0.0.13" -iop-keyvault = "0.0.13" -json-digest = "0.0.13" +iop-journal-proto = "0.0.14" +iop-keyvault = "0.0.14" +json-digest = "0.0.14" jwt-compact = { version = "0.2.0", default-features = false } serde = { version="1.0.121", features = ["derive"] } serde_json = { version = "1.0.64", features = ["preserve_order"] } diff --git a/morpheus-core/README.md b/morpheus-proto/README.md similarity index 97% rename from morpheus-core/README.md rename to morpheus-proto/README.md index 18d6fd0..31915ac 100644 --- a/morpheus-core/README.md +++ b/morpheus-proto/README.md @@ -2,7 +2,7 @@ Morpheus is a framework for decentralized identifiers (DID), key and right management and cryptographically verifiable claims and credentials (VC) about such identities -based on a web of trust. For an in-depth description, please check our [developer portal](https://developer.iop.technology/). +based on a web of trust. For an in-depth description, please check our [developer portal](https://developer.iop.technology/). Morpheus DIDs were based on the [W3C DID specification](https://w3c.github.io/did-core/) and VCs on the [W3C VC specification](https://www.w3.org/TR/vc-data-model/). diff --git a/morpheus-sdk/Cargo.toml b/morpheus-sdk/Cargo.toml index fa5fc7f..e2fdad2 100644 --- a/morpheus-sdk/Cargo.toml +++ b/morpheus-sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-morpheus-sdk" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] license = "LGPL-3.0-or-later" edition = "2018" @@ -8,8 +8,8 @@ edition = "2018" [dependencies] anyhow = "1.0.32" -iop-keyvault = "0.0.13" -iop-vault = "0.0.13" +iop-keyvault = "0.0.14" +iop-vault = "0.0.14" parking_lot = { version = "0.11.1", features = ["serde", "wasm-bindgen"] } rand = { version = "0.8.3", features = ["getrandom"] } serde = { version="1.0.121", features = ["derive"] } @@ -19,8 +19,8 @@ typetag = "0.1.5" [dev-dependencies] chrono = { version = "0.4.15", features = ["wasmbind"] } -iop-morpheus-proto = "0.0.13" -json-digest = "0.0.13" +iop-morpheus-proto = "0.0.14" +json-digest = "0.0.14" serde_json = { version = "1.0.64", features = ["preserve_order"] } diff --git a/node-wasm/.package.json b/node-wasm/.package.json index 92a7dae..5b2622b 100644 --- a/node-wasm/.package.json +++ b/node-wasm/.package.json @@ -5,7 +5,7 @@ "Rache Bartmoss ", "wigy " ], - "version": "0.0.13", + "version": "0.0.14", "files": [ "browser/iop_node_wasm_bg.wasm", "browser/iop_node_wasm_bg.js", diff --git a/node-wasm/Cargo.toml b/node-wasm/Cargo.toml index 827dcd9..b44cc3c 100644 --- a/node-wasm/Cargo.toml +++ b/node-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-node-wasm" -version = "0.0.13" +version = "0.0.14" authors = [ "IOP Ventures LLC ", "Rache Bartmoss ", @@ -16,14 +16,14 @@ crate-type = ["cdylib", "rlib"] normal = ["uuid"] [dependencies] -iop-coeus-node = "0.0.13" -iop-coeus-proto = "0.0.13" -iop-journal-proto = "0.0.13" -iop-keyvault-wasm = "0.0.13" -iop-morpheus-node = "0.0.13" -iop-morpheus-proto = "0.0.13" -iop-proto-wasm = "0.0.13" -json-digest-wasm = "0.0.13" +iop-coeus-node = "0.0.14" +iop-coeus-proto = "0.0.14" +iop-journal-proto = "0.0.14" +iop-keyvault-wasm = "0.0.14" +iop-morpheus-node = "0.0.14" +iop-morpheus-proto = "0.0.14" +iop-proto-wasm = "0.0.14" +json-digest-wasm = "0.0.14" serde = { version="1.0.121", features = ["derive"] } serde_json = { version = "1.0.64", features = ["preserve_order"] } # Force `wasm-bindgen` feature in transitive dependency `uuid` needed by `valico` in `iop-coeus-node` diff --git a/proto-wasm/Cargo.toml b/proto-wasm/Cargo.toml index a1fd200..3ab7cf4 100644 --- a/proto-wasm/Cargo.toml +++ b/proto-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-proto-wasm" -version = "0.0.13" +version = "0.0.14" authors = [ "IOP Ventures LLC ", "Rache Bartmoss ", @@ -17,12 +17,12 @@ normal = ["uuid"] [dependencies] anyhow = "1.0.32" -iop-coeus-proto = "0.0.13" -iop-hydra-proto = "0.0.13" -iop-journal-proto = "0.0.13" -iop-keyvault = "0.0.13" -iop-keyvault-wasm = "0.0.13" -iop-morpheus-proto = "0.0.13" +iop-coeus-proto = "0.0.14" +iop-hydra-proto = "0.0.14" +iop-journal-proto = "0.0.14" +iop-keyvault = "0.0.14" +iop-keyvault-wasm = "0.0.14" +iop-morpheus-proto = "0.0.14" serde = { version="1.0.121", features = ["derive"] } serde_json = { version = "1.0.64", features = ["preserve_order"] } serde_str = "0.1.0" diff --git a/scripts/set-version.sh b/scripts/set-version.sh index 145bcb6..cb08bb8 100755 --- a/scripts/set-version.sh +++ b/scripts/set-version.sh @@ -6,7 +6,7 @@ function replace_toml() { toml_file=$1 sed -i -E 's#^(\s*version\s*=\s*)".+"$#\1"'"$version"'"#g' "$toml_file" sed -i -E 's#(iop-.*=.*)".+"#\1"'"$version"'"#g' "$toml_file" - sed -i -E 's#(json-digest\s*=.*)".+"#\1"'"$version"'"#g' "$toml_file" + sed -i -E 's#(json-digest.*=.*)".+"#\1"'"$version"'"#g' "$toml_file" } function replace_json() { @@ -14,8 +14,27 @@ function replace_json() { sed -i -E 's#^(\s*"version"\s*:\s*)".+",$#\1"'"$version"'",#g' "$json_file" } -declare -a crates=("coeus-core" "coeus-core-wasm" "hydra-proto" "hydra-sdk" "json-digest" "keyvault" "morpheus-core" "morpheus-core-wasm" "morpheus-sdk" "sdk" "sdk-ffi" "sdk-wasm" "vault") -declare -a wasm_packages=("coeus-core-wasm" "keyvault-wasm" "morpheus-core-wasm" "sdk-wasm") +declare -a crates=( + "coeus-node" + "coeus-proto" + "hydra-proto" + "hydra-sdk" + "journal-proto" + "json-digest" + "json-digest-wasm" + "keyvault" + "keyvault-wasm" + "morpheus-node" + "morpheus-proto" + "morpheus-sdk" + "node-wasm" + "proto-wasm" + "sdk" + "sdk-ffi" + "sdk-wasm" + "vault" +) +declare -a wasm_packages=("node-wasm" "sdk-wasm") for crate in "${crates[@]}"; do replace_toml "$crate/Cargo.toml" diff --git a/sdk-ffi/Cargo.toml b/sdk-ffi/Cargo.toml index b725e72..3182e27 100644 --- a/sdk-ffi/Cargo.toml +++ b/sdk-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-sdk-ffi" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] edition = "2018" license = "LGPL-3.0-or-later" @@ -14,15 +14,15 @@ crate-type = ["rlib", "cdylib"] [dependencies] anyhow = "1.0.32" chrono = { version = "0.4.15", features = ["wasmbind"] } -iop-coeus-proto = "0.0.13" -iop-hydra-proto = "0.0.13" -iop-hydra-sdk = "0.0.13" -iop-journal-proto = "0.0.13" -iop-keyvault = "0.0.13" -iop-morpheus-proto = "0.0.13" -iop-morpheus-sdk = "0.0.13" -iop-vault = "0.0.13" -json-digest = "0.0.13" +iop-coeus-proto = "0.0.14" +iop-hydra-proto = "0.0.14" +iop-hydra-sdk = "0.0.14" +iop-journal-proto = "0.0.14" +iop-keyvault = "0.0.14" +iop-morpheus-proto = "0.0.14" +iop-morpheus-sdk = "0.0.14" +iop-vault = "0.0.14" +json-digest = "0.0.14" serde = { version="1.0.121", features = ["derive", "rc"] } serde_json = { version = "1.0.64", features = ["preserve_order"] } serde_repr = "0.1.6" diff --git a/sdk-wasm/.package.json b/sdk-wasm/.package.json index 620ac2f..ee6b5ee 100644 --- a/sdk-wasm/.package.json +++ b/sdk-wasm/.package.json @@ -5,7 +5,7 @@ "Rache Bartmoss ", "wigy " ], - "version": "0.0.13", + "version": "0.0.14", "files": [ "browser/iop_sdk_wasm_bg.wasm", "browser/iop_sdk_wasm_bg.js", diff --git a/sdk-wasm/Cargo.toml b/sdk-wasm/Cargo.toml index 417d37e..4a4209e 100644 --- a/sdk-wasm/Cargo.toml +++ b/sdk-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-sdk-wasm" -version = "0.0.13" +version = "0.0.14" authors = [ "IOP Ventures LLC ", "Rache Bartmoss ", @@ -17,15 +17,15 @@ anyhow = "1.0.32" # There are still some transitive dependencies on this old version getrandom01 = { version="0.1", package="getrandom", features=["wasm-bindgen"] } getrandom = { version="0.2.3", features=["wasm-bindgen"] } -iop-hydra-proto = "0.0.13" -iop-hydra-sdk = "0.0.13" -iop-keyvault = "0.0.13" -iop-keyvault-wasm = "0.0.13" -iop-morpheus-proto = "0.0.13" -iop-morpheus-sdk = "0.0.13" -iop-proto-wasm = "0.0.13" -iop-vault = "0.0.13" -json-digest-wasm = "0.0.13" +iop-hydra-proto = "0.0.14" +iop-hydra-sdk = "0.0.14" +iop-keyvault = "0.0.14" +iop-keyvault-wasm = "0.0.14" +iop-morpheus-proto = "0.0.14" +iop-morpheus-sdk = "0.0.14" +iop-proto-wasm = "0.0.14" +iop-vault = "0.0.14" +json-digest-wasm = "0.0.14" # There are still some transitive dependencies on this old version rand07 = { version="0.7", package="rand", features=["getrandom"] } rand = { version="0.8.3", features=["getrandom"] } diff --git a/sdk/Cargo.toml b/sdk/Cargo.toml index 418ba65..0c3faa1 100644 --- a/sdk/Cargo.toml +++ b/sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-sdk" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] license = "LGPL-3.0-or-later" edition = "2018" @@ -13,14 +13,14 @@ crate-type = ["rlib","cdylib"] [dependencies] anyhow = "1.0.32" -iop-coeus-proto = "0.0.13" -iop-hydra-proto = "0.0.13" -iop-hydra-sdk = "0.0.13" -iop-keyvault = "0.0.13" -iop-morpheus-proto = "0.0.13" -iop-morpheus-sdk = "0.0.13" -iop-vault = "0.0.13" -json-digest = "0.0.13" +iop-coeus-proto = "0.0.14" +iop-hydra-proto = "0.0.14" +iop-hydra-sdk = "0.0.14" +iop-keyvault = "0.0.14" +iop-morpheus-proto = "0.0.14" +iop-morpheus-sdk = "0.0.14" +iop-vault = "0.0.14" +json-digest = "0.0.14" rand = { version = "0.8.3", features = ["getrandom"] } serde = { version="1.0.121", features = ["derive"] } serde_bytes = "0.11.5" diff --git a/vault/Cargo.toml b/vault/Cargo.toml index 8c24c4e..1e87832 100644 --- a/vault/Cargo.toml +++ b/vault/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iop-vault" -version = "0.0.13" +version = "0.0.14" authors = ["IOP Ventures LLC ", "Rache Bartmoss ", "wigy "] edition = "2018" license = "LGPL-3.0-or-later" @@ -8,7 +8,7 @@ license = "LGPL-3.0-or-later" [dependencies] anyhow = "1.0.32" -iop-keyvault = "0.0.13" +iop-keyvault = "0.0.14" multibase = "0.9.1" parking_lot = { version = "0.11.1", features = ["serde", "wasm-bindgen"] } serde = { version="1.0.121", features = ["derive", "rc"] }