def apply_reject(header, payload, state):
    reject_payload = role_transaction_pb2.RejectAddRoleAdmin()
    reject_payload.ParseFromString(payload.content)

    txn_signer_owners_address = addresser.make_role_owners_address(
        reject_payload.role_id, header.signer_public_key)

    state_entries = validate_role_admin_or_owner(
        header=header,
        confirm=reject_payload,
        txn_signer_rel_address=txn_signer_owners_address,
        state=state)

    handle_reject(state_entries, header, reject=reject_payload, state=state)
def apply_confirm(header, payload, state):
    confirm_payload = role_transaction_pb2.ConfirmAddRoleAdmin()
    confirm_payload.ParseFromString(payload.content)

    role_members_address = addresser.make_role_members_address(
        role_id=confirm_payload.role_id, user_id=confirm_payload.user_id)

    txn_signer_owners_address = addresser.make_role_owners_address(
        role_id=confirm_payload.role_id, user_id=header.signer_public_key)

    state_entries = validate_role_admin_or_owner(
        header=header,
        confirm=confirm_payload,
        txn_signer_rel_address=txn_signer_owners_address,
        state=state)

    handle_confirm_add(state_entries=state_entries,
                       header=header,
                       confirm=confirm_payload,
                       role_rel_address=role_members_address,
                       state=state)