示例#1
0
 def to_dict(self):
     return {
         "bloom": encode_hex(bloom.b64(bloom.bloom_from_list(self.bloomables()))),
         "address": encode_hex(self.address),
         "data": b"0x" + encode_hex(self.data),
         "topics": [encode_hex(utils.int32.serialize(t)) for t in self.topics],
     }
 def to_dict(self):
     return {
         "bloom": encode_hex(bloom.b64(bloom.bloom_from_list(self.bloomables()))),
         "address": encode_hex(self.address),
         "data": b'0x' + encode_hex(self.data),
         "topics": [encode_hex(utils.int32.serialize(t))
                    for t in self.topics]
     }
示例#3
0
def mk_receipt(state, success, logs):
    bloomables = [x.bloomables() for x in logs]
    ret_bloom = bloom.bloom_from_list(utils.flatten(bloomables))

    if state.is_METROPOLIS():
        ret = Receipt(
            state_root=(b'\x01' if success else b''),
            gas_used=state.gas_used,
            bloom=ret_bloom,
            logs=logs)
        return ret
    else:
        return Receipt(state.trie.root_hash, state.gas_used, ret_bloom, logs)
示例#4
0
def do_test_bloom(test_logs):
    """
    The logs sections is a mapping between the blooms and their corresponding logentries.
    Each logentry has the format:
    address: The address of the logentry.
    data: The data of the logentry.
    topics: The topics of the logentry, given as an array of values.
    """
    for data in test_logs:
        address = data['address']
        # Test via bloom
        b = bloom.bloom_insert(0, decode_hex(address))
        for t in data['topics']:
            b = bloom.bloom_insert(b, decode_hex(t))
        # Test via Log
        topics = [decode_int_from_hex(x) for x in data['topics']]
        log = Log(decode_hex(address), topics, '')
        log_bloom = bloom.b64(bloom.bloom_from_list(log.bloomables()))
        assert encode_hex(log_bloom) == encode_hex_from_int(b)
        assert data['bloom'] == encode_hex(log_bloom)
示例#5
0
def do_test_bloom(test_logs):
    """
    The logs sections is a mapping between the blooms and their corresponding logentries.
    Each logentry has the format:
    address: The address of the logentry.
    data: The data of the logentry.
    topics: The topics of the logentry, given as an array of values.
    """
    for data in test_logs:
        address = data["address"]
        # Test via bloom
        b = bloom.bloom_insert(0, decode_hex(address))
        for t in data["topics"]:
            b = bloom.bloom_insert(b, decode_hex(t))
        # Test via Log
        topics = [decode_int_from_hex(x) for x in data["topics"]]
        log = pb.Log(decode_hex(address), topics, "")
        log_bloom = bloom.b64(bloom.bloom_from_list(log.bloomables()))
        assert encode_hex(log_bloom) == encode_hex_from_int(b)
        assert str_to_bytes(data["bloom"]) == encode_hex(log_bloom)
示例#6
0
 def log_bloom(self):
     "returns int"
     bloomables = [x.bloomables() for x in self.logs]
     return bloom.bloom_from_list(utils.flatten(bloomables))
示例#7
0
 def log_bloom(self):
     "returns int"
     bloomables = [x.bloomables() for x in self.logs]
     return bloom.bloom_from_list(utils.flatten(bloomables))