public static async Task SolidityV2StructTests() { var address = "0x12890d2cce102216644c59daE5baed380d84830c"; var privateKey = "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7"; var web3 = new Web3.Web3(new Account(privateKey), defaultTimeOutForTests); var deploymentReceipt = await web3.Eth.GetContractDeploymentHandler <TestContractDeployment>() .SendRequestAndWaitForReceiptAsync(); var functionTest = new TestFunction(); var input = new TestStructStrings() { Id = 1, Id2 = "hello", SubStruct1 = new SubStructUintString() { Id = 200, Id2 = "Giraffe", Sub = new SubStructUInt() { Id = 20 } }, SubStruct2 = new SubStructUintString() { Id = 300, Id2 = "Elephant", Sub = new SubStructUInt() { Id = 30000 } }, }; functionTest.TestStruct = input; var contractHandler = web3.Eth.GetContractHandler(deploymentReceipt.ContractAddress); var testStructArrayResult = await contractHandler.QueryDeserializingToObjectAsync <TestArray, TestArrayOuputDTO>(); Assert.Equal(1, testStructArrayResult.SimpleStructs[0].Id1); Assert.Equal(2, testStructArrayResult.SimpleStructs[1].Id1); var id1Before = await contractHandler.QueryAsync <Id1Function, BigInteger>(); Assert.Equal(1, id1Before); var receiptTransaction = await contractHandler.SendRequestAndWaitForReceiptAsync(functionTest); var id1After = await contractHandler.QueryAsync <Id1Function, BigInteger>(); Assert.Equal(1, id1After); var id2After = await contractHandler.QueryAsync <Id2Function, BigInteger>(); Assert.Equal(200, id2After); var id3After = await contractHandler.QueryAsync <Id3Function, BigInteger>(); Assert.Equal(30000, id3After); var id4After = await contractHandler.QueryAsync <Id4Function, string>(); Assert.Equal("Elephant", id4After); var testDataFromContract = await contractHandler.QueryDeserializingToObjectAsync <GetTestFunction, GetTestFunctionOuptputDTO>(); Assert.Equal(5, testDataFromContract.Test1); var functionStorage = new SetStorageStructFunction { TestStruct = input }; var receiptSending = await contractHandler.SendRequestAndWaitForReceiptAsync(functionStorage); var storageData = await contractHandler.QueryDeserializingToObjectAsync <GetTestStructStorageFunction, TestStructStrings>(); Assert.Equal("hello", storageData.Id2); var eventStorage = contractHandler.GetEvent <TestStructStorageChangedEvent>(); var eventOutputs = eventStorage.DecodeAllEventsForEvent(receiptSending.Logs); Assert.Equal(1, eventOutputs[0].Event.TestStruct.Id); var eventUntyped = new Event(web3.Client, deploymentReceipt.ContractAddress, eventStorage.EventABI); var eventOutputs2 = eventUntyped.DecodeAllEventsDefaultForEvent(receiptSending.Logs); Assert.Equal("0x12890d2cce102216644c59dae5baed380d84830c", eventOutputs2[0].Event[0].Result); Assert.Equal("sender", eventOutputs2[0].Event[0].Parameter.Name); }
public static async Task SuperFunSampleStringAsync() { var address = "0x12890d2cce102216644c59daE5baed380d84830c"; var privateKey = "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7"; var web3 = new Web3.Web3(new Account(privateKey)); var deploymentReceipt = await web3.Eth.GetContractDeploymentHandler <TestContractDeployment>() .SendRequestAndWaitForReceiptAsync(); var functionTest = new TestFunction(); var input = new TestStructStrings() { Id = 1, Id2 = "hello", SubStruct1 = new SubStructUintString() { Id = 200, Id2 = "Giraffe", Sub = new SubStructUInt() { Id = 20 } }, SubStruct2 = new SubStructUintString() { Id = 300, Id2 = "Elephant", Sub = new SubStructUInt() { Id = 30000 } }, }; functionTest.TestStruct = input; var contractHandler = web3.Eth.GetContractHandler(deploymentReceipt.ContractAddress); var id1Before = await contractHandler.QueryAsync <Id1Function, BigInteger>(); var receiptTransaction = await contractHandler.SendRequestAndWaitForReceiptAsync(functionTest); var id1After = await contractHandler.QueryAsync <Id1Function, BigInteger>(); var id2After = await contractHandler.QueryAsync <Id2Function, BigInteger>(); var id3After = await contractHandler.QueryAsync <Id3Function, BigInteger>(); var id4After = await contractHandler.QueryAsync <Id4Function, string>(); var testDataFromContract = await contractHandler.QueryDeserializingToObjectAsync <GetTestFunction, GetTestFunctionOuptputDTO>(); var functionStorage = new SetStorageStructFunction { TestStruct = input }; var receiptSending = await contractHandler.SendRequestAndWaitForReceiptAsync(functionStorage); var storageData = await contractHandler.QueryDeserializingToObjectAsync <GetTestStructStorageFunction, TestStructStrings>(); var eventStorage = contractHandler.GetEvent <TestStructStorageChangedEvent>(); var eventOutputs = eventStorage.DecodeAllEventsForEvent(receiptSending.Logs); }
public async Task SolidityV2StructTests() { var web3 = _ethereumClientIntegrationFixture.GetWeb3(); var deploymentReceipt = await web3.Eth.GetContractDeploymentHandler <TestContractDeployment>() .SendRequestAndWaitForReceiptAsync().ConfigureAwait(false); var functionTest = new TestFunction(); var input = new TestStructStrings() { Id = 1, Id2 = "hello", SubStruct1 = new SubStructUintString() { Id = 200, Id2 = "Giraffe", Sub = new SubStructUInt() { Id = 20 } }, SubStruct2 = new SubStructUintString() { Id = 300, Id2 = "Elephant", Sub = new SubStructUInt() { Id = 30000 } }, }; functionTest.TestStruct = input; var contractHandler = web3.Eth.GetContractHandler(deploymentReceipt.ContractAddress); var testStructArrayResult = await contractHandler.QueryDeserializingToObjectAsync <TestArray, TestArrayOuputDTO>().ConfigureAwait(false); Assert.Equal(1, testStructArrayResult.SimpleStructs[0].Id1); Assert.Equal(2, testStructArrayResult.SimpleStructs[1].Id1); var id1Before = await contractHandler.QueryAsync <Id1Function, BigInteger>().ConfigureAwait(false); Assert.Equal(1, id1Before); var receiptTransaction = await contractHandler.SendRequestAndWaitForReceiptAsync(functionTest).ConfigureAwait(false); var id1After = await contractHandler.QueryAsync <Id1Function, BigInteger>().ConfigureAwait(false); Assert.Equal(1, id1After); var id2After = await contractHandler.QueryAsync <Id2Function, BigInteger>().ConfigureAwait(false); Assert.Equal(200, id2After); var id3After = await contractHandler.QueryAsync <Id3Function, BigInteger>().ConfigureAwait(false); Assert.Equal(30000, id3After); var id4After = await contractHandler.QueryAsync <Id4Function, string>().ConfigureAwait(false); Assert.Equal("Elephant", id4After); var testDataFromContract = await contractHandler.QueryDeserializingToObjectAsync <GetTestFunction, GetTestFunctionOuptputDTO>().ConfigureAwait(false); Assert.Equal(5, testDataFromContract.Test1); var functionStorage = new SetStorageStructFunction { TestStruct = input }; var receiptSending = await contractHandler.SendRequestAndWaitForReceiptAsync(functionStorage).ConfigureAwait(false); var storageData = await contractHandler.QueryDeserializingToObjectAsync <GetTestStructStorageFunction, TestStructStrings>().ConfigureAwait(false); Assert.Equal("hello", storageData.Id2); var eventStorage = contractHandler.GetEvent <TestStructStorageChangedEvent>(); var eventOutputs = eventStorage.DecodeAllEventsForEvent(receiptSending.Logs); Assert.Equal(1, eventOutputs[0].Event.TestStruct.Id); var eventUntyped = new Event(web3.Client, deploymentReceipt.ContractAddress, eventStorage.EventABI); var eventOutputs2 = eventUntyped.DecodeAllEventsDefaultForEvent(receiptSending.Logs); Assert.True("0x12890D2cce102216644c59daE5baed380d84830c".IsTheSameAddress(eventOutputs2[0].Event[0].Result.ToString())); Assert.Equal("sender", eventOutputs2[0].Event[0].Parameter.Name); }