def main(): session = database.make_session() try: print "WARNING: DO NOT RUN WHILE SPUTNIK IS RUNNING. SHUT EVERYTHING DOWN FIRST" leo = LowEarthOrbit(session) if len(sys.argv) == 1: try: while True: leo.parse(raw_input("leo> ")) except EOFError: pass else: leo.parse(" ".join(sys.argv[1:])) # Before committing run a sanity check on all contracts contracts = session.query(models.Contract) failures = [ contract.ticker for contract in contracts if not contract.sanity_check ] if len(failures): print "CONTRACTS FAILED SANITY CHECK" print failures session.rollback() else: session.commit() except Exception, e: print e session.rollback() raise e
def main(): session = database.make_session() try: print "WARNING: DO NOT RUN WHILE SPUTNIK IS RUNNING. SHUT EVERYTHING DOWN FIRST" leo = LowEarthOrbit(session) if len(sys.argv) == 1: try: while True: leo.parse(raw_input("leo> ")) except EOFError: pass else: leo.parse(" ".join(sys.argv[1:])) # Before committing run a sanity check on all contracts contracts = session.query(models.Contract) failures = [contract.ticker for contract in contracts if not contract.sanity_check] if len(failures): print "CONTRACTS FAILED SANITY CHECK" print failures session.rollback() else: session.commit() except Exception, e: print e session.rollback() raise e
def setUp(self): logging.basicConfig(format='%(asctime)s - %(levelname)s - %(funcName)s() %(lineno)d:\t %(message)s', level=logging.DEBUG) os.chdir(os.path.dirname(os.path.abspath(__file__))) fix_config() self.session = database.make_session() self.leo = leo.LowEarthOrbit(self.session) self.run_leo(db_init)
def main(): log.startLogging(sys.stdout) session = database.make_session() ticker = args[0] try: contract = session.query(models.Contract).filter_by(ticker=ticker).one() except Exception, e: session.rollback() log.err("Cannot determine ticker id. %s" % e) log.err() raise e
def main(): log.startLogging(sys.stdout) session = database.make_session() safe_price_subscriber = connect_subscriber(config.get("safe_price_forwarder", "zmq_backend_address")) safe_price_subscriber.subscribe('') sendmail = Sendmail(config.get("riskmanager", "from_email")) accountant = AccountantProxy("dealer", config.get("accountant", "riskmanager_export"), config.getint("accountant", "riskmanager_export_base_port")) riskmanager = RiskManager(session, sendmail, safe_price_subscriber, accountant) reactor.run()
def main(): log.startLogging(sys.stdout) session = database.make_session() safe_price_subscriber = connect_subscriber( config.get("safe_price_forwarder", "zmq_backend_address")) safe_price_subscriber.subscribe('') sendmail = Sendmail(config.get("riskmanager", "from_email")) accountant = AccountantProxy( "dealer", config.get("accountant", "riskmanager_export"), config.getint("accountant", "riskmanager_export_base_port")) riskmanager = RiskManager(session, sendmail, safe_price_subscriber, accountant) reactor.run()
def main(): log.startLogging(sys.stdout) monitors = ["administrator", "cashier", "ledger", "webserver"] session = database.make_session() proxy = AlertsProxy(config.get("alerts", "export")) watchdogs = {} for name in monitors: watchdogs[name] = Watchdog(name, config.get("watchdog", name), proxy) watchdogs[name].run() num_accountants = config.getint("accountant", "num_procs") for i in range(num_accountants): name = "accountant_%d" % i watchdogs[name] = Watchdog(name, config.get("watchdog", "accountant") % (config.getint("watchdog", "accountant_base_port") + i), proxy) watchdogs[name].run() engine_base_port = config.getint("watchdog", "engine_base_port") for contract in session.query(models.Contract).filter_by(active=True).all(): if contract.contract_type != "cash": watchdogs[contract.ticker] = Watchdog(contract.ticker, config.get("watchdog", "engine") % (engine_base_port + int(contract.id)), proxy) watchdogs[contract.ticker].run() reactor.run()
def main(): log.startLogging(sys.stdout) accountant = AccountantProxy("dealer", config.get("accountant", "cashier_export"), config.getint("accountant", "cashier_export_base_port")) session = db.make_session() bitcoin_conf = config.get("cashier", "bitcoin_conf") log.msg('connecting to bitcoin client') bitcoinrpc = {'BTC': BitcoinRpc(bitcoin_conf, 1)} compropago = Compropago(config.get("cashier", "compropago_key")) cold_wallet_period = config.getint("cashier", "cold_wallet_period") sendmail=Sendmail(config.get("administrator", "email")) minimum_confirmations = config.getint("cashier", "minimum_confirmations") alerts_proxy = AlertsProxy(config.get("alerts", "export")) bitgo_config = {'use_production': not config.getboolean("cashier", "testnet"), 'client_id': config.get("bitgo", "client_id"), 'client_secret': config.get("bitgo", "client_secret")} bitgo = BitGo(**bitgo_config) bitgo_private_key_file = config.get("cashier", "bitgo_private_key_file") cashier = Cashier(session, accountant, bitcoinrpc, compropago, cold_wallet_period=cold_wallet_period, sendmail=sendmail, minimum_confirmations=minimum_confirmations, alerts=alerts_proxy, bitgo=bitgo, bitgo_private_key_file=bitgo_private_key_file, testnet=config.getboolean("cashier", "testnet"), ) administrator_export = AdministratorExport(cashier) accountant_export = AccountantExport(cashier) webserver_export = WebserverExport(cashier) watchdog(config.get("watchdog", "cashier")) router_share_async(administrator_export, config.get("cashier", "administrator_export")) pull_share_async(accountant_export, config.get("cashier", "accountant_export")) router_share_async(webserver_export, config.get("cashier", "webserver_export")) public_server = Resource() public_server.putChild('compropago', CompropagoHook(cashier)) private_server = Resource() private_server.putChild('bitcoin', BitcoinNotify(cashier)) if config.getboolean("webserver", "ssl"): key = config.get("webserver", "ssl_key") cert = config.get("webserver", "ssl_cert") cert_chain = config.get("webserver", "ssl_cert_chain") contextFactory = ssl.ChainedOpenSSLContextFactory(key, cert_chain) reactor.listenSSL(config.getint("cashier", "public_port"), Site(public_server), contextFactory, interface=config.get("cashier", "public_interface")) else: reactor.listenTCP(config.getint("cashier", "public_port"), Site(public_server), interface=config.get("cashier", "public_interface")) reactor.listenTCP(config.getint("cashier", "private_port"), Site(private_server), interface=config.get("cashier", "private_interface")) reactor.run()
def main(): log.startLogging(sys.stdout) accountant = AccountantProxy( "dealer", config.get("accountant", "cashier_export"), config.getint("accountant", "cashier_export_base_port")) session = db.make_session() bitcoin_conf = config.get("cashier", "bitcoin_conf") log.msg('connecting to bitcoin client') bitcoinrpc = {'BTC': BitcoinRpc(bitcoin_conf, 1)} compropago = Compropago(config.get("cashier", "compropago_key")) cold_wallet_period = config.getint("cashier", "cold_wallet_period") sendmail = Sendmail(config.get("administrator", "email")) minimum_confirmations = config.getint("cashier", "minimum_confirmations") alerts_proxy = AlertsProxy(config.get("alerts", "export")) bitgo_config = { 'use_production': not config.getboolean("cashier", "testnet"), 'client_id': config.get("bitgo", "client_id"), 'client_secret': config.get("bitgo", "client_secret") } bitgo = BitGo(**bitgo_config) bitgo_private_key_file = config.get("cashier", "bitgo_private_key_file") cashier = Cashier( session, accountant, bitcoinrpc, compropago, cold_wallet_period=cold_wallet_period, sendmail=sendmail, minimum_confirmations=minimum_confirmations, alerts=alerts_proxy, bitgo=bitgo, bitgo_private_key_file=bitgo_private_key_file, testnet=config.getboolean("cashier", "testnet"), ) administrator_export = AdministratorExport(cashier) accountant_export = AccountantExport(cashier) webserver_export = WebserverExport(cashier) watchdog(config.get("watchdog", "cashier")) router_share_async(administrator_export, config.get("cashier", "administrator_export")) pull_share_async(accountant_export, config.get("cashier", "accountant_export")) router_share_async(webserver_export, config.get("cashier", "webserver_export")) public_server = Resource() public_server.putChild('compropago', CompropagoHook(cashier)) private_server = Resource() private_server.putChild('bitcoin', BitcoinNotify(cashier)) if config.getboolean("webserver", "ssl"): key = config.get("webserver", "ssl_key") cert = config.get("webserver", "ssl_cert") cert_chain = config.get("webserver", "ssl_cert_chain") contextFactory = ssl.ChainedOpenSSLContextFactory(key, cert_chain) reactor.listenSSL(config.getint("cashier", "public_port"), Site(public_server), contextFactory, interface=config.get("cashier", "public_interface")) else: reactor.listenTCP(config.getint("cashier", "public_port"), Site(public_server), interface=config.get("cashier", "public_interface")) reactor.listenTCP(config.getint("cashier", "private_port"), Site(private_server), interface=config.get("cashier", "private_interface")) reactor.run()
# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # from sqlalchemy.orm.exc import NoResultFound import sys import os from sputnik.database import database, models from sputnik.rpc import txbitcoinrpc import getpass from sputnik import config from twisted.internet import defer, reactor, task db_session = database.make_session(username=getpass.getuser()) print config.get("cashier", "bitcoin_conf") conn = txbitcoinrpc.BitcoinRpc(config.get("cashier", "bitcoin_conf")) #conn.walletpassphrase('pass',10, dont_raise=True) count = 0 def go(): d = conn.keypoolrefill() def get_addresses(result): quantity = 100 dl = defer.DeferredList( [conn.getnewaddress() for i in range(quantity)])
# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # from sqlalchemy.orm.exc import NoResultFound import sys import os from sputnik.database import database, models from sputnik.rpc import txbitcoinrpc import getpass from sputnik import config from twisted.internet import defer, reactor, task db_session = database.make_session(username=getpass.getuser()) print config.get("cashier", "bitcoin_conf") conn = txbitcoinrpc.BitcoinRpc(config.get("cashier", "bitcoin_conf")) # conn.walletpassphrase('pass',10, dont_raise=True) count = 0 def go(): d = conn.keypoolrefill() def get_addresses(result): quantity = 100 dl = defer.DeferredList([conn.getnewaddress() for i in range(quantity)])