All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Replaced
android.support
dependencies with newandroidx
versions
- Fixed error in
FogReport
finalize
- Removed Jetifier
No code changes are required to upgrade from 6.0.0 to 6.0.1
- Attestation now uses DCAP instead of EPID on supported network versions
- Deprecated
Verifier
API in favor ofTrustedIdentity
- Replace deprecated
Verifier
configuration code with newTrustedIdentity
- Order
FogSeed
s byingestInvocationId
No code changes are required to upgrade from 5.0.0 to 5.0.1
- Exposed
AttestedClient
and related APIs - Updated dependencies
- Updated MobileCoin to version 5.0.0
No code changes are required to upgrade from 4.1.1 to 5.0.0
- OnetimeKeys
- OnetimeKeys.createTxOutPublicKey
- RistrettoPrivate.fromRandom
- Moved Util.recoverOnetimePrivateKey to OnetimeKeys and made public
- Moved Util.getSharedSecret to OnetimeKeys and made public
No code changes are required to upgrade from 4.1.0 to 4.1.1
- Javadoc
- Sources
- versionedCryptoBoxEncrypt
- protoc plugin for generating HTTP APIs
- Added more logging statements to critical areas of code
- Updated bindings to version 4.1.0
- HTTP APIs are now auto-generated using a protoc plugin
- Various logging statements have been improved
- AccountKey sub-keys are exposed via getters
- Dependency updates
No code changes are required to upgrade from 4.0.0.1 to 4.1.0
VersionedCryptoBox.versionedCryptoBoxEncrypt(RistrettoPublic, byte[])
- Can be used to encrypt data for a recipient using the recipient's public key
- The recipient can decrypt the data using their private key
- Exposed accessors for
AccountKey
keys to public API - Updated dependency versions
- Changed license to Apache Version 2.0
- AccountKey.createNew has been deprecated. Please remove references to it and use one of the other AccountKey creation methods
- Added
Rng
with two default implementations - Added ability to provide
Rng
for calls toMobileCoinClient.prepareTransaction
- Added
SignedContingentInput
s which can be used on block version >= 3 networks to quantities of two different tokens - Added
DestinationWithPaymentRequestMemo
andDestinationWithPaymentRequestMemoData
- Added
DestinationWithPaymentIntentMemo
andDestinationWithPaymentIntentMemo
- Added
SenderWithPaymentIntentMemo
andSenderWithPaymentIntentMemoData
- Added
OwnedTxOut.getSubaddressIndex
- Added methods to get unvalidated
MemoData
ofSenderMemo
,SenderWithPaymentRequestMemo
, andSenderWithPaymentIntentMemo
- Updated bindings to version 2.0.0
- Updated okhttp to version 3.11.0
- Fixed insecure transport protocol using TLS
- Fixed connection reset errors in HTTP clients
No code changes are required to upgrade from 1.2.2.4 to 4.0.0
- Balance checking algorithm performance improvements
- Query size calculation in
DefaultFogQueryScalingStrategy
No code changes are required to upgrade from 1.2.2.3 to 1.2.2.4
- Added
getTransactionStatusQuick
toMobileCoinClient
No code changes are required to upgrade from 1.2.2.2 to 1.2.2.3
GRPCFogKeyImageService
properly convertsStatusRuntimeException
toNetworkException
No code changes are required to upgrade from 1.2.2.1 to 1.2.2.2
- Added
AccountActivity.getAllTokenTxOuts(TokenId)
- Changed visibility of
OwnedTxOut.getAmount()
to public
No code changes are required to upgrade from 1.2.2 to 1.2.2.1
- Added a
ProposeTxResult
field toInvalidTransactionException
. This field indicates why theTransaction
was not accepted. MobileCoinTransactionClient.submitTransaction
now returns Consensus block count at submission time.
- Updated bindings to version 1.2.2
OwnedTxOut
s returned through the public API are copied from internalOwnedTxOut
s. This fixes some issues caused byOwnedTxOut
s being updated after being fetched from the public API.- Fixed default HttpRequester authentication
- Fixed a dependency issue introduced by some project structure changes
No code changes are required to upgrade from 1.2.1 to 1.2.2
- To easily handle various types of transaction failure differently, code such as the following
can be used:
switch(invalidTransactionException.getResult())
- To obtain the Consensus block index at the time of
Transaction
submission, check the return value ofMobileCoinTransactionClient.submitTransaction
- Added Amount.ofMOB(BigInteger value) to create an Amount with MOB token ID
- Updated bindings to version 1.2.1
No code changes are required to upgrade from 1.2.0 to 1.2.1
- Calls to
new Amount(value, TokenId.MOB)
may be replaced withAmount.ofMOB(value)
.
- Support for multiple token types
- Recoverable Transaction History (RTH)
- Default HttpRequester Implementation
- Parcelable support for various SDK classes
- Internal Consensus load balancer
- Change TxOuts are now sent to a dedicated change subaddress
- Internal block info cache invalidated on submit transaction error, causing fees and block version to be re-fetched
- Fixed API level 24 support
- FogSyncException will be thrown if Fog View and Ledger are out of sync with each other or Consensus. This signifies that balances may temporarily be out of date or incorrect.
- The constructor for
MobileCoinClient
now requires one additional parameter, aTransportProtocol
This can either beTransportProtocol.forGRPC()
orTransportProtocol.forHTTP(Requester)
. - Some methods that interact with network services now throw a
FogSyncException
. This signifies that the information gathered from the network may be temporarily out of date. - With support for multiple token types, various account and transaction related methods have been
deprecated. Many of these deprecated methods have simply been parameterized for a
TokenId
. Refer to the Javadoc of deprecated methods for instructions on what to use instead. Until they are removed, deprecated API methods will continue to function identically to how they did in 1.1. - For sending transactions, a
TxOutMemoBuilder
will be required to createTxOutMemo
s. These can be used to reconstruct Recoverable Transaction History (RTH). This will be required on network version 1.2.0.TxOutMemoBuilder.createSenderAndDestinationRTHMemoBuilder()
can be used to satisfy this requirement and is reverse compatible with network version 1.1.
- Network Robustness. Host applications now have the ability to choose which transport protocols (HTTPS or GRPC) the SDK uses when communicating with MobileCoin services.
- Decommissioned RNGs. The SDK no longer generates search keys from Randon Number Generator (RNG) seeds that have been "decommissioned," which are RNGS that are associated with an outdated enclave.
- Reset attestation state on errors.
- Added
minimumFeeCacheTTL
parameter toClientConfig
to control the duration of the minimum transaction fee caching period. The default value is set to 30 minutes.
- Dynamic Fees
- Root entropy for
TransferPayload
has been replaced with bip39 entropy - Added
final
modifiers to the classes that should not be extended
setAuthorization
method has been split intosetFogBasicAuthorization
andsetConsensusBasicAuthorization
- Report URIs in the
AccountKey
andPublicAddress
are no loger normalized by default
- Incorrect balance in certain situations
- Estimate total fee in AccountSnapshot
- SLIP-10 AccountKey derivation
- New
AccountKey
constructors:fromBip39Entropy
andfromMnemonicPhrase
- Build on Apple Silicon
- Hash and Equal performance improvements
- Environments switching for Tests
fromRootEntropy
constructor ofAccountKey
(usefromBip39Entropy
instead)
- Setting hardening_advisory in the android-bindings
- Initial release