def make_create_agent_transaction(transaction_signer, batch_signer, name, timestamp): """Make a CreateAgentAction transaction and wrap it in a batch Args: transaction_signer (sawtooth_signing.Signer): The transaction key pair batch_signer (sawtooth_signing.Signer): The batch key pair name (str): The agent's name timestamp (int): Unix UTC timestamp of when the agent is created Returns: batch_pb2.Batch: The transaction wrapped in a batch """ agent_address = addresser.get_agent_address( transaction_signer.get_public_key().as_hex()) inputs = [agent_address] outputs = [agent_address] action = payload_pb2.CreateAgentAction(name=name) payload = payload_pb2.SimpleSupplyPayload( action=payload_pb2.SimpleSupplyPayload.CREATE_AGENT, create_agent=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_document_transaction(transaction_signer, batch_signer, file_name, document_hash, timestamp): """Make a CreateDocumentAction transaction and wrap it in a batch Args: transaction_signer (sawtooth_signing.Signer): The transaction key pair batch_signer (sawtooth_signing.Signer): The batch key pair document_id (str): Unique ID of the record timestamp (int): Unix UTC timestamp of when the agent is created Returns: batch_pb2.Batch: The transaction wrapped in a batch """ inputs = [ addresser.get_agent_address( transaction_signer.get_public_key().as_hex()), document_hash ] outputs = [document_hash] action = payload_pb2.CreateDocumentAction(document_hash=document_hash, file_name=file_name) payload = payload_pb2.SimpleSupplyPayload( action=payload_pb2.SimpleSupplyPayload.CREATE_DOCUMENT, create_document=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_record_transaction(transaction_signer, batch_signer, latitude, longitude, record_id, timestamp): """Make a CreateRecordAction transaction and wrap it in a batch Args: transaction_signer (sawtooth_signing.Signer): The transaction key pair batch_signer (sawtooth_signing.Signer): The batch key pair latitude (int): Initial latitude of the record longitude (int): Initial latitude of the record record_id (str): Unique ID of the record timestamp (int): Unix UTC timestamp of when the agent is created Returns: batch_pb2.Batch: The transaction wrapped in a batch """ inputs = [ addresser.get_agent_address( transaction_signer.get_public_key().as_hex()), addresser.get_record_address(record_id) ] outputs = [addresser.get_record_address(record_id)] action = payload_pb2.CreateRecordAction(record_id=record_id, latitude=latitude, longitude=longitude) payload = payload_pb2.SimpleSupplyPayload( action=payload_pb2.SimpleSupplyPayload.CREATE_RECORD, create_record=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_is_valid_document_transaction(transaction_signer, batch_signer, document_id, document_hash, new_document_hash, timestamp): """Make a IsValidDocumentAction transaction and wrap it in a batch Args: transaction_signer (sawtooth_signing.Signer): The transaction key pair batch_signer (sawtooth_signing.Signer): The batch key pair document_id (str): Unique ID of the document timestamp (int): Unix UTC timestamp of when the agent is created Returns: batch_pb2.Batch: The transaction wrapped in a batch """ agent_address = addresser.get_agent_address( transaction_signer.get_public_key().as_hex()) inputs = [agent_address, document_hash] outputs = [document_hash] action = payload_pb2.ValidateDocumentAction( document_id=document_id, document_hash=document_hash, new_document_hash=new_document_hash) payload = payload_pb2.SimpleSupplyPayload( action=payload_pb2.SimpleSupplyPayload.VALIDATE_DOCUMENT, validate_document=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_transfer_record_transaction(transaction_signer, batch_signer, receiving_agent, record_id, timestamp): """Make a CreateRecordAction transaction and wrap it in a batch Args: transaction_signer (sawtooth_signing.Signer): The transaction key pair batch_signer (sawtooth_signing.Signer): The batch key pair receiving_agent (str): Public key of the agent receiving the record record_id (str): Unique ID of the record timestamp (int): Unix UTC timestamp of when the record is transferred Returns: batch_pb2.Batch: The transaction wrapped in a batch """ sending_agent_address = addresser.get_agent_address( transaction_signer.get_public_key().as_hex()) receiving_agent_address = addresser.get_agent_address(receiving_agent) record_address = addresser.get_record_address(record_id) inputs = [sending_agent_address, receiving_agent_address, record_address] outputs = [record_address] action = payload_pb2.TransferRecordAction(record_id=record_id, receiving_agent=receiving_agent) payload = payload_pb2.SimpleSupplyPayload( action=payload_pb2.SimpleSupplyPayload.TRANSFER_RECORD, transfer_record=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)