class AccountState {

    public byte[] getEncoded() {
		if(rlpEncoded == null) {
	        byte[] nonce		= RLP.encodeBigInteger(this.nonce);
	        byte[] balance		= RLP.encodeBigInteger(this.balance);
	        byte[] stateRoot	= RLP.encodeElement(this.stateRoot);
	        byte[] codeHash		= RLP.encodeElement(this.codeHash);
	        this.rlpEncoded = RLP.encodeList(nonce, balance, stateRoot, codeHash);
		}
		return rlpEncoded;
    }

    public  AccountState();
    public  AccountState(BigInteger nonce, BigInteger balance);
    public  AccountState(byte[] rlpData);

}