---
# System prepended metadata

title: Development update 3

---

# Development update 3

This is my third developoment update for the Ethereum CDAP programme.

## Task

In my [last update](https://hackmd.io/huh4-cPTQXyNy8tGfTCS1A) I had mentioned that I would work on contract creation. While implementing this I encountered several bugs. Some of the bugs are:
1. The `signextend` Opcode had a bug that was causing a test to fail.
2. The code that would compute valid jump destinations would get into an infinite loop if it encountered an invalid opcode.
3. The state had some objects that would get mutated if a totally different account object was modified.

Besides fixing the bugs, I implemented the following features:
1. Implemented message call for creating contracts when the `to` address is empty.
2. While trying to get tests passing for the contract creation, I realised that most of the tests needed the `CREATE` and the `RETURN` opcodes. So I ended up implementing those. 
3. I got 120 transaction init tests passing for this PR.


## Code

I have implemented all things mentioned in the [Task](#Task) section and submitted a PR that can [viewed here](https://github.com/ethereum/eth1.0-specs/pull/280). It has not been merged yet. I am working on getting some more tests passing for it before I can ask for a final code review. 

## What's Next?

I plan to get more tests passing for contract creation and then I plan to work on `CALL`, `CALLCODE` and `SUICIDE` opcodes.
