def _create_role_txn(public_key, signing_key, role_name, policy_name): role = Role(name=role_name, policy_name=policy_name) payload = IdentityPayload(type=IdentityPayload.ROLE, data=role.SerializeToString()) policy_address = _policy_to_address(policy_name) role_address = _role_to_address(role_name) header = TransactionHeader( signer_public_key=public_key, family_name='sawtooth_identity', family_version='1.0', inputs=[_REQUIRED_INPUT, policy_address, role_address], outputs=[role_address], dependencies=[], payload_sha512=hashlib.sha512(payload.SerializeToString()).hexdigest(), batcher_public_key=public_key, nonce=time.time().hex().encode()) header_bytes = header.SerializeToString() signature = signing.sign(header_bytes, signing_key) transaction = Transaction(header=header_bytes, payload=payload.SerializeToString(), header_signature=signature) return transaction
def _create_config_txn(pubkey, signing_key, setting_key_value): """Creates an individual sawtooth_config transaction for the given key and value. """ setting_key = setting_key_value[0] setting_value = setting_key_value[1] nonce = str(datetime.datetime.utcnow().timestamp()) proposal = ConfigProposal(setting=setting_key, value=setting_value, nonce=nonce) payload = ConfigPayload(data=proposal.SerializeToString(), action=ConfigPayload.PROPOSE).SerializeToString() header = TransactionHeader( signer_pubkey=pubkey, family_name='sawtooth_config', family_version='1.0', inputs=_config_inputs(setting_key), outputs=_config_outputs(setting_key), dependencies=[], payload_encoding='application/protobuf', payload_sha512=hashlib.sha512(payload).hexdigest(), batcher_pubkey=pubkey).SerializeToString() signature = signing.sign(header, signing_key) return Transaction(header=header, header_signature=signature, payload=payload)
def _create_policy_txn(signer, policy_name, rules): entries = [] for rule in rules: rule = rule.split(" ") if rule[0] == "PERMIT_KEY": entry = Policy.Entry(type=Policy.PERMIT_KEY, key=rule[1]) entries.append(entry) elif rule[0] == "DENY_KEY": entry = Policy.Entry(type=Policy.DENY_KEY, key=rule[1]) entries.append(entry) policy = Policy(name=policy_name, entries=entries) payload = IdentityPayload(type=IdentityPayload.POLICY, data=policy.SerializeToString()) policy_address = _policy_to_address(policy_name) header = TransactionHeader( signer_public_key=signer.get_public_key().as_hex(), family_name='sawtooth_identity', family_version='1.0', inputs=[_REQUIRED_INPUT, policy_address], outputs=[policy_address], dependencies=[], payload_sha512=hashlib.sha512(payload.SerializeToString()).hexdigest(), batcher_public_key=signer.get_public_key().as_hex(), nonce=hex(random.randint(0, 2**64))) header_bytes = header.SerializeToString() transaction = Transaction(header=header_bytes, payload=payload.SerializeToString(), header_signature=signer.sign(header_bytes)) return transaction
def transaction(txn_sig, dependencies): header = TransactionHeader( signer_public_key='test_public_key', family_name='test_family', family_version='1.0', inputs=[], outputs=[], dependencies=dependencies, payload_sha512='some_sha512', batcher_public_key='test_public_key').SerializeToString() return Transaction(header=header, header_signature=txn_sig, payload=b'')
def _make_txn(signer, setting_key, payload): """Creates and signs a bgx_settings transaction with with a payload. """ serialized_payload = payload.SerializeToString() header = TransactionHeader( signer_public_key=signer.get_public_key().as_hex(), family_name='bgx_settings', # 'sawtooth_settings' family_version='1.0', inputs=_config_inputs(setting_key), outputs=_config_outputs(setting_key), dependencies=[], payload_sha512=hashlib.sha512(serialized_payload).hexdigest(), batcher_public_key=signer.get_public_key().as_hex()).SerializeToString( ) return Transaction(header=header, header_signature=signer.sign(header), payload=serialized_payload)
def _make_txn(pubkey, signing_key, setting_key, payload): """Creates and signs a sawtooth_config transaction with with a payload. """ serialized_payload = payload.SerializeToString() header = TransactionHeader( signer_pubkey=pubkey, family_name='sawtooth_config', family_version='1.0', inputs=_config_inputs(setting_key), outputs=_config_outputs(setting_key), dependencies=[], payload_encoding='application/protobuf', payload_sha512=hashlib.sha512(serialized_payload).hexdigest(), batcher_pubkey=pubkey).SerializeToString() signature = signing.sign(header, signing_key) return Transaction(header=header, header_signature=signature, payload=serialized_payload)
def _create_policy_txn(pubkey, signing_key, policy_name, rules): entries = [] for rule in rules: rule = rule.split(" ") if rule[0] == "PERMIT_KEY": entry = Policy.Entry(type=Policy.PERMIT_KEY, key=rule[1]) entries.append(entry) elif rule[0] == "DENY_KEY": entry = Policy.Entry(type=Policy.DENY_KEY, key=rule[1]) entries.append(entry) policy = Policy(name=policy_name, entries=entries) payload = IdentityPayload(type=IdentityPayload.POLICY, data=policy.SerializeToString()) policy_address = _policy_to_address(policy_name) header = TransactionHeader( signer_pubkey=pubkey, family_name='sawtooth_identity', family_version='1.0', inputs=[policy_address], outputs=[policy_address], dependencies=[], payload_encoding="application/protobuf", payload_sha512=hashlib.sha512( payload.SerializeToString()).hexdigest(), batcher_pubkey=pubkey, nonce=time.time().hex().encode()) header_bytes = header.SerializeToString() signature = signing.sign(header_bytes, signing_key) transaction = Transaction( header=header_bytes, payload=payload.SerializeToString(), header_signature=signature) return transaction