Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ BTC_NODE_PORT="${BTC_NODE_PORT}"
BTC_NODE_USER="${BTC_NODE_USER}"
BTC_NODE_PASS="${BTC_NODE_PASS}"

TENZ_NODE_HOST=
TENZ_NODE_PORT=
TENZ_NODE_USER=
TENZ_NODE_PASS=

REDIS_HOST="${REDIS_HOST}"
REDIS_PORT="${REDIS_PORT}"
REDIS_PASS="${REDIS_PASS}"
Expand Down Expand Up @@ -63,6 +68,7 @@ ETH_SAFE_ADDR="${ETH_SAFE_ADDR}"
BNB_SAFE_ADDR="${BNB_SAFE_ADDR}"
TRX_SAFE_ADDR="${TRX_SAFE_ADDR}"
MATIC_SAFE_ADDR="${MATIC_SAFE_ADDR}"
TENZ_SAFE_ADDR=TmnJegSz7ZsSihn1BZcifcdKkL7LKpp9Vj

INFURA_API_KEY="${INFURA_API_KEY}"
INFURA_API_SECRET="${INFURA_API_SECRET}"
Expand Down
1 change: 1 addition & 0 deletions admin_panel/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ def __init__(self, **kwargs):
_('Withdrawal Approve'),
children=[
items.MenuItem('Approve BTC', f'/{ADMIN_BASE_URL}/withdrawal_request/approve/btc/'),
items.MenuItem('Approve TENZ', f'/{ADMIN_BASE_URL}/withdrawal_request/approve/tenz/'),
items.MenuItem('Approve ETH', f'/{ADMIN_BASE_URL}/withdrawal_request/approve/eth/'),
items.MenuItem('Approve TRX', f'/{ADMIN_BASE_URL}/withdrawal_request/approve/trx/'),
items.MenuItem('Approve BNB', f'/{ADMIN_BASE_URL}/withdrawal_request/approve/bnb/'),
Expand Down
8 changes: 7 additions & 1 deletion admin_panel/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
from django.urls.conf import path

from admin_panel.views import admin_withdrawal_request_approve, admin_eth_withdrawal_request_approve, make_topup, \
admin_trx_withdrawal_request_approve, admin_bnb_withdrawal_request_approve, admin_matic_withdrawal_request_approve
admin_trx_withdrawal_request_approve, admin_bnb_withdrawal_request_approve, admin_matic_withdrawal_request_approve, \
admin_tenz_withdrawal_request_approve
from exchange.settings import ADMIN_BASE_URL

admin.autodiscover()
Expand All @@ -15,6 +16,11 @@
admin_withdrawal_request_approve,
name='admin_withdrawal_request_approve_btc'
),
path(
f'withdrawal_request/approve/tenz/',
admin_tenz_withdrawal_request_approve,
name='admin_withdrawal_request_approve_tenz'
),
path(
f'withdrawal_request/approve/eth/',
admin_eth_withdrawal_request_approve,
Expand Down
33 changes: 33 additions & 0 deletions admin_panel/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from cryptocoins.coins.eth import ETH_CURRENCY
from cryptocoins.coins.matic import MATIC_CURRENCY
from cryptocoins.coins.trx import TRX_CURRENCY
from cryptocoins.coins.tenz.service import TENZCoinService
from cryptocoins.tasks.evm import process_payouts_task


Expand Down Expand Up @@ -77,6 +78,38 @@ def admin_withdrawal_request_approve(request):
})


@staff_member_required
def admin_tenz_withdrawal_request_approve(request):
service = TENZCoinService()
withdrawal_requests = service.get_withdrawal_requests()

if request.method == 'POST':
form = BtcApproveAdminForm(request.POST) # Using BTC form since TENZ is Bitcoin-compatible

try:
if form.is_valid():
private_key = form.cleaned_data.get('key')
service.process_withdrawals(private_key=private_key)
messages.success(request, 'TENZ Withdrawal completed')
return redirect('admin_withdrawal_request_approve_tenz') # need for clear post data
except Exception as e: # all messages and errors to admin message
messages.error(request, e)
else:
form = BtcApproveAdminForm()

return render(request, 'admin/withdrawal/request_approve_form.html', context={
'form': form,
'withdrawal_requests': withdrawal_requests,
'withdrawal_requests_column': [
{'label': 'user', 'param': 'user'},
{'label': 'confirmed', 'param': 'confirmed'},
{'label': 'currency', 'param': 'currency'},
{'label': 'state', 'param': 'state'},
{'label': 'details', 'param': 'data.destination'},
]
})


@staff_member_required
def admin_eth_withdrawal_request_approve(request):
currencies = [ETH_CURRENCY] + list(ERC20_CURRENCIES)
Expand Down
3 changes: 2 additions & 1 deletion core/consts/pairs.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
BTC_USDT = 1
ETH_USDT = 2
TRX_USDT = 6
BNB_USDT = 11
BNB_USDT = 11
TENZ_USDT = 13
1 change: 1 addition & 0 deletions core/migrations/0011_auto_20230413_0836.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ def transfer_precisions(apps, schema_editor):
'ETH-USDT': ['100', '10', '1', '0.1', '0.01'],
'BNB-USDT': ['100', '10', '1', '0.1', '0.01'],
'TRX-USDT': ['0.01', '0.001', '0.0001', '0.00001', '0.000001'],
'TENZ-USDT': ['0.01', '0.001', '0.0001', '0.00001', '0.000001'],
}
for ps in PairSettings.objects.all():
if ps.pair.code in precisions_map:
Expand Down
1 change: 1 addition & 0 deletions core/models/inouts/pair.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
(ETH_USDT, 'ETH-USDT'),
(TRX_USDT, 'TRX-USDT'),
(BNB_USDT, 'BNB-USDT'),
(TENZ_USDT, 'TENZ-USDT'),
]

class PairNotFound(CurrencyNotFound):
Expand Down
1 change: 1 addition & 0 deletions core/pairs.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
(ETH_USDT, 'ETH-USDT'),
(TRX_USDT, 'TRX-USDT'),
(BNB_USDT, 'BNB-USDT'),
(TENZ_USDT, 'TENZ-USDT'),
]


Expand Down
1 change: 1 addition & 0 deletions cryptocoins/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
import cryptocoins.coins.trx
import cryptocoins.coins.usdt
import cryptocoins.coins.matic
import cryptocoins.coins.tenz
16 changes: 16 additions & 0 deletions cryptocoins/coins/tenz/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from cryptocoins.coins.tenz.utils import is_valid_tenz_address
from cryptocoins.utils.register import register_coin
from cryptocoins.utils.wallet import get_latest_block_id, get_wallet_data

TENZ = 29
CODE = 'TENZ'
DECIMALS = 8

TENZ_CURRENCY = register_coin(
currency_id=TENZ,
currency_code=CODE,
address_validation_fn=is_valid_tenz_address,
wallet_creation_fn=get_wallet_data,
latest_block_fn=get_latest_block_id,
blocks_diff_alert=1,
)
Loading