def new_wallet(self, filename, passphrase): directory, basename = os.path.split(filename) dbenv = self.get_dbenv_handle(directory) wallet_db = BSDDBWalletDatabase(dbenv, basename) wallet_db.create() wallet = Wallet(wallet_db, self.clientparams.runmode) wallet.create(passphrase) #add file uid to list dbenv.open_file_uids.add(bsddb_read_file_uid(filename)) account = WalletAccount(self.log, basename, wallet, self.blockchain) TransactionPublisher(self.node, account) self.account_set.add_account(account) self.account_infos[account] = (dbenv, directory, basename)
def open_wallet(self, filename): directory, basename = os.path.split(filename) dbenv = self.get_dbenv_handle(directory) uid = bsddb_read_file_uid(filename) if uid in dbenv.open_file_uids: raise Exception( "Multiple wallets with the same uid unsupported in the same directory." ) wallet_db = BSDDBWalletDatabase(dbenv, basename) wallet = Wallet(wallet_db, self.clientparams.runmode) wallet.open() account = WalletAccount(self.log, basename, wallet, self.blockchain) TransactionPublisher(self.node, account) self.account_set.add_account(account) self.account_infos[account] = (dbenv, directory, basename) #add uid last in case something went wrong before dbenv.open_file_uids.add(uid)
from coinpy_tests.mock import Mock from coinpy.model.protocol.runmode import MAIN, TESTNET from coinpy.lib.wallet.wallet import Wallet from coinpy.lib.wallet.bsddb.bsddb_wallet_database import BSDDBWalletDatabase from coinpy.lib.wallet.coin_selector import CoinSelector from coinpy.tools.bitcoin.base58check import decode_base58check 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,