Ver Fonte

读取所有的币价格

DevYK há 3 anos atrás
pai
commit
3450e4450b
5 ficheiros alterados com 110 adições e 58 exclusões
  1. 10 10
      config/config.js
  2. 38 36
      model/moralis_sdk.js
  3. 27 0
      model/mysql_db.js
  4. 16 0
      model/redis_db.js
  5. 19 12
      routes/sdk.js

+ 10 - 10
config/config.js

@@ -23,19 +23,19 @@ const db_config = {
             PORT: '', //连接的端口
             HOST: '' //host
         },
-        // redis: {
-        //     PORT: 6379, // Redis port
-        //     HOST: "r-bp1ps6my7lzg8rdhwxpi.redis.rds.aliyuncs.com", // Redis host
-        //     USERNAME: "",
-        //     PASSWORD: "Wqsd@2019"
-        // },
-
         redis: {
             PORT: 6379, // Redis port
-            HOST: "denet-test.y2slbl.clustercfg.memorydb.us-east-1.amazonaws.com", // Redis host
-            USERNAME: "", // needs Redis >= 6
-            PASSWORD: "",
+            HOST: "r-bp1ps6my7lzg8rdhwxpi.redis.rds.aliyuncs.com", // Redis host
+            USERNAME: "",
+            PASSWORD: "Wqsd@2019"
         },
+
+        // redis: {
+        //     PORT: 6379, // Redis port
+        //     HOST: "denet-test.y2slbl.clustercfg.memorydb.us-east-1.amazonaws.com", // Redis host
+        //     USERNAME: "", // needs Redis >= 6
+        //     PASSWORD: "",
+        // },
     },
 
     pre: {

+ 38 - 36
model/moralis_sdk.js

@@ -3,7 +3,8 @@ const Moralis = require("moralis/node");
 
 var utils = require('./utils.js');
 var config = require('../config/config.js');
-const redis = require("../model/redis_db")  //导入 db.js
+const redis = require("./redis_db")  //导入 db.js
+const mysql = require("./mysql_db")
 
 /* Moralis init code */
 var serverUrl = config.moralis_config.test_server.SERVER_URL;
@@ -37,6 +38,12 @@ function toJson(code_, obj_, errMsg_) {
     return utils.toJson(code_, obj_, errMsg_);
 }
 
+
+const withdraw = async (obj) => {
+    obj.withdraw = 1;
+    return await transfer(obj);
+}
+
 const transfer = async (obj) => {
     console.debug("fun transfer in ", obj);
     console.debug("fun transfer serverUrl ", serverUrl);
@@ -77,15 +84,20 @@ const transfer = async (obj) => {
     // opts.amount = Moralis.Units.Token(obj.amount, 18);
     opts.amount = obj.amount;
 
-
-
     if (obj.privateKey != null) {
         opts.privateKey = obj.privateKey;
     }
 
     //解密私钥
-    // var privateKey = utils.decryptPrivityKey(process.env.NENET_CRYPT_KEY, opts.privateKey);
-    var privateKey = utils.decryptPrivityKey(opts.privateKey);
+    var privateKey = '';
+    //提币
+    if (obj.withdraw) {
+        //读取归集地址私钥
+        // opts.privateKey = readPriveteKeyFromMysql();
+        opts.privateKey = '4Uz4Jm7Xd1gH+1nFbR0B7hk1ITmsT8O3iAgS/hC0L9TkrqAZoklsQhXl4fA1X+uqpckF4HtnXnMpwng94GvvzsRfXYirfDfboneuzfc0o7s=';
+    }
+
+    privateKey = utils.decryptPrivityKey(opts.privateKey);
     if (privateKey == null) {
         return toJson(-1, null, "decryptPrivityKey error.");
     }
@@ -129,47 +141,36 @@ const transfer = async (obj) => {
 };
 
 const getAllTokenWithdrawInfoLists = async (obj) => {
-    await initMasterSDK();
-    console.log('queryAllTokenBalance:', JSON.stringify(config.token_balance_config.TOKEN_BALANCE));
-    return toJson(SUCCEED_CODE, JSON.stringify(config.token_balance_config.TOKEN_BALANCE), null);
+    try {
+        var key = config.reids_token_config.TOKENWITHDRAW;
+        var ret = await readRedis(key);
+        return toJson(SUCCEED_CODE, ret, null);
+    } catch (error) {
+        console.error("getAllTokenWithdrawInfoLists=", error);
+        return toJson(ERROR_CODE_001, null, error.toString());
+    }
 }
 
+function readRedis(key) {
+    return new Promise((resolve) => {
+        redis.redis_get(key).then(result => {
+            // console.log("redis_get=", JSON.parse(result)); // Prints "value"
+            resolve(result);
+        });
+    })
+}
 
 /**
  * 获取代币价格 -> usdPrice
  */
-const getAllTotkenPrice = async (address, chain) => {
-    await initMasterSDK();
-    // const options = {
-    //     address: address,
-    //     chain: chain,
-    // };
-    // options.address = '0x7083609fCE4d1d8Dc0C979AAb8c869Ea2C873402'
-    // options.chain = 'bsc'
-    // for (let index = 0; index < 1000; index++) {
-    //  var ret = await Moralis.Web3API.token.getTokenPrice(options);
-    //     console.log("getTokenPrice=", index, ret);
-    // }
-    // if (1) return '';
-
+const getAllTotkenPrice = async () => {
     try {
+        console.log("getAllTotkenPrice in"); // Prints "value"
         var token_price_key = config.reids_token_config.TOKENPRICE;
-        await redis.redis_get(token_price_key).then((result) => {
-            console.log("redis_get=", error, result); // Prints "value"
-            if (result)
-                return toJson(SUCCEED_CODE, config.token_price_config, null);
-            else return toJson(ERROR_CODE_001, null, error);
-        });
-        // // console.debug("fun getTotkenPrice in ", options);
-        // if (Array.isArray(config.token_price_config)) {
-        //     // const arrays = JSON.parse(config.token_price_config);
-        //     return toJson(SUCCEED_CODE, config.token_price_config, null);
-        // }
-        // // var ret = await Moralis.Web3API.token.getTokenPrice(options);
-        // return toJson(ERROR_CODE_001, null, 'getTotkenPrice error.');
+        return await readRedis(token_price_key)
     } catch (error) {
         console.error("getTotkenPrice=", error);
-        return toJson(ERROR_CODE_001, null, error.toString());;
+        return toJson(ERROR_CODE_001, null, error.toString());
     }
 }
 
@@ -259,6 +260,7 @@ module.exports = {
     toJson,
     getAllTokenWithdrawInfoLists,
     getAllTotkenPrice,
+    withdraw,
 }
 
 

+ 27 - 0
model/mysql_db.js

@@ -0,0 +1,27 @@
+var mysql = require('mysql');
+var config = require('../config/config.js') // 导入位置文件
+
+var port = config.db_config.test.mysql.PORT
+var host = config.db_config.test.mysql.HOST
+var username = config.db_config.test.mysql.USERNAME
+var password = config.db_config.test.redis.PASSWORD
+if (config.build_config.open_test == 0) {
+    port = config.db_config.main.mysql.PORT
+    host = config.db_config.main.mysql.HOST
+    username = config.db_config.main.mysql.USERNAME
+    password = config.db_config.main.mysql.PASSWORD
+}
+
+// var connection = mysql.createConnection({
+//     host: host,
+//     user: username,
+//     password: password,
+//     port: port,
+//     database: 'test'
+// });
+
+// connection.connect();
+
+// console.log('mysql--->',connection)
+
+// module.exports = connection;

+ 16 - 0
model/redis_db.js

@@ -23,12 +23,28 @@ var REDIS_INSTANCE = new Redis({
   connectTimeout: 10000,
 });
 
+// var REDIS_INSTANCE = new Redis.Cluster([
+//   {
+//     port: port,
+//     password: password,
+//     host: host,
+//   },
+// ]);
+
+REDIS_INSTANCE.on('connect', () => {
+  console.log('connected to redis')
+})
+
+REDIS_INSTANCE.on('error', function (err) {
+  console.log('redis  Error ', err);
+});
 
 function redis_set(key, value) {
   REDIS_INSTANCE.set(key, value);
 }
 
 async function redis_get(key) {
+  console.log("redis get=",key);
   return await REDIS_INSTANCE.get(key);
 }
 

+ 19 - 12
routes/sdk.js

@@ -9,17 +9,11 @@ router.prefix('/sdk');
  * @param {*} ctx 
  */
 async function getAllTotkenPrice(ctx) {
-    console.log("body", typeof (ctx.request.body), ctx);
-    const obj = ctx.request.body;
-    console.log("obj", obj);
-    // if (obj.address != null && obj.chain != null) {
-    await moralis.getAllTotkenPrice(obj.address, obj.chain).then((result) => {
-        console.log('getTotkenPrice result:', result)
-        ctx.body = result;
-    })
-    // } else {
-    // ctx.body = utils.toJson(-1, null, "please check address or chain parameter is ok ? ");
-    // }
+    var ret = await moralis.getAllTotkenPrice()
+    console.log('getTotkenPrice result:', ret)
+    if (ret)
+        ctx.body = utils.toJson(0, ret, null);
+    else ctx.body = utils.toJson(-1, null, "redis read error.");
 }
 
 /**
@@ -61,12 +55,25 @@ async function getAllTokenWithdrawInfoLists(ctx) {
     ctx.body = await moralis.getAllTokenWithdrawInfoLists(ctx);
 }
 
+async function withdraw(ctx) {
+    if (ctx.request == null || ctx.request.body == null) {
+        ctx.body = utils.toJson(-1, null, "request error. ");
+        return
+    }
+    const obj = ctx.request.body;
+    await moralis.withdraw(obj).then((result) => {
+        ctx.body = result;
+    });
+}
+
 //获取交易记录
 router.post('/getTransfers', getTransfers)
 // 获取所有代币价格
 router.post('/getAllTotkenPrice', getAllTotkenPrice)
-//归集 and 提现
+//归集 获取当前余额是否大于 1 美刀,大于就将用户充币地址的余额转移到归集地址
 router.post('/transfer', transfer)
+//提现
+router.post('/withdraw', withdraw);
 //获取所有地址的所要消耗的最低提取费
 router.post('/getAllTokenWithdrawInfoLists', getAllTokenWithdrawInfoLists)