Untitled
unknown
plain_text
3 years ago
3.5 kB
11
Indexable
#!/bin/python3
import time
import requests
import hmac
import hashlib
import base64
import json
from requests_toolbelt.utils import dump
class TestIconomi():
# test api secret
API_URL = "https://api.iconomi.com"
API_KEY = "123"
API_SECRET = "123"
def test_strategies(self):
self.get('/v1/strategies')
def test_activity(self):
self.get('/v1/user/activity?type=FEES_AND_EARNINGS')
def test_get_structure(self):
ticker = 'ECA'
self.get('/v1/strategies/' + ticker + '/structure')
def test_set_structure(self):
ticker = "<YOUR_TICKER>"
payload = {
'ticker': ticker,
'values': [
{
'rebalancedWeight': '0.5', 'assetTicker': 'ETH'
},
{
'rebalancedWeight': '0.5', 'assetTicker': 'BTC'
}
]
}
self.post('/v1/strategies/' + ticker + '/structure', payload)
def test_withdraw(self):
payload = {
'amount': '0.02',
'currency': 'ETH',
'address': '<YOU_ETH_ADDRESS>'
}
self.post('/v1/user/withdraw', payload)
def generate_signature(self, payload, request_type, request_path, timestamp):
query = request_path.find('?')
if query != -1:
request_path = request_path[0:query]
default_encoding = "utf8"
message = (str(timestamp) + request_type.upper() + request_path + payload).encode(default_encoding)
signature_digest = hmac.new(self.API_SECRET.encode(default_encoding), message, hashlib.sha512).digest() #here digest is byte
b64_signature_digest = base64.b64encode(signature_digest).decode(default_encoding)
print(b64_signature_digest)
return b64_signature_digest
def get(self, api):
self.call('GET', api, '')
def post(self, api, payload):
self.call('POST', api, payload)
def call(self, method, api, payload):
timestamp = int(time.time() * 1000.0)
jsonPayload = payload
if method == 'POST':
jsonPayload = json.dumps(payload)
requestHeaders = {
'ICN-API-KEY' : self.API_KEY,
'ICN-SIGN' : self.generate_signature(jsonPayload, method, api, timestamp),
'ICN-TIMESTAMP' : str(timestamp),
'Content-Type': 'application/json'
}
s = requests.session()
if method == 'GET':
response = s.get(self.API_URL + api, headers = requestHeaders, timeout=3, verify=True)
data = dump.dump_all(response)
print(data.decode('utf-8'))
if response.status_code == 200:
print(json.dumps(json.loads(response._content), indent=4, sort_keys=True))
else:
print('Request did not succeed: ' + response.reason)
print(json.dumps(json.loads(response._content), indent=4, sort_keys=True))
elif method == 'POST':
response = requests.post(self.API_URL + api, json = payload, headers = requestHeaders)
if response.status_code == 200:
print(json.dumps(json.loads(response._content), indent=4, sort_keys=True))
else:
print('Request did not succeed: ' + response.reason)
def main():
ico = TestIconomi()
ico.test_get_structure()
if __name__ == "__main__":
main()Editor is loading...