diff --git a/CHANGELOG.md b/CHANGELOG.md index 934ded6ca2..297fdfc06e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 1.13.0 - 2019-12-03 +* LibVCX Aries support: + * Implemented Connection RFC (IS-1180) + * Implemented Credential Issuance RFC (IS-1393) + * Implemented Credential Presentation RFC (IS-1394) + * Integrated Connection Protocol into Dummy Cloud Agent (IS-1392) +* Added "names" parameter to Proof Request Revealed Attributes (IS-1381) +* Bugfixes: + * Fixed bool representation in Java wrapper (IS-1368) + ## 1.12.0 - 2019-10-08 * Minimal *EXPERIMENTAL* support of Fully-Qualified identifiers: * general format of fully-qualified identifier is `::`. diff --git a/README.md b/README.md index 07284f7c5d..ca95942c75 100644 --- a/README.md +++ b/README.md @@ -335,6 +335,7 @@ The documents that provide necessary information for Libindy migrations. * [v1.9.0 → v1.10.x](docs/migration-guides/migration-guide-1.9.0-1.10.0.md) * [v1.10.0 → v1.11.x](docs/migration-guides/migration-guide-1.10.0-1.11.0.md) * [v1.11.0 → v1.12.x](docs/migration-guides/migration-guide-1.11.0-1.12.0.md) +* [v1.12.0 → v1.13.x](docs/migration-guides/migration-guide-1.12.0-1.13.0.md) ## How to Contribute * We'd love your help; see these [HL Indy Wiki](https://wiki.hyperledger.org/display/indy/How+to+Contribute) and [slides on how to contribute](http://bit.ly/2ugd0bq). diff --git a/Specs/libindy/1.13.0/libindy.podspec.json b/Specs/libindy/1.13.0/libindy.podspec.json new file mode 100644 index 0000000000..cd00c0650a --- /dev/null +++ b/Specs/libindy/1.13.0/libindy.podspec.json @@ -0,0 +1,23 @@ +{ + "name": "libindy", + "version": "1.13.0", + "summary": "Summary TODO.", + "description": "Description TODO.", + "homepage": "TODO", + "license": { + "type": "Apache License 2.0", + "file": "LICENSE" + }, + "authors": { + "Daniel Hardman": "daniel.hardman@evernym.com" + }, + "platforms": { + "ios": "10.0" + }, + "source": { + "http": "https://repo.sovrin.org/ios/libindy/stable/libindy-core/1.13.0/libindy.tar.gz" + }, + "source_files": "*.h", + "vendored_libraries": "*.a", + "requires_arc": false +} diff --git a/cli/Cargo.lock b/cli/Cargo.lock index ceaae5d956..35584fe449 100644 --- a/cli/Cargo.lock +++ b/cli/Cargo.lock @@ -244,11 +244,11 @@ dependencies = [ [[package]] name = "indy" -version = "1.12.0" +version = "1.13.0" dependencies = [ "failure 0.1.3 (registry+/~https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy-sys 1.12.0", + "indy-sys 1.13.0", "lazy_static 1.4.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -261,13 +261,13 @@ dependencies = [ [[package]] name = "indy-cli" -version = "1.12.0" +version = "1.13.0" dependencies = [ "ansi_term 0.11.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+/~https://github.com/rust-lang/crates.io-index)", "chrono 0.4.6 (registry+/~https://github.com/rust-lang/crates.io-index)", "dirs 1.0.4 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy 1.12.0", + "indy 1.13.0", "lazy_static 1.4.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "libloading 0.5.0 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -286,7 +286,7 @@ dependencies = [ [[package]] name = "indy-sys" -version = "1.12.0" +version = "1.13.0" dependencies = [ "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+/~https://github.com/rust-lang/crates.io-index)", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index abf708bb86..77b6cfcccd 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "indy-cli" -version = "1.12.0" +version = "1.13.0" authors = ["Hyperledger Indy Contributors "] edition = "2018" diff --git a/cli/debian/changelog b/cli/debian/changelog index 08cdb1950e..ece12d02d5 100644 --- a/cli/debian/changelog +++ b/cli/debian/changelog @@ -1,4 +1,4 @@ -indy-cli (1.12.0) unstable; urgency=medium +indy-cli (1.13.0) unstable; urgency=medium [ Hyperledger ] diff --git a/docs/migration-guides/migration-guide-1.12.0-1.13.0.md b/docs/migration-guides/migration-guide-1.12.0-1.13.0.md new file mode 100644 index 0000000000..abf7c63166 --- /dev/null +++ b/docs/migration-guides/migration-guide-1.12.0-1.13.0.md @@ -0,0 +1,42 @@ + + +# Libindy 1.10 to 1.11 migration Guide + +This document is written for developers using Libindy to provide necessary information and +to simplify their transition to Libindy 1.11 from Libindy 1.10. If you are using older Libindy +version you can check migration guides history: + +* [Libindy 1.3 to 1.4 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.4.0/doc/migration-guide.md) +* [Libindy 1.4 to 1.5 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.5.0/doc/migration-guide-1.4.0-1.5.0.md) +* [Libindy 1.5 to 1.6 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.6.0/doc/migration-guide-1.5.0-1.6.0.md) +* [Libindy 1.6 to 1.7 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.7.0/doc/migration-guide-1.6.0-1.7.0.md) +* [Libindy 1.7 to 1.8 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.8.0/doc/migration-guide-1.7.0-1.8.0.md) +* [Libindy 1.8 to 1.9 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.9.0/docs/migration-guides/migration-guide-1.8.0-1.9.0.md) +* [Libindy 1.9 to 1.10 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.10.0/docs/migration-guides/migration-guide-1.9.0-1.10.0.md) +* [Libindy 1.10 to 1.11 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.11.0/docs/migration-guides/migration-guide-1.10.0-1.11.0.md) +* [Libindy 1.11 to 1.12 migration](/~https://github.com/hyperledger/indy-sdk/blob/v1.12.0/docs/migration-guides/migration-guide-1.11.0-1.12.0.md) + +## Table of contents + +* [Notes](#notes) +* [Libindy 1.12 to 1.13 migration](#libindy-112-to-113-migration) + * [Anoncreds API](#anoncreds-api) + +## Libindy 1.12 to 1.13 migration + +#### Anoncreds API + +We have introduced some new functionality in revealed attributes -- you can specify multiple attributes in a single revealed attribute unit using parameter `names`. That way you will receive revealed attributes from a single credential. API calls that have changed: + +* `indy_prover_get_credentials_for_proof_req` +* `indy_prover_search_credentials_for_proof_req` +* `indy_prover_create_proof` + +Last call have a new attribute in a response -- `revealed_attr_groups` -- it contains data about revealed attribute units with `names` field. +Also, `indy_verifier_verify_proof` accepts this attribute in a `requested_proof` field. + +##### Backwards compatibility + +If Verifier (old) sends a proof request without `names` attribute to Prover (new) and it will receive proof without new fields. + +If Verifier (new) sends a proof request with `names` attribute to Prover (old) it will not validate proof request because it will not have parameter `name` in it. \ No newline at end of file diff --git a/libindy/Cargo.lock b/libindy/Cargo.lock index d6e3dc4eda..10eeba5e43 100644 --- a/libindy/Cargo.lock +++ b/libindy/Cargo.lock @@ -563,11 +563,11 @@ source = "registry+/~https://github.com/rust-lang/crates.io-index" [[package]] name = "indy" -version = "1.12.0" +version = "1.13.0" dependencies = [ "failure 0.1.5 (registry+/~https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy-sys 1.12.0", + "indy-sys 1.13.0", "lazy_static 1.4.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -598,7 +598,7 @@ dependencies = [ [[package]] name = "indy-sys" -version = "1.12.0" +version = "1.13.0" dependencies = [ "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.16 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -688,7 +688,7 @@ source = "registry+/~https://github.com/rust-lang/crates.io-index" [[package]] name = "libindy" -version = "1.12.0" +version = "1.13.0" dependencies = [ "android_logger 0.5.3 (registry+/~https://github.com/rust-lang/crates.io-index)", "backtrace 0.3.11 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -702,9 +702,9 @@ dependencies = [ "failure 0.1.5 (registry+/~https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+/~https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy 1.12.0", + "indy 1.13.0", "indy-api-types 0.1.0", - "indy-sys 1.12.0", + "indy-sys 1.13.0", "indy-utils 0.1.0", "indy-wallet 0.1.0", "int_traits 0.1.1 (registry+/~https://github.com/rust-lang/crates.io-index)", diff --git a/libindy/Cargo.toml b/libindy/Cargo.toml index 76e4537b98..fed91c837e 100644 --- a/libindy/Cargo.toml +++ b/libindy/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libindy" -version = "1.12.0" +version = "1.13.0" authors = ["Hyperledger Indy Contributors "] edition = "2018" diff --git a/libindy/ci/setup.android.env.sh b/libindy/ci/setup.android.env.sh index 3fc79658d6..dff49f074d 100644 --- a/libindy/ci/setup.android.env.sh +++ b/libindy/ci/setup.android.env.sh @@ -54,12 +54,21 @@ create_avd(){ yes | sdkmanager --licenses - echo "yes" | - sdkmanager --no_https \ - "emulator" \ - "platform-tools" \ - "platforms;android-24" \ - "system-images;android-24;default;${ABI}" + if [ ! -d "${ANDROID_SDK}/emulator/" ] ; then + echo "yes" | + sdkmanager --no_https \ + "emulator" \ + "platform-tools" \ + "platforms;android-24" \ + "system-images;android-24;default;${ABI}" + + # TODO hack to downgrade Android Emulator. Should be removed as soon as headless mode will be fixed. + curl -o emu.zip https://dl.google.com/android/repository/emulator-linux-5889189.zip + mv emulator emulator_backup + unzip emu.zip + else + echo "Skipping sdkmanager activity" + fi echo "${BLUE}Creating android emulator${RESET}" diff --git a/libindy/ci/ubuntu.dockerfile b/libindy/ci/ubuntu.dockerfile index c015de5872..fdc9b7fb60 100755 --- a/libindy/ci/ubuntu.dockerfile +++ b/libindy/ci/ubuntu.dockerfile @@ -34,8 +34,8 @@ RUN pip3 install -U \ pip \ setuptools \ virtualenv \ - twine \ - plumbum \ + twine==1.15.0 \ + plumbum==1.6.7 six==1.12.0 \ deb-pkg-tools RUN cd /tmp && \ diff --git a/libindy/ci/ubuntu18.dockerfile b/libindy/ci/ubuntu18.dockerfile index cda0890710..e703ad7b76 100644 --- a/libindy/ci/ubuntu18.dockerfile +++ b/libindy/ci/ubuntu18.dockerfile @@ -19,7 +19,7 @@ RUN apt-get update && \ RUN pip3 install -U \ pip \ twine \ - plumbum \ + plumbum==1.6.7 six==1.12.0 \ deb-pkg-tools RUN apt-get update && apt-get install -y --no-install-recommends \ diff --git a/libindy/debian/changelog b/libindy/debian/changelog index 919987a780..8bdf984e91 100644 --- a/libindy/debian/changelog +++ b/libindy/debian/changelog @@ -1,7 +1,10 @@ -libindy (1.12.0) unstable; urgency=medium +libindy (1.13.0) unstable; urgency=medium [ Hyperledger ] +## 1.13.0 +* Added "names" parameter to Proof Request Revealed Attributes (IS-1381) + ## 1.12.0 * Minimal *EXPERIMENTAL* support of Fully-Qualified identifiers: * extended `did_info` parameter of `indy_create_and_store_my_did` function to accepts optional `method_name` filed. This field should be used to create fully qualified DID. @@ -138,4 +141,4 @@ An example flow can be found here: /~https://github.com/hyperledger/indy-sdk/blob/ * Parameter `submitter_did` set as the optional field for: * Ledger API `indy_build_get_*` functions (except `indy_build_get_validator_info_request`). * all functions in Payment API. - * Fixed Android build rustflags for all architectures for libc linking. \ No newline at end of file + * Fixed Android build rustflags for all architectures for libc linking. diff --git a/libnullpay/Cargo.lock b/libnullpay/Cargo.lock index ac38062875..0ff4e378cd 100644 --- a/libnullpay/Cargo.lock +++ b/libnullpay/Cargo.lock @@ -259,11 +259,11 @@ dependencies = [ [[package]] name = "indy" -version = "1.12.0" +version = "1.13.0" dependencies = [ "failure 0.1.3 (registry+/~https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy-sys 1.12.0", + "indy-sys 1.13.0", "lazy_static 1.4.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -276,7 +276,7 @@ dependencies = [ [[package]] name = "indy-sys" -version = "1.12.0" +version = "1.13.0" dependencies = [ "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -332,12 +332,12 @@ source = "registry+/~https://github.com/rust-lang/crates.io-index" [[package]] name = "null-payment-method" -version = "1.12.0" +version = "1.13.0" dependencies = [ "android_logger 0.5.3 (registry+/~https://github.com/rust-lang/crates.io-index)", "dirs 1.0.4 (registry+/~https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.13 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy 1.12.0", + "indy 1.13.0", "lazy_static 1.4.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+/~https://github.com/rust-lang/crates.io-index)", diff --git a/libnullpay/Cargo.toml b/libnullpay/Cargo.toml index 1d22976c14..58dffd15cb 100644 --- a/libnullpay/Cargo.toml +++ b/libnullpay/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "null-payment-method" -version = "1.12.0" +version = "1.13.0" authors = ["Hyperledger Indy Contributors "] build = "build.rs" diff --git a/libnullpay/debian/changelog b/libnullpay/debian/changelog index 636df9bf16..9923bb1a1e 100644 --- a/libnullpay/debian/changelog +++ b/libnullpay/debian/changelog @@ -1,4 +1,4 @@ -libnullpay (1.12.0) unstable; urgency=medium +libnullpay (1.13.0) unstable; urgency=medium [ Hyperledger ] * Initial release diff --git a/vcx/docs/migration-guide-0.4.x-0.5.0.md b/vcx/docs/migration-guide-0.4.x-0.5.0.md new file mode 100644 index 0000000000..ca6c89d3cd --- /dev/null +++ b/vcx/docs/migration-guide-0.4.x-0.5.0.md @@ -0,0 +1,22 @@ +# LibVCX migration guide from 0.3.x to 0.4.0 + +## A Developer Guide for LibVCX migration + +This document is written for developers using LibVCX to provide necessary information and +to simplify their transition to LibVCX 0.4 from LibVCX 0.3.x. + +* [API]() + * [Vcx API](#vcx-api) + +#### Vcx API + +We introduced support for Aries protocols: + * Connection (/~https://github.com/hyperledger/aries-rfcs/tree/master/features/0160-connection-protocol) + * Credential Issuance (/~https://github.com/hyperledger/aries-rfcs/tree/master/features/0036-issue-credential) + * Credential Presentation (/~https://github.com/hyperledger/aries-rfcs/tree/master/features/0037-present-proof) + +In general, if you were using old versions protocols in LibVCX and want to continue using them you don't need to do anything -- you can just take the new version and use it as is -- no formats or workflows were changed. + +If you need to use newer versions of protocols and you are not getting any information from messages -- you need to just set "communication_protocol" value to "aries" and create new connection with agent who supports Aries. You future interaction will be defined by Aries protocols. + +If you need to parse some information from messages, you need to update parsers for the new formats of messages. You can find updated message formats in Aries protocol descriptions. \ No newline at end of file diff --git a/vcx/dummy-cloud-agent/Cargo.lock b/vcx/dummy-cloud-agent/Cargo.lock index 18b90b1d9d..0c405d1c2d 100644 --- a/vcx/dummy-cloud-agent/Cargo.lock +++ b/vcx/dummy-cloud-agent/Cargo.lock @@ -883,11 +883,11 @@ source = "registry+/~https://github.com/rust-lang/crates.io-index" [[package]] name = "indy" -version = "1.12.0" +version = "1.13.0" dependencies = [ "failure 0.1.5 (registry+/~https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy-sys 1.12.0", + "indy-sys 1.13.0", "lazy_static 1.4.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -910,7 +910,7 @@ dependencies = [ "failure 0.1.5 (registry+/~https://github.com/rust-lang/crates.io-index)", "futures 0.1.29 (registry+/~https://github.com/rust-lang/crates.io-index)", "hyper 0.12.35 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy 1.12.0", + "indy 1.13.0", "lazy_static 0.2.11 (registry+/~https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+/~https://github.com/rust-lang/crates.io-index)", "pretty_env_logger 0.2.5 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -928,7 +928,7 @@ dependencies = [ [[package]] name = "indy-sys" -version = "1.12.0" +version = "1.13.0" dependencies = [ "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.16 (registry+/~https://github.com/rust-lang/crates.io-index)", diff --git a/vcx/libvcx/Cargo.lock b/vcx/libvcx/Cargo.lock index b57746b7c1..39a0f95e1d 100644 --- a/vcx/libvcx/Cargo.lock +++ b/vcx/libvcx/Cargo.lock @@ -504,11 +504,11 @@ source = "registry+/~https://github.com/rust-lang/crates.io-index" [[package]] name = "indy" -version = "1.12.0" +version = "1.13.0" dependencies = [ "failure 0.1.5 (registry+/~https://github.com/rust-lang/crates.io-index)", "futures 0.1.27 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy-sys 1.12.0", + "indy-sys 1.13.0", "lazy_static 1.3.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -521,7 +521,7 @@ dependencies = [ [[package]] name = "indy-sys" -version = "1.12.0" +version = "1.13.0" dependencies = [ "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -578,7 +578,7 @@ dependencies = [ [[package]] name = "libvcx" -version = "0.4.2" +version = "0.5.0" dependencies = [ "android_logger 0.5.3 (registry+/~https://github.com/rust-lang/crates.io-index)", "base64 0.8.0 (registry+/~https://github.com/rust-lang/crates.io-index)", @@ -587,8 +587,8 @@ dependencies = [ "env_logger 0.5.13 (registry+/~https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+/~https://github.com/rust-lang/crates.io-index)", "futures 0.1.27 (registry+/~https://github.com/rust-lang/crates.io-index)", - "indy 1.12.0", - "indy-sys 1.12.0", + "indy 1.13.0", + "indy-sys 1.13.0", "json 0.11.13 (registry+/~https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+/~https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+/~https://github.com/rust-lang/crates.io-index)", diff --git a/vcx/libvcx/Cargo.toml b/vcx/libvcx/Cargo.toml index dd43494ec6..157e031fde 100644 --- a/vcx/libvcx/Cargo.toml +++ b/vcx/libvcx/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "libvcx" -version = "0.4.2" +version = "0.5.0" authors = ["Hyperledger Indy Contributors "] publish = false description = "This is the official SDK for Evernym's VCX" @@ -47,8 +47,8 @@ rmp-serde = "0.13.7" base64 = "0.8.0" openssl = "0.10" num-traits = "0.2.0" -indy = { version = "1.12.0", path = "../../wrappers/rust/" } -indy-sys = { version = "1.12.0", path = "../../wrappers/rust/indy-sys/" } +indy = { version = "1.13.0", path = "../../wrappers/rust/" } +indy-sys = { version = "1.13.0", path = "../../wrappers/rust/indy-sys/" } log-panics = "2.0.0" tokio-threadpool = "0.1.6" futures = "0.1.23" @@ -73,7 +73,7 @@ dirs = "1.0.4" [package.metadata.deb] maintainer = "Evernym, Inc." copyright = "2018, Evernym Inc." -depends = "$auto, libindy (=1.11.0)" +depends = "$auto, libindy (=1.13.0)" extended-description = """\ This is Evernym's SDK for managing Verifiable Credential eXchange against an Indy network. For specific instructions on building see the README in the corresponding github repo /~https://github.com/evernym/sdk""" section = "admin" diff --git a/vcx/libvcx/debian/changelog b/vcx/libvcx/debian/changelog index a9cc8c5b61..ca887a07a7 100644 --- a/vcx/libvcx/debian/changelog +++ b/vcx/libvcx/debian/changelog @@ -1,7 +1,15 @@ -libvcx (0.4.2) unstable; urgency=medium +libvcx (0.5.0) unstable; urgency=medium [ Hyperledger ] +## 0.5.0 +* LibVCX Aries support: + * Now you can keep old code without doing any changes and use Aries protocols if you have not parsed any messages. If you need more information -- see the migration guide. + * Implemented Connection RFC (IS-1180) + * Implemented Credential Issuance RFC (IS-1393) + * Implemented Credential Presentation RFC (IS-1394) + * Integrated Connection Protocol into Dummy Cloud Agent (IS-1392) + ## 0.4.2 * *EXPERIMENTAL* Extended provisioning config to accept optional `did_method` filed. This field should be used to create fully qualified DIDs. diff --git a/vcx/wrappers/java/build.gradle b/vcx/wrappers/java/build.gradle index 88343f37bc..34cf1b6951 100755 --- a/vcx/wrappers/java/build.gradle +++ b/vcx/wrappers/java/build.gradle @@ -25,7 +25,7 @@ test { } static def versionMajor() { - return '0.4.2' + return '0.5.0' } static def version() { diff --git a/vcx/wrappers/node/package.json b/vcx/wrappers/node/package.json index abe2833c0e..d2104958e2 100644 --- a/vcx/wrappers/node/package.json +++ b/vcx/wrappers/node/package.json @@ -25,7 +25,7 @@ "url": "git+/~https://github.com/evernym/vcx.git", "type": "git" }, - "version": "0.4.2", + "version": "0.5.0", "dependencies": { "@types/ffi": "0.0.19", "@types/node": "^8.0.47", diff --git a/vcx/wrappers/python3/setup.py b/vcx/wrappers/python3/setup.py index 50eef8b46b..991e20b304 100755 --- a/vcx/wrappers/python3/setup.py +++ b/vcx/wrappers/python3/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages import os -PKG_VERSION = os.environ.get('PACKAGE_VERSION') or '0.4.2' +PKG_VERSION = os.environ.get('PACKAGE_VERSION') or '0.5.0' PKG_NAME = os.environ.get('PACKAGE_NAME') or 'python3-wrapper-vcx' setup( diff --git a/wrappers/java/pom.xml b/wrappers/java/pom.xml index b295c822af..a4f78a469e 100644 --- a/wrappers/java/pom.xml +++ b/wrappers/java/pom.xml @@ -5,7 +5,7 @@ org.hyperledger indy jar - 1.12.0 + 1.13.0 indy This is the official SDK for Hyperledger Indy (https://www.hyperledger.org/projects), which provides a distributed-ledger-based foundation for self-sovereign identity (https://sovrin.org). diff --git a/wrappers/java/src/test/java/org/hyperledger/indy/sdk/interaction/AnoncredsRevocationInteractionTest.java b/wrappers/java/src/test/java/org/hyperledger/indy/sdk/interaction/AnoncredsRevocationInteractionTest.java index b4d40eb03a..ac51dd0ff3 100644 --- a/wrappers/java/src/test/java/org/hyperledger/indy/sdk/interaction/AnoncredsRevocationInteractionTest.java +++ b/wrappers/java/src/test/java/org/hyperledger/indy/sdk/interaction/AnoncredsRevocationInteractionTest.java @@ -137,7 +137,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDemand() throws Exceptio JSONObject credOffer = new JSONObject(credOfferJson); String getCredDefRequest = Ledger.buildGetCredDefRequest(proverDid, credOffer.getString("cred_def_id")).get(); - String getCredDefResponse = Ledger.submitRequest(pool, getCredDefRequest).get(); + String getCredDefResponse = PoolUtils.ensurePreviousRequestApplied(pool, getCredDefRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); ParseResponseResult credDefIdInfo = Ledger.parseGetCredDefResponse(getCredDefResponse).get(); credDefId = credDefIdInfo.getId(); @@ -171,7 +174,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDemand() throws Exceptio // Prover gets RevocationRegistryDefinition JSONObject credential = new JSONObject(credJson); String getRevRegDefRequest = Ledger.buildGetRevocRegDefRequest(proverDid, credential.getString("rev_reg_id")).get(); - String getRevRegDefResponse = Ledger.submitRequest(pool, getRevRegDefRequest).get(); + String getRevRegDefResponse = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegDefRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); ParseResponseResult revRegInfo1 = Ledger.parseGetRevocRegDefResponse(getRevRegDefResponse).get(); String revocRegDefJson = revRegInfo1.getObjectJson(); @@ -208,7 +214,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDemand() throws Exceptio // Prover gets RevocationRegistryDelta from Ledger String getRevRegDeltaRequest = Ledger.buildGetRevocRegDeltaRequest(proverDid, cred_info.getString("rev_reg_id"), - 1, (int) to).get(); - String getRevRegDeltaResponse = Ledger.submitRequest(pool, getRevRegDeltaRequest).get(); + String getRevRegDeltaResponse = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegDeltaRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult revRegInfo2 = Ledger.parseGetRevocRegDeltaResponse(getRevRegDeltaResponse).get(); @@ -222,7 +231,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDemand() throws Exceptio // Prover gets Schema from Ledger getSchemaRequest = Ledger.buildGetSchemaRequest(proverDid, cred_info.getString("schema_id")).get(); - getSchemaResponse = Ledger.submitRequest(pool, getSchemaRequest).get(); + getSchemaResponse = PoolUtils.ensurePreviousRequestApplied(pool, getSchemaRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); ParseResponseResult schemaInfo2 = Ledger.parseGetSchemaResponse(getSchemaResponse).get(); String schemaId = schemaInfo2.getId(); @@ -255,28 +267,40 @@ public void testAnoncredsRevocationInteractionIssuanceByDemand() throws Exceptio // Verifier gets Schema from Ledger String getSchemaReq = Ledger.buildGetSchemaRequest(DID_MY1, identifier.getString("schema_id")).get(); - String getSchemaResp = Ledger.submitRequest(pool, getSchemaReq).get(); + String getSchemaResp = PoolUtils.ensurePreviousRequestApplied(pool, getSchemaReq, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseResponseResult schemaInfo3 = Ledger.parseGetSchemaResponse(getSchemaResp).get(); schemaId = schemaInfo3.getId(); schemaJson = schemaInfo3.getObjectJson(); // Verifier gets CredDef from Ledger String getCredDefReq = Ledger.buildGetCredDefRequest(DID_MY1, identifier.getString("cred_def_id")).get(); - String getCredDefResp = Ledger.submitRequest(pool, getCredDefReq).get(); + String getCredDefResp = PoolUtils.ensurePreviousRequestApplied(pool, getCredDefReq, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseResponseResult credDefInfo3 = Ledger.parseGetCredDefResponse(getCredDefResp).get(); credDefId = credDefInfo3.getId(); credDefJson = credDefInfo3.getObjectJson(); // Verifier gets RevocationRegistryDefinition from Ledger String getRevRegDefReq = Ledger.buildGetRevocRegDefRequest(DID_MY1, identifier.getString("rev_reg_id")).get(); - String getRevRegDefResp = Ledger.submitRequest(pool, getRevRegDefReq).get(); + String getRevRegDefResp = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegDefReq, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); ParseResponseResult revRegDefInfo3 = Ledger.parseGetRevocRegDefResponse(getRevRegDefResp).get(); String revRegDefId = revRegDefInfo3.getId(); revRegDefJson = revRegDefInfo3.getObjectJson(); // Verifier gets RevocationRegistry from Ledger String getRevRegReq = Ledger.buildGetRevocRegRequest(DID_MY1, identifier.getString("rev_reg_id"), identifier.getInt("timestamp")).get(); - String getRevRegResp = Ledger.submitRequest(pool, getRevRegReq).get(); + String getRevRegResp = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegReq, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult revRegInfo3 = Ledger.parseGetRevocRegResponse(getRevRegResp).get(); revRegId = revRegInfo3.getId(); String revRegJson = revRegInfo3.getObjectJson(); @@ -320,7 +344,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDemand() throws Exceptio // Prover gets RevocationRegistryDelta from Ledger getRevRegDeltaRequest = Ledger.buildGetRevocRegDeltaRequest(proverDid, revRegId, (int) from, (int) to).get(); - getRevRegDeltaResponse = Ledger.submitRequest(pool, getRevRegDeltaRequest).get(); + getRevRegDeltaResponse = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegDeltaRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult revRegInfo4 = Ledger.parseGetRevocRegDeltaResponse(getRevRegDeltaResponse).get(); revRegId = revRegInfo4.getId(); @@ -361,7 +388,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDemand() throws Exceptio // Verifier gets RevocationRegistry from Ledger getRevRegReq = Ledger.buildGetRevocRegRequest(DID_MY1, identifier.getString("rev_reg_id"), identifier.getInt("timestamp")).get(); - getRevRegResp = Ledger.submitRequest(pool, getRevRegReq).get(); + getRevRegResp = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegReq, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult revRegInfo5 = Ledger.parseGetRevocRegResponse(getRevRegResp).get(); revRegId = revRegInfo5.getId(); @@ -478,7 +508,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDefault() throws Excepti // Prover gets CredentialDefinition from Ledger String getCredDefRequest = Ledger.buildGetCredDefRequest(proverDid, credDefInfo.getCredDefId()).get(); - String getCredDefResponse = Ledger.submitRequest(pool, getCredDefRequest).get(); + String getCredDefResponse = PoolUtils.ensurePreviousRequestApplied(pool, getCredDefRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); ParseResponseResult credDefIdInfo = Ledger.parseGetCredDefResponse(getCredDefResponse).get(); credDefId = credDefIdInfo.getId(); @@ -508,7 +541,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDefault() throws Excepti // Prover gets RevocationRegistryDefinition String getRevRegDefRequest = Ledger.buildGetRevocRegDefRequest(proverDid, revRegId).get(); - String getRevRegDefResponse = Ledger.submitRequest(pool, getRevRegDefRequest).get(); + String getRevRegDefResponse = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegDefRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); ParseResponseResult revRegInfo1 = Ledger.parseGetRevocRegDefResponse(getRevRegDefResponse).get(); @@ -551,7 +587,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDefault() throws Excepti /* FIXME */ String getRevRegDeltaRequest = Ledger.buildGetRevocRegDeltaRequest(proverDid, revRegId, - 1, (int) to).get(); - String getRevRegDeltaResponse = Ledger.submitRequest(pool, getRevRegDeltaRequest).get(); + String getRevRegDeltaResponse = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegDeltaRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult revRegInfo2 = Ledger.parseGetRevocRegDeltaResponse(getRevRegDeltaResponse).get(); @@ -566,7 +605,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDefault() throws Excepti // Prover gets Schema from Ledger getSchemaRequest = Ledger.buildGetSchemaRequest(proverDid, schemaInfo1.getId()).get(); - getSchemaResponse = Ledger.submitRequest(pool, getSchemaRequest).get(); + getSchemaResponse = PoolUtils.ensurePreviousRequestApplied(pool, getSchemaRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); ParseResponseResult schemaInfo2 = Ledger.parseGetSchemaResponse(getSchemaResponse).get(); String schemaId = schemaInfo2.getId(); @@ -600,7 +642,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDefault() throws Excepti // Verifier gets RevocationRegistry from Ledger String getRevRegReq = Ledger.buildGetRevocRegRequest(DID_MY1, revRegId, (int) timestamp).get(); - String getRevRegResp = Ledger.submitRequest(pool, getRevRegReq).get(); + String getRevRegResp = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegReq, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult revRegInfo3 = Ledger.parseGetRevocRegResponse(getRevRegResp).get(); revRegId = revRegInfo3.getId(); @@ -642,7 +687,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDefault() throws Excepti // Prover gets RevocationRegistryDelta from Ledger getRevRegDeltaRequest = Ledger.buildGetRevocRegDeltaRequest(proverDid, revRegId, (int) from, (int) to).get(); - getRevRegDeltaResponse = Ledger.submitRequest(pool, getRevRegDeltaRequest).get(); + getRevRegDeltaResponse = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegDeltaRequest, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult revRegInfo4 = Ledger.parseGetRevocRegDeltaResponse(getRevRegDeltaResponse).get(); revRegId = revRegInfo4.getId(); @@ -680,7 +728,10 @@ public void testAnoncredsRevocationInteractionIssuanceByDefault() throws Excepti // Verifier gets RevocationRegistry from Ledger getRevRegReq = Ledger.buildGetRevocRegRequest(DID_MY1, revRegId, (int) timestamp).get(); - getRevRegResp = Ledger.submitRequest(pool, getRevRegReq).get(); + getRevRegResp = PoolUtils.ensurePreviousRequestApplied(pool, getRevRegReq, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult revRegInfo5 = Ledger.parseGetRevocRegResponse(getRevRegResp).get(); revRegId = revRegInfo5.getId(); diff --git a/wrappers/java/src/test/java/org/hyperledger/indy/sdk/interaction/AnoncredsVerifyProofAfterCredentialRevokeTest.java b/wrappers/java/src/test/java/org/hyperledger/indy/sdk/interaction/AnoncredsVerifyProofAfterCredentialRevokeTest.java index 221de25a11..d42e2603cb 100644 --- a/wrappers/java/src/test/java/org/hyperledger/indy/sdk/interaction/AnoncredsVerifyProofAfterCredentialRevokeTest.java +++ b/wrappers/java/src/test/java/org/hyperledger/indy/sdk/interaction/AnoncredsVerifyProofAfterCredentialRevokeTest.java @@ -132,7 +132,10 @@ public void testAnoncredsVerifyProofAfterCredentialRevoke() throws Exception { // read accum from ledger long timestampAfterCreatingRevDef = getUnixTimeStamp(); request = Ledger.buildGetRevocRegRequest(didTrustAnchor, revRegDefId, timestampAfterCreatingRevDef).get(); - response = Ledger.submitRequest(pool, request).get(); + response = PoolUtils.ensurePreviousRequestApplied(pool, request, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult resultAfterCreatingRevDef = Ledger.parseGetRevocRegResponse(response).get(); System.out.println("Accum Value at (after creating rev def): " + timestampAfterCreatingRevDef + "\n" + resultAfterCreatingRevDef.getObjectJson() + "\n"); // @@ -180,7 +183,10 @@ public void testAnoncredsVerifyProofAfterCredentialRevoke() throws Exception { // read accum from ledger long timestampAfterWritingDeltaAfterIssueingCredential = getUnixTimeStamp(); request = Ledger.buildGetRevocRegRequest(didTrustAnchor, revRegDefId, timestampAfterWritingDeltaAfterIssueingCredential).get(); - response = Ledger.submitRequest(pool, request).get(); + response = PoolUtils.ensurePreviousRequestApplied(pool, request, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult resultAfterCredentialIssueing = Ledger.parseGetRevocRegResponse(response).get(); System.out.println("Accum Value at (after issueing credential): " + timestampAfterWritingDeltaAfterIssueingCredential + "\n" + resultAfterCredentialIssueing.getObjectJson() + "\n"); // @@ -216,7 +222,10 @@ public void testAnoncredsVerifyProofAfterCredentialRevoke() throws Exception { // read accum from ledger long timestampAfterRevocation = getUnixTimeStamp(); request = Ledger.buildGetRevocRegRequest(didTrustAnchor, revRegDefId, timestampAfterRevocation).get(); - response = Ledger.submitRequest(pool, request).get(); + response = PoolUtils.ensurePreviousRequestApplied(pool, request, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); LedgerResults.ParseRegistryResponseResult resultAfterRevocation = Ledger.parseGetRevocRegResponse(response).get(); System.out.println("Accum Value at (after revocation): " + timestampAfterRevocation + "\n" + resultAfterRevocation.getObjectJson() + "\n"); // @@ -276,7 +285,10 @@ public void testAnoncredsVerifyProofAfterCredentialRevoke() throws Exception { // create the revocation states which participate in the proof request = Ledger.buildGetRevocRegDeltaRequest(null, revRegDefId, timestamp, timestamp).get(); // read the delta for the interval, which was requested in the proof request - response = Ledger.submitRequest(pool, request).get(); + response = PoolUtils.ensurePreviousRequestApplied(pool, request, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); System.out.println("Read the delta from the ledger response:\n" + response + "\n"); LedgerResults.ParseRegistryResponseResult deltaResult = Ledger.parseGetRevocRegDeltaResponse(response).get(); @@ -313,7 +325,11 @@ public void testAnoncredsVerifyProofAfterCredentialRevoke() throws Exception { // the prover creates his own revocation definitions. JSONObject revocRegDefs = new JSONObject(); request = Ledger.buildGetRevocRegDefRequest(didTrustAnchor, revRegDefId).get(); - response = Ledger.signAndSubmitRequest(pool, wallet, didTrustAnchor, request).get(); + request = Ledger.signRequest(wallet, didTrustAnchor, request).get(); + response = PoolUtils.ensurePreviousRequestApplied(pool, request, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); ParseResponseResult parseResult = Ledger.parseGetRevocRegDefResponse(response).get(); String revRegDefReadFromLedgerByVerifier = parseResult.getObjectJson(); revocRegDefs.put(revRegDefId, new JSONObject(revRegDefReadFromLedgerByVerifier)); @@ -326,7 +342,11 @@ public void testAnoncredsVerifyProofAfterCredentialRevoke() throws Exception { long to = timestamp; request = Ledger.buildGetRevocRegDeltaRequest(didTrustAnchor, revRegDefId, from, to).get(); - response = Ledger.signAndSubmitRequest(pool, wallet, didTrustAnchor, request).get(); + request = Ledger.signRequest(wallet, didTrustAnchor, request).get(); + response = PoolUtils.ensurePreviousRequestApplied(pool, request, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); System.out.println("Prover has read the revoc delta for interval from: " + from + "to: " + to + " response from ledger \n" + response + "\n"); LedgerResults.ParseRegistryResponseResult parseRegRespResult = Ledger.parseGetRevocRegDeltaResponse(response).get(); String proverReadDeltaFromLedger = parseRegRespResult.getObjectJson(); @@ -337,7 +357,11 @@ public void testAnoncredsVerifyProofAfterCredentialRevoke() throws Exception { */ long time = getUnixTimeStamp(); request = Ledger.buildGetRevocRegDeltaRequest(didTrustAnchor, revRegDefId, time, time).get(); - response = Ledger.signAndSubmitRequest(pool, wallet, didTrustAnchor, request).get(); + request = Ledger.signRequest(wallet, didTrustAnchor, request).get(); + response = PoolUtils.ensurePreviousRequestApplied(pool, request, innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); System.out.println("Prover has read the revoc delta for interval from: " + time + "to: " + time + " response from ledger \n" + response + "\n"); parseRegRespResult = Ledger.parseGetRevocRegDeltaResponse(response).get(); proverReadDeltaFromLedger = parseRegRespResult.getObjectJson(); diff --git a/wrappers/java/src/test/java/org/hyperledger/indy/sdk/ledger/NymRequestsTest.java b/wrappers/java/src/test/java/org/hyperledger/indy/sdk/ledger/NymRequestsTest.java index b3305cde00..7795967d1f 100644 --- a/wrappers/java/src/test/java/org/hyperledger/indy/sdk/ledger/NymRequestsTest.java +++ b/wrappers/java/src/test/java/org/hyperledger/indy/sdk/ledger/NymRequestsTest.java @@ -93,7 +93,10 @@ public void testNymRequestsWorks() throws Exception { String getNymRequest = Ledger.buildGetNymRequest(myDid, myDid).get(); String getNymResponse = PoolUtils.ensurePreviousRequestApplied(pool, getNymRequest, - response -> compareResponseType(response, "REPLY")); + innerResponse -> { + JSONObject innerResponseObject = new JSONObject(innerResponse); + return !innerResponseObject.getJSONObject("result").isNull("seqNo"); + }); assertNotNull(getNymResponse); String nymDataJson = Ledger.parseGetNymResponse(getNymResponse).get(); diff --git a/wrappers/nodejs/package.json b/wrappers/nodejs/package.json index 1a428209df..3480ccb056 100644 --- a/wrappers/nodejs/package.json +++ b/wrappers/nodejs/package.json @@ -1,6 +1,6 @@ { "name": "indy-sdk", - "version": "1.12.0", + "version": "1.13.0", "description": "Native bindings for hyperledger indy", "author": "hyperledger", "license": "Apache-2.0", diff --git a/wrappers/python/setup.py b/wrappers/python/setup.py index 47cc4ae9a0..4c69a4ce59 100644 --- a/wrappers/python/setup.py +++ b/wrappers/python/setup.py @@ -1,7 +1,7 @@ from distutils.core import setup import os -PKG_VERSION = os.environ.get('PACKAGE_VERSION') or '1.12.0' +PKG_VERSION = os.environ.get('PACKAGE_VERSION') or '1.13.0' TEST_DEPS = [ 'pytest<3.7', 'pytest-asyncio', 'base58' diff --git a/wrappers/rust/Cargo.toml b/wrappers/rust/Cargo.toml index 93669fe7b1..374a08ce68 100644 --- a/wrappers/rust/Cargo.toml +++ b/wrappers/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "indy" -version = "1.12.0" +version = "1.13.0" description = "A library for assisting developers using LibIndy API" authors = ["Hyperledger Indy Contributors "] homepage = "/~https://github.com/hyperledger/indy-sdk" @@ -24,7 +24,7 @@ lazy_static = "1.3" log = { version = "0.4.1", features = ["std"] } num-traits = "0.2" num-derive = "0.2" -indy-sys = { path ="indy-sys", version = "=1.12.0" } +indy-sys = { path ="indy-sys", version = "=1.13.0" } libc = "=0.2.60" serde_json = "1.0.40" serde_derive = "1.0.97" diff --git a/wrappers/rust/indy-sys/Cargo.toml b/wrappers/rust/indy-sys/Cargo.toml index e7042fddc3..ff38d57990 100644 --- a/wrappers/rust/indy-sys/Cargo.toml +++ b/wrappers/rust/indy-sys/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "indy-sys" description = "FFI bindings to Libindy C API" -version = "1.12.0" +version = "1.13.0" authors = ["Hyperledger Indy Contributors "] build = "build.rs" links = "indy"