62 lines
1.4 KiB
Go
62 lines
1.4 KiB
Go
|
|
package main
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
"log"
|
||
|
|
|
||
|
|
"github.com/gothinkster/golang-gin-realworld-example-app/common"
|
||
|
|
"github.com/gothinkster/golang-gin-realworld-example-app/config"
|
||
|
|
)
|
||
|
|
|
||
|
|
type Asset struct {
|
||
|
|
ID int64 `gorm:"column:id"`
|
||
|
|
AssetCode string `gorm:"column:asset_code"`
|
||
|
|
Name string `gorm:"column:name"`
|
||
|
|
ContractAddress string `gorm:"column:contract_address"`
|
||
|
|
}
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
// Load configuration
|
||
|
|
cfg := config.Load()
|
||
|
|
|
||
|
|
// Initialize database
|
||
|
|
if cfg.DBType == "mysql" {
|
||
|
|
common.InitMySQL()
|
||
|
|
} else {
|
||
|
|
common.Init()
|
||
|
|
}
|
||
|
|
|
||
|
|
db := common.GetDB()
|
||
|
|
|
||
|
|
// Query YT assets
|
||
|
|
var assets []Asset
|
||
|
|
err := db.Table("assets").
|
||
|
|
Where("asset_code IN (?, ?, ?)", "YT-A", "YT-B", "YT-C").
|
||
|
|
Find(&assets).Error
|
||
|
|
if err != nil {
|
||
|
|
log.Fatalf("Failed to query assets: %v", err)
|
||
|
|
}
|
||
|
|
|
||
|
|
fmt.Println("=== 数据库中的 YT 合约地址 ===")
|
||
|
|
for _, asset := range assets {
|
||
|
|
fmt.Printf("%s: %s\n", asset.AssetCode, asset.ContractAddress)
|
||
|
|
}
|
||
|
|
|
||
|
|
// Query YTLPToken from system_contracts
|
||
|
|
var ytlp struct {
|
||
|
|
Name string `gorm:"column:name"`
|
||
|
|
Address string `gorm:"column:address"`
|
||
|
|
}
|
||
|
|
err = db.Table("system_contracts").
|
||
|
|
Where("name = ? AND is_active = ?", "YTLPToken", 1).
|
||
|
|
Select("name, address").
|
||
|
|
First(&ytlp).Error
|
||
|
|
if err != nil {
|
||
|
|
log.Printf("Failed to query YTLPToken: %v", err)
|
||
|
|
} else {
|
||
|
|
fmt.Println("\n=== ytLP 地址 ===")
|
||
|
|
fmt.Printf("%s: %s\n", ytlp.Name, ytlp.Address)
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|