Die Ressourcen sind geladen. Beförderung...

exchange.Encode

Dieexchange.Encode()Die Funktion wird für Signaturverschlüsselungsberechnungen verwendet.

Dieexchange.Encode()Funktion gibt die berechnete Hash-Codierung zurück. String

exchange.Encode ((algo, inputFormat, outputFormat, Daten) exchange.Encode ((algo, inputFormat, outputFormat, Daten, SchlüsselFormat, Schlüssel)

Der Parameteralgoist der Algorithmus, der für die Kodierung berechnet wird. Unterstützte Einstellungen sind: raw (kein Algorithmus verwendet), 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, blake2b.128, blake2s625.algounterstützt auch: text.encoder.utf8, text.decoder.utf8, text.encoder.gbk, text.decoder.gbk, für die Kodierung und Entschlüsselung von Zeichenfolgen.algounterstützt auch: ed25519 Algorithmus. Es unterstützt die Verwendung verschiedener Hash-Algorithmen, zum Beispiel der Parameteralgokann als ed25519.md5, ed25519.sha512 usw. geschrieben werdened25519.seedBerechnung. etwas wahr String Verwendet zur Festlegung des Datenformats derdataDieinputFormatDer Parameter kann auf einen der folgenden Werte gesetzt werden: raw, hex, base64 und string.hexkodiert, base64 bedeutet, dass die Datenbase64und string bedeutet, dass die Daten eine Zeichenfolge sind. InputFormat - Das stimmt. String Verwendet zur Angabe des Ausgabeformats.outputFormatDer Parameter unterstützt folgende Einstellungen: raw, hex, base64, string.hexkodiert, base64 bedeutet, dass die Datenbase64und string bedeutet, dass die Daten eine Zeichenfolge sind. AusgabeFormat - Das stimmt. String Der Parameterdataist die zu verarbeitende Daten. Daten wahr String Verwendet zur Festlegung des Datenformats derkeyDiekeyDer Parameter kann auf einen der folgenden Werte gesetzt werden: raw, hex, base64 und string.hexkodiert, base64 bedeutet, dass die Datenbase64und string bedeutet, dass die Daten eine Zeichenfolge sind. SchlüsselFormat falsche String DiekeyParameter wird verwendet, um den Schlüssel für die Signaturberechnung anzugeben, und es kann als Plaintext-String verwendet werden."{{accesskey}}", "{{secretkey}}"dieaccessKeyundsecretKeyin dem Exchange-Objekt {@var/EXCHANGE exchange} konfiguriert. Schlüssel falsche String

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"];
        }
    }
}

Beispiel für BitMEX-Positionswechsel (wss-Protokoll):

Nur der echte Handel unterstützt dieexchange.Encode()Die"{{accesskey}}", "{{secretkey}}"Die Referenzen gelten nur, wenn dieexchange.Encode()Funktion verwendet wird.

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

exchange.Log exchange.Go