class ContractDetailsImpl implements ContractDetails {

    @Override
    public synchronized void syncStorage() {
        String hashString = this.getStorageHashAsString();
        String addressString = this.getAddressAsString();
        logger.trace("syncing storage address {}", addressString);

        if (this.trie.hasStore()) {
            logger.trace("syncing to storage, hash {}, address {}, storage size {}", hashString, addressString, this.getStorageSize());

            this.trie.save();
        }
    }

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

}