def from_base58addr(base58addrstr): try: bytestr = decode_base58check(base58addrstr, True) except Exception as e: raise InvalidBitcoinAddress("Unable to decode base58check : %s" % (str(e))) if len(bytestr) != 21: raise InvalidBitcoinAddress("Invalid length : %d" % (len(bytestr))) return BitcoinAddress.from_bytestring(bytestr)
def found_nick(self, nick): if nick[0] == 'u': #routable try: hostaddr = decode_base58check(nick[1:]) ip = ".".join([str(struct.unpack(">B", x)[0]) for x in hostaddr[:4]]) port = struct.unpack(">H", hostaddr[4:])[0] except: self.log.info("Error unpacking nickname (errorneous peer): %s" % (nick)) return self.fire(self.EVT_FOUND_PEER, peeraddress=SockAddr(ip, port))
from coinpy.model.constants.bitcoin import COIN from coinpy.lib.vm.vm import TxValidationVM import os runmode = TESTNET wallet_filename = "D:\\repositories\\coinpy\\coinpy-client\\src\\data\\testnet\\wallet_testnet.dat" directory, filename = os.path.split(wallet_filename) bsddb_env = BSDDBEnv(directory) wallet = Wallet(None, BSDDBWalletDatabase(bsddb_env, filename), runmode) selector = CoinSelector() amount, fee = 145.0065 * COIN, 0 * COIN #list of (txhash, tx, index, txout) outputs = list(wallet.iter_my_outputs()) selected_outputs = selector.select_coins(outputs, amount + fee) tx = create_pubkeyhash_transaction( selected_outputs, decode_base58check("n4MsBRWD7VxKGsqYRSLaFZC6hQrsrKLaZo"), decode_base58check("n4MsBRWD7VxKGsqYRSLaFZC6hQrsrKLaZo"), amount, fee) sign_transaction(tx, selected_outputs) vm = TxValidationVM() print tx print len(selected_outputs) print vm.validate(tx, 0, selected_outputs[0].txout.script, tx.in_list[0].script) print vm.validate(tx, 1, selected_outputs[1].txout.script, tx.in_list[1].script) print vm.validate(tx, 2, selected_outputs[2].txout.script, tx.in_list[2].script)
from coinpy.model.constants.bitcoin import COIN from coinpy.lib.vm.vm import TxValidationVM import os runmode = TESTNET wallet_filename = "D:\\repositories\\coinpy\\coinpy-client\\src\\data\\testnet\\wallet_testnet.dat" directory, filename = os.path.split(wallet_filename) bsddb_env = BSDDBEnv(directory) wallet = Wallet(None, BSDDBWalletDatabase(bsddb_env, filename), runmode) selector = CoinSelector() amount, fee = 145.0065 * COIN, 0 * COIN # list of (txhash, tx, index, txout) outputs = list(wallet.iter_my_outputs()) selected_outputs = selector.select_coins(outputs, amount + fee) tx = create_pubkeyhash_transaction( selected_outputs, decode_base58check("n4MsBRWD7VxKGsqYRSLaFZC6hQrsrKLaZo"), decode_base58check("n4MsBRWD7VxKGsqYRSLaFZC6hQrsrKLaZo"), amount, fee, ) sign_transaction(tx, selected_outputs) vm = TxValidationVM() print tx print len(selected_outputs) print vm.validate(tx, 0, selected_outputs[0].txout.script, tx.in_list[0].script) print vm.validate(tx, 1, selected_outputs[1].txout.script, tx.in_list[1].script) print vm.validate(tx, 2, selected_outputs[2].txout.script, tx.in_list[2].script)