Пример #1
0
 def get_values(self, values):
     adm = self.model.get_asset_definition_manager()
     avalues = []
     for asset_id, value in values:
         asset = adm.get_asset_by_id(asset_id)
         avalues.append(AdditiveAssetValue(asset=asset, value=value))
     return avalues
Пример #2
0
 def get_targets(self):
     asset = self.get_asset()
     asset_targets = []
     for (tgt_addr, tgt_value) in self.targets:
         asset_value = AdditiveAssetValue(asset=asset, value=tgt_value)
         asset_targets.append(AssetTarget(tgt_addr, asset_value))
     return asset_targets
Пример #3
0
 def send_coins(self, asset, target_addrs, raw_colorvalues):
     """Sends coins to address <target_addr> of asset/color <asset>
     of amount <colorvalue> Satoshis.
     """
     tx_spec = BasicTxSpec(self.model)
     adm = self.model.get_asset_definition_manager()
     colormap = self.model.get_color_map()
     for target_addr, raw_colorvalue in zip(target_addrs, raw_colorvalues):
         # decode the address
         address_asset, address = adm.get_asset_and_address(target_addr)
         if asset != address_asset:
             raise AssetMismatchError(
                 "Address and asset don't match: %s %s" %
                 (asset, address_asset))
         assettarget = AssetTarget(
             address, AdditiveAssetValue(asset=asset, value=raw_colorvalue))
         tx_spec.add_target(assettarget)
     signed_tx_spec = self.model.transform_tx_spec(tx_spec, 'signed')
     if self.debug:
         print("In:")
         for txin in signed_tx_spec.composed_tx_spec.txins:
             print(txin.prevout)
         print("Out:")
         for txout in signed_tx_spec.composed_tx_spec.txouts:
             print(txout.value)
     txhash = self.publish_tx(signed_tx_spec)
     # scan the tx so that the rest of the system knows
     self.model.ccc.colordata.cdbuilder_manager.scan_txhash(
         asset.color_set.color_id_set, txhash)
Пример #4
0
    def send_coins(self, asset, target_addrs, raw_colorvalues):
        """Sends coins to address <target_addr> of asset/color <asset>
        of amount <colorvalue> Satoshis.
        """
        tx_spec = BasicTxSpec(self.model)
        adm = self.model.get_asset_definition_manager()
        for target_addr, raw_colorvalue in zip(target_addrs, raw_colorvalues):
            # decode the address
            address_asset, address = adm.get_asset_and_address(target_addr)
            if asset != address_asset:
                msg = "Address and asset don't match: %s %s!"
                raise AssetMismatchError(msg % (asset, address_asset))
            assettarget = AssetTarget(
                address, AdditiveAssetValue(asset=asset, value=raw_colorvalue))
            tx_spec.add_target(assettarget)
        signed_tx_spec = self.model.transform_tx_spec(tx_spec, 'signed')
        txhash = self.publish_tx(signed_tx_spec)

        self.model.tx_history.add_send_entry(txhash, asset, target_addrs,
                                             raw_colorvalues)
        return txhash
Пример #5
0
 def get_fee_asset_target(self):
     adm = self.model.get_asset_definition_manager()
     asset = adm.get_asset_by_moniker("bitcoin")
     fee = self.model.get_blockchain_state().get_tx(self.txhash).get_fee()
     asset_value = AdditiveAssetValue(asset=asset, value=fee)
     return AssetTarget(None, asset_value)