remote_config_db.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. const mysql = require("./mysql_db")
  2. const logger = require('../logger')
  3. var { db_config } = require('../../config/config.js')
  4. const utils = require('../utils.js')
  5. /**
  6. * 是否暂停归集动作
  7. */
  8. async function isPause(type) {
  9. var sql = 'select * from remote_config WHERE type=? '
  10. var par = [type]
  11. logger.info('isPause', sql, par)
  12. return new Promise((resolve) => {
  13. mysql.getMySqlInstance().getConnection(function (err, connection) {
  14. if (err) {
  15. logger.error('isPause', err)
  16. logger.error('isPause', sql)
  17. resolve(null);
  18. return;
  19. }
  20. connection.query(
  21. sql, par,
  22. function selectCb(error, results) {
  23. if (error) {
  24. logger.error('isPause', error, sql, par)
  25. resolve(1);
  26. return;
  27. }
  28. logger.log('isPause ret=', error, results);
  29. //用完当前连接需要释放,归还给连接池
  30. connection.release();
  31. if (results && Array.isArray(results) && results.length > 0) {
  32. resolve(results[0].pause);
  33. } else {
  34. resolve(1);
  35. }
  36. }
  37. );
  38. })
  39. })
  40. }
  41. /**
  42. * 是否使用 moralis sdk
  43. */
  44. async function isUseMoralisSDK() {
  45. var sql = 'select * from remote_config WHERE type=? '
  46. var par = ['use_moralis_sdk']
  47. logger.info('isUseMoralisSDK', sql, par)
  48. return new Promise((resolve) => {
  49. mysql.getMySqlInstance().getConnection(function (err, connection) {
  50. if (err) {
  51. logger.error('isUseMoralisSDK', err)
  52. logger.error('isUseMoralisSDK', sql)
  53. resolve(null);
  54. return;
  55. }
  56. connection.query(
  57. sql, par,
  58. function selectCb(error, results) {
  59. if (error) {
  60. logger.error('isUseMoralisSDK', error, sql, par)
  61. resolve(1);
  62. return;
  63. }
  64. logger.log('isUseMoralisSDK ret=', error, results);
  65. //用完当前连接需要释放,归还给连接池
  66. connection.release();
  67. if (results && Array.isArray(results) && results.length > 0) {
  68. resolve(results[0].pause == 0);
  69. } else {
  70. resolve(true);
  71. }
  72. }
  73. );
  74. })
  75. })
  76. }
  77. /**
  78. * 是否暂停归集动作
  79. */
  80. async function tokenCollectCoinsBlacklistExist(type, chain, token_address) {
  81. var sql = 'select * from blacklist WHERE type=? AND address=? AND status=1 AND chain=? '
  82. switch (chain) {
  83. case 'bsc_testnet':
  84. case 'bsc_mainnet':
  85. case 'bsc testnet':
  86. case 'bsc mainnet':
  87. chain = 'bsc'
  88. break
  89. case 'czz':
  90. case 'CZZ':
  91. chain = 'czz'
  92. break
  93. }
  94. var par = [type, token_address, chain]
  95. logger.info('getTokenCollectCoinsBlacklist', sql, par)
  96. return new Promise((resolve) => {
  97. mysql.getMySqlInstance().getConnection(function (err, connection) {
  98. if (err) {
  99. logger.error('getTokenCollectCoinsBlacklist', err)
  100. logger.error('getTokenCollectCoinsBlacklist', sql)
  101. resolve(null);
  102. return;
  103. }
  104. connection.query(
  105. sql, par,
  106. function selectCb(error, results) {
  107. if (error) {
  108. logger.error('getTokenCollectCoinsBlacklist', error, sql, par)
  109. resolve(null);
  110. return;
  111. }
  112. logger.log('getTokenCollectCoinsBlacklist ret=', error, results);
  113. //用完当前连接需要释放,归还给连接池
  114. connection.release();
  115. if (results && Array.isArray(results) && results.length > 0) {
  116. resolve(true);
  117. } else {
  118. resolve(null);
  119. }
  120. }
  121. );
  122. })
  123. })
  124. }
  125. /**
  126. * 过滤某些地址归集
  127. * collect_coins
  128. */
  129. async function isBlackList(type, chain, address) {
  130. var sql = 'select * from blacklist WHERE type=? AND address=? AND status=1 AND chain=? '
  131. switch (chain) {
  132. case 'bsc_testnet':
  133. case 'bsc_mainnet':
  134. chain = 'bsc'
  135. break
  136. case 'czz':
  137. case 'CZZ':
  138. chain = 'czz'
  139. break
  140. }
  141. var par = [type, address, chain]
  142. logger.info('isBlackList', sql, par)
  143. return new Promise((resolve) => {
  144. mysql.getMySqlInstance().getConnection(function (err, connection) {
  145. if (err) {
  146. logger.error('isBlackList', err)
  147. logger.error('isBlackList', sql)
  148. resolve(null);
  149. return;
  150. }
  151. connection.query(
  152. sql, par,
  153. function selectCb(error, results) {
  154. if (error) {
  155. logger.error('isBlackList', error, sql, par)
  156. resolve(null);
  157. return;
  158. }
  159. logger.log('isBlackList ret=', error, results);
  160. //用完当前连接需要释放,归还给连接池
  161. connection.release();
  162. if (results && Array.isArray(results) && results.length > 0) {
  163. resolve(1);
  164. } else {
  165. resolve(0);
  166. }
  167. }
  168. );
  169. })
  170. })
  171. }
  172. async function getForceAddTokenLists(chain) {
  173. var sql = 'select * from force_token_list WHERE chain=? '
  174. var par = [chain]
  175. logger.info('getForceAddTokenLists', sql, par)
  176. return new Promise((resolve) => {
  177. mysql.getMySqlInstance().getConnection(function (err, connection) {
  178. if (err) {
  179. logger.error('getForceAddTokenLists', err)
  180. logger.error('getForceAddTokenLists', sql)
  181. resolve(null);
  182. return;
  183. }
  184. connection.query(
  185. sql, par,
  186. function selectCb(error, results) {
  187. if (error) {
  188. logger.error('getForceAddTokenLists', error, sql, par)
  189. resolve(null);
  190. return;
  191. }
  192. logger.log('getForceAddTokenLists ret=', error, results);
  193. //用完当前连接需要释放,归还给连接池
  194. connection.release();
  195. if (results && Array.isArray(results) && results.length > 0) {
  196. resolve(results);
  197. } else {
  198. resolve(null);
  199. }
  200. }
  201. );
  202. })
  203. })
  204. }
  205. module.exports = {
  206. isPause,
  207. isBlackList,
  208. isUseMoralisSDK,
  209. getForceAddTokenLists,
  210. tokenCollectCoinsBlacklistExist,
  211. }