Beispiel #1
0
        public void Can_trace_sender_recipient_miner_when_all_are_same()
        {
            byte[] code = Prepare.EvmCode
                          .PushData(SampleHexData1)
                          .Done;

            SenderRecipientAndMiner addresses = new SenderRecipientAndMiner();

            addresses.RecipientKey      = SenderKey;
            addresses.MinerKey          = SenderKey;
            (ProofTxTracer trace, _, _) = ExecuteAndTraceProofCall(addresses, code);
            Assert.AreEqual(1, trace.Accounts.Count, "count");
            Assert.True(trace.Accounts.Contains(Sender));
        }
Beispiel #2
0
        protected (ProofTxTracer trace, Block block, Transaction transaction) ExecuteAndTraceProofCall(SenderRecipientAndMiner addresses, params byte[] code)
        {
            (Block block, Transaction transaction) = PrepareTx(BlockNumber, 100000, code, addresses);
            ProofTxTracer tracer = new ProofTxTracer(_treatSystemAccountDifferently);

            _processor.Execute(transaction, block.Header, tracer);
            return(tracer, block, transaction);
        }
Beispiel #3
0
        protected (AccessTxTracer trace, Block block, Transaction transaction) ExecuteAndTraceAccessCall(SenderRecipientAndMiner addresses, params byte[] code)
        {
            (Block block, Transaction transaction) = PrepareTx(BlockNumber, 100000, code, addresses);
            AccessTxTracer tracer = new();

            _processor.Execute(transaction, block.Header, tracer);
            return(tracer, block, transaction);
        }
        private (UserOperationTxTracer trace, Block block, Transaction transaction) ExecuteAndTraceAccessCall(SenderRecipientAndMiner addresses, params byte[] code)
        {
            (Block block, Transaction transaction) = PrepareTx(BlockNumber, 100000, code, addresses);
            UserOperationTxTracer tracer = new(transaction, TestState, TestItem.AddressA, TestItem.AddressB, TestItem.AddressC, TestItem.AddressD, NullLogger.Instance);

            _processor.Execute(transaction, block.Header, tracer);
            return(tracer, block, transaction);
        }
Beispiel #5
0
        private (UserOperationTxTracer trace, Block block, Transaction transaction) ExecuteAndTraceAccessCall(SenderRecipientAndMiner addresses, byte[] code, bool paymasterWhitelisted = false, bool firstSimulation = true)
        {
            (Block block, Transaction transaction) = PrepareTx(BlockNumber, 100000, code, addresses, 0);
            UserOperationTxTracer tracer = new(transaction, paymasterWhitelisted, firstSimulation, TestItem.AddressA, TestItem.AddressB, TestItem.AddressD, NullLogger.Instance);

            _processor.Execute(transaction, block.Header, tracer);
            return(tracer, block, transaction);
        }