def make_company_import_transaction(transaction_signer, batch_signer,
                                    timestamp, id, name, date, address):

    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    product_address = addresser.get_product_address(id)
    inputs = [user_address, product_address]
    outputs = [product_address]

    action = payload_pb2.CompanyImport(id=id,
                                       name=name,
                                       date=date,
                                       address=address)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.COMPANY_IMPORT,
        company_import=action,
        timestamp=timestamp)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_employee_import_transaction(transaction_signer, batch_signer,
                                     timestamp, id, name, age, address, email,
                                     company_id):

    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    product_address = addresser.get_product_address(id)
    inputs = [user_address, product_address]
    outputs = [product_address]

    action = payload_pb2.EmployeeImport(id=id,
                                        name=name,
                                        age=age,
                                        address=address,
                                        email=email,
                                        company_id=company_id)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.EMPLOYEE_IMPORT,
        employee_import=action,
        timestamp=timestamp)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_update_emp_transaction(transaction_signer, batch_signer, emp_id, age,
                                address, email, com_id, timestamp):
    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    emp_address = addresser.get_employee_address(emp_id)

    inputs = [user_address, emp_address]
    outputs = [emp_address]

    action = payload_pb2.UpdateEmp(id=emp_id,
                                   age=age,
                                   address=address,
                                   email=email,
                                   com_id=com_id)
    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.UPDATE_EMP,
        update_emp=action,
        timestamp=timestamp)
    LOGGER.info(payload)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
示例#4
0
 def get_user(self, public_key):
     """Gets the agent associated with the public_key
     Args:
         public_key (str): The public key of the agent
     Returns:
         agent_pb2.Agent: Agent with the provided public_key
     """
     address = addresser.get_user_address(public_key)
     state_entries = self._context.get_state(addresses=[address],
                                             timeout=self._timeout)
     if state_entries:
         container = user_pb2.UserContainer()
         container.ParseFromString(state_entries[0].data)
         for user in container.entries:
             if user.public_key == public_key:
                 return user
示例#5
0
    def set_data(self, public_key, data):
        user_address = addresser.get_user_address(public_key)

        data_pb = data_pb2.Data(
            data=data
        )
        container = data_pb2.DataContainer()
        state_entries = self._context.get_state(
            addresses=[user_address], timeout=self._timeout)
        if state_entries:
            container.ParseFromString(state_entries[0].data)

        container.entries.extend([data_pb])
        data = container.SerializeToString()
        updated_state = {}
        updated_state[user_address] = data
        self._context.set_state(updated_state, timeout=self._timeout)
示例#6
0
    def set_user(self, public_key, username, role, timestamp):
        user_address = addresser.get_user_address(public_key)

        user = user_pb2.User(public_key=public_key,
                             username=username,
                             role=role)
        container = user_pb2.UserContainer()
        state_entries = self._context.get_state(addresses=[user_address],
                                                timeout=self._timeout)
        if state_entries:
            container.ParseFromString(state_entries[0].data)

        container.entries.extend([user])
        data = container.SerializeToString()

        updated_state = {}
        updated_state[user_address] = data
        self._context.set_state(updated_state, timeout=self._timeout)
示例#7
0
def make_synchronize_data_transaction(transaction_signer, batch_signer, data):
    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    inputs = [user_address]
    outputs = [user_address]

    action = payload_pb2.SynchronizeData(data=data)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.SYNCHRONIZE_DATA,
        synchronize_data=action,
    )
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_create_user_transaction(transaction_signer, batch_signer, username,
                                 role, timestamp):
    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    inputs = [user_address]
    outputs = [user_address]

    action = payload_pb2.CreateUser(username=username, role=role)
    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.CREATE_USER,
        create_user=action,
        timestamp=timestamp)
    LOGGER.info(payload)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_get_transaction(transaction_signer, batch_signer, timestamp, id):

    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    product_address = addresser.get_product_address(id)
    inputs = [user_address, product_address]
    outputs = [product_address]

    action = payload_pb2.GetDrug(id=id)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.make_get_transaction,
        get_transaction=action,
        timestamp=timestamp)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
示例#10
0
def make_createLc_transaction(transaction_signer, batch_signer, timestamp,
                              content, publicKeyUser):

    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    product_address = addresser.get_product_address()
    inputs = [user_address, product_address]
    outputs = [product_address]

    action = payload_pb2.Createlc(content=content, publicKeyUser=publicKeyUser)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.CREATELC,
        createLc=action,
        timestamp=timestamp)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_update_status_transaction(transaction_signer, batch_signer, timestamp,
                                   id, quantity, price):

    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    product_address = addresser.get_product_address(id)
    inputs = [user_address, product_address]
    outputs = [product_address]

    action = payload_pb2.UpdateStatus(id=id, quantity=quantity, price=price)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.UPDATE_STATUS,
        update_status=action,
        timestamp=timestamp)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_create_com_transaction(transaction_signer, batch_signer, com_id, name,
                                timestamp):
    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    com_address = addresser.get_company_address(com_id)

    inputs = [user_address, com_address]
    outputs = [com_address]

    action = payload_pb2.CreateCom(id=com_id, name=name)
    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.CREATE_COM,
        create_com=action,
        timestamp=timestamp)
    LOGGER.info(payload)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_update_location_transaction(transaction_signer, batch_signer,
                                     timestamp, id, longitude, latitude):

    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    product_address = addresser.get_product_address(id)
    inputs = [user_address, product_address]
    outputs = [product_address]

    action = payload_pb2.UpdateLocation(id=id,
                                        longitude=longitude,
                                        latitude=latitude)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.UPDATE_LOCATION,
        update_location=action,
        timestamp=timestamp)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_update_employee_transaction(transaction_signer, batch_signer,
                                     timestamp, id, position, salary):

    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    product_address = addresser.get_product_address(id)
    inputs = [user_address, product_address]
    outputs = [product_address]

    action = payload_pb2.UpdateEmployee(id=id,
                                        position=position,
                                        salary=salary)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.UPDATE_EMPLOYEE,
        update_employee=action,
        timestamp=timestamp)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)
def make_update_company_transaction(transaction_signer, batch_signer,
                                    timestamp, id, address, price_IPO):

    user_address = addresser.get_user_address(
        transaction_signer.get_public_key().as_hex())
    product_address = addresser.get_product_address(id)
    inputs = [user_address, product_address]
    outputs = [product_address]

    action = payload_pb2.UpdateCompany(id=id,
                                       address=address,
                                       price_IPO=price_IPO)

    payload = payload_pb2.SimpleSupplyPayload(
        action=payload_pb2.SimpleSupplyPayload.UPDATE_COMPANY,
        update_company=action,
        timestamp=timestamp)
    payload_bytes = payload.SerializeToString()

    return _make_batch(payload_bytes=payload_bytes,
                       inputs=inputs,
                       outputs=outputs,
                       transaction_signer=transaction_signer,
                       batch_signer=batch_signer)