Exemplo n.º 1
0
    def gen_txn_path(self, txn):

        """Return path to state as 'str' type or None"""
        txn_type = get_type(txn)
        if txn_type not in self.state_update_handlers:
            logger.error('Cannot generate id for txn of type {}'.format(txn_type))
            return None

        if txn_type == NYM:
            nym = get_payload_data(txn).get(TARGET_NYM)
            binary_digest = domain.make_state_path_for_nym(nym)
            return hexlify(binary_digest).decode()
        elif txn_type == ATTRIB:
            path = domain.prepare_attr_for_state(txn, path_only=True)
            return path.decode()
        elif txn_type == SCHEMA:
            path = domain.prepare_schema_for_state(txn, path_only=True)
            return path.decode()
        elif txn_type == CLAIM_DEF:
            path = domain.prepare_claim_def_for_state(txn, path_only=True)
            return path.decode()
        elif txn_type == REVOC_REG_DEF:
            path = domain.prepare_revoc_def_for_state(txn, path_only=True)
            return path.decode()
        elif txn_type == REVOC_REG_ENTRY:
            path = domain.prepare_revoc_reg_entry_for_state(txn, path_only=True)
            return path.decode()

        raise NotImplementedError("path construction is not implemented for type {}".format(txn_type))
def gen_txn_path(txn, attr_store):
    txn_type = get_type(txn)
    if txn_type not in DomainReqHandler.write_types:
        return None

    if txn_type == NYM:
        nym = get_payload_data(txn).get(TARGET_NYM)
        binary_digest = domain.make_state_path_for_nym(nym)
        return hexlify(binary_digest).decode()
    elif txn_type == ATTRIB:
        attr_data = get_payload_data(txn)
        if RAW in attr_data or ENC in attr_data:
            attr_type = RAW if RAW in attr_data else ENC
            attr = attr_store.get(attr_data[attr_type])
            copy_txn = copy.deepcopy(txn)
            copy_txn[TXN_PAYLOAD][TXN_PAYLOAD_DATA][attr_type] = attr
            path = domain.prepare_attr_for_state(copy_txn, path_only=True)
            return path.decode()
        if HASH in attr_data:
            path = domain.prepare_attr_for_state(txn, path_only=True)
            return path.decode()

    elif txn_type == SCHEMA:
        path = domain.prepare_schema_for_state(txn, path_only=True)
        return path.decode()
    elif txn_type == CLAIM_DEF:
        path = domain.prepare_claim_def_for_state(txn, path_only=True)
        return path.decode()
    elif txn_type == REVOC_REG_DEF:
        path = domain.prepare_revoc_def_for_state(txn, path_only=True)
        return path.decode()
    elif txn_type == REVOC_REG_ENTRY:
        path = domain.prepare_revoc_reg_entry_for_state(txn, path_only=True)
        return path.decode()
Exemplo n.º 3
0
def gen_txn_path(txn):
    txn_type = get_type(txn)
    if txn_type not in DomainReqHandler.write_types:
        return None

    if txn_type == NYM:
        nym = get_payload_data(txn).get(TARGET_NYM)
        binary_digest = domain.make_state_path_for_nym(nym)
        return hexlify(binary_digest).decode()
    elif txn_type == ATTRIB:
        _, path, _, _, _ = domain.prepare_attr_for_state(txn)
        return path.decode()
    elif txn_type == SCHEMA:
        path, _ = domain.prepare_schema_for_state(txn)
        return path.decode()
    elif txn_type == CLAIM_DEF:
        path, _ = domain.prepare_claim_def_for_state(txn)
        return path.decode()
    elif txn_type == REVOC_REG_DEF:
        path, _ = domain.prepare_revoc_def_for_state(txn)
        return path.decode()
    elif txn_type == REVOC_REG_ENTRY:
        path, _ = domain.prepare_revoc_reg_entry_for_state(txn)
        return path.decode()
Exemplo n.º 4
0
 def _addSchema(self, txn) -> None:
     assert txn[TXN_TYPE] == SCHEMA
     path, value_bytes = domain.prepare_schema_for_state(txn)
     self.state.set(path, value_bytes)
Exemplo n.º 5
0
 def _addSchema(self, txn, isCommitted=False) -> None:
     assert get_type(txn) == SCHEMA
     path, value_bytes = domain.prepare_schema_for_state(txn)
     self.state.set(path, value_bytes)
Exemplo n.º 6
0
 def update_state(self, txn, prev_result, is_committed=False) -> None:
     self._validate_txn_type(txn)
     path, value_bytes = domain.prepare_schema_for_state(txn)
     self.state.set(path, value_bytes)
Exemplo n.º 7
0
 def gen_state_key(self, txn):
     self._validate_txn_type(txn)
     path = domain.prepare_schema_for_state(txn, path_only=True)
     return path.decode()
Exemplo n.º 8
0
 def _addSchema(self, txn) -> None:
     assert txn[TXN_TYPE] == SCHEMA
     path, value_bytes = domain.prepare_schema_for_state(txn)
     self.state.set(path, value_bytes)
Exemplo n.º 9
0
 def _addSchema(self, txn, isCommitted=False) -> None:
     assert get_type(txn) == SCHEMA
     path, value_bytes = domain.prepare_schema_for_state(txn)
     self.state.set(path, value_bytes)