Exemplo n.º 1
0
        public IEnumerator LogsGetAllChangesTest()
        {
            return(testContext.ContractTest(async() =>
            {
                BigInteger bigValue = new BigInteger(ulong.MaxValue) * ulong.MaxValue;
                BroadcastTxResult firstEvent1Result = await this.testContext.Contract.CallAsync("emitTestIndexedEvent1", 1);
                await this.testContext.Contract.CallAsync("emitTestIndexedEvent1", 2);
                await this.testContext.Contract.CallAsync("emitTestIndexedEvent1", 3);
                await this.testContext.Contract.CallAsync("emitTestIndexedEvent1", bigValue);
                EvmEvent <EvmTestContext.TestIndexedEvent1> event1 = this.testContext.Contract.GetEvent <EvmTestContext.TestIndexedEvent1>("TestIndexedEvent1");
                List <EventLog <EvmTestContext.TestIndexedEvent1> > decodedEvents1 = await event1.GetAllChanges(event1.EventAbi.CreateFilterInput(new BlockParameter(firstEvent1Result.Height), BlockParameter.CreatePending()));

                Assert.AreEqual((BigInteger)1, decodedEvents1[0].Event.Number1);
                Assert.AreEqual((BigInteger)2, decodedEvents1[1].Event.Number1);
                Assert.AreEqual((BigInteger)3, decodedEvents1[2].Event.Number1);
                Assert.AreEqual(bigValue, decodedEvents1[3].Event.Number1);

                BroadcastTxResult firstEvent2Result = await this.testContext.Contract.CallAsync("emitTestIndexedEvent2", 4, 5);
                await this.testContext.Contract.CallAsync("emitTestIndexedEvent2", 6, 7);
                await this.testContext.Contract.CallAsync("emitTestIndexedEvent2", 8, 9);
                EvmEvent <EvmTestContext.TestIndexedEvent2> event2 = this.testContext.Contract.GetEvent <EvmTestContext.TestIndexedEvent2>("TestIndexedEvent2");
                List <EventLog <EvmTestContext.TestIndexedEvent2> > decodedEvents2 = await event2.GetAllChanges(event2.EventAbi.CreateFilterInput(new BlockParameter(firstEvent2Result.Height), BlockParameter.CreatePending()));

                Assert.AreEqual((BigInteger)4, decodedEvents2[0].Event.Number1);
                Assert.AreEqual((BigInteger)5, decodedEvents2[0].Event.Number2);
                Assert.AreEqual((BigInteger)6, decodedEvents2[1].Event.Number1);
                Assert.AreEqual((BigInteger)7, decodedEvents2[1].Event.Number2);
                Assert.AreEqual((BigInteger)8, decodedEvents2[2].Event.Number1);
                Assert.AreEqual((BigInteger)9, decodedEvents2[2].Event.Number2);
            }, 20000));
        }
Exemplo n.º 2
0
        public IEnumerator LogsGetAllChangesFilteredTest()
        {
            return(testContext.ContractTest(async() =>
            {
                BroadcastTxResult firstEvent1Result = await this.testContext.Contract.CallAsync("emitTestIndexedEvent1", 1);
                await this.testContext.Contract.CallAsync("emitTestIndexedEvent1", 2);
                await this.testContext.Contract.CallAsync("emitTestIndexedEvent1", 3);
                EvmEvent <EvmTestContext.TestIndexedEvent1> event1 = this.testContext.Contract.GetEvent <EvmTestContext.TestIndexedEvent1>("TestIndexedEvent1");
                NewFilterInput filterInput = event1.EventAbi.CreateFilterInput(2, new BlockParameter(firstEvent1Result.Height), BlockParameter.CreatePending());
                List <EventLog <EvmTestContext.TestIndexedEvent1> > decodedEvents = await event1.GetAllChanges(filterInput);

                Assert.NotZero(decodedEvents.Count);
                decodedEvents.ForEach(log => Assert.AreEqual((BigInteger)2, log.Event.Number1));

                Debug.Log(JsonConvert.SerializeObject(decodedEvents, Formatting.Indented));
            }, 20000));
        }