Skip to content

Commit 1350387

Browse files
Merge pull request #28 from Safeheron/dev
Added networkMode field to Retrieve Gas Balance
2 parents 52bea5d + cd28dc6 commit 1350387

3 files changed

Lines changed: 9 additions & 56 deletions

File tree

safeheron_api_sdk_python/api/gas_api.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
from safeheron_api_sdk_python.client import *
2+
3+
class GasStatusRequest:
4+
def __init__(self):
5+
# networkMode
6+
self.networkMode = None
7+
28
class GasTransactionsGetByTxKeyRequest:
39
def __init__(self):
410
# Transaction key, obtained from transactions created via the Create a Transaction V3 API, App, or Web Console.
@@ -12,8 +18,8 @@ def __init__(self, config):
1218

1319
# Retrieve Gas Balance
1420
# Retrieve your Gas balance for the TRON energy rental service.
15-
def gas_status(self):
16-
return self.api_client.send_request(None, '/v1/gas/status')
21+
def gas_status(self, request: GasStatusRequest):
22+
return self.api_client.send_request(request, '/v1/gas/status')
1723

1824
# Retrieve Automatic Gas Records for Transactions
1925
# When the TRON energy rental service is enabled, Safeheron automatically tops up the required Gas fees for TRON network transactions. This API allows you to query the energy rental records used by a transaction. A single transaction may have multiple records. The actual Gas fee consumed by the transaction is the sum of all records with SUCCESS and FAILURE_GAS_CONSUMED statuses.

safeheron_api_sdk_python/tools.py

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -274,59 +274,6 @@ def decrypt_response(response_dict, platform_rsa_pk, api_user_rsa_sk):
274274

275275
return json.loads(r.decode())
276276

277-
#Used for webhook decryption callback request data
278-
def decrypt_request(response_dict, verify_rsa_pk, decrypt_rsa_sk):
279-
verify_rsa_pk = get_rsa_key(PEM_PUBLIC_HEAD + verify_rsa_pk + PEM_PUBLIC_END)
280-
decrypt_rsa_sk = get_rsa_key(decrypt_rsa_sk)
281-
# 1 rsa verify
282-
sig = response_dict.pop('sig')
283-
need_sign_message = sort_request(response_dict)
284-
v = rsa_verify(verify_rsa_pk, need_sign_message, sig)
285-
if not v:
286-
raise Exception("rsa verify: false")
287-
288-
# 2 get aes key and iv
289-
aes_data = rsa_decrypt(decrypt_rsa_sk, response_dict['key'])
290-
aes_key = aes_data[0:32]
291-
aes_iv = aes_data[32:48]
292-
293-
# 3 aes decrypt data, get response data
294-
r = aes_decrypt(aes_key, aes_iv, b64decode(response_dict['bizContent']))
295-
296-
return json.loads(r.decode())
297-
298-
#For webhook to send encrypted response content
299-
def encrypt_response(raw_data,encrpyt_rsa_pk, sign_rsa_sk):
300-
encrpyt_rsa_pk = get_rsa_key(PEM_PUBLIC_HEAD + encrpyt_rsa_pk + PEM_PUBLIC_END)
301-
sign_rsa_sk = get_rsa_key(sign_rsa_sk)
302-
ret = dict()
303-
# prepare aes key and iv
304-
aes_key = get_random_bytes(32)
305-
aes_iv = get_random_bytes(16)
306-
res_data = json.dumps(raw_data).replace('\n', '').encode('utf-8')
307-
308-
# 1 rsa encrypt aes key + iv
309-
aes_data = aes_key + aes_iv
310-
ret['key'] = rsa_encrypt(encrpyt_rsa_pk, aes_data)
311-
312-
# 2 aes encrypt request data
313-
aes_encrypted_bytes = aes_encrypt(aes_key, aes_iv, res_data)
314-
ret['bizContent'] = b64encode(aes_encrypted_bytes).decode()
315-
316-
# 3 set timestamp , no need to add
317-
ret['timestamp'] = str(int(time.time() * 1000))
318-
319-
# 4 code
320-
ret['code'] = "200"
321-
322-
# 5 message
323-
ret['message'] = "callback_ok"
324-
325-
# 6 sign request
326-
need_sign_message = sort_request(ret)
327-
ret['sig'] = rsa_sign(sign_rsa_sk, need_sign_message)
328-
return ret
329-
330277
def rsa_gen_key():
331278
rsa_key = RSA.generate(4096)
332279
sk = rsa_key.export_key()

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
with open("README.rst", "r") as f:
44
long_description = f.read()
55
setup(name='safeheron_api_sdk_python',
6-
version='1.1.22',
6+
version='1.1.23',
77
description='Python for Safeheron API',
88
long_description=long_description,
99
author='safeheron',

0 commit comments

Comments
 (0)