В процессе загрузки ресурсов... загрузка...

exchange.Encode

Вexchange.Encode()Функция используется для расчетов шифрования подписи.

Вexchange.Encode()функция возвращает вычисленное значение кодирования хэша. строка

exchange.Encode ((algo, inputФормат, выходФормат, данные) exchange.Encode ((algo, inputFormat, outputFormat, data, keyФормат, ключ)

Параметрalgoявляется алгоритмом, используемым для расчета кодирования. Поддерживаемые настройки: raw (без использования алгоритма), sign, signTx, md4, md5, sha256, sha512, sha1, keccak256, sha3.224, sha3.256, sha3.384, sha3.512, sha3.keccak256, sha3.keccak512, sha512.384, sha512.256, sha512.224, emd160, ripke2b.256, blake2b.512, blake2s.128, blake2s.256.algoтакже поддерживает: text.encoder.utf8, text.decoder.utf8, text.encoder.gbk, text.decoder.gbk, для кодирования и декодирования строк. Параметрalgoтакже поддерживает: алгоритм ed25519. Он поддерживает использование различных хэш-алгоритмов, например, параметрalgoможет быть написано как ed25519.md5, ed25519.sha512 и т. д. Поддерживаетed25519.seedрасчеты. что-то неправда строка Используется для определения формата данныхdataпараметр.inputFormatпараметр может быть установлен на один из: raw, hex, base64, и string. raw означает, что данные являются сырыми данными, hex означает, что данные являютсяhexbase64 означает, что данныеbase64кодируется, и string означает, что данные являются строкой. ввод Формат Истинно строка Используется для указания формата выходной информации.outputFormatпараметр поддерживает следующие настройки: raw, hex, base64, string. raw означает, что данные являются сырыми данными, hex означает, что данныеhexbase64 означает, что данныеbase64кодируется, и string означает, что данные являются строкой. Выход Формат Истинно строка Параметрdataэто данные, которые должны быть обработаны. данные неправда строка Используется для определения формата данныхkeyпараметр.keyпараметр может быть установлен на один из: raw, hex, base64, и string. raw означает, что данные являются сырыми данными, hex означает, что данные являютсяhexbase64 означает, что данныеbase64кодируется, и string означает, что данные являются строкой. keyФормат ложное строка Вkeyпараметр используется для указания ключа, используемого в расчете подписи, и он может быть использован в качестве строки простого текста."{{accesskey}}", "{{secretkey}}"ссылаясь наaccessKeyиsecretKeyКонфигурировано в объекте обмена {@var/EXCHANGE exchange}. Ключ ложное строка

function main() {
    var APIKEY = "your Access Key(Bitmex API ID)"
    var expires = parseInt(Date.now() / 1000) + 10
    var signature = exchange.Encode("sha256", "string", "hex", "GET/realtime" + expires, "hex", "{{secretkey}}")
    var client = Dial("wss://www.bitmex.com/realtime", 60)
    var auth = JSON.stringify({args: [APIKEY, expires, signature], op: "authKeyExpires"})
    var pos = 0
    client.write(auth)
    client.write('{"op": "subscribe", "args": "position"}')
    while (true) {
        bitmexData = client.read()
        if(bitmexData.table == 'position' && pos != parseInt(bitmexData.data[0].currentQty)){
            Log('position change', pos, parseInt(bitmexData.data[0].currentQty), '@')
            pos = parseInt(bitmexData.data[0].currentQty)
        }
    }
}
import time
def main():
    APIKEY = "your Access Key(Bitmex API ID)"
    expires = int(time.time() + 10)
    signature = exchange.Encode("sha256", "string", "hex", "GET/realtime" + expires, "hex", "{{secretkey}}")
    client = Dial("wss://www.bitmex.com/realtime", 60)
    auth = json.dumps({"args": [APIKEY, expires, signature], "op": "authKeyExpires"})
    pos = 0
    client.write(auth)
    client.write('{"op": "subscribe", "args": "position"}')
    while True:
        bitmexData = json.loads(client.read())
        if "table" in bitmexData and bitmexData["table"] == "position" and len(bitmexData["data"]) != 0 and pos != bitmexData["data"][0]["currentQty"]:   
            Log("position change", pos, bitmexData["data"][0]["currentQty"], "@")
            pos = bitmexData["data"][0]["currentQty"]
void main() {
    auto APIKEY = "your Access Key(Bitmex API ID)";
    auto expires = Unix() + 10;
    auto signature = exchange.Encode("sha256", "string", "hex", format("GET/realtime%d", expires), "hex", "{{secretkey}}");
    
    auto client = Dial("wss://www.bitmex.com/realtime", 60);
    json auth = R"({"args": [], "op": "authKeyExpires"})"_json;            

    auth["args"].push_back(APIKEY);
    auth["args"].push_back(expires);
    auth["args"].push_back(signature);
    auto pos = 0;
    client.write(auth.dump());
    client.write("{\"op\": \"subscribe\", \"args\": \"position\"}");
    while(true) {
        auto bitmexData = json::parse(client.read());
        if(bitmexData["table"] == "position" && bitmexData["data"][0].find("currentQty") != bitmexData["data"][0].end() && pos != bitmexData["data"][0]["currentQty"]) {
            Log("test");
            Log("position change", pos, bitmexData["data"][0]["currentQty"], "@");
            pos = bitmexData["data"][0]["currentQty"];
        }
    }
}

Пример сдвига изменения позиции BitMEX (протокол wss):

Только реальная торговля поддерживает звонкиexchange.Encode()Функция."{{accesskey}}", "{{secretkey}}"ссылки действительны только в том случае, еслиexchange.Encode()функция используется.

{@var/EXCHANGE exchange}, {@fun/Global/Encode Encode}

exchange.Log exchange.Go