# Carson Technical Interview Questions ## 1. Introduction 1. Welcome and introduction 2. Reminder that the exercise was hard. ## 2. Explain your choices 1. Briefly (5 mins) explain why you did what you did? 2. How did you select the place to put the log emission? ## 3. Debugging exercise ### Part A: Logs on Zero transactions 1. Look at the first paragraph of the functionality section of the EIP. What are the conditions for emitting a log? 2. Does your code check all these conditions? 3. How would you fix your code? ### Part B: Double emission 1. Open the `call()` opcode in your IDE. 2. Assume that a successful `CALL` with value 1 wei is being made. Step through code in your IDE and work out what happens. 3. *When he gets to the second `log_transfer()` call*: What has gone wrong? 4. How would you fix it? ## 4. Post debugging review 1. Do you think the EIP is clear and precise? 2. How would you rewrite the EIP to make it clearer? 3. What test cases would you want to write for testing the EIP? 4. What about the code in `interpreter.py`? Could be better structured/documented? ## 5. Conclusions 1. Thanks for attending, we hope to get back with a decision shortly. # Old notes - How did you select the place to put the log emission? - Is there any other opcode that you think could be selected to add the log emission? - Zero value check - Can you step through the `CALL` opcode implementation and identify how many times the the transfer log is emitted? - What questions are unanswered/ambiguous in the EIP? - How would you go about writing tests? - How did you verify your changes were correct?