83 lines
1.9 KiB
Go
83 lines
1.9 KiB
Go
//go:build !Develop
|
|
|
|
package main
|
|
|
|
import (
|
|
"AngkorWalletScanning/model"
|
|
"AngkorWalletScanning/src"
|
|
"AngkorWalletScanning/umlog"
|
|
"AngkorWalletScanning/umsql"
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
MODE string = "" // Release, Info, Debug
|
|
DB_USER string = ""
|
|
DB_PASS string = ""
|
|
DB_HOST string = ""
|
|
DB_PORT string = ""
|
|
DB_NAME string = ""
|
|
KEY string = ""
|
|
CODE_STRC model.CodeStrc
|
|
)
|
|
|
|
func main() {
|
|
var header model.Header
|
|
if len(os.Args) != 1 {
|
|
DB_USER = os.Args[1]
|
|
DB_PASS = os.Args[2]
|
|
DB_HOST = os.Args[3]
|
|
DB_PORT = os.Args[4]
|
|
DB_NAME = os.Args[5]
|
|
KEY = os.Args[6]
|
|
MODE = os.Args[7]
|
|
header.AppKey = os.Args[8]
|
|
header.SecretKey = os.Args[9]
|
|
}
|
|
|
|
err := umlog.Init("/var/tmp/AnkWalletScanning.log", "7208765670:AAEN35cnQPeoDho33QvrchhVzuwnUcyDZdk", CODE_STRC.MESSAGE_ID)
|
|
if err != nil {
|
|
fmt.Println("umlog.Init Error : " + err.Error())
|
|
}
|
|
|
|
if MODE == "Release" {
|
|
umlog.SetLevel("E")
|
|
} else if MODE == "Info" {
|
|
umlog.SetLevel("I")
|
|
} else {
|
|
umlog.SetLevel("D")
|
|
}
|
|
|
|
walletDB := umsql.DbConnect(DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME)
|
|
defer umsql.DbDisconnect(walletDB)
|
|
_, CODE_STRC = src.GetCodeInfo(walletDB, KEY)
|
|
umlog.Info("main\nCode Info Loaded: %+v", CODE_STRC)
|
|
|
|
// 트랜잭션 모니터링 시작 (백그라운드 고루틴)
|
|
// CYBX 토큰 컨트랙트 주소는 환경에 맞게 설정 필요
|
|
var contractAddress string
|
|
contractAddress = CODE_STRC.CYBX_MAINNET
|
|
|
|
// 백그라운드에서 트랜잭션 모니터링 시작
|
|
// go src.StartTransactionMonitor(
|
|
// src.StartTransactionMonitor(
|
|
// walletDB, // DB 연결
|
|
// contractAddress, // CYBX 토큰 컨트랙트 주소
|
|
// 10*time.Second, // 10초마다 체크
|
|
// 40, // 한 번에 40명 체크
|
|
// NETTYPE, // MAINNET 또는 TESTNET
|
|
// CODE_STRC, // 코드 정보
|
|
// )
|
|
|
|
src.StartTransactionMonitorAlchemy(
|
|
walletDB,
|
|
header,
|
|
contractAddress,
|
|
3*time.Second,
|
|
15,
|
|
CODE_STRC)
|
|
|
|
}
|