Exemple #1
0
 def __init__(self, root=b'', env=Env(), **kwargs):
     self.env = env
     self.trie = SecureTrie(Trie(self.db, root))
     for k, v in STATE_DEFAULTS.items():
         setattr(self, k, kwargs.get(k, copy.copy(v)))
     self.journal = []
     self.cache = {}
     self.log_listeners = []
 def __init__(self, root=b'', env=Env(), executing_on_head=False, **kwargs):
     self.env = env
     self.trie = SecureTrie(Trie(RefcountDB(self.db), root))
     for k, v in STATE_DEFAULTS.items():
         setattr(self, k, kwargs.get(k, copy.copy(v)))
     self.journal = []
     self.cache = {}
     self.log_listeners = []
     self.deletes = []
     self.changed = {}
     self.executing_on_head = executing_on_head
Exemple #3
0
 def __init__(self, nonce, balance, storage, code_hash, db, address):
     self.db = db
     self.address = address
     super(Account, self).__init__(nonce, balance, storage, code_hash)
     self.storage_cache = {}
     self.storage_trie = SecureTrie(Trie(self.db))
     self.storage_trie.root_hash = self.storage
     self.touched = False
     self.existent_at_start = True
     self._mutable = True
     self.deleted = False
Exemple #4
0
 def __init__(self, nonce, balance, storage, code_hash, env):
     assert isinstance(env.db, BaseDB)
     self.env = env
     super(Account, self).__init__(nonce, balance, storage, code_hash)
     self.storage_cache = {}
     self.storage_trie = SecureTrie(Trie(self.env.db))
     self.storage_trie.root_hash = self.storage
     self.touched = False
     self.existent_at_start = True
     self._mutable = True
     self.deleted = False
Exemple #5
0
    def __init__(self, db, root):
        """

        :param db:
        :param root:
        """
        self.db = db
        self.trie = Trie(self.db, root)
        self.secure_trie = SecureTrie(self.trie)
        self.journal = []
        self.cache = {}
Exemple #6
0
    def __init__(self, db, state_root):
        self.db = db
        if isinstance(state_root, str):
            self.state_root = decode_hex(state_root)
        else:
            self.state_root = state_root

        try:
            self.trie = Trie(db, self.state_root)
            self.is_in_db = True
        except KeyError:
            self.state_root = None
            self.is_in_db = False
            logging.warning('State root %s not in database', self.state_root)

        logging.info('State created')
    def __init__(self, nonce, balance, storage, code_hash, env, address):
        assert isinstance(env.db, BaseDB)
        self.env = env
        self.address = address

        acc = _Account(nonce, balance, storage, code_hash)
        self.nonce = acc.nonce
        self.balance = acc.balance
        self.storage = acc.storage
        self.code_hash = acc.code_hash

        self.storage_cache = {}
        self.storage_trie = SecureTrie(Trie(RefcountDB(self.env.db)))
        self.storage_trie.root_hash = self.storage
        self.touched = False
        self.existent_at_start = True
        self._mutable = True
        self.deleted = False
Exemple #8
0
    def storage_size(self, db):
        size = 0

        if self.is_contract:
            try:
                storage_trie = Trie(db, decode_hex(self.storage_root))
            except KeyError:
                logging.warning('storage root %s not in database', self.storage_root)
                return size

            try:
                trie_dict = storage_trie.to_dict()
            except KeyError:
                logging.warning('storage root %s integrity error in database', self.storage_root)
                return size

            size = len(trie_dict)

        return size
Exemple #9
0
 def __init__(self, db, root):
     self.db = db
     self.trie = Trie(self.db, root)
     self.secure_trie = SecureTrie(self.trie)
     self.journal = []
     self.cache = {}