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)
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
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)
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)
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)
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)