class RepositoryImpl implements Repository {

    @Override
    public synchronized AccountState createAccount(UscAddress addr) {
        AccountState accountState = new AccountState();
        updateAccountState(addr, accountState);
        updateContractDetails(addr, new ContractDetailsImpl(
                addr.getBytes(),
                null,
                null,
                trieStorePool,
                memoryStorageLimit
        ));
        return accountState;
    }

    public  RepositoryImpl(TrieStore store, TrieStore.Pool trieStorePool, int memoryStorageLimit);
    public  RepositoryImpl(
            TrieStore store,
            KeyValueDataSource detailsDS,
            TrieStore.Pool trieStorePool,
            int memoryStorageLimit);
    private  RepositoryImpl(
            TrieStore store,
            DetailsDataStore detailsDataStore,
            TrieStore.Pool trieStorePool,
            int memoryStorageLimit);

}