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)
async def get_data(self, request): transaction_id = request.match_info.get('transaction_id', '') url = "http://rest-api:8008/transactions/" + str(transaction_id) LOGGER.info(url) # url+=str(transaction_id) response = requests.get(url) if response.status_code == 200: try: transaction_dict = json.loads(response.content) payload_string = transaction_dict['data']['payload'] public_key = transaction_dict["data"]['header'][ 'signer_public_key'] data_model = payload_pb2.SimpleSupplyPayload() data_model.ParseFromString(base64.b64decode(payload_string)) json_data = json.loads( MessageToJson(data_model, preserving_proto_field_name=True)) return json_response({ "public_key": public_key, "data": json_data['synchronize_data']['data'] }) except Exception as e: return json_response({'data': str(e)}) return json_response({'data': ""})
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 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)
async def get_transaction(self, request): transaction_id = request.match_info.get('transaction_id', '') url = "http://172.17.0.1:8008/transactions/" + str(transaction_id) LOGGER.info(url) # url+=str(transaction_id) response = requests.get(url) if response.status_code == 200: try: transaction_dict = json.loads(response.content) payload_string = transaction_dict['data']['payload'] data_model = payload_pb2.SimpleSupplyPayload() data_model.ParseFromString(base64.b64decode(payload_string)) json_data = json.loads( MessageToJson(data_model, preserving_proto_field_name=True)) LOGGER.info(data_model) return json_response({"data": json_data}) except Exception as e: LOGGER.info(str(e)) return json_response({'data': ""}) return json_response({'data': "not"})
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)
def __init__(self, payload): self._transaction = payload_pb2.SimpleSupplyPayload() self._transaction.ParseFromString(payload)