public async void ShouldDecodeTransactionDeployment() { //EthereumClientIntegrationFixture.AccountAddress var senderAddress = EthereumClientIntegrationFixture.AccountAddress; var web3 = _ethereumClientIntegrationFixture.GetWeb3(); var deploymentMessage = new StandardTokenDeployment { TotalSupply = 10000, FromAddress = senderAddress, Gas = new HexBigInteger(900000) }; var deploymentHandler = web3.Eth.GetContractDeploymentHandler <StandardTokenDeployment>(); var transactionReceipt = await deploymentHandler.SendRequestAndWaitForReceiptAsync(deploymentMessage).ConfigureAwait(false); var transaction = await web3.Eth.Transactions.GetTransactionByHash.SendRequestAsync(transactionReceipt.TransactionHash).ConfigureAwait(false); var deploymentMessageDecoded = transaction.DecodeTransactionToDeploymentMessage <StandardTokenDeployment>(); Assert.Equal(deploymentMessage.TotalSupply, deploymentMessageDecoded.TotalSupply); Assert.Equal(deploymentMessage.FromAddress.ToLower(), deploymentMessageDecoded.FromAddress.ToLower()); Assert.Equal(deploymentMessage.Gas, deploymentMessageDecoded.Gas); }
public async void Test() { var senderAddress = AccountFactory.Address; var web3 = Web3Factory.GetWeb3(); var deploymentMessage = new StandardTokenDeployment { TotalSupply = 10000, FromAddress = senderAddress, Gas = new HexBigInteger(900000) }; var deploymentHandler = web3.Eth.GetContractDeploymentHandler <StandardTokenDeployment>(); var transactionReceipt = await deploymentHandler.SendRequestAndWaitForReceiptAsync(deploymentMessage); var contractAddress = transactionReceipt.ContractAddress; var newAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe"; var transactionMessage = new TransferFunction { FromAddress = senderAddress, To = newAddress, TokenAmount = 1000 }; var transferHandler = web3.Eth.GetContractTransactionHandler <TransferFunction>(); var transferReceipt = await transferHandler.SendRequestAndWaitForReceiptAsync(transactionMessage, contractAddress); var balanceOfFunctionMessage = new BalanceOfFunction { Owner = newAddress, FromAddress = senderAddress }; var balanceHandler = web3.Eth.GetContractQueryHandler <BalanceOfFunction>(); var balanceFirstTransaction = await balanceHandler.QueryAsync <int>(balanceOfFunctionMessage, contractAddress); Assert.Equal(1000, balanceFirstTransaction); var transferReceipt2 = await transferHandler.SendRequestAndWaitForReceiptAsync(transactionMessage, contractAddress); var balanceSecondTransaction = await balanceHandler.QueryDeserializingToObjectAsync <BalanceOfFunctionOutput>(balanceOfFunctionMessage, contractAddress); Assert.Equal(2000, balanceSecondTransaction.Balance); var balanceFirstTransactionHistory = await balanceHandler.QueryDeserializingToObjectAsync <BalanceOfFunctionOutput>(balanceOfFunctionMessage, contractAddress, new BlockParameter(transferReceipt.BlockNumber)); Assert.Equal(1000, balanceFirstTransactionHistory.Balance); }
public async void ShouldDecodeTransactionInput() { var senderAddress = EthereumClientIntegrationFixture.AccountAddress; var web3 = _ethereumClientIntegrationFixture.GetWeb3(); var deploymentMessage = new StandardTokenDeployment { TotalSupply = 10000, FromAddress = senderAddress, Gas = new HexBigInteger(900000) }; var deploymentHandler = web3.Eth.GetContractDeploymentHandler <StandardTokenDeployment>(); var transactionReceipt = await deploymentHandler.SendRequestAndWaitForReceiptAsync(deploymentMessage); var contractAddress = transactionReceipt.ContractAddress; var newAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe"; var transactionMessage = new TransferFunction { FromAddress = senderAddress, To = newAddress, TokenAmount = 1000 }; var transferHandler = web3.Eth.GetContractTransactionHandler <TransferFunction>(); var transferReceipt = await transferHandler.SendRequestAndWaitForReceiptAsync(contractAddress, transactionMessage); var transaction = await web3.Eth.Transactions.GetTransactionByHash.SendRequestAsync(transferReceipt.TransactionHash); var transferDecoded = transaction.DecodeTransactionToFunctionMessage <TransferFunction>(); Assert.Equal(transactionMessage.To.ToLower(), transferDecoded.To.ToLower()); Assert.Equal(transactionMessage.FromAddress.ToLower(), transferDecoded.FromAddress.ToLower()); Assert.Equal(transactionMessage.TokenAmount, transferDecoded.TokenAmount); }
public async void Test() { var senderAddress = EthereumClientIntegrationFixture.AccountAddress; var web3 = _ethereumClientIntegrationFixture.GetWeb3(); var deploymentMessage = new StandardTokenDeployment { TotalSupply = 10000, FromAddress = senderAddress, Gas = new HexBigInteger(900000) }; var deploymentHandler = web3.Eth.GetContractDeploymentHandler <StandardTokenDeployment>(); var transactionReceipt = await deploymentHandler.SendRequestAndWaitForReceiptAsync(deploymentMessage); var contractAddress = transactionReceipt.ContractAddress; var newAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe"; var transactionMessage = new TransferFunction { FromAddress = senderAddress, To = newAddress, TokenAmount = 1000 }; var transferHandler = web3.Eth.GetContractTransactionHandler <TransferFunction>(); var estimatedGas = await transferHandler.EstimateGasAsync(contractAddress, transactionMessage); // for demo purpouses gas estimation it is done in the background so we don't set it transactionMessage.Gas = estimatedGas.Value; var transferReceipt = await transferHandler.SendRequestAndWaitForReceiptAsync(contractAddress, transactionMessage); var balanceOfFunctionMessage = new BalanceOfFunction { Owner = newAddress, FromAddress = senderAddress }; var balanceHandler = web3.Eth.GetContractQueryHandler <BalanceOfFunction>(); var balanceFirstTransaction = await balanceHandler.QueryAsync <int>(contractAddress, balanceOfFunctionMessage); Assert.Equal(1000, balanceFirstTransaction); var transferReceipt2 = await transferHandler.SendRequestAndWaitForReceiptAsync(contractAddress, transactionMessage); var balanceSecondTransaction = await balanceHandler.QueryDeserializingToObjectAsync <BalanceOfFunctionOutput>(balanceOfFunctionMessage, contractAddress); Assert.Equal(2000, balanceSecondTransaction.Balance); var balanceFirstTransactionHistory = await balanceHandler.QueryDeserializingToObjectAsync <BalanceOfFunctionOutput>(balanceOfFunctionMessage, contractAddress, new BlockParameter(transferReceipt.BlockNumber)); Assert.Equal(1000, balanceFirstTransactionHistory.Balance); }