Use DAppChainClientConfiguration class for DAppChainClient options instead of having multiple properties inside of DAppChainClient.
Modified Loom.Nethereum.Minimal.Packed.dll to not use PublicKey when referencing Loom.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 IDAppChainClientCallExecutor, a layer that controls the blockchain calls flow. All calls made from inside DAppChainClient must be wrapped in IDAppChainClientCallExecutor methods calls. Calling IRpcClient.SendAsync directly on an instance of IRpcClient 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.
DAppChainClientConfiguration
class forDAppChainClient
options instead of having multiple properties inside ofDAppChainClient
.Loom.Nethereum.Minimal.Packed.dll
to not use PublicKey when referencingLoom.Newtonsoft.Json
(was causing assembly reference mismatch in Unity in some cases).WebSocketRpcClient
that caused timeouts when multiple calls were going on at the same time.Address.FromBytes
convenience method.EvmContract.GetEvent
andEvmEvent
, allows getting past event with filters (covers https://github.com/loomnetwork/unity-sdk/issues/50 and https://github.com/loomnetwork/unity-sdk/issues/12).EvmContract.GetBlockHeight
.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.DefaultDAppChainClientCallExecutor
:TimeoutException
if the calls receives no response for too long.