9 from zeth.core.zksnark
import IZKSnarkProvider
10 from zeth.core.pairing
import pairing_parameters_from_proto
14 aggregator_config_proto: aggregator_pb2.AggregatorConfiguration
15 ) -> AggregatorConfiguration:
17 nested_snark_name=aggregator_config_proto.nested_snark_name,
18 wrapper_snark_name=aggregator_config_proto.wrapper_snark_name,
19 nested_pairing_parameters=pairing_parameters_from_proto(
20 aggregator_config_proto.nested_pairing_parameters),
21 wrapper_pairing_parameters=pairing_parameters_from_proto(
22 aggregator_config_proto.wrapper_pairing_parameters))
26 zksnark: IZKSnarkProvider,
27 tx: NestedTransaction) -> aggregator_pb2.NestedTransaction:
28 assert isinstance(tx, NestedTransaction)
29 tx_proto = aggregator_pb2.NestedTransaction()
30 tx_proto.application_name = tx.app_name
31 tx_proto.extended_proof.CopyFrom(
32 zksnark.extended_proof_to_proto(tx.ext_proof))
33 tx_proto.parameters = tx.parameters
34 tx_proto.fee_in_wei = tx.fee_in_wei
39 zksnark: IZKSnarkProvider,
40 aggregated_transaction_proto: aggregator_pb2.AggregatedTransaction
41 ) -> AggregatedTransaction:
43 Convert a generic protobuf AggregatedTransactionRequest to an in-memory
46 app_name = aggregated_transaction_proto.application_name
47 extproof = zksnark.extended_proof_from_proto(
48 aggregated_transaction_proto.extended_proof)
49 nested_parameters = list(aggregated_transaction_proto.nested_parameters)