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)
Parameteralgo
adalah algoritma yang digunakan untuk pengiraan pengekodan. tetapan yang disokong adalah: algo
juga menyokong: algo
juga menyokong: algo
boleh ditulis sebagai ed25519.seed
pengiraan.
sesuatu
betul
senar
Digunakan untuk menentukan format datadata
parameter.inputFormat
parameter boleh ditetapkan kepada salah satu daripada: hex
dikodkan, base64
dikodkan, dan outputFormat
parameter menyokong tetapan berikut: hex
dikodkan, base64
dikodkan, dan data
adalah data yang akan diproses.
data
betul
senar
Digunakan untuk menentukan format datakey
parameter.key
parameter boleh ditetapkan kepada salah satu daripada: hex
dikodkan, base64
dikodkan, dan key
parameter digunakan untuk menentukan kunci yang digunakan dalam pengiraan tandatangan, dan ia boleh digunakan sebagai rentetan plaintext."{{accesskey}}"
, "{{secretkey}}"
untuk merujuk kepadaaccessKey
dansecretKey
yang 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