資源の読み込みに... 荷物...

exchange.Encode

についてexchange.Encode()この関数は署名暗号化計算に使用されます.

についてexchange.Encode()計算したハッシュ値のエンコーディングを返します. 文字列

exchange.Encode ((algo, input 形式, output 形式,データ) exchange.Encode ((algo, input形式, output形式,データ,キー形式,キー)

パラメータ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, blake2b.512, s.128s, blake2256 パラメーター.algoまた,文字列のエンコーディングと解読のために, text.encoder.utf8, text.decoder.utf8, text.encoder.gbk, text.decoder.gbk をサポートしています. パラメータalgoまた: ed25519 アルゴリズムもサポートしています. 異なるハッシュ アルゴリズムの使用もサポートしています.algoed25519.md5,ed25519.sha512などと書ける サポートed25519.seed計算する アルゴ 本当 文字列 データの形式を指定するために使用されます.dataパラメータinputFormatパラメータは,次のいずれかに設定できます: raw, hex, base64, string. rawはデータが原始データ, hexはデータがhexbase64 は,データがbase64文字列が文字列であることを意味します. input 形式 本当 文字列 出力データ形式を指定するために使用されます.outputFormatパラメータは以下の設定をサポートします: raw, hex, base64, string. rawはデータが原始データ, hexはデータがhexbase64 は,データがbase64文字列が文字列であることを意味します. output 形式 本当 文字列 パラメーターdata処理されるデータです データ 本当 文字列 データの形式を指定するために使用されます.keyパラメータkeyパラメータは,次のいずれかに設定できます: raw, hex, base64, string. rawはデータが原始データ, hexはデータがhexbase64 は,データがbase64文字列が文字列であることを意味します. キー形式 偽り 文字列 についてkeyパラメータは署名計算に使用されたキーを指定するために使用され, 文字列として使用できます."{{accesskey}}", "{{secretkey}}"参照するaccessKeyそしてsecretKey{@var/EXCHANGE 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 エンコード}

exchange.Log exchange.Go