예제 #1
0
    def pb_bytes(self):

        vt_txn_bytes = concat([
            pb_field(field_number=2, tag=LENGTH_DELIMITED, value=x.pb_bytes()) for x in self.value_transfer_txns]) \
            if len(self.value_transfer_txns) > 0 else b''

        commit_txn_bytes = concat([
            pb_field(field_number=4, tag=LENGTH_DELIMITED, value=x.pb_bytes()) for x in self.commit_txns]) \
            if len(self.commit_txns) > 0 else b''
        reveal_txn_bytes = concat([
            pb_field(field_number=5, tag=LENGTH_DELIMITED, value=x.pb_bytes()) for x in self.reveal_txns])\
            if len(self.reveal_txns) > 0 else b''
        tally_txn_bytes = concat([
            pb_field(field_number=6, tag=LENGTH_DELIMITED, value=x.pb_bytes()) for x in self.tally_txns]) \
            if len(self.tally_txns) > 0 else b''

        return concat([
            pb_field(field_number=1,
                     tag=LENGTH_DELIMITED,
                     value=self.mint.pb_bytes()),
            vt_txn_bytes,
            commit_txn_bytes,
            reveal_txn_bytes,
            tally_txn_bytes,
        ])
예제 #2
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1, tag=VAR_INT, value=self.checkpoint),
         pb_field(field_number=2,
                  tag=LENGTH_DELIMITED,
                  value=self.hash_prev_vrf.pb_bytes())
     ])
예제 #3
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1, tag=VAR_INT, value=self.epoch),
         concat([
             pb_field(field_number=2,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.outputs
         ])
     ])
예제 #4
0
 def pb_bytes(self) -> bytes:
     return concat([
         pb_field(field_number=1,
                  tag=LENGTH_DELIMITED,
                  value=self.signature.pb_bytes()),
         pb_field(field_number=2,
                  tag=LENGTH_DELIMITED,
                  value=self.public_key.pb_bytes())
     ])
예제 #5
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1,
                  tag=LENGTH_DELIMITED,
                  value=self.highest_block_checkpoint.pb_bytes()),
         pb_field(field_number=2,
                  tag=LENGTH_DELIMITED,
                  value=self.highest_superblock_checkpoint.pb_bytes()),
     ])
예제 #6
0
 def pb_bytes(self) -> bytes:
     filter_bytes = pb_field(field_number=1,
                             tag=LENGTH_DELIMITED,
                             value=concat([
                                 x.pb_bytes() for x in self.filters
                             ])) if (len(self.filters) > 0) else b''
     reducer_bytes = pb_field(field_number=2,
                              tag=VAR_INT,
                              value=self.reducer)
     return concat([filter_bytes, reducer_bytes])
예제 #7
0
    def pb_bytes(self) -> bytes:
        output_index_bytes = pb_field(
            field_number=2, tag=VAR_INT,
            value=self.output_index) if (self.output_index > 0) else b''

        return concat([
            pb_field(field_number=1,
                     tag=LENGTH_DELIMITED,
                     value=self.transaction_id.pb_bytes()), output_index_bytes
        ])
예제 #8
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1,
                  tag=LENGTH_DELIMITED,
                  value=self.body.to_json()),
         concat([
             pb_field(field_number=2,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.signatures
         ])
     ])
예제 #9
0
 def pb_bytes(self) -> bytes:
     return concat([
         concat([
             pb_field(field_number=1,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.inputs
         ]),
         concat([
             pb_field(field_number=2,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.outputs
         ])
     ])
예제 #10
0
    def pb_bytes(self) -> bytes:

        return concat([
            pb_field(field_number=1,
                     tag=LENGTH_DELIMITED,
                     value=self.block_header.pb_bytes()),
            pb_field(field_number=2,
                     tag=LENGTH_DELIMITED,
                     value=self.block_sig.pb_bytes()),
            pb_field(field_number=3,
                     tag=LENGTH_DELIMITED,
                     value=self.txns.pb_bytes()),
        ])
예제 #11
0
 def pb_bytes(self) -> bytes:
     kind_bytes = pb_field(field_number=1,
                           tag=VAR_INT,
                           value=self.kind.value)
     url_bytes = pb_field(field_number=2,
                          tag=LENGTH_DELIMITED,
                          value=str_to_bytes(self.url))
     script_bytes = pb_field(field_number=3,
                             tag=LENGTH_DELIMITED,
                             value=self.script)
     if self.kind.value == 0:
         return concat([url_bytes, script_bytes])
     else:
         return concat([kind_bytes, url_bytes, script_bytes])
예제 #12
0
 def pb_bytes(self) -> bytes:
     timelock_bytes = pb_field(
         field_number=1, tag=VAR_INT,
         value=self.time_lock) if (self.time_lock > 0) else b''
     retrieve_bytes = concat([
         pb_field(field_number=2, tag=LENGTH_DELIMITED, value=x.pb_bytes())
         for x in self.retrieve
     ])
     aggregate_bytes = pb_field(field_number=3,
                                tag=LENGTH_DELIMITED,
                                value=self.aggregate.pb_bytes())
     tally_bytes = pb_field(field_number=4,
                            tag=LENGTH_DELIMITED,
                            value=self.tally.pb_bytes())
     return concat(
         [timelock_bytes, retrieve_bytes, aggregate_bytes, tally_bytes])
예제 #13
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1, tag=VAR_INT, value=self.signals),
         pb_field(field_number=2,
                  tag=LENGTH_DELIMITED,
                  value=self.beacon.pb_bytes()),
         pb_field(field_number=3,
                  tag=LENGTH_DELIMITED,
                  value=self.merkle_roots.pb_bytes()),
         pb_field(field_number=4,
                  tag=LENGTH_DELIMITED,
                  value=self.proof.pb_bytes()),
         pb_field(field_number=5,
                  tag=LENGTH_DELIMITED,
                  value=self.bn256_public_key.pb_bytes()),
     ])
예제 #14
0
 def pb_bytes(self):
     if self.public_key is None:
         return b''
     return concat([
         pb_field(field_number=1,
                  tag=LENGTH_DELIMITED,
                  value=self.public_key)
     ])
예제 #15
0
 def pb_bytes(self) -> bytes:
     time_lock_bytes = pb_field(
         field_number=3, tag=VAR_INT,
         value=self.time_lock) if (self.time_lock > 0) else None
     if time_lock_bytes is None:
         return concat([
             pb_field(field_number=1,
                      tag=LENGTH_DELIMITED,
                      value=self.pkh.pb_bytes()),
             pb_field(field_number=2, tag=VAR_INT, value=self.value)
         ])
     else:
         return concat([
             pb_field(field_number=1,
                      tag=LENGTH_DELIMITED,
                      value=self.pkh.pb_bytes()),
             pb_field(field_number=2, tag=VAR_INT, value=self.value),
             time_lock_bytes
         ])
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1,
                  tag=LENGTH_DELIMITED,
                  value=self.dr_pointer.pb_bytes()),
         pb_field(field_number=2,
                  tag=LENGTH_DELIMITED,
                  value=self.commitment.pb_bytes()),
         pb_field(field_number=3,
                  tag=LENGTH_DELIMITED,
                  value=self.proof.pb_bytes()),
         concat([
             pb_field(field_number=4,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.collateral
         ]),
         concat([
             pb_field(field_number=5,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.outputs
         ]),
         pb_field(field_number=6,
                  tag=LENGTH_DELIMITED,
                  value=self.bn256_public_key.pb_bytes()),
     ])
예제 #17
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1,
                  tag=LENGTH_DELIMITED,
                  value=self.dr_pointer.pb_bytes()),
         pb_field(field_number=2, tag=LENGTH_DELIMITED, value=self.tally),
         concat([
             pb_field(field_number=3,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.outputs
         ]),
         concat([
             pb_field(field_number=4,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.out_of_consensus
         ]),
         concat([
             pb_field(field_number=5,
                      tag=LENGTH_DELIMITED,
                      value=x.pb_bytes()) for x in self.error_committers
         ]),
     ])
예제 #18
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1, tag=LENGTH_DELIMITED, value=self.mint_hash.pb_bytes()),
         pb_field(field_number=2, tag=LENGTH_DELIMITED, value=self.vt_hash_merkle_root.pb_bytes()),
         pb_field(field_number=3, tag=LENGTH_DELIMITED, value=self.dr_hash_merkle_root.pb_bytes()),
         pb_field(field_number=4, tag=LENGTH_DELIMITED, value=self.commit_hash_merkle_root.pb_bytes()),
         pb_field(field_number=5, tag=LENGTH_DELIMITED, value=self.reveal_hash_merkle_root.pb_bytes()),
         pb_field(field_number=6, tag=LENGTH_DELIMITED, value=self.tally_hash_merkle_root.pb_bytes()),
     ])
예제 #19
0
 def pb_bytes(self) -> bytes:
     return concat([
         pb_field(field_number=1,
                  tag=LENGTH_DELIMITED,
                  value=self.data_request.pb_bytes()),
         pb_field(field_number=2, tag=VAR_INT, value=self.witness_reward),
         pb_field(field_number=3, tag=VAR_INT, value=self.witnesses),
         pb_field(field_number=4,
                  tag=VAR_INT,
                  value=self.commit_and_reveal_fee),
         pb_field(field_number=5,
                  tag=VAR_INT,
                  value=self.min_consensus_percentage),
         pb_field(field_number=6, tag=VAR_INT, value=self.collateral),
     ])
예제 #20
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1,
                  tag=VAR_INT,
                  value=self.signing_committee_length),
         pb_field(field_number=2,
                  tag=LENGTH_DELIMITED,
                  value=self.ars_root.pb_bytes()),
         pb_field(field_number=3,
                  tag=LENGTH_DELIMITED,
                  value=self.data_request_root.pb_bytes()),
         pb_field(field_number=4, tag=VAR_INT, value=self.index),
         pb_field(field_number=5,
                  tag=LENGTH_DELIMITED,
                  value=self.last_block.pb_bytes()),
         pb_field(field_number=6,
                  tag=LENGTH_DELIMITED,
                  value=self.last_block_in_previous_superblock.pb_bytes()),
         pb_field(field_number=7,
                  tag=LENGTH_DELIMITED,
                  value=self.tally_root.pb_bytes()),
     ])
예제 #21
0
 def pb_bytes(self) -> bytes:
     return pb_field(field_number=1, tag=LENGTH_DELIMITED, value=self.hash)
예제 #22
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1, tag=LENGTH_DELIMITED, value=bytes(self.proof)),
         pb_field(field_number=2, tag=LENGTH_DELIMITED, value=self.public_key.pb_bytes()),
     ])
예제 #23
0
 def pb_bytes(self) -> bytes:
     op_bytes = pb_field(field_number=1, tag=VAR_INT, value=self.op)
     args_bytes = pb_field(field_number=2,
                           tag=LENGTH_DELIMITED,
                           value=self.args)
     return concat([op_bytes, args_bytes])
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1, tag=LENGTH_DELIMITED, value=self.dr_pointer.pb_bytes()),
         pb_field(field_number=2, tag=LENGTH_DELIMITED, value=self.reveal),
         pb_field(field_number=3, tag=LENGTH_DELIMITED, value=self.pkh.pb_bytes())
     ])
예제 #25
0
 def pb_bytes(self):
     return concat([
         pb_field(field_number=1,
                  tag=LENGTH_DELIMITED,
                  value=self.proof.pb_bytes())
     ])
예제 #26
0
 def pb_bytes(self) -> bytes:
     return pb_field(field_number=1,
                     tag=LENGTH_DELIMITED,
                     value=concat(
                         [int_to_bytes(self.compressed), self._bytes]))
예제 #27
0
 def pb_bytes(self) -> bytes:
     return pb_field(field_number=1, tag=LENGTH_DELIMITED, value=self.output_pointer.pb_bytes())
예제 #28
0
 def pb_bytes(self):
     return pb_field(field_number=1, tag=VAR_INT,
                     value=self.value) if self.value > 0 else b''