void Exchange_Cryptsy::sendToApi(int reqType, QByteArray method, bool auth, bool sendNow, QByteArray commands) { if(ShibeHttp==0) { ShibeHttp=new ShibeHttp("data.mtgox.com","Rest-Key: "+privateRestKey+"\r\n",this); connect(ShibeHttp,SIGNAL(anyDataReceived()),baseValues_->mainWindow_,SLOT(anyDataReceived())); connect(ShibeHttp,SIGNAL(setDataPending(bool)),baseValues_->mainWindow_,SLOT(setDataPending(bool))); connect(ShibeHttp,SIGNAL(apiDown(bool)),baseValues_->mainWindow_,SLOT(setApiDown(bool))); connect(ShibeHttp,SIGNAL(errorSignal(QString)),baseValues_->mainWindow_,SLOT(showErrorMessage(QString))); connect(ShibeHttp,SIGNAL(sslErrorSignal(const QList<QSslError> &)),this,SLOT(sslErrors(const QList<QSslError> &))); connect(ShibeHttp,SIGNAL(dataReceived(QByteArray,int)),this,SLOT(dataReceivedAuth(QByteArray,int))); }
void Exchange_BitCurex::sendToApi(int reqType, QByteArray method, bool auth, QByteArray hashData, QByteArray postData) { if(julyHttp==0) { julyHttp=new JulyHttp("api.bitcurex.com","Key: "+getApiKey()+"\r\n",this,true); connect(julyHttp,SIGNAL(anyDataReceived()),baseValues_->mainWindow_,SLOT(anyDataReceived())); connect(julyHttp,SIGNAL(apiDown(bool)),baseValues_->mainWindow_,SLOT(setApiDown(bool))); connect(julyHttp,SIGNAL(setDataPending(bool)),baseValues_->mainWindow_,SLOT(setDataPending(bool))); connect(julyHttp,SIGNAL(errorSignal(QString)),baseValues_->mainWindow_,SLOT(showErrorMessage(QString))); connect(julyHttp,SIGNAL(sslErrorSignal(const QList<QSslError> &)),this,SLOT(sslErrors(const QList<QSslError> &))); connect(julyHttp,SIGNAL(dataReceived(QByteArray,int)),this,SLOT(dataReceivedAuth(QByteArray,int))); }
void Exchange_Bitstamp::sendToApi(int reqType, QByteArray method, bool auth, bool sendNow, QByteArray commands) { if(julyHttp==0) { julyHttp=new JulyHttp("www.bitstamp.net","",this); connect(julyHttp,SIGNAL(anyDataReceived()),baseValues_->mainWindow_,SLOT(anyDataReceived())); connect(julyHttp,SIGNAL(setDataPending(bool)),baseValues_->mainWindow_,SLOT(setDataPending(bool))); connect(julyHttp,SIGNAL(apiDown(bool)),baseValues_->mainWindow_,SLOT(setApiDown(bool))); connect(julyHttp,SIGNAL(errorSignal(QString)),baseValues_->mainWindow_,SLOT(showErrorMessage(QString))); connect(julyHttp,SIGNAL(sslErrorSignal(const QList<QSslError> &)),this,SLOT(sslErrors(const QList<QSslError> &))); connect(julyHttp,SIGNAL(dataReceived(QByteArray,int)),this,SLOT(dataReceivedAuth(QByteArray,int))); }
void Exchange_BTCChina::sendToApi(int reqType, QByteArray method, bool auth, bool sendNow, QByteArray commands) { if(auth) { if(julyHttpAuth==0) { julyHttpAuth=new JulyHttp("api.btcchina.com","",this,true,true,"application/json-rpc"); connect(julyHttpAuth,SIGNAL(anyDataReceived()),baseValues_->mainWindow_,SLOT(anyDataReceived())); connect(julyHttpAuth,SIGNAL(setDataPending(bool)),baseValues_->mainWindow_,SLOT(setDataPending(bool))); connect(julyHttpAuth,SIGNAL(apiDown(bool)),baseValues_->mainWindow_,SLOT(setApiDown(bool))); connect(julyHttpAuth,SIGNAL(errorSignal(QString)),baseValues_->mainWindow_,SLOT(showErrorMessage(QString))); connect(julyHttpAuth,SIGNAL(sslErrorSignal(const QList<QSslError> &)),this,SLOT(sslErrors(const QList<QSslError> &))); connect(julyHttpAuth,SIGNAL(dataReceived(QByteArray,int)),this,SLOT(dataReceivedAuth(QByteArray,int))); } QByteArray signatureParams; signatureParams=commands; signatureParams.replace("\"",""); signatureParams.replace("true","1"); signatureParams.replace("false",""); QByteArray postData; QByteArray appendedHeader; static int tonceCounter=0; static quint32 lastTonce=QDateTime::currentDateTime().toTime_t(); quint32 newTonce=QDateTime::currentDateTime().toTime_t(); if(lastTonce!=newTonce) { tonceCounter=0; lastTonce=newTonce; } else { tonceCounter+=10; if(tonceCounter>99)tonceCounter=0; } QByteArray tonceCounterData=QByteArray::number(tonceCounter); if(tonceCounter>9)tonceCounterData.append("0000"); else tonceCounterData.append("00000"); QByteArray tonce=QByteArray::number(newTonce)+tonceCounterData; QByteArray signatureString="tonce="+tonce+"&accesskey="+getApiKey()+"&requestmethod=post&id=1&method="+method+"¶ms="+signatureParams; signatureString=getApiKey()+":"+hmacSha1(getApiSign(),signatureString).toHex(); if(debugLevel&&reqType>299)logThread->writeLog(postData); postData="{\"method\":\""+method+"\",\"params\":["+commands+"],\"id\":1}"; appendedHeader="Authorization: Basic "+signatureString.toBase64()+"\r\n"; appendedHeader+="Json-Rpc-Tonce: "+tonce+"\r\n"; if(sendNow) julyHttpAuth->sendData(reqType, "POST /api_trade_v1.php",postData,appendedHeader); else julyHttpAuth->prepareData(reqType, "POST /api_trade_v1.php",postData,appendedHeader); }