Skip to content

Commit 82cb32c

Browse files
author
liw
committed
V3 버전 업데이트
1 parent b266bc4 commit 82cb32c

26 files changed

+3540
-2305
lines changed

Avalanche SDK.md

Lines changed: 456 additions & 0 deletions
Large diffs are not rendered by default.

BinanceSmart SDK.md

Lines changed: 455 additions & 0 deletions
Large diffs are not rendered by default.

BlockSDK/avalanche.py

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
from BlockSDK.base import Base
2+
3+
4+
class Avalanche(Base):
5+
def GetBlockChainInfo(self):
6+
return self.request("GET", f"/avax/info")
7+
8+
def GetBlock(self, request):
9+
return self.request("GET", f"/avax/block/{request.get('block', '')}", request)
10+
11+
def GetAddresses(self, request):
12+
return self.request("GET", f"/avax/address", request)
13+
14+
def CreateAddress(self, request):
15+
return self.request("POST", f"/avax/address", request)
16+
17+
def GetAddressInfo(self, request):
18+
return self.request("GET", f"/avax/address/{request.get('address', '')}/info", request)
19+
20+
def GetAddressBalance(self, request):
21+
return self.request("GET", f"/avax/address/{request.get('address', '')}/balance")
22+
23+
def Send(self, request):
24+
return self.request("POST", f"/avax/address/{request.get('from', '')}/send", request)
25+
26+
def SendTransaction(self, request):
27+
return self.request("POST", f"/avax/transaction/send", request)
28+
29+
def GetTransaction(self, request):
30+
return self.request("GET", f"/avax/transaction/{request.get('hash', '')}")
31+
32+
def GetTokenInfo(self, request):
33+
return self.request("GET", f"/avax/token/{request.get('contract_address', '')}/info")
34+
35+
def SendToken(self, request):
36+
return self.request("POST", f"/avax/token/{request.get('contract_address', '')}/{request.get('from', '')}/transfer", request)
37+
38+
def GetTokenBalance(self, request):
39+
return self.request("GET", f"/avax/token/{request.get('contract_address', '')}/{request.get('from', '')}/balance")
40+
41+
def GetTokenTxs(self, request):
42+
return self.request("GET", f"/avax/token/{request.get('from_address', '')}/transactions", request)
43+
44+
def GetTokenContractTxs(self, request):
45+
return self.request("GET", f"/avax/token/{request.get('contract_address', '')}/{request.get('from_address', '')}/transactions", request)
46+
47+
def GetTokenAllBalance(self, request):
48+
return self.request("GET", f"/avax/token/{request.get('from_address', '')}/all-balance", request)
49+
50+
def GetSingleNfts(self, request):
51+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/nfts", request)
52+
53+
def GetSingleOwnerNfts(self, request):
54+
return self.request("GET", f"/avax/single-nft/{request.get('owner_address', '')}/owner-nfts", request)
55+
56+
def GetSingleCreatorNfts(self, request):
57+
return self.request("GET", f"/avax/single-nft/{request.get('creator_address', '')}/creator-nfts", request)
58+
59+
def GetSingleTxs(self, request):
60+
return self.request("GET", f"/avax/single-nft/{request.get('from_address', '')}/transactions", request)
61+
62+
def GetSingleNftOwnerNfts(self, request):
63+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/{request.get('owner_address', '')}/owner-nfts", request)
64+
65+
def GetSingleNftCreatorNfts(self, request):
66+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/{request.get('creator_address', '')}/creator-nfts", request)
67+
68+
def GetSingleNftTxs(self, request):
69+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/{request.get('from_address', '')}/from-transactions", request)
70+
71+
def GetSingleNftInfo(self, request):
72+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/{request.get('token_id', '')}/info", request)
73+
74+
def GetSingleNftTokenTxs(self, request):
75+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/{request.get('token_id', '')}/nft-transactions", request)
76+
77+
def GetSingleNftAuctionNfts(self, request):
78+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/auction-nfts", request)
79+
80+
def GetSingleNftSellerNfts(self, request):
81+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/{request.get('seller_address', '')}/seller-nfts", request)
82+
83+
def GetSingleNftTokenBids(self, request):
84+
return self.request("GET", f"/avax/single-nft/{request.get('contract_address', '')}/{request.get('token_id', '')}/nft-bids", request)
85+
86+
def GetMultiNfts(self, request):
87+
return self.request("GET", f"/avax/multi-nft/{request.get('contract_address', '')}/nfts", request)
88+
89+
def GetMultiOwnerNfts(self, request):
90+
return self.request("GET", f"/avax/multi-nft/{request.get('owner_address', '')}/owner-nfts", request)
91+
92+
def GetMultiCreatorNfts(self, request):
93+
return self.request("GET", f"/avax/multi-nft/{request.get('creator_address', '')}/creator-nfts", request)
94+
95+
def GetMultiTxs(self, request):
96+
return self.request("GET", f"/avax/multi-nft/{request.get('from_address', '')}/transactions", request)
97+
98+
def GetMultiNftOwnerNfts(self, request):
99+
return self.request("GET", f"/avax/multi-nft/{request.get('contract_address', '')}/{request.get('owner_address', '')}/owner-nfts", request)
100+
101+
def GetMultiNftCreatorNfts(self, request):
102+
return self.request("GET", f"/avax/multi-nft/{request.get('contract_address', '')}/{request.get('creator_address', '')}/creator-nfts", request)
103+
104+
def GetMultiNftTxs(self, request):
105+
return self.request("GET", f"/avax/multi-nft/{request.get('contract_address', '')}/{request.get('from_address', '')}/from-transactions", request)
106+
107+
def GetMultiNftInfo(self, request):
108+
return self.request("GET", f"/avax/multi-nft/{request.get('contract_address', '')}/{request.get('token_id', '')}/info", request)
109+
110+
def GetMultiNftTokenTxs(self, request):
111+
return self.request("GET", f"/avax/multi-nft/{request.get('contract_address', '')}/{request.get('token_id', '')}/nft-transactions", request)
112+
113+
def GetMultiNftSellerNfts(self, request):
114+
return self.request("GET", f"/avax/multi-nft/{request.get('contract_address', '')}/{request.get('seller_address', '')}/seller-nfts", request)
115+
116+
def ReadContract(self, request):
117+
return self.request("POST", f"/avax/contract/{request.get('contract_address', '')}/read", request)
118+
119+
def WriteContract(self, request):
120+
return self.request("POST", f"/avax/contract/{request.get('contract_address', '')}/write", request)

BlockSDK/base.py

Lines changed: 30 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -3,71 +3,38 @@
33
import json
44

55
class Base:
6-
def __init__(self, api_token):
7-
self.api_token = api_token
6+
def __init__(self, api_token, endpoint="https://testnet-api.blocksdk.com"):
7+
self.api_token = api_token
8+
self.endpoint = endpoint
89

9-
def request(self,method,path,data = {}):
10-
url = "https://api.blocksdk.com/v2" + path
10+
def request(self, method, path, data = {}):
11+
url = f"{self.endpoint}/v3{path}"
1112

12-
if method == "GET" and len(data) > 0:
13-
url += "?"
14-
for key in data.keys():
15-
value = data[key];
16-
if value == True:
17-
url += key + "=true&"
18-
elif value == False:
19-
url += key + "=false&"
20-
else:
21-
url += key+ "=" + str(value) + "&"
22-
23-
if method == "POST":
24-
response = requests.post(url = url, json = data, headers = { 'Content-Type': 'application/json','x-api-key': self.api_token})
25-
else:
26-
response = requests.get(url = url, headers = { 'Content-Type': 'application/json','x-api-key': self.api_token})
27-
28-
try:
29-
body = response.json()
30-
except:
31-
body = {}
32-
33-
if method == "POST":
34-
try:
35-
body = json.loads(response.text)
36-
except:
37-
converted_json = response.text.replace(':','":')
38-
converted_json1 = converted_json.split('{\n')
39-
for i in range(len(converted_json1)):
40-
if converted_json1[i] != '':
41-
json2 = converted_json1[i].split('":')[0].split(' ')[-1]
42-
converted_json = converted_json.replace(json2,'"' + json2)
43-
body = json.loads(converted_json)
44-
45-
if response.headers:
46-
headers = response.headers
47-
else:
48-
headers = {}
49-
50-
if response.status_code:
51-
status = response.status_code
52-
else:
53-
status = 0
54-
55-
headers.update({'statusCode' : status})
56-
try:
57-
body.update({'HTTP_HEADER': headers})
58-
except:
59-
body = { i : body[i] for i in range(0, len(body) ) }
60-
body.update({'HTTP_HEADER': headers})
61-
62-
#result_row = body['HTTP_HEADER'];
63-
# for key in result_row.keys():
64-
# if not result_row[key]:
65-
# if key == "statusCode":
66-
# result_row[key] = 0
67-
#body['HTTP_HEADER'] = result_row;
68-
69-
return body
13+
headers = {
14+
'x-api-token': self.api_token
15+
}
7016

71-
baseInstance = Base('B1zZARyW1d2FdqWxPUpB79izHmtAc2Az693WF9DD')
17+
try:
18+
if method == "GET":
19+
params = "&".join([f"{key}={value}" for key, value in data.items()])
20+
full_url = f"{url}?{params}"
21+
response = requests.get(full_url, headers=headers)
22+
23+
elif method == "POST":
24+
headers['Content-Type'] = 'application/json'
25+
response = requests.post(url, json=data, headers=headers)
26+
27+
if response.status_code == 200:
28+
payload = response.json().get('payload', {})
29+
payload['requestData'] = data
30+
return payload
31+
else:
32+
print(f"Error: {response.status_code}")
33+
return False
34+
35+
except Exception as e:
36+
print(url)
37+
print(e)
38+
return False
7239
#print(baseInstance.getUsage({'start_date': '','end_date': ''}))
7340
# print(baseInstance.getHashType({'hash':'000000000000000089d2938df30be807844feea4c3340ad32873bb1b692b7f1a'}))

0 commit comments

Comments
 (0)