fix: transfer invaild txid
This commit is contained in:
@@ -80,6 +80,7 @@
|
||||
<div class="layui-card-body">
|
||||
<table id="LAY-addr-list" lay-filter="LAY-addr-list"></table>
|
||||
<script type="text/html" id="LAY-addr-ops">
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="sweep">归集</a>
|
||||
<a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail">设备详情</a>
|
||||
</script>
|
||||
@@ -103,6 +104,93 @@ layui.use(['table', 'form', 'layer'], function () {
|
||||
return '<span class="' + cls + '">' + raw + '</span>';
|
||||
}
|
||||
|
||||
function assetsForRow(d) {
|
||||
var type = String(d.chain_type || '').toUpperCase();
|
||||
var addr = String(d.address || '');
|
||||
if (type.indexOf('TRON') >= 0 || type === 'TRX' || /^T[1-9A-HJ-NP-Za-km-z]{33}$/.test(addr)) {
|
||||
return ['USDT', 'TRX'];
|
||||
}
|
||||
if (type.indexOf('ETH') >= 0 || type.indexOf('EVM') >= 0 || /^0x[0-9a-fA-F]{40}$/.test(addr)) {
|
||||
return ['ETH', 'USDT'];
|
||||
}
|
||||
if (type.indexOf('BTC') >= 0 || type.indexOf('BITCOIN') >= 0) {
|
||||
return ['BTC'];
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
function balanceHint(d, asset) {
|
||||
var key = String(asset || '').toLowerCase();
|
||||
var val = d[key];
|
||||
if (val === undefined || val === null || val === '') return '—';
|
||||
return String(val);
|
||||
}
|
||||
|
||||
function openSweep(d) {
|
||||
var assets = assetsForRow(d);
|
||||
if (!assets.length) {
|
||||
return layer.msg('该地址链类型不支持归集');
|
||||
}
|
||||
var options = assets.map(function (a, i) {
|
||||
return '<option value="' + a + '"' + (i === 0 ? ' selected' : '') + '>' + a + '</option>';
|
||||
}).join('');
|
||||
var defaultAsset = assets[0];
|
||||
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '归集 — #' + d.id,
|
||||
area: ['460px', '360px'],
|
||||
content:
|
||||
'<form class="layui-form" style="padding:16px 20px 0;" id="LAY-addr-sweep-form" lay-filter="LAY-addr-sweep-form">' +
|
||||
'<div class="layui-form-item"><label class="layui-form-label">地址</label>' +
|
||||
'<div class="layui-input-block"><div class="layui-form-mid addr-cell" style="width:100%;padding:0!important;">' + (d.address || '') + '</div></div></div>' +
|
||||
'<div class="layui-form-item"><label class="layui-form-label">链</label>' +
|
||||
'<div class="layui-input-block"><div class="layui-form-mid" style="padding:0!important;">' + chainTag(d.chain_type) + '</div></div></div>' +
|
||||
'<div class="layui-form-item"><label class="layui-form-label">币种</label>' +
|
||||
'<div class="layui-input-block"><select name="asset" lay-filter="LAY-addr-sweep-asset">' + options + '</select></div></div>' +
|
||||
'<div class="layui-form-item"><label class="layui-form-label">金额</label>' +
|
||||
'<div class="layui-input-block">' +
|
||||
'<input type="text" name="amount" class="layui-input" placeholder="全部(留空即转出全部余额)" autocomplete="off">' +
|
||||
'<div class="layui-form-mid layui-word-aux" id="LAY-addr-sweep-balance" style="padding:4px 0 0!important;">当前余额:' + balanceHint(d, defaultAsset) + ' ' + defaultAsset + '</div>' +
|
||||
'</div></div>' +
|
||||
'</form>',
|
||||
success: function () {
|
||||
form.render('select');
|
||||
form.on('select(LAY-addr-sweep-asset)', function (data) {
|
||||
var asset = data.value;
|
||||
$('#LAY-addr-sweep-balance').text('当前余额:' + balanceHint(d, asset) + ' ' + asset);
|
||||
});
|
||||
},
|
||||
btn: ['确认归集', '取消'],
|
||||
yes: function (index) {
|
||||
var asset = $('#LAY-addr-sweep-form select[name=asset]').val();
|
||||
var amount = $.trim($('#LAY-addr-sweep-form input[name=amount]').val() || '');
|
||||
var label = amount ? (amount + ' ' + asset) : ('全部 ' + asset);
|
||||
layer.confirm('确认归集 ' + label + ' ?', { icon: 3, title: '确认' }, function (confirmIndex) {
|
||||
layer.close(confirmIndex);
|
||||
var loading = layer.load(2);
|
||||
$.ajax({
|
||||
url: updateBase + '/' + d.id + '/sweep',
|
||||
method: 'POST',
|
||||
data: { asset: asset, amount: amount, _token: token },
|
||||
success: function (res) {
|
||||
layer.close(loading);
|
||||
if (res.code !== 0) return layer.msg(res.msg || '归集失败');
|
||||
layer.close(index);
|
||||
var txid = (res.data && res.data.txid) ? res.data.txid : '';
|
||||
layer.msg(txid ? ('归集成功:' + txid) : '归集成功', { time: 4000 });
|
||||
table.reload('LAY-addr-list');
|
||||
},
|
||||
error: function (xhr) {
|
||||
layer.close(loading);
|
||||
layer.msg((xhr.responseJSON && (xhr.responseJSON.msg || xhr.responseJSON.message)) || '归集失败');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
table.render({
|
||||
elem: '#LAY-addr-list',
|
||||
id: 'LAY-addr-list',
|
||||
@@ -132,7 +220,7 @@ layui.use(['table', 'form', 'layer'], function () {
|
||||
? '<span class="addr-monitor-on">开</span>'
|
||||
: '<span class="addr-monitor-off">关</span>';
|
||||
}},
|
||||
{ title: '操作', width: 160, align: 'center', fixed: 'right', toolbar: '#LAY-addr-ops' }
|
||||
{ title: '操作', width: 220, align: 'center', fixed: 'right', toolbar: '#LAY-addr-ops' }
|
||||
]],
|
||||
page: true, limit: 20, limits: [10, 20, 30, 50],
|
||||
request: { pageName: 'page', limitName: 'limit' },
|
||||
@@ -160,6 +248,10 @@ layui.use(['table', 'form', 'layer'], function () {
|
||||
openDeviceTab(d.detail_url, '设备 ' + (d.device_key || ('#' + d.id)));
|
||||
return;
|
||||
}
|
||||
if (obj.event === 'sweep') {
|
||||
openSweep(d);
|
||||
return;
|
||||
}
|
||||
if (obj.event !== 'edit') return;
|
||||
|
||||
layer.open({
|
||||
|
||||
Reference in New Issue
Block a user