package blockchainservicelogic import ( app_cloudep_blockchain "blockchain/gen_result/pb/code.30cm.net/digimon/app-cloudep-blockchain" "blockchain/internal/svc" "context" "github.com/zeromicro/go-zero/core/logx" ) type ListSymbolsLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewListSymbolsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListSymbolsLogic { return &ListSymbolsLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } // ListSymbols retrieves all available trading symbols. func (l *ListSymbolsLogic) ListSymbols(in *app_cloudep_blockchain.ListSymbolsRequest) (*app_cloudep_blockchain.ListSymbolsResponse, error) { result, err := l.svcCtx.BinanceDataSource.GetSymbols(l.ctx) if err != nil { return nil, err } rpy := make([]*app_cloudep_blockchain.Symbol, 0, len(result)) for _, item := range result { if item != nil { rpy = append(rpy, &app_cloudep_blockchain.Symbol{ Symbol: item.Symbol, Status: item.Status, BaseAsset: item.BaseAsset, BaseAssetPrecision: int32(item.BaseAssetPrecision), QuoteAsset: item.QuoteAsset, QuoteAssetPrecision: int32(item.QuoteAssetPrecision), }) } } return &app_cloudep_blockchain.ListSymbolsResponse{ Symbols: rpy, }, nil }