{Подпись для этого запроса недействительна} ошибка вывода средств на Binance

Хотя на github есть похожие ошибки, а здесь они старше, у меня проблема с подписью при выводе монеты из binance через API из моего скрипта. Возврат сообщения в результате ошибки:

 {Signature for this request is not valid}

Я использую node-binance-api для своего скрипта. Функция отзыва подписи, определенная в этом файле: https://github.com/jaggedsoft/node-binance-api/blob/master/node-binance-api.js

const signedRequest = ( url, data = {}, callback, method = 'GET', noDataInSignature = false ) => {
        if ( !Binance.options.APIKEY ) throw Error( 'apiRequest: Invalid API Key' );
        if ( !Binance.options.APISECRET ) throw Error( 'signedRequest: Invalid API Secret' );
        data.timestamp = new Date().getTime() + Binance.info.timeOffset;
        if ( typeof data.recvWindow === 'undefined' ) data.recvWindow = Binance.options.recvWindow;
        let query = method === 'POST' && noDataInSignature ? '' : makeQueryString( data );
        let signature = crypto.createHmac( 'sha256', Binance.options.APISECRET ).update( query ).digest( 'hex' ); // set the HMAC hash header
        if ( method === 'POST' ) {
            let opt = reqObjPOST(
                url + '?signature=' + signature,
                data,
                method,
                Binance.options.APIKEY
            );
            proxyRequest( opt, callback );
        } else {
            let opt = reqObj(
                url + '?' + query + '&signature=' + signature,
                data,
                method,
                Binance.options.APIKEY
            );
            proxyRequest( opt, callback );
        }
    };

Здесь есть решение, которое похоже на работу некоторых людей: https://github.com/jaggedsoft/node-binance-api/issues/413 предлагает изменить метод подписи, который можно изменить следующим образом:

if ( method === 'POST' ) {
    let opt = reqObjPOST(
        url,
        data,
        method,
        Binance.options.APIKEY
    );
    opt.form.signature = signature;
    proxyRequest( opt, callback );
}

К сожалению, у меня это не сработало и даже привело к провалу сделок. Я использую функцию вывода, как в примерах:

binance.withdraw("BTC", "1C5gqLRs96Xq4V2ZZAR1347yUCpHie7sa", 0.2)

Я протестировал все остальные вещи, такие как лимиты учетной записи, настройки api, баланс монет и не изменил никакого кода, но 4 дня назад binance изменил коды для API, после чего снятие средств начало выдавать ошибку. Разработчики binance предлагают изменить url на sapi https://binance-docs.github.io/apidocs/spot/en/#withdraw-sapi, но это также вызвало такие же сбои:

 signedRequest(sapi + 'v1/capital/withdraw/apply', params, callback, 'POST');

У меня нет проблем с торговлей, книгой заказов и просмотром баланса с одинаковой подписью, только вывод дает ошибку подписи.


person trmt    schedule 20.04.2020    source источник


Ответы (1)


Я заметил, что мой node-binance-api не работал в последней версии, поэтому я обновил и внес исправления, как указано здесь https://github.com/jaggedsoft/node-binance-api/issues/413, после этого сработало снятие результатов

person trmt    schedule 20.04.2020