Пример #1
0
    def issue_coins(self, moniker, pck, units, atoms_in_unit):
        from coloredcoinlib.colordef import OBColorDefinition
        from wallet_model import ColorSet

        if pck == 'obc':
            total = units * atoms_in_unit
            op_tx_spec = txcons.SimpleOperationalTxSpec(self.model, None)
            wam = self.model.get_address_manager()
            addr = wam.get_new_genesis_address()
            op_tx_spec.add_target(addr.get_address(), -1, total)
            genesis_ctxs = OBColorDefinition.compose_genesis_tx_spec(
                op_tx_spec)
            genesis_tx = self.model.transform_tx_spec(genesis_ctxs, 'signed')
            height = self.model.ccc.blockchain_state.bitcoind.getblockcount() \
                - 1
            genesis_tx_hash = self.publish_tx(genesis_tx)
            color_desc = ':'.join(['obc', genesis_tx_hash, '0', str(height)])
            adm = self.model.get_asset_definition_manager()
            assdef = adm.add_asset_definition({
                "monikers": [moniker],
                "color_set": [color_desc],
                "unit": atoms_in_unit
            })
            wam.update_genesis_address(assdef.get_color_set())
        else:
            raise Exception('color scheme not recognized')
Пример #2
0
 def test_compose_genesis_tx_spec(self):
     txspec = MockOpTxSpec([])
     cv = SimpleColorValue(colordef=UNCOLORED_MARKER, value=1)
     self.assertRaises(InvalidTargetError,
                       OBColorDefinition.compose_genesis_tx_spec, txspec)
     target = ColorTarget('addr', cv)
     txspec = MockOpTxSpec([target])
     self.assertRaises(InvalidColorError,
                       OBColorDefinition.compose_genesis_tx_spec, txspec)
     cv = SimpleColorValue(colordef=GENESIS_OUTPUT_MARKER, value=1)
     target = ColorTarget('addr', cv)
     txspec = MockOpTxSpec([target])
     self.assertTrue(isinstance(
             OBColorDefinition.compose_genesis_tx_spec(txspec),
             ComposedTxSpec))
Пример #3
0
 def test_compose_genesis_tx_spec(self):
     txspec = MockOpTxSpec([])
     cv = SimpleColorValue(colordef=UNCOLORED_MARKER, value=1)
     self.assertRaises(InvalidTargetError,
                       OBColorDefinition.compose_genesis_tx_spec, txspec)
     target = ColorTarget('addr', cv)
     txspec = MockOpTxSpec([target])
     self.assertRaises(InvalidColorError,
                       OBColorDefinition.compose_genesis_tx_spec, txspec)
     cv = SimpleColorValue(colordef=GENESIS_OUTPUT_MARKER, value=1)
     target = ColorTarget('addr', cv)
     txspec = MockOpTxSpec([target])
     self.assertTrue(
         isinstance(OBColorDefinition.compose_genesis_tx_spec(txspec),
                    ComposedTxSpec))
Пример #4
0
    def issue_coins(self, moniker, pck, units, atoms_in_unit):
        from coloredcoinlib.colordef import OBColorDefinition
        from wallet_model import ColorSet

        if pck == 'obc':
            total = units * atoms_in_unit
            op_tx_spec = txcons.SimpleOperationalTxSpec(self.model, None)
            wam = self.model.get_address_manager()
            addr = wam.get_new_address(ColorSet(self.model, []))
            op_tx_spec.add_target(addr.get_address(), -1, total)
            genesis_ctxs = OBColorDefinition.compose_genesis_tx_spec(op_tx_spec)
            genesis_tx = self.model.transform_tx_spec(genesis_ctxs, 'signed')
            height = self.model.ccc.blockchain_state.bitcoind.getblockcount() - 1
            genesis_tx_hash = self.publish_tx(genesis_tx)
            color_desc = ':'.join(['obc', genesis_tx_hash, '0', str(height)])
            adm = self.model.get_asset_definition_manager()
            assdef = adm.add_asset_definition({"monikers": [moniker],
                                               "color_set": [color_desc]})
            addr.color_set = assdef.get_color_set()
            wam.update_config()                                      
        else:
            raise Exception('color scheme not recognized')