-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask_operation_transfer.py
More file actions
83 lines (62 loc) · 2.34 KB
/
task_operation_transfer.py
File metadata and controls
83 lines (62 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from binance_service import binance_client
import app
import model
from typing import Dict
import model_service
import traceback
from sqlalchemy.orm import Session
def save_transfer(transfer: Dict):
transfer_id = None
try:
with Session(model.get_engine()) as session:
with session.begin():
operation_id = transfer['operation_id']
operation = session.query(model.Operation).get(operation_id)
operation.state = transfer['next_state']
transfer = model.Transfer(
tran_id=transfer['tranId'],
type=transfer['type'],
asset=transfer['asset'],
amount=transfer['amount'],
state='FILLED'
)
operation.transfer = transfer
transfer_id = transfer.id
except Exception as ex:
print(f"Error al guardar Transferencia = {transfer}")
print(ex)
traceback.print_stack()
return transfer_id
def task_operation_transfer():
while app.running:
try:
transfers_dict = dict()
transfer = dict()
pending_transfers_dict = [row for row in model_service.get_pending_transfers()]
for transfers_dict in pending_transfers_dict:
transfer = binance_client.universal_transfer(type=transfers_dict['type'], asset=transfers_dict['asset'],
amount=transfers_dict['amount'])
save_transfer({
**transfers_dict,
**transfer
})
except Exception as ex:
print("Error comprar spot")
print(transfers_dict, transfer)
print(ex)
traceback.print_stack()
model_service.save_operation_state(
transfers_dict.get('operation_id'),
f"{transfers_dict.get('next_state')}_FAIL",
ex
)
if __name__ == '__main__':
# task_transfer()
print(model_service.get_pending_transfers())
# operation = {'operation_id': 6, 'type': 'CMFUTURE_MAIN', 'asset': 'BCH', 'amount': 0.0554346, 'next_state': 'FUTURE_TRANSFER'}
# transfer = {'tranId': 66485812203}
#
# save_transfer({
# **operation,
# **transfer
# })