- Use
DAppChainClientConfiguration
class forDAppChainClient
options instead of having multiple properties inside ofDAppChainClient
.timeout
optional parameter is now gone fromContract.Call*
methods, modifyCallTimeout
andStaticCallTimeout
inDAppChainClient.Configuration
now. - Modified
Loom.Nethereum.Minimal.Packed.dll
to not use PublicKey when referencingLoom.Newtonsoft.Json
(was causing assembly reference mismatch in Unity in some cases). - Fixed an issue in
WebSocketRpcClient
that caused timeouts when multiple calls were going on at the same time. - Added
Address.FromBytes
convenience method. - Added
EvmContract.GetEvent
andEvmEvent
, allows getting past event with filters (covers loomnetwork#50 and loomnetwork#12). - Added
EvmContract.GetBlockHeight
. - Added
IDAppChainClientCallExecutor
, a layer that controls the blockchain calls flow. All calls made from insideDAppChainClient
must be wrapped inIDAppChainClientCallExecutor
methods calls. CallingIRpcClient.SendAsync
directly on an instance ofIRpcClient
should now be considered unsafe. - Implemented
DefaultDAppChainClientCallExecutor
:- Calls throw a
TimeoutException
if the calls receives no response for too long. - Calls are queued, there can be only one active call at any given moment.
- If the blockchain reports an invalid nonce, the call will be retried a number of times.
- Calls throw a