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')
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))
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))
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')