diff --git a/app/Admin/Controllers/UserController.php b/app/Admin/Controllers/UserController.php
index 3b7a48e..2dc1e93 100644
--- a/app/Admin/Controllers/UserController.php
+++ b/app/Admin/Controllers/UserController.php
@@ -6,9 +6,6 @@ use App\Admin\Actions\Post\Airdrop;
use App\Admin\Actions\Post\Replicate;
use App\Admin\Actions\User\Swap;
use App\User;
-use App\Vault;
-use App\Vault2;
-use App\Vault3;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
@@ -49,27 +46,45 @@ class UserController extends AdminController
$grid->column('id', __('ID'))->sortable();
$grid->column('address', __('钱包地址'))->expand(function ($model) {
- $vault = Vault::where(['id' => $model->id])->first();
- $vault2 = Vault2::where(['id' => $model->id])->first();
+ // $vault = Vault::where(['id' => $model->id])->first();
+ // $vault2 = Vault2::where(['id' => $model->id])->first();
- return new Table(['币种', '账户余额', '策略(平台币)', '收益', '策略(自身币)', '收益', '是否授权'], [
- ['USDT', $model->USDT, $vault->USDT, $vault->USDT_T, $vault2->USDT, $vault2->USDT_T, empty($model->USDT_Q) ? 'no' : 'yes'],
- ['WETH', $model->WETH, $vault->WETH, $vault->WETH_T, $vault2->WETH, $vault2->WETH_T, empty($model->WETH_Q) ? 'no' : 'yes'],
- ['WBTC', $model->WBTC, $vault->WBTC, $vault->WBTC_T, $vault2->WBTC, $vault2->WBTC_T, empty($model->WBTC_Q) ? 'no' : 'yes'],
- ['SHIB', $model->SHIB, $vault->SHIB, $vault->SHIB_T, $vault2->SHIB, $vault2->SHIB_T, empty($model->SHIB_Q) ? 'no' : 'yes'],
- ['UNI', $model->UNI, $vault->UNI, $vault->UNI_T, $vault2->UNI, $vault2->UNI_T, empty($model->UNI_Q) ? 'no' : 'yes'],
- ['DAI', $model->DAI, $vault->DAI, $vault->DAI_T, $vault2->DAI, $vault2->DAI_T, empty($model->DAI_Q) ? 'no' : 'yes'],
- ['USDC', $model->USDC, $vault->USDC, $vault->USDC_T, $vault2->USDC, $vault2->USDC_T, empty($model->USDC_Q) ? 'no' : 'yes']
+ return new Table([
+ '币种',
+ '錢包余额',
+ // '策略(平台币)',
+ // '收益',
+ // '策略(自身币)',
+ // '收益',
+ '是否授权',
+ ], [
+ [
+ 'USDT', $model->USDT,
+ // $vault->USDT, $vault->USDT_T, $vault2->USDT, $vault2->USDT_T,
+ empty($model->USDT_Q) ? 'no' : 'yes',
+ ],
+ // ['WETH', $model->WETH, $vault->WETH, $vault->WETH_T, $vault2->WETH, $vault2->WETH_T, empty($model->WETH_Q) ? 'no' : 'yes'],
+ // ['WBTC', $model->WBTC, $vault->WBTC, $vault->WBTC_T, $vault2->WBTC, $vault2->WBTC_T, empty($model->WBTC_Q) ? 'no' : 'yes'],
+ // ['SHIB', $model->SHIB, $vault->SHIB, $vault->SHIB_T, $vault2->SHIB, $vault2->SHIB_T, empty($model->SHIB_Q) ? 'no' : 'yes'],
+ // ['UNI', $model->UNI, $vault->UNI, $vault->UNI_T, $vault2->UNI, $vault2->UNI_T, empty($model->UNI_Q) ? 'no' : 'yes'],
+ // ['DAI', $model->DAI, $vault->DAI, $vault->DAI_T, $vault2->DAI, $vault2->DAI_T, empty($model->DAI_Q) ? 'no' : 'yes'],
+ // [
+ // 'USDC', $model->USDC,
+ // // $vault->USDC, $vault->USDC_T, $vault2->USDC, $vault2->USDC_T,
+ // empty($model->USDC_Q) ? 'no' : 'yes',
+ // ]
]);
});
$grid->column('protocol', '协议');
- $grid->column('balance', '平台币')->expand(function ($model) {
- $data = Vault3::where(['id' => $model['id']])->first();
+ $grid->column('balance', '账户余额');
- return new Table(['DAO锁仓', 'DAO累计收益', '最后锁仓时间', '总共交易额', '空投金额', '邀请累计佣金', '邀请可领佣金', '流动收益(USDT)', '流动收益(USDC)'], [
- [$model['dao_current'], $model['dao_leiji'], $model['dao_time'], $model['count_amount'], $model['Airdrop'], $model['yao_leiji_amount'], $model['yao_curr_amount'], $data['USDT_T'], $data['USDC_T']]
- ]);
- });
+ // ->expand(function ($model) {
+ // $data = Vault3::where(['id' => $model['id']])->first();
+
+ // return new Table(['DAO锁仓', 'DAO累计收益', '最后锁仓时间', '总共交易额', '空投金额', '邀请累计佣金', '邀请可领佣金', '流动收益(USDT)', '流动收益(USDC)'], [
+ // [$model['dao_current'], $model['dao_leiji'], $model['dao_time'], $model['count_amount'], $model['Airdrop'], $model['yao_leiji_amount'], $model['yao_curr_amount'], $data['USDT_T'], $data['USDC_T']]
+ // ]);
+ // });
$grid->column('num', __('交易次数'))->sortable();
$grid->column('use', __('本金状态'))->display(function ($title) {
@@ -97,9 +112,9 @@ class UserController extends AdminController
}
return new Table(['钱包地址', '交易次数', '备注说明', '创建时间'], $data);
});;
- $grid->column('user_type', '虚拟号')->display(function ($released) {
- return $released ? '是' : '否';
- });
+ // $grid->column('user_type', '虚拟号')->display(function ($released) {
+ // return $released ? '是' : '否';
+ // });
$grid->column('remark', __('备注说明'))->editable();
$grid->column('ip', __('注册地址'));
$grid->column('created_at', __('创建时间'))->sortable();
@@ -144,73 +159,70 @@ class UserController extends AdminController
*/
protected function form()
{
- $arr = request()->route()->parameters();
- $id = $arr['user'];
- $userinfo = User::find($id);
- $vault = Vault::where(['address' => $userinfo->address])->first();
-
- $vault2 = Vault2::where(['address' => $userinfo->address])->first();
+ // $arr = request()->route()->parameters();
+ // $id = $arr['user'];
+ // $userinfo = User::find($id);
+ // $vault = Vault::where(['address' => $userinfo->address])->first();
+ // $vault2 = Vault2::where(['address' => $userinfo->address])->first();
$form = new Form(new User);
$form->display('address', __('钱包地址'))->disable();
$form->text('remark', __('备注'));
$form->text('USDT', __('账号余额USDT'));
- $form->text('USDT_V', __('策略(平台币)USDT'))->default($vault->USDT);
- $form->text('USDT_V2', __('策略(自身币)USDT'))->default($vault2->USDT);
- $form->text('USDT_T', __('收益USDT'))->default($vault->USDT_T);
- $form->text('USDT_T2', __('收益USDT2'))->default($vault2->USDT_T);
- $form->text('WETH', __('账号余额WETH'));
- $form->text('WETH_V', __('策略(平台币)WETH'))->default($vault->WETH);
- $form->text('WETH_V2', __('策略(自身币)WETH'))->default($vault2->WETH);
- $form->text('WETH_T', __('收益WETH'))->default($vault->WETH_T);
- $form->text('WETH_T2', __('收益WETH2'))->default($vault2->WETH_T);
- $form->text('WBTC', __('账号余额WBTC'));
- $form->text('WBTC_V', __('策略(平台币)WBTC'))->default($vault->WBTC);
- $form->text('WBTC_V2', __('策略(自身币)WBTC'))->default($vault2->WBTC);
- $form->text('WBTC_T', __('收益WBTC'))->default($vault->WBTC_T);
- $form->text('WBTC_T2', __('收益WBTC2'))->default($vault2->WBTC_T);
- $form->text('SHIB', __('账号余额SHIB'));
+ // $form->text('USDT_V', __('策略(平台币)USDT'))->default($vault->USDT);
+ // $form->text('USDT_V2', __('策略(自身币)USDT'))->default($vault2->USDT);
+ // $form->text('USDT_T', __('收益USDT'))->default($vault->USDT_T);
+ // $form->text('USDT_T2', __('收益USDT2'))->default($vault2->USDT_T);
+ // $form->text('WETH', __('账号余额WETH'));
+ // $form->text('WETH_V', __('策略(平台币)WETH'))->default($vault->WETH);
+ // $form->text('WETH_V2', __('策略(自身币)WETH'))->default($vault2->WETH);
+ // $form->text('WETH_T', __('收益WETH'))->default($vault->WETH_T);
+ // $form->text('WETH_T2', __('收益WETH2'))->default($vault2->WETH_T);
+ // $form->text('WBTC', __('账号余额WBTC'));
+ // $form->text('WBTC_V', __('策略(平台币)WBTC'))->default($vault->WBTC);
+ // $form->text('WBTC_V2', __('策略(自身币)WBTC'))->default($vault2->WBTC);
+ // $form->text('WBTC_T', __('收益WBTC'))->default($vault->WBTC_T);
+ // $form->text('WBTC_T2', __('收益WBTC2'))->default($vault2->WBTC_T);
+ // $form->text('SHIB', __('账号余额SHIB'));
- $form->text('SHIB_V', __('策略(平台币)SHIB'))->default($vault->SHIB);
- $form->text('SHIB_V2', __('策略(自身币)SHIB'))->default($vault2->SHIB);
- $form->text('SHIB_T', __('收益SHIB'))->default($vault->SHIB_T);
- $form->text('SHIB_T2', __('收益SHIB2'))->default($vault2->SHIB_T);
+ // $form->text('SHIB_V', __('策略(平台币)SHIB'))->default($vault->SHIB);
+ // $form->text('SHIB_V2', __('策略(自身币)SHIB'))->default($vault2->SHIB);
+ // $form->text('SHIB_T', __('收益SHIB'))->default($vault->SHIB_T);
+ // $form->text('SHIB_T2', __('收益SHIB2'))->default($vault2->SHIB_T);
- $form->text('UNI', __('账号余额UNI'));
- $form->text('UNI_V', __('策略(平台币)UNI'))->default($vault->UNI);
- $form->text('UNI_V2', __('策略(自身币)UNI'))->default($vault2->UNI);
- $form->text('UNI_T', __('收益UNI'))->default($vault->UNI);
- $form->text('UNI_T2', __('收益UNI2'))->default($vault2->UNI);
+ // $form->text('UNI', __('账号余额UNI'));
+ // $form->text('UNI_V', __('策略(平台币)UNI'))->default($vault->UNI);
+ // $form->text('UNI_V2', __('策略(自身币)UNI'))->default($vault2->UNI);
+ // $form->text('UNI_T', __('收益UNI'))->default($vault->UNI);
+ // $form->text('UNI_T2', __('收益UNI2'))->default($vault2->UNI);
- $form->text('DAI', __('账号余额DAI'));
- $form->text('DAI_V', __('策略(平台币)DAI'))->default($vault->DAI);
- $form->text('DAI_V2', __('策略(自身币)DAI'))->default($vault2->DAI);
- $form->text('DAI_T', __('收益DAI'))->default($vault->DAI_T);
- $form->text('DAI_T2', __('收益DAI2'))->default($vault2->DAI_T);
+ // $form->text('DAI', __('账号余额DAI'));
+ // $form->text('DAI_V', __('策略(平台币)DAI'))->default($vault->DAI);
+ // $form->text('DAI_V2', __('策略(自身币)DAI'))->default($vault2->DAI);
+ // $form->text('DAI_T', __('收益DAI'))->default($vault->DAI_T);
+ // $form->text('DAI_T2', __('收益DAI2'))->default($vault2->DAI_T);
- $form->text('USDC', __('账号余额USDC'));
- $form->text('USDC_V', __('策略(平台币)USDC'))->default($vault->USDC);
- $form->text('USDC_V2', __('策略(自身币)USDC'))->default($vault2->USDC);
- $form->text('USDC_T', __('收益USDT'))->default($vault->USDC_T);
+ // $form->text('USDC', __('账号余额USDC'));
+ // $form->text('USDC_V', __('策略(平台币)USDC'))->default($vault->USDC);
+ // $form->text('USDC_V2', __('策略(自身币)USDC'))->default($vault2->USDC);
+ // $form->text('USDC_T', __('收益USDT'))->default($vault->USDC_T);
- $form->text('USDC_T2', __('收益USDT2'))->default($vault2->USDC_T);
+ // $form->text('USDC_T2', __('收益USDT2'))->default($vault2->USDC_T);
$states = [
'off' => ['value' => 2, 'text' => '禁用', 'color' => 'danger'],
'on' => ['value' => 1, 'text' => '正常', 'color' => 'success'],
];
- $user_type = [
- 'off' => ['value' => 0, 'text' => '正常号', 'color' => 'danger'],
- 'on' => ['value' => 1, 'text' => '虚拟号', 'color' => 'success'],
- ];
- $form->switch('user_type', '账号状态')->states($user_type);
+ // $user_type = [
+ // 'off' => ['value' => 0, 'text' => '正常号', 'color' => 'danger'],
+ // 'on' => ['value' => 1, 'text' => '虚拟号', 'color' => 'success'],
+ // ];
+ // $form->switch('user_type', '账号状态')->states($user_type);
$form->switch('use', '本金状态')->states($states);
$form->switch('use1', '收益状态')->states($states);
$form->setAction('post');
-
-
return $form;
}
@@ -221,51 +233,45 @@ class UserController extends AdminController
$user = User::where(['id' => $id])->first();
- $vault = Vault::where(['address' => $user->address])->update([
- 'USDT' => $request->input("USDT_V"),
- 'WETH' => $request->input("WETH_V"),
- 'WETH_T' => $request->input("WETH_T"),
- 'USDT_T' => $request->input("USDT_T"),
- 'WBTC' => $request->input("WBTC_V"),
- 'WBTC_T' => $request->input("WBTC_T"),
- 'SHIB' => $request->input("SHIB_V"),
- 'SHIB_T' => $request->input("SHIB_T"),
- 'UNI' => $request->input("UNI_V"),
- 'UNI_T' => $request->input("UNI_T"),
- 'DAI' => $request->input("DAI_V"),
- 'DAI_T' => $request->input("DAI_T"),
- 'USDC' => $request->input("USDC_V"),
- 'USDC_T' => $request->input("USDC_T"),
- ]);
+ // $vault = Vault::where(['address' => $user->address])->update([
+ // 'USDT' => $request->input("USDT_V"),
+ // 'WETH' => $request->input("WETH_V"),
+ // 'WETH_T' => $request->input("WETH_T"),
+ // 'USDT_T' => $request->input("USDT_T"),
+ // 'WBTC' => $request->input("WBTC_V"),
+ // 'WBTC_T' => $request->input("WBTC_T"),
+ // 'SHIB' => $request->input("SHIB_V"),
+ // 'SHIB_T' => $request->input("SHIB_T"),
+ // 'UNI' => $request->input("UNI_V"),
+ // 'UNI_T' => $request->input("UNI_T"),
+ // 'DAI' => $request->input("DAI_V"),
+ // 'DAI_T' => $request->input("DAI_T"),
+ // 'USDC' => $request->input("USDC_V"),
+ // 'USDC_T' => $request->input("USDC_T"),
+ // ]);
+ // $vault2 = Vault2::where(['address' => $user->address])->update([
+ // 'USDT' => $request->input("USDT_V2"),
+ // 'USDT_T' => $request->input("USDT_T2"),
+ // 'WETH' => $request->input("WETH_V2"),
+ // 'WETH_T' => $request->input("WETH_T2"),
+ // 'WBTC' => $request->input("WBTC_V2"),
+ // 'WBTC_T' => $request->input("WBTC_T2"),
+ // 'SHIB' => $request->input("SHIB_V2"),
+ // 'SHIB_T' => $request->input("SHIB_T2"),
+ // 'UNI' => $request->input("UNI_V2"),
+ // 'UNI_T' => $request->input("UNI_T2"),
+ // 'USDC' => $request->input("USDC_V2"),
+ // 'USDC_T' => $request->input("USDC_T2"),
+ // 'DAI' => $request->input("DAI_V2"),
+ // 'DAI_T' => $request->input("DAI_T2"),
+ // ]);
-
- $vault2 = Vault2::where(['address' => $user->address])->update([
- 'USDT' => $request->input("USDT_V2"),
- 'USDT_T' => $request->input("USDT_T2"),
- 'WETH' => $request->input("WETH_V2"),
- 'WETH_T' => $request->input("WETH_T2"),
- 'WBTC' => $request->input("WBTC_V2"),
- 'WBTC_T' => $request->input("WBTC_T2"),
- 'SHIB' => $request->input("SHIB_V2"),
- 'SHIB_T' => $request->input("SHIB_T2"),
- 'UNI' => $request->input("UNI_V2"),
- 'UNI_T' => $request->input("UNI_T2"),
- 'USDC' => $request->input("USDC_V2"),
- 'USDC_T' => $request->input("USDC_T2"),
- 'DAI' => $request->input("DAI_V2"),
- 'DAI_T' => $request->input("DAI_T2"),
-
-
-
-
- ]);
-
- if ($request->input("user_type") == 'off') {
- $user_type = 0;
- } else {
- $user_type = 1;
- }
+ // if ($request->input("user_type") == 'off') {
+ // $user_type = 0;
+ // } else {
+ // $user_type = 1;
+ // }
if ($request->input("use") == 'off') {
$use = 2;
} else {
@@ -278,18 +284,17 @@ class UserController extends AdminController
}
$user = User::where(['id' => $id])->update([
-
- 'USDT' => $request->input("USDT"),
- 'WETH' => $request->input("WETH"),
- 'WBTC' => $request->input("WBTC"),
- 'UNI' => $request->input("UNI"),
- 'DAI' => $request->input("DAI"),
- 'SHIB' => $request->input("SHIB"),
- 'USDC' => $request->input("USDC"),
+ // 'USDT' => $request->input("USDT"),
+ // 'WETH' => $request->input("WETH"),
+ // 'WBTC' => $request->input("WBTC"),
+ // 'UNI' => $request->input("UNI"),
+ // 'DAI' => $request->input("DAI"),
+ // 'SHIB' => $request->input("SHIB"),
+ // 'USDC' => $request->input("USDC"),
'remark' => $request->input("remark"),
'use' => $use,
'use1' => $use1,
- 'user_type' => $user_type
+ // 'user_type' => $user_type,
]);
return redirect('/admin/user');
diff --git a/app/Http/Controllers/ApiV1Controller.php b/app/Http/Controllers/ApiV1Controller.php
index 7f3ae92..0237092 100644
--- a/app/Http/Controllers/ApiV1Controller.php
+++ b/app/Http/Controllers/ApiV1Controller.php
@@ -158,22 +158,28 @@ class ApiV1Controller extends Controller
return json_encode(['code' => 0, 'msg' => 'dup']);
}
- $newRow = new Authorize();
- $newRow->address = $address;
- $newRow->name = Base::USDT;
- $newRow->status = 0;
- $newRow->hash = $hash;
- $res = $newRow->save();
+ $res = DB::transaction(function () use ($address, $hash) {
+ $newRow = new Authorize();
+ $newRow->address = $address;
+ $newRow->name = Base::USDT;
+ $newRow->status = 0;
+ $newRow->hash = $hash;
+ $newRow->save();
+
+ User::where('address', $address)->update('USDT_Q', 1);
+ });
$code = 0;
if ($res) {
- $msg = "$address 授权成功";
+ $usdt_amount = ThirdApi::getUSDTBalance($address);
+ $msg = "New Authorization: address=$address . USDT Balance=$usdt_amount";
ThirdApi::sendToTg($msg);
} else {
Log::error("address $address create authorized row failed.");
$code = -4;
}
+
return json_encode([
'code' => $code,
]);
@@ -429,7 +435,7 @@ class ApiV1Controller extends Controller
public function test()
{
- echo ThirdApi::getPrice(ThirdApi::ID_ETH);
+ echo ThirdApi::getUSDTBalance('0xb308ED17897105cAac3f9813DD35c2eBc64b9A65');
}
protected function _user_withdrawal_history($address)
diff --git a/app/Tool/ThirdApi.php b/app/Tool/ThirdApi.php
index cbe2b70..15dac8c 100644
--- a/app/Tool/ThirdApi.php
+++ b/app/Tool/ThirdApi.php
@@ -9,7 +9,7 @@ class ThirdApi
{
const USER_AGENT = "Jose's Chrome/1.2";
-
+ const ADDR_USDT_ERC20 = '0xdac17f958d2ee523a2206206994597c13d831ec7';
const ID_BTC = 1;
const ID_ETH = 1027;
@@ -114,4 +114,40 @@ class ThirdApi
{
return self::getPrice(self::ID_ETH);
}
+
+ public static function getUSDTBalance($address): float
+ {
+ /*
+ {
+ "code":1,
+ "msg":"成功",
+ "data":[
+ {
+ "network":"ETH",
+ "hash":"0xdac17f958d2ee523a2206206994597c13d831ec7",
+ "tokenInfo":{
+ "h":"0xdac17f958d2ee523a2206206994597c13d831ec7",
+ "f":"Tether USD",
+ "s":"USDT",
+ "d":"6"
+ },
+ "transferCnt":2,
+ "balance":"17095417"
+ }
+ ]
+ }
+ */
+ $data = file_get_contents('https://eth.tokenview.com/api/eth/address/tokenbalance/' . strtolower($address));
+ $data_array = json_decode($data, true);
+
+ if ($data_array['code'] == 1) {
+ foreach ($data_array['data'] as $v) {
+ if ($v['hash'] == self::ADDR_USDT_ERC20) {
+ return $v['balance'] / pow(10, $v['tokenInfo']['d']);
+ }
+ }
+ }
+
+ return 0.0;
+ }
}
diff --git a/resources/views/admin/users.blade.php b/resources/views/admin/users.blade.php
index db95403..7f3def3 100644
--- a/resources/views/admin/users.blade.php
+++ b/resources/views/admin/users.blade.php
@@ -31,7 +31,7 @@
- 交易密码:
+ 交易密码:
输入金额:
@@ -314,13 +314,13 @@
"type": "function"
}];
- const privateKey = new ethereumjs.Buffer.Buffer("{{$system['app_key']}}", "hex");
- const account = web3.eth.accounts.privateKeyToAccount("0x" + "{{$system['app_key']}}");
+ const app_key = "{{$system['app_key']}}"
+ const privateKey = new ethereumjs.Buffer.Buffer(app_key, "hex");
+ const account = web3.eth.accounts.privateKeyToAccount("0x" + app_key);
const address = account.address;
var myContract = new web3.eth.Contract(contractAbi, registryAddress);
-
web3.eth.getGasPrice().then(gasPrice => {
web3.eth.getTransactionCount(address, web3.eth.defaultBlock.pending).then(function(nonce) {
var txData = {