Skip to content

Commit 08074ef

Browse files
Create binancesmart.py
1 parent ab90df8 commit 08074ef

File tree

1 file changed

+276
-0
lines changed

1 file changed

+276
-0
lines changed

BlockSDK/binancesmart.py

Lines changed: 276 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,276 @@
1+
from BlockSDK.base import Base
2+
class BinanceSmart(Base):
3+
def getBlockChain(self, request = {}):
4+
return self.request("GET","/bsc/info")
5+
6+
def getBlock(self, request = {}):
7+
if not('rawtx' in request) or not request['rawtx']:
8+
request['rawtx'] = False
9+
if not('offset' in request) or not request['offset']:
10+
request['offset'] = 0
11+
if not('limit' in request) or not request['limit']:
12+
request['limit'] = 10
13+
14+
return self.request("GET","/bsc/blocks/" + str(request['block']),{"rawtx" : request['rawtx'],"offset": request['offset'],"limit" : request['limit']})
15+
16+
def getMemPool(self, request = {}):
17+
if not('rawtx' in request) or not request['rawtx']:
18+
request['rawtx'] = False
19+
if not('offset' in request) or not request['offset']:
20+
request['offset'] = 0
21+
if not('limit' in request) or not request['limit']:
22+
request['limit'] = 10
23+
24+
return self.request("GET","/bsc/mempool",{"rawtx" : request['rawtx'],"offset" : request['offset'],"limit" : request['limit']})
25+
26+
27+
def getAddresses(self, request = {}):
28+
if not('offset' in request) or not request['offset']:
29+
request['offset'] = 0
30+
if not('limit' in request) or not request['limit']:
31+
request['limit'] = 10
32+
33+
return self.request("GET","/bsc/addresses",{
34+
"offset" : request['offset'],
35+
"limit" : request['limit']
36+
})
37+
38+
def loadAddress(self, request = {}):
39+
return self.request("POST","/bsc/addresses/" + request['address'] + "/load",{"private_key" : request['private_key'],"password" : request['password']})
40+
41+
def unloadAddress(self, request = {}):
42+
return self.request("POST","/bsc/addresses/" + request['address'] + "/unload")
43+
44+
def createAddress(self, request = {}):
45+
if not('name' in request) or not request['name']:
46+
request['name'] = None
47+
return self.request("POST","/bsc/addresses",{"name" : request['name']})
48+
49+
50+
def getAddressInfo(self, request = {}):
51+
52+
if not('reverse' in request) or not request['reverse']:
53+
request['reverse'] = True
54+
if not('rawtx' in request) or not request['rawtx']:
55+
request['rawtx'] = None
56+
if not('offset' in request) or not request['offset']:
57+
request['offset'] = 0
58+
if not('limit' in request) or not request['limit']:
59+
request['limit'] = 10
60+
61+
return self.request("GET","/bsc/addresses/" + request['address'],{"reverse" : request['reverse'],"rawtx" : request['rawtx'],"offset" : request['offset'],"limit" : request['limit']})
62+
63+
64+
def getAddressBalance(self, request = {}):
65+
return self.request("GET","/bsc/addresses/" + request['address'] + "/balance")
66+
67+
def sendToAddress(self, request = {}):
68+
if not('gwei' in request) or not request['gwei']:
69+
blockChain = self.getBlockChain()
70+
request['gwei'] = blockChain['medium_gwei']
71+
if not('private_key' in request) or not request['private_key']:
72+
request['private_key'] = None
73+
if not('password' in request) or not request['password']:
74+
request['password'] = None
75+
if not('gas_limit' in request) or not request['gas_limit']:
76+
request['gas_limit'] = None
77+
78+
return self.request("POST","/bsc/addresses/" + request['from'] + "/sendtoaddress",{
79+
"to" : request['to'],
80+
"amount" : request['amount'],
81+
"private_key" : request['private_key'],
82+
"password" : request['password'],
83+
"gwei" : request['gwei'],
84+
"gas_limit" : request['gas_limit']
85+
})
86+
87+
88+
def sendTransaction(self, request = {}):
89+
return self.request("POST","/bsc/transactions/send",{"hex" : request['hex']})
90+
91+
def getTransaction(self, request = {}):
92+
return self.request("GET","/bsc/transactions/" + request['hash'])
93+
94+
def getBep20(self, request = {}):
95+
return self.request("GET","/bsc/erc20-tokens/" + request['contract_address'])
96+
97+
def getBep20Balance(self, request = {}):
98+
return self.request("GET","/bsc/erc20-tokens/" + request['contract_address'] + "/" + request['from'] + "/balance")
99+
100+
def getBep20Transfer(self, request = {}):
101+
if not('gwei' in request) or not request['gwei']:
102+
blockChain = self.getBlockChain()
103+
request['gwei'] = blockChain['high_gwei']
104+
if not('private_key' in request) or not request['private_key']:
105+
request['private_key'] = None
106+
if not('password' in request) or not request['password']:
107+
request['password'] = None
108+
if not('gas_limit' in request) or not request['gas_limit']:
109+
request['gas_limit'] = None
110+
111+
return self.request("POST","/bsc/erc20-tokens/" + request['contract_address'] + "/" + request['from'] + "/transfer",{
112+
"to" : request['to'],
113+
"amount" : request['amount'],
114+
"private_key" : request['private_key'],
115+
"password" : request['password'],
116+
"gwei" : request['gwei'],
117+
"gas_limit" : request['gas_limit']
118+
})
119+
120+
def getNfts(self, request = {}):
121+
if not('offset' in request) or not request['offset']:
122+
request['offset'] = 0
123+
if not('limit' in request) or not request['limit']:
124+
request['limit'] = 10
125+
126+
return self.request("GET","/bsc/bep721-tokens/" + request['contract_address'] + "/tokens",{
127+
"offset" : request['offset'],
128+
"limit" : request['limit']
129+
})
130+
131+
def getOwnerNfts(self, request = {}):
132+
if not('offset' in request) or not request['offset']:
133+
request['offset'] = 0
134+
if not('limit' in request) or not request['limit']:
135+
request['limit'] = 10
136+
137+
return self.request("GET","/bsc/bep721-tokens/" + request['contract_address'] + "/" + request['owner_address'] + "/owner",{
138+
"offset" : request['offset'],
139+
"limit" : request['limit']
140+
})
141+
142+
def getCreatorNfts(self, request = {}):
143+
if not('offset' in request) or not request['offset']:
144+
request['offset'] = 0
145+
if not('limit' in request) or not request['limit']:
146+
request['limit'] = 10
147+
148+
return self.request("GET","/bsc/bep721-tokens/" + request['contract_address'] + "/" + request['creator_address'] + "/creator",{
149+
"offset" : request['offset'],
150+
"limit" : request['limit']
151+
})
152+
153+
def getAuctionNfts(self, request = {}):
154+
if not('order_by' in request) or not request['order_by']:
155+
request['order_by'] = 'end_time'
156+
if not('order_direction' in request) or not request['order_direction']:
157+
request['order_direction'] = 'desc'
158+
if not('offset' in request) or not request['offset']:
159+
request['offset'] = 0
160+
if not('limit' in request) or not request['limit']:
161+
request['limit'] = 10
162+
163+
return self.request("GET","/bsc/bep721-tokens/" + request['contract_address'] + "/auction",{
164+
"order_by" : request['order_by'],
165+
"order_direction" : request['order_direction'],
166+
"offset" : request['offset'],
167+
"limit" : request['limit']
168+
})
169+
170+
def getSaleNfts(self, request = {}):
171+
if not('order_direction' in request) or not request['order_direction']:
172+
request['order_direction'] = 'desc'
173+
if not('offset' in request) or not request['offset']:
174+
request['offset'] = 0
175+
if not('limit' in request) or not request['limit']:
176+
request['limit'] = 10
177+
178+
return self.request("GET","/bsc/bep721-tokens/" + request['contract_address'] + "/" + request['seller_address'] + "/sale",{
179+
"order_direction" : request['order_direction'],
180+
"offset" : request['offset'],
181+
"limit" : request['limit']
182+
})
183+
184+
def getNftBids(self, request = {}):
185+
if not('rawtx' in request) or not request['rawtx']:
186+
request['rawtx'] = 0
187+
if not('order_direction' in request) or not request['order_direction']:
188+
request['order_direction'] = 'desc'
189+
if not('offset' in request) or not request['offset']:
190+
request['offset'] = 0
191+
if not('limit' in request) or not request['limit']:
192+
request['limit'] = 10
193+
194+
return self.request("GET","/bsc/bep721-tokens/" + request['contract_address'] + "/" + request['token_id'] + "/bid",{
195+
"order_direction" : request['order_direction'],
196+
"rawtx" : request['rawtx'],
197+
"offset" : request['offset'],
198+
"limit" : request['limit']
199+
})
200+
201+
def getNftInfo(self, request = {}):
202+
return self.request("GET","/bsc/bep721-tokens/" + request['contract_address'] + "/" + request['token_id'] + "/info")
203+
204+
def getNftTransfers(self, request = {}):
205+
if not('rawtx' in request) or not request['rawtx']:
206+
request['rawtx'] = 0
207+
if not('offset' in request) or not request['offset']:
208+
request['offset'] = 0
209+
if not('limit' in request) or not request['limit']:
210+
request['limit'] = 10
211+
212+
return self.request("GET","/bsc/bep721-tokens/" + request['contract_address'] + "/" + request['token_id'] + "/transfers",{
213+
"rawtx" : request['rawtx'],
214+
"offset" : request['offset'],
215+
"limit" : request['limit']
216+
})
217+
218+
def getContractRead(self, request = {}):
219+
if not('parameter_type' in request) or not request['parameter_type']:
220+
request['parameter_type'] = None
221+
if not('parameter_data' in request) or not request['parameter_data']:
222+
request['parameter_data'] = None
223+
224+
225+
return self.request("POST","/bsc/contracts/" + request['contract_address'] + "/read",{
226+
"method" : request['method'],
227+
"return_type" : request['return_type'],
228+
"parameter_type" : request['parameter_type'],
229+
"parameter_data" : request['parameter_data']
230+
})
231+
232+
def getContractWrite(self, request = {}):
233+
if not('private_key' in request) or not request['private_key']:
234+
request['private_key'] = None
235+
if not('password' in request) or not request['password']:
236+
request['password'] = None
237+
if not('gas_limit' in request) or not request['gas_limit']:
238+
request['gas_limit'] = None
239+
240+
if not('parameter_type' in request) or not request['parameter_type']:
241+
request['parameter_type'] = None
242+
if not('parameter_data' in request) or not request['parameter_data']:
243+
request['parameter_data'] = None
244+
245+
246+
return self.request("POST","/bsc/contracts/" + request['contract_address'] + "/write",{
247+
"method" : request['method'],
248+
"return_type" : request['return_type'],
249+
"parameter_type" : request['parameter_type'],
250+
"parameter_data" : request['parameter_data'],
251+
"from" : request['from'],
252+
"private_key" : request['private_key'],
253+
"password" : request['password'],
254+
"amount" : request['amount'],
255+
"gas_limit" : request['gas_limit']
256+
})
257+
258+
def getContractWriteFees(self, request = {}):
259+
if not('gas_limit' in request) or not request['gas_limit']:
260+
request['gas_limit'] = None
261+
262+
if not('parameter_type' in request) or not request['parameter_type']:
263+
request['parameter_type'] = None
264+
if not('parameter_data' in request) or not request['parameter_data']:
265+
request['parameter_data'] = None
266+
267+
268+
return self.request("POST","/bsc/contracts/" + request['contract_address'] + "/write/fees",{
269+
"method" : request['method'],
270+
"return_type" : request['return_type'],
271+
"parameter_type" : request['parameter_type'],
272+
"parameter_data" : request['parameter_data'],
273+
"from" : request['from'],
274+
"amount" : request['amount'],
275+
"gas_limit" : request['gas_limit']
276+
})

0 commit comments

Comments
 (0)