class ContractDetailsImpl implements ContractDetails {

    @Override
    public synchronized DataWord get(DataWord key) {
        logger.trace("get word");

        checkDataSourceIsOpened();

        byte[] value = null;

        value = this.trie.get(key.getData());

        if (value == null || value.length == 0) {
            return null;
        }

        return new DataWord(value);
    }

    public  ContractDetailsImpl(byte[] encoded, TrieStore.Pool trieStorePool, int memoryStorageLimit);
    public  ContractDetailsImpl(byte[] address, Trie trie, byte[] code, TrieStore.Pool trieStorePool, int memoryStorageLimit);

}