Beispiel #1
0
 def from_serialized_data(ptr, data):
     try:
         ptr, sign = bbclib.get_n_byte_int(ptr, 1, data)
         ptr, numerator = bbclib.get_n_byte_int(ptr, 2, data)
         ptr, denominator = bbclib.get_n_byte_int(ptr, 2, data)
     except:
         raise
     if sign > 0:
         numerator *= -1
     return ptr, Fraction(numerator, denominator)
Beispiel #2
0
 def from_serialized_data(ptr, data):
     try:
         ptr, condition = bbclib.get_n_byte_int(ptr, 1, data)
         ptr, type = bbclib.get_n_byte_int(ptr, 1, data)
         ptr, rate = Fraction.from_serialized_data(ptr, data)
         ptr, rate_to_stop = Fraction.from_serialized_data(ptr, data)
         ptr, time_unit = bbclib.get_n_byte_int(ptr, 8, data)
         ptr, expire_after = bbclib.get_n_byte_int(ptr, 8, data)
     except:
         raise
     return ptr, Variation(condition, type, rate, rate_to_stop, time_unit,
                           expire_after)
Beispiel #3
0
 def from_serialized_data(ptr, data):
     if ptr >= len(data):
         return ptr, None
     try:
         ptr, command = bbclib.get_n_byte_int(ptr, 1, data)
         ptr, num_pubkeys = bbclib.get_n_byte_int(ptr, 2, data)
         public_keys = []
         for i in range(num_pubkeys):
             ptr, size = bbclib.get_n_byte_int(ptr, 2, data)
             ptr, pubkey = bbclib.get_n_bytes(ptr, size, data)
             public_keys.append(bytes(pubkey))
     except:
         raise
     return ptr, Directive(command, public_keys)
Beispiel #4
0
 def from_serialized_data(ptr, data):
     try:
         ptr, version = bbclib.get_n_byte_int(ptr, 2, data)
         ptr, size = bbclib.get_n_byte_int(ptr, 2, data)
         ptr, v = bbclib.get_n_bytes(ptr, size, data)
         name = v.decode()
         ptr, size = bbclib.get_n_byte_int(ptr, 1, data)
         ptr, v = bbclib.get_n_bytes(ptr, size, data)
         symbol = v.decode()
         ptr, decimal = bbclib.get_n_byte_int(ptr, 1, data)
         ptr, count = bbclib.get_n_byte_int(ptr, 1, data)
         variation_specs = []
         for i in range(count):
             ptr, variation = Variation.from_serialized_data(ptr, data)
             variation_specs.append(variation)
         ptr, v = bbclib.get_n_byte_int(ptr, 2, data)
         option_witnesses_required = \
                 v & CurrencySpec.O_BIT_WITNESSES_REQUIRED != 0
         option_expiration_rebased = \
                 v & CurrencySpec.O_BIT_EXPIRATION_REBASED != 0
         option_conditions_irreversible = \
                 v & CurrencySpec.O_BIT_CONDITIONS_IRREVERSIBLE != 0
     except:
         raise
     return ptr, CurrencySpec(
         name=name,
         symbol=symbol,
         decimal=decimal,
         variation_specs=variation_specs,
         option_witnesses_required=option_witnesses_required,
         option_expiration_rebased=option_expiration_rebased,
         option_conditions_irreversible=option_conditions_irreversible,
         version=version)
Beispiel #5
0
 def from_serialized_data(ptr, data):
     try:
         ptr, type = bbclib.get_n_byte_int(ptr, 1, data)
         ptr, value_specified = bbclib.get_n_byte_int(ptr, 8, data)
         ptr, time_of_origin = bbclib.get_n_byte_int(ptr, 8, data)
         ptr, count = bbclib.get_n_byte_int(ptr, 1, data)
         variation_specs = []
         for i in range(count):
             ptr, variation = Variation.from_serialized_data(ptr, data)
             variation_specs.append(variation)
     except:
         raise
     if type == BaseAssetBody.T_VALUE:
         obj = ValueAssetBody(value_specified, time_of_origin,
                              variation_specs)
     elif type == BaseAssetBody.T_CHANGE:
         obj = ChangeAssetBody(value_specified, time_of_origin,
                               variation_specs)
     elif type == BaseAssetBody.T_ISSUED:
         obj = IssuedAssetBody(value_specified, time_of_origin,
                               variation_specs)
     return ptr, obj
Beispiel #6
0
 def from_serialized_data(ptr, data):
     try:
         ptr, condition = bbclib.get_n_byte_int(ptr, 1, data)
     except:
         raise
     return ptr, ConditionAssetBody(condition)