2025-12-16 12:05:05 +09:00

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)
}