Sumber dimuat naik... memuat...

exchange.Encode

Peraturanexchange.Encode()fungsi digunakan untuk pengiraan penyulitan tandatangan.

Peraturanexchange.Encode()fungsi mengembalikan pengekodan nilai hash yang dikira. senar

exchange.Encode ((algo, inputFormat, outputFormat, data) exchange.Encode ((algo, inputFormat, outputFormat, data, kunciFormat, kunci)

Parameteralgoadalah algoritma yang digunakan untuk pengiraan pengekodan. tetapan yang disokong adalah: raw (tidak menggunakan algoritma), 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 parameter.algojuga menyokong: text.encoder.utf8, text.decoder.utf8, text.encoder.gbk, text.decoder.gbk, untuk pengekodan dan penyahkodan rentetan. Parameteralgojuga menyokong: ed25519 algoritma. Ia menyokong penggunaan algoritma hash yang berbeza, contohnya parameteralgoboleh ditulis sebagai ed25519.md5, ed25519.sha512, dll. Sokonganed25519.seedpengiraan. sesuatu betul senar Digunakan untuk menentukan format datadataparameter.inputFormatparameter boleh ditetapkan kepada salah satu daripada: raw, hex, base64, dan string. raw bermaksud data adalah data mentah, hex bermaksud data adalahhexdikodkan, base64 bermaksud data adalahbase64dikodkan, dan string bermaksud data adalah rentetan. inputFormat betul senar Digunakan untuk menentukan format output data.outputFormatparameter menyokong tetapan berikut: raw, hex, base64, string. raw bermaksud data adalah data mentah, hex bermaksud data adalahhexdikodkan, base64 bermaksud data adalahbase64dikodkan, dan string bermaksud data adalah rentetan. outputFormat betul senar Parameterdataadalah data yang akan diproses. data betul senar Digunakan untuk menentukan format datakeyparameter.keyparameter boleh ditetapkan kepada salah satu daripada: raw, hex, base64, dan string. raw bermaksud data adalah data mentah, hex bermaksud data adalahhexdikodkan, base64 bermaksud data adalahbase64dikodkan, dan string bermaksud data adalah rentetan. keyFormat palsu senar Perkhidmatankeyparameter digunakan untuk menentukan kunci yang digunakan dalam pengiraan tandatangan, dan ia boleh digunakan sebagai rentetan plaintext."{{accesskey}}", "{{secretkey}}"untuk merujuk kepadaaccessKeydansecretKeyyang dikonfigurasi dalam objek pertukaran {@var/EXCHANGE exchange}. kunci palsu senar

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

Contoh push perubahan kedudukan BitMEX (wss protokol):

Hanya perdagangan sebenar menyokong memanggilexchange.Encode()fungsi."{{accesskey}}", "{{secretkey}}"rujukan hanya sah apabilaexchange.Encode()fungsi digunakan.

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

exchange.Log exchange.Go