OpenTrie opens the main account trie.
(root common.Hash)
| 92 | |
| 93 | // OpenTrie opens the main account trie. |
| 94 | func (db *cachingDB) OpenTrie(root common.Hash) (Trie, error) { |
| 95 | db.mu.Lock() |
| 96 | defer db.mu.Unlock() |
| 97 | |
| 98 | for i := len(db.pastTries) - 1; i >= 0; i-- { |
| 99 | if db.pastTries[i].Hash() == root { |
| 100 | return cachedTrie{db.pastTries[i].Copy(), db}, nil |
| 101 | } |
| 102 | } |
| 103 | tr, err := trie.NewSecure(root, db.db, MaxTrieCacheGen) |
| 104 | if err != nil { |
| 105 | return nil, err |
| 106 | } |
| 107 | return cachedTrie{tr, db}, nil |
| 108 | } |
| 109 | |
| 110 | func (db *cachingDB) pushTrie(t *trie.SecureTrie) { |
| 111 | db.mu.Lock() |