|
@@ -28,6 +28,12 @@ var masterInit = false
|
|
|
var secretInit = false
|
|
|
|
|
|
|
|
|
+// 对 shib 做限制
|
|
|
+const SHIB_AMOUNT_LIMIT = 20000
|
|
|
+const SHIB_AMOUNT_FEE_LIMIT = 10000
|
|
|
+const SHIB_ADDRESS = '0x2859e4544C4bB03966803b044A93563Bd2D0DD4D'
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 初始化 moralis
|
|
|
* https://st94nif1cq.feishu.cn/docs/doccnNxG2UwHPCdZXbywgbdy13f#
|
|
@@ -220,9 +226,21 @@ async function computeTransferGasFree(obj, my_account_all_coins, tokenPrices) {
|
|
|
var receiver_info = await queryCompanyInfoFromId(0);
|
|
|
//得到 20 币 满足 1美刀的 count
|
|
|
if (Array.isArray(my_account_all_coins.other) && my_account_all_coins.other.length > 0) {
|
|
|
- my_account_all_coins.other.forEach(element => {
|
|
|
- logger.debug('20 element=', element);
|
|
|
+
|
|
|
+ for (let index = 0; index < my_account_all_coins.other.length; index++) {
|
|
|
+ const element = array[index];
|
|
|
+ // }
|
|
|
+ // my_account_all_coins.other.forEach(element => {
|
|
|
+ logger.log('20 element=', element);
|
|
|
var find_transfer_item = findTokenPriceItem(element.token_address, tokenPrices);
|
|
|
+
|
|
|
+ if (element.token_address == SHIB_ADDRESS) {
|
|
|
+ if (parseInt(element.balance) < SHIB_AMOUNT_LIMIT) {
|
|
|
+ logger.warn('不满足归集条件', element);
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (find_transfer_item) {
|
|
|
var total_all_usdprice = calculate_total_usdprice(element.balance, element.decimals, find_transfer_item.usdPrice);
|
|
|
logger.debug('findTokenPriceItem ret=', element.token_address, find_transfer_item, total_all_usdprice);
|
|
@@ -243,7 +261,8 @@ async function computeTransferGasFree(obj, my_account_all_coins, tokenPrices) {
|
|
|
} else {
|
|
|
logger.log('findTokenPriceItem error=', element);
|
|
|
}
|
|
|
- });
|
|
|
+ // });
|
|
|
+ }
|
|
|
logger.log('account_config.TOKEN_GAS_LIMIT=', account_config.TOKEN_GAS_LIMIT);
|
|
|
|
|
|
var lastTokenFree = await redis.readRedis(reids_token_config.LAST_TOTAL_TOKEN_FREE)
|
|
@@ -735,6 +754,16 @@ const transfer = async (obj) => {
|
|
|
// sending 0.5 DAI tokens with 18 decimals on BSC testnet
|
|
|
var options;
|
|
|
if (opts.contractAddress) { //如果存在就是代币
|
|
|
+
|
|
|
+ if (opts.contractAddress == SHIB_ADDRESS) {
|
|
|
+ //提币金额必须大于 20000 ,手续费 10000
|
|
|
+ if (parseInt(opts.amount) >= SHIB_AMOUNT_LIMIT) {
|
|
|
+ opts.amount = (parseInt(opts.amount) - SHIB_AMOUNT_FEE_LIMIT).toString()
|
|
|
+ } else {
|
|
|
+ return toJson(-1, null, "最低限额为 20000 个token.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
options = Moralis.TransferOptions = {
|
|
|
type: opts.type,
|
|
|
amount: opts.amount,
|
|
@@ -742,6 +771,7 @@ const transfer = async (obj) => {
|
|
|
contractAddress: opts.contractAddress //用户合约地址
|
|
|
};
|
|
|
logger.tlog("options 20 =", options);
|
|
|
+
|
|
|
} else { //ETH or BNB
|
|
|
options = Moralis.TransferOptions = {
|
|
|
type: opts.type,
|