Ejemplo n.º 1
0
        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>());
        }