浏览代码

first commit

Rony 3 年之前
当前提交
1f7a3ea27f
共有 3 个文件被更改,包括 142 次插入0 次删除
  1. 80 0
      bsc_token_price.py
  2. 3 0
      requirements.txt
  3. 59 0
      token.txt

+ 80 - 0
bsc_token_price.py

@@ -0,0 +1,80 @@
+import math
+import time
+from rediscluster import RedisCluster
+import requests
+import json
+
+BNBCONTRACT = '0x0000000000000000000000000000000000000000'
+WITHDRAWFEEUSD = 0.5 #提现手续费,标的是usdt单位
+WITHDRAWCOUNTBYFEE = 2 #提现所需对应手续费token数量的倍数
+
+
+TOKENPRICE = 'TOKENPRICE'
+TOKENPRICEDICT = 'TOKENPRICEDICT'
+TOKENWITHDRAW = 'TOKENWITHDRAW'
+
+#dev ali
+#r = RedisCluster(host="r-bp1ps6my7lzg8rdhwxpi.redis.rds.aliyuncs.com", port=6379, password='Wqsd@2019', decode_responses=True, skip_full_coverage_check=True)
+
+#test
+REDIS_TEST = 'denet-test.y2slbl.clustercfg.memorydb.us-east-1.amazonaws.com'
+#r = RedisCluster(host=REDIS_TEST, port=6379, decode_responses=True, skip_full_coverage_check=True)
+
+#online
+REDIS_ONLINE = 'denet-chain-prod.y2slbl.clustercfg.memorydb.us-east-1.amazonaws.com:6379'
+r = RedisCluster(host=REDIS_ONLINE, port=6379, decode_responses=True, skip_full_coverage_check=True)
+
+def getTokenList():
+    l = []
+    with open('/home/sh/token.txt') as f:
+        for line in f:
+            l.append(line.strip())
+    return l
+
+def getPrice(contract):
+    headers = {
+        'accept': 'application/json',
+        'X-API-Key': 'e757C7HGUAiQSY37e3hxmJKCelBwWzt0caFAYfoXutJXVMISI3mX7w3CIO4ga5vo',
+    }
+    params = {
+        'chain': 'bsc',
+        'exchange': 'PancakeSwapv2',
+    }
+
+    response = requests.get(f'https://deep-index.moralis.io/api/v2/erc20/{contract}/price', headers=headers,
+                            params=params)
+    result = response.json()
+    print(result)
+    usdPrice = result['usdPrice']
+    bnbPrice = int(result['nativePrice']['value'])/1000000000000000000
+    priceOfBnb = usdPrice/bnbPrice
+    # print(contract, usdPrice, bnbPrice, priceOfBnb)
+    return {'contract':contract, 'usdPrice':usdPrice}, priceOfBnb
+
+def getAllPrice():
+    l = []
+    bnbPrice = 0
+    tokenList = getTokenList()
+    for i in tokenList:
+        info, bnb = getPrice(i)
+        l.append(info)
+        bnbPrice = bnb
+    l.append({'contract':BNBCONTRACT, 'usdPrice':bnbPrice})
+    r.set(TOKENPRICE, json.dumps({'tokenPrice':l}))
+    return l
+
+def getWithdrawFees():
+    l = []
+    priceList = getAllPrice()
+    for i in priceList:
+       contract = i['contract']
+       withdrawFeeCount = round(WITHDRAWFEEUSD/i['usdPrice'], 18)
+       withdrawMinCount = withdrawFeeCount * WITHDRAWCOUNTBYFEE
+       l.append({'contract':contract, 'withdrawFeeCount':withdrawFeeCount,'withdrawMinCount':withdrawMinCount})
+    r.set(TOKENWITHDRAW, json.dumps({'tokenWithdraw':l}))
+    return l
+
+getWithdrawFees()
+
+print(r.get(TOKENPRICE))
+print(r.get(TOKENWITHDRAW))

+ 3 - 0
requirements.txt

@@ -0,0 +1,3 @@
+redis_py_cluster==2.1.3
+rediscluster==0.5.3
+requests==2.26.0

+ 59 - 0
token.txt

@@ -0,0 +1,59 @@
+0x55d398326f99059fF775485246999027B3197955
+0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56
+0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c
+0x2170Ed0880ac9A755fd29B2688956BD959F933F8
+0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82
+0x12BB890508c125661E03b09EC06E404bc9289040
+0x3019BF2a2eF8040C242C9a4c5c4BD4C81678b2A1
+0x3203c9E46cA618C8C1cE5dC67e7e9D75f5da2377
+0x762539b45A1dCcE3D36d080F74d1AED37844b878
+0x26193C7fa4354AE49eC53eA2cEBC513dc39A10aa
+0xbA2aE424d960c26247Dd6c32edC70B295c744C43
+0xc748673057861a797275CD8A068AbB95A902e8de
+0x2859e4544c4bb03966803b044a93563bd2d0dd4d
+0x7083609fce4d1d8dc0c979aab8c869ea2c873402
+0x3ee2200efb3400fabb9aacf31297cbdd1d435d47
+0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe
+0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F
+0xb86AbCb37C3A4B64f74f59301AFF131a1BEcC787
+0x0D8Ce2A99Bb6e3B7Db580eD848240e4a0F9aE153
+0xAD29AbB318791D579433D831ed122aFeAf29dcfe
+0xCC42724C6683B7E57334c4E856f4c9965ED682bD
+0xD41FDb03Ba84762dD66a0af1a6C8540FF1ba5dfb
+0x8C851d1a123Ff703BD1f9dabe631b69902Df5f97
+0x0566B9a8fFb8908682796751EEd00722da967Be0
+0x8fF795a6F4D97E7887C79beA79aba5cc76444aDf
+0x85EAC5Ac2F758618dFa09bDbe0cf174e7d574D5B
+0x4338665CBB7B2485A8855A139b75D5e34AB0DB94
+0x0Eb3a705fc54725037CC9e008bDede697f62F335
+0x96412902aa9aFf61E13f085e70D3152C6ef2a817
+0x9678E42ceBEb63F23197D726B29b1CB20d0064E5
+0x1Fa4a73a3F0133f0025378af00236f3aBDEE5D63
+0x156ab3346823B651294766e23e6Cf87254d68962
+0x947950BcC74888a40Ffa2593C5798F11Fc9124C4
+0x56b6fB708fC5732DEC1Afc8D8556423A2EDcCbD6
+0xBf5140A22578168FD562DCcF235E5D43A02ce9B1
+0x715D400F88C167884bbCc41C5FeA407ed4D2f8A0
+0xa1faa113cbE53436Df28FF0aEe54275c13B40975
+0xA7f552078dcC247C2684336020c03648500C6d9F
+0xE0e514c71282b6f4e823703a39374Cf58dc3eA4f
+0xE02dF9e3e622DeBdD69fb838bB799E3F168902c5
+0xC9849E6fdB743d08fAeE3E34dd2D1bc69EA11a51
+0x4BD17003473389A42DAF6a0a729f6Fdb328BbBd7
+0x9f589e3eabe42ebC94A44727b3f3531C0c877809
+0xcF6BB5389c92Bdda8a3747Ddb454cB7a64626C63
+0x7e624FA0E1c4AbFD309cC15719b7E2580887f570
+0x2eD9a5C8C13b93955103B9a7C167B67Ef4d568a3
+0xf9CeC8d50f6c8ad3Fb6dcCEC577e05aA32B224FE
+0x111111111117dC0aa78b770fA6A738034120C302
+0xBc7d6B50616989655AfD682fb42743507003056D
+0xa184088a740c695E156F91f5cC086a06bb78b827
+0xF68C9Df95a18B2A5a5fa1124d79EEEffBaD0B6Fa
+0x6F769E65c14Ebd1f68817F5f1DcDb61Cfa2D6f7e
+0xf307910A4c7bbc79691fD374889b36d8531B08e3
+0x101d82428437127bF1608F699CD651e6Abf9766E
+0x52CE071Bd9b1C4B00A0b92D298c512478CaD67e8
+0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2
+0x2222227E22102Fe3322098e4CBfE18cFebD57c95
+0xfe56d5892BDffC7BF58f2E84BE1b2C32D21C308b
+0x7dDEE176F665cD201F93eEDE625770E2fD911990