Exemplo n.º 1
0
        public async Task <BigInteger> QueryPReviousContractState(IAccount account)
        {
            BalanceOfFunction balanceOfFunctionMessage = new BalanceOfFunction()
            {
                Owner = account.Address,
            };

            IContractQueryHandler <BalanceOfFunction> balanceHandler = bcNode.Eth.GetContractQueryHandler <BalanceOfFunction>();
            BalanceOfOutputDTO balanceOutput = await balanceHandler.QueryDeserializingToObjectAsync <BalanceOfOutputDTO>(balanceOfFunctionMessage, contractAddress, new Nethereum.RPC.Eth.DTOs.BlockParameter(transactionReceipt.BlockNumber));

            return(balanceOutput.Balance);
        }
Exemplo n.º 2
0
        public async Task <BigInteger> QueryChain(IAccount account)
        {
            BalanceOfFunction balanceOfFunctionMessage = new BalanceOfFunction()
            {
                Owner = account.Address,
            };

            IContractQueryHandler <BalanceOfFunction> balanceHandler = bcNode.Eth.GetContractQueryHandler <BalanceOfFunction>();
            BalanceOfOutputDTO balanceOutput = await balanceHandler.QueryDeserializingToObjectAsync <BalanceOfOutputDTO>(balanceOfFunctionMessage, contractAddress);

            return(balanceOutput.Balance);
        }
        public async Task AfterDeployment_BalanceOwner_ShouldBeTheSameAsInitialSupply(int initialSupply)
        {
            var contractDeploymentDefault = GetDeploymentMessage();

            contractDeploymentDefault.InitialAmount = initialSupply;

            GivenADeployedContract(contractDeploymentDefault);

            var balanceOfExpecedResult = new BalanceOfOutputDTO()
            {
                Balance = initialSupply
            };

            WhenQueryingThen(SimpleStandardContractTest.GetBalanceOfOwnerMessage(), balanceOfExpecedResult);
        }
        public async Task Transfering_ShouldIncreaseTheBalanceOfReceiver(int valueToSend)
        {
            var contractDeploymentDefault = SimpleStandardContractTest.GetDeploymentMessage();

            Assert.False(valueToSend > contractDeploymentDefault.InitialAmount, "value to send is bigger than the total supply, please adjust the test data");

            GivenADeployedContract(contractDeploymentDefault);

            var receiver = SimpleStandardContractTest.ReceiverAddress;

            var transferMessage = new TransferFunction()
            {
                Value       = valueToSend,
                FromAddress = DefaultTestAccountConstants.Address,
                To          = receiver,
            };

            var expectedEvent = new TransferEventDTO()
            {
                From  = DefaultTestAccountConstants.Address.ToLower(),
                To    = SimpleStandardContractTest.ReceiverAddress.ToLower(),
                Value = valueToSend
            };

            GivenATransaction(transferMessage).
            ThenExpectAnEvent(expectedEvent);

            var queryBalanceReceiverMessage = new BalanceOfFunction()
            {
                Owner = ReceiverAddress
            };
            var balanceOfExpectedResult = new BalanceOfOutputDTO()
            {
                Balance = valueToSend
            };

            WhenQuerying <BalanceOfFunction, BalanceOfOutputDTO>(queryBalanceReceiverMessage)
            .ThenExpectResult(balanceOfExpectedResult);
        }