# An implementation of a contract for storing a key/value binding
init:
    # Set owner
    contract.storage[0] = msg.sender
code:
    # Check ownership
    if msg.sender == contract.storage[0]:
        # Get: returns (found, val)
        if msg.data[0] == 0:
            s = sha3(msg.data[1])
            return([contract.storage[s], contract.storage[s+1]], 2)
        # Set: sets map[k] = v
        elif msg.data[0] == 1:
            s = sha3(msg.data[1])
            contract.storage[s] = 1
            contract.storage[s + 1] = msg.data[2]
        # Suicide
        elif msg.data[2] == 1:
            suicide(0)
