public async Task eth_call_should_invoke_client_method() { var callTransaction = new CallTransactionModel(); var blockParameter = BlockParameterModel.Latest; await _proxy.eth_call(callTransaction, blockParameter); await _client.Received().SendAsync <byte[]>(nameof(_proxy.eth_call), callTransaction, blockParameter.Type); }
public async Task call_should_invoke_proxy_eth_call_with_transaction_argument() { var transaction = Build.A.Transaction.TestObject; var data = new byte[] { 0, 1, 2 }; var callModel = CallTransactionModel.FromTransaction(transaction); _proxy.eth_call(Arg.Is <CallTransactionModel>(x => x.From == callModel.From && x.To == callModel.To && x.Gas == callModel.Gas && x.GasPrice == callModel.GasPrice && x.Value == callModel.Value && x.Data.SequenceEqual(callModel.Data))) .Returns(RpcResult <byte[]> .Ok(data)); var result = await _ndmBridge.CallAsync(transaction); await _proxy.Received().eth_call(Arg.Any <CallTransactionModel>()); result.Should().BeSameAs(data); }
public async Task <byte[]> CallAsync(Transaction transaction) { var result = await _proxy.eth_call(CallTransactionModel.FromTransaction(transaction)); return(result?.IsValid == true ? result.Result ?? Array.Empty <byte>() : Array.Empty <byte>()); }