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.
Added a set of new APIs around credentials and proofs that work with messages that should be exchanged without handling the transport of those messages. This removes the dependency on an agency/cloud-agent and allows the user of the SDK to transport those messages themselves.
vcx_init_minimal
- Initialize vcx with the minimal configuration (wallet, pool must already be set with vcx_wallet_set_handle() and vcx_pool_set_handle()) and without any agency configuration
vcx_pool_set_handle
- Set the pool handle before calling vcx_init_minimal
vcx_wallet_set_handle
- Set the wallet handle before calling vcx_init_minimal
vcx_credential_get_request_msg
- Get the credential request message that can be sent to the specified connection.
vcx_credential_update_state_with_message
- Checks for any state change from the given message and updates the the state attribute.
vcx_disclosed_proof_get_proof_msg
- Get the proof message for sending.
vcx_disclosed_proof_update_state_with_message
- Checks for any state change from the given message and updates the the state attribute.
vcx_issuer_get_credential_offer_msg
- Send a credential offer to user showing what will be included in the actual credential.
vcx_issuer_get_credential_msg
- Send Credential that was requested by user.
vcx_proof_get_request_msg
- Get the proof request message.
- In the current state, Libvcx provides functionality for the publishing of 2 types of entities that can be endorsed:
- Schema
- Credential Definition
The set of new similar functions was added to provide a way how these entities (schema
, credentialdef
) can be endorsered.
* vcx_*_prepare_for_endorser
- build transaction and crete internal object in differed state.
* vcx_*_update_state
- functions to update state of internal object.
* vcx_*_get_state
- functions to get state of internal object.
* vcx_endorse_transaction
- function to endorse a transaction to the ledger.
let (schema_hsndle, schema_json) = vcx_schema_prepare_for_endorser(...)
vcx_schema_get_state(schema_hsndle) == Built
vcx_endorse_transaction(schema_json)
vcx_schema_update_state(schema_hsndle)
vcx_schema_get_state(schema_hsndle) == Published
Supported sign/verify with payment address functionality:
* vcx_wallet_sign_with_address
- to sign a message with a payment address.
* vcx_wallet_verify_with_address
- to verify a signature with a payment address.
Extended Libvcx initialization config to accept pool configuration.
{
...
"pool_config": "{
"timeout": int (optional) - specifies the maximum number of seconds to wait for pool response (ACK, REPLY).
"extended_timeout": int (optional), an additional number of seconds to wait for REPLY in case ACK has been received.
"preordered_nodes": array<string> - (optional), names of nodes which will have priority during request sending.
This can be useful if a user prefers querying specific nodes.
Note: Nodes not specified will be placed randomly.
"number_read_nodes": int (optional) - the number of nodes to send read requests (2 by default)
}"
}