예제 #1
0
    def build_from_mocks(cls, message_broker, cs_address, keyfile=None, pw_file=None, privkey_seed=None,
                         cs_fee_rate=0.01, base_token_addr=None,
                         quote_token_addr=None, offer_lifetime=None):

        if keyfile is not None and pw_file is not None:
            pw = pw_file.read()
            pw = pw.splitlines()[0]
            acc = Account.load(file=keyfile, password=pw)
            signer = Signer.from_account(acc)

        elif privkey_seed is None:
            signer = Signer.random()
        else:
            signer = Signer.from_seed(privkey_seed)

        token_pair = TokenPair(base_token_addr, quote_token_addr)

        trader_client = TraderClient(signer.address, host='localhost', port=5001, api_version='v1',
                                     commitment_amount=10)

        commitment_service_client = CommitmentServiceClient(signer, token_pair, message_broker, cs_address, fee_rate=cs_fee_rate)

        raidex_node = RaidexNode(signer.address, token_pair, message_broker, trader_client)

        if offer_lifetime is not None:
            raidex_node.default_offer_lifetime = offer_lifetime

        app = App(trader_client, commitment_service_client, message_broker, token_pair, raidex_node)
        return app
예제 #2
0
파일: app.py 프로젝트: kli-fi/raidex
    def build_default_from_config(cls,
                                  keyfile=None,
                                  pw_file=None,
                                  privkey_seed=None,
                                  cs_address=None,
                                  cs_fee_rate=0.01,
                                  base_token_addr=None,
                                  quote_token_addr=None,
                                  message_broker_host='127.0.0.1',
                                  message_broker_port=5000,
                                  trader_host='127.0.0.1',
                                  trader_port=5001,
                                  offer_lifetime=None):

        if keyfile is not None and pw_file is not None:
            pw = pw_file.read()
            pw = pw.splitlines()[0]
            acc = Account.load(file=keyfile, password=pw)
            signer = Signer.from_account(acc)

        elif privkey_seed is None:
            signer = Signer.random()
        else:
            signer = Signer.from_seed(privkey_seed)

        token_pair = TokenPair(base_token=binary_address(base_token_addr),
                               base_decimal=3,
                               quote_token=binary_address(quote_token_addr),
                               quote_decimal=18)

        trader_client = TraderClient(signer.checksum_address,
                                     host=trader_host,
                                     port=trader_port,
                                     market=token_pair)
        message_broker = MessageBrokerClient(host=message_broker_host,
                                             port=message_broker_port,
                                             address=signer.checksum_address)

        transport = Transport(message_broker, signer)

        commitment_service_client = CommitmentServiceClient(
            signer,
            token_pair,
            message_broker,
            cs_address,
            fee_rate=cs_fee_rate)

        raidex_node = RaidexNode(signer.address, token_pair, message_broker,
                                 trader_client)

        # if mock_trading_activity is True:
        #    raise NotImplementedError('Trading Mocking disabled a the moment')

        if offer_lifetime is not None:
            raidex_node.default_offer_lifetime = offer_lifetime

        app = App(trader_client, commitment_service_client, transport,
                  token_pair, raidex_node)
        return app
예제 #3
0
파일: conftest.py 프로젝트: kli-fi/raidex
def commitment_service(message_broker, trader):
    signer = Signer.random()
    trader_client = TraderClientMock(signer.address, trader=trader)
    return CommitmentService(signer,
                             message_broker,
                             trader_client,
                             fee_rate=0.01)
def raidex_nodes(market, trader, accounts, message_broker, commitment_service):
    nodes = []

    for account in accounts:
        signer = Signer(account.privatekey)
        trader_client = TraderClientMock(signer.address, commitment_balance=10, trader=trader)
        commitment_service_client = CommitmentServiceClient(signer, market, trader_client,
                                                            message_broker, commitment_service.address,
                                                            fee_rate=commitment_service.fee_rate)

        node = RaidexNode(signer.address, market, commitment_service_client, message_broker, trader_client)
        nodes.append(node)
    return nodes
예제 #5
0
파일: node.py 프로젝트: kli-fi/raidex
    def build_service(cls,
                      keyfile=None,
                      pw_file=None,
                      message_broker_host='127.0.0.1',
                      message_broker_port=5000,
                      trader_host='127.0.0.1',
                      trader_port=5003,
                      fee_rate=None):

        pw = pw_file.read()
        if pw != '':
            pw = pw.splitlines()[0]
        acc = Account.load(file=keyfile, password=pw)
        signer = Signer.from_account(acc)
        message_broker_client = MessageBrokerClient(host=message_broker_host, port=message_broker_port)
        trader_client = TraderClient(signer.canonical_address,
                                     host=trader_host,
                                     port=trader_port,
                                     api_version='v1',
                                     commitment_amount=COMMITMENT_AMOUNT)

        return cls(signer, message_broker_client, trader_client, fee_rate)
예제 #6
0
파일: mock.py 프로젝트: kli-fi/raidex
 def __init__(self, signer=None):
     if signer is None:
         signer = Signer.random()
     self.signer = signer
예제 #7
0
파일: mock.py 프로젝트: kli-fi/raidex
 def __init__(self, signer=None):
     if signer is None:
         signer = Signer()
     self.signer = signer
     self.swaps = {}
예제 #8
0
def commitment_service(market, message_broker):
    return CommitmentServiceClientMock(Signer.random(), market, message_broker)