Beispiel #1
0
def watchdog(address):
    return zmq_util.router_share_async(WatchdogExport(), address)
Beispiel #2
0
    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")
Beispiel #3
0
def watchdog(address):
    return zmq_util.router_share_async(WatchdogExport(), address)
Beispiel #4
0
    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

    engine = Engine()
    administrator_export = AdministratorExport(engine)
    accountant_port = config.getint("engine", "accountant_base_port") + contract.id

    administrator_port = config.getint("engine", "administrator_base_port") + contract.id
    router_share_async(administrator_export, "tcp://127.0.0.1:%d" % administrator_port)

    logger = LoggingListener(engine, contract)
    accountant = accountant.AccountantProxy("push",
                                            config.get("accountant", "engine_export"),
                                            config.getint("accountant", "engine_export_base_port"))
    accountant_notifier = AccountantNotifier(engine, accountant, contract)
    webserver = push_proxy_async(config.get("webserver", "engine_export"))
    webserver_notifier = WebserverNotifier(engine, webserver, contract)


    watchdog(config.get("watchdog", "engine") %
             (config.getint("watchdog", "engine_base_port") + contract.id))

    forwarder = connect_publisher(config.get("safe_price_forwarder", "zmq_frontend_address"))
Beispiel #5
0
        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 = util.ChainedOpenSSLContextFactory(key, cert_chain)
Beispiel #6
0
                   quantity,
                   direction,
                   note=None,
                   timestamp=None):
    if timestamp is None:
        timestamp = util.dt_to_timestamp(datetime.datetime.utcnow())

    return {
        "username": username,
        "contract": contract,
        "quantity": quantity,
        "direction": direction,
        "note": note,
        "type": type,
        "timestamp": timestamp
    }


if __name__ == "__main__":
    fo = log.startLogging(sys.stdout)
    fo.formatTime = lambda x: datetime.datetime.fromtimestamp(x).strftime(
        "%Y-%m-%d %H:%M:%S.%f")
    engine = database.make_engine()
    timeout = config.getint("ledger", "timeout")
    ledger = Ledger(engine, timeout)
    accountant_export = AccountantExport(ledger)
    watchdog(config.get("watchdog", "ledger"))
    router_share_async(accountant_export,
                       config.get("ledger", "accountant_export"))
    reactor.run()
Beispiel #7
0
class AccountantExport(ComponentExport):
    def __init__(self, ledger):
        self.ledger = ledger
        ComponentExport.__init__(self, ledger)

    @export
    @schema("rpc/ledger.json#post")
    def post(self, *postings):
        return self.ledger.post(list(postings))

def create_posting(type, username, contract, quantity, direction, note=None, timestamp=None):
    if timestamp is None:
        timestamp = util.dt_to_timestamp(datetime.datetime.utcnow())

    return {"username":username, "contract":contract, "quantity":quantity,
            "direction":direction, "note": note, "type": type, "timestamp": timestamp}

if __name__ == "__main__":
    fo = log.startLogging(sys.stdout)
    fo.formatTime = lambda x: datetime.datetime.fromtimestamp(x).strftime("%Y-%m-%d %H:%M:%S.%f")
    engine = database.make_engine()
    timeout = config.getint("ledger", "timeout")
    ledger = Ledger(engine, timeout)
    accountant_export = AccountantExport(ledger)
    watchdog(config.get("watchdog", "ledger"))
    router_share_async(accountant_export,
            config.get("ledger", "accountant_export"))
    reactor.run()