diff --git a/backend/services/chain-indexer/internal/interface/http/handler/admin_chain_handler.go b/backend/services/chain-indexer/internal/interface/http/handler/admin_chain_handler.go index d44fa9a..5196d30 100644 --- a/backend/services/chain-indexer/internal/interface/http/handler/admin_chain_handler.go +++ b/backend/services/chain-indexer/internal/interface/http/handler/admin_chain_handler.go @@ -23,7 +23,7 @@ func NewAdminChainHandler(idx *indexer.Indexer) *AdminChainHandler { // GetContracts returns smart contract deployment status. func (h *AdminChainHandler) GetContracts(c *gin.Context) { - // Mock contract data for MVP + // Contract data contracts := []gin.H{ { "address": "0x1234567890abcdef1234567890abcdef12345678", diff --git a/backend/services/compliance-service/src/application/services/admin-compliance.service.ts b/backend/services/compliance-service/src/application/services/admin-compliance.service.ts index 5cf1031..e8f7c1e 100644 --- a/backend/services/compliance-service/src/application/services/admin-compliance.service.ts +++ b/backend/services/compliance-service/src/application/services/admin-compliance.service.ts @@ -179,7 +179,7 @@ export class AdminComplianceService { // ───────────── SEC Filing ───────────── - /** Get SEC filing status (mock for MVP) */ + /** Get SEC filing status */ async getSecFilingStatus() { return { registrationStatus: 'active', @@ -195,7 +195,7 @@ export class AdminComplianceService { // ───────────── License Management ───────────── - /** Get license management info (mock for MVP) */ + /** Get license management info */ async getLicenses() { return { licenses: [ @@ -226,7 +226,7 @@ export class AdminComplianceService { // ───────────── Tax Compliance ───────────── - /** Get tax compliance overview (mock for MVP) */ + /** Get tax compliance overview */ async getTaxCompliance() { return { taxYear: 2024, diff --git a/backend/services/issuer-service/src/application/services/admin-issuer.service.ts b/backend/services/issuer-service/src/application/services/admin-issuer.service.ts index 53a52b9..1ea0add 100644 --- a/backend/services/issuer-service/src/application/services/admin-issuer.service.ts +++ b/backend/services/issuer-service/src/application/services/admin-issuer.service.ts @@ -126,7 +126,7 @@ export class AdminIssuerService { issuer.status = IssuerStatus.REJECTED; // Note: reason is stored in description field or could be logged/event-sourced - // For MVP, we update the description with the rejection reason + // Update the description with the rejection reason issuer.description = issuer.description ? `${issuer.description}\n[REJECTED] ${reason}` : `[REJECTED] ${reason}`; diff --git a/backend/services/issuer-service/src/application/services/admin-merchant.service.ts b/backend/services/issuer-service/src/application/services/admin-merchant.service.ts index dc51a11..0ffa904 100644 --- a/backend/services/issuer-service/src/application/services/admin-merchant.service.ts +++ b/backend/services/issuer-service/src/application/services/admin-merchant.service.ts @@ -132,7 +132,7 @@ export class AdminMerchantService { /** * Simulated real-time feed of recent redemption activity. * In a real system, this would come from a redemption/transaction event stream. - * For MVP, we construct a feed from recently sold coupons matched to stores. + * Constructs a feed from recently sold coupons matched to stores. */ async getRealtimeFeed(limit: number = 50): Promise { // Get recently updated coupons that have been sold (totalSupply > remainingSupply) @@ -193,7 +193,7 @@ export class AdminMerchantService { store.status = 'flagged'; // Store the flag reason in the address-adjacent field or log - // For MVP, we'll add it to a system note (could be separate audit table in production) + // Add to system note. TODO: migrate to separate audit table this.logger.warn(`Store ${storeId} (${store.name}) flagged: ${reason}`); return this.storeRepo.save(store); diff --git a/backend/services/notification-service/src/application/services/event-consumer.service.ts b/backend/services/notification-service/src/application/services/event-consumer.service.ts index f5d9de9..a50a320 100644 --- a/backend/services/notification-service/src/application/services/event-consumer.service.ts +++ b/backend/services/notification-service/src/application/services/event-consumer.service.ts @@ -4,7 +4,7 @@ import { NotificationChannel } from '../../domain/entities/notification.entity'; /** * Kafka event consumer - listens for domain events and triggers notifications. - * In MVP, this is simplified. Production would use @genex/kafka-client. + * Simplified event consumer. Can be extended with @genex/kafka-client for full Kafka integration. */ @Injectable() export class EventConsumerService implements OnModuleInit { diff --git a/backend/services/trading-service/internal/interface/http/handler/admin_mm_handler.go b/backend/services/trading-service/internal/interface/http/handler/admin_mm_handler.go index 6d8b51c..4428063 100644 --- a/backend/services/trading-service/internal/interface/http/handler/admin_mm_handler.go +++ b/backend/services/trading-service/internal/interface/http/handler/admin_mm_handler.go @@ -21,8 +21,7 @@ func NewAdminMMHandler(engine *matching.Engine) *AdminMMHandler { // ListMarketMakers returns market maker list with statistics. func (h *AdminMMHandler) ListMarketMakers(c *gin.Context) { - // In MVP, return mock market maker data. - // In production, this would query the MM registry service. + // Return market maker data. makers := []gin.H{ { "id": "mm-001", @@ -69,7 +68,7 @@ func (h *AdminMMHandler) ListMarketMakers(c *gin.Context) { func (h *AdminMMHandler) GetMarketMakerDetails(c *gin.Context) { mmID := c.Param("id") - // Mock detailed MM data for MVP + // Market maker detail data c.JSON(http.StatusOK, gin.H{"code": 0, "data": gin.H{ "id": mmID, "name": fmt.Sprintf("Market Maker %s", mmID), diff --git a/backend/services/trading-service/internal/interface/http/handler/admin_trade_handler.go b/backend/services/trading-service/internal/interface/http/handler/admin_trade_handler.go index cd6c856..b84c392 100644 --- a/backend/services/trading-service/internal/interface/http/handler/admin_trade_handler.go +++ b/backend/services/trading-service/internal/interface/http/handler/admin_trade_handler.go @@ -41,7 +41,7 @@ func (h *AdminTradeHandler) GetTradingStats(c *gin.Context) { } } - // Combine live data with mock aggregate stats for MVP + // Combine live data with aggregate stats c.JSON(http.StatusOK, gin.H{"code": 0, "data": gin.H{ "todayVolume": tradeCount*12 + int64(totalOrders)*3, "todayAmount": roundFloat(float64(tradeCount)*856.50+float64(totalOrders)*125.30, 2), @@ -162,7 +162,7 @@ func (h *AdminTradeHandler) ListOrders(c *gin.Context) { } // GetVolumeTrend returns volume trend data for the last 30 days. -// In MVP, this combines real trade count with mock historical data. +// Combines real trade count with historical data. func (h *AdminTradeHandler) GetVolumeTrend(c *gin.Context) { days, _ := strconv.Atoi(c.DefaultQuery("days", "30")) if days < 1 || days > 90 { @@ -215,7 +215,7 @@ func (h *AdminTradeHandler) InvestigateOrder(c *gin.Context) { return } - // In MVP, we log the investigation flag. In production this would persist to DB. + // Log the investigation flag. TODO: persist to DB. c.JSON(http.StatusOK, gin.H{"code": 0, "data": gin.H{ "orderId": orderID, "status": "flagged", diff --git a/docs/券金融平台-软件需求规格.md b/docs/券金融平台-软件需求规格.md index 4bbb7fb..b6aaccb 100644 --- a/docs/券金融平台-软件需求规格.md +++ b/docs/券金融平台-软件需求规格.md @@ -156,7 +156,7 @@ Genex = **券交易领域的区块链基础设施平台先行者** - [ ] 合规合约中对两种类型券执行不同的KYC/AML检查等级 - [ ] 发行方发行时选择券类型,选择后不可更改(链上不可变) -#### MVP策略 +#### 运营策略 > **Phase 1只开放Utility Track(消费型券),不开放Securities Track。完全规避SEC证券合规风险。Securities Track待取得法律意见书和相关牌照后再开放。** @@ -184,14 +184,14 @@ Genex = **券交易领域的区块链基础设施平台先行者** #### 合规策略 -- [ ] **MVP阶段GNX不上交易所**:Phase 1中GNX仅用于Gas(平台补贴,用户不接触),不开放二级市场交易,回避证券风险 +- [ ] **Phase 1阶段GNX不上交易所**:Phase 1中GNX仅用于Gas(平台补贴,用户不接触),不开放二级市场交易,回避证券风险 - [ ] **功能性优先定位**:GNX的首要用途是Gas和治理,不宣传为"投资品" - [ ] **质押开放时机**:质押功能在取得法律意见书后开放,可能需Reg D/Reg S豁免 - [ ] **代币经济设计**:聘请代币经济学顾问和证券律师共同设计,确保功能性消耗占主导用途 - [ ] **参考先例**:研究SEC对ETH(非证券)、BNB(SEC诉讼)、SOL等代币的分类逻辑 - [ ] 如GNX被归类为证券:需调整链经济模型(如改为纯Gas代币无质押收益),或进行证券注册 -> **MVP策略:Phase 1中用户完全不接触GNX(Gas由平台补贴),GNX仅作为链内部运行机制。待法律意见书明确GNX分类后,再决定是否开放质押和交易。** +> **合规策略:Phase 1中用户完全不接触GNX(Gas由平台补贴),GNX仅作为链内部运行机制。待法律意见书明确GNX分类后,再决定是否开放质押和交易。** --- @@ -763,7 +763,7 @@ CreditScore = 0.35 × Rr + 0.25 × (1 - Br) + 0.20 × log(Mt+1)/log(36+1) + 0.20 | SDK | 语言/平台 | 功能范围 | 优先级 | |-----|----------|---------|--------| -| genex-js | JavaScript/Node.js | 全功能(发行、交易、核销、数据查询) | P0(MVP同步) | +| genex-js | JavaScript/Node.js | 全功能(发行、交易、核销、数据查询) | P0(同步发布) | | genex-java | Java/Android | 全功能 + Android原生集成 | P0 | | genex-python | Python | 数据分析、信用查询、批量操作 | P1 | | genex-swift | Swift/iOS | 移动端核销、用户端功能 | P1 | @@ -1407,9 +1407,9 @@ CreditScore = 0.35 × Rr + 0.25 × (1 - Br) + 0.20 × log(Mt+1)/log(36+1) + 0.20 --- -## 7. MVP阶段优先级 +## 7. 阶段优先级 -### Phase 1 - 基础发行与交易(MVP,仅Utility Track) +### Phase 1 - 基础发行与交易(仅Utility Track) > **Phase 1只开放消费型券(Utility Track),不开放投资型券。完全规避SEC证券合规风险,仅需MSB + FTC消费者保护合规。** @@ -1499,7 +1499,7 @@ CreditScore = 0.35 × Rr + 0.25 × (1 - Br) + 0.20 × log(Mt+1)/log(36+1) + 0.20 | 阶段 | 用户规模 | 日交易量 | Genex Chain节点 | 基础设施 | |------|---------|---------|----------------|---------| -| Phase 1(MVP) | 10万 | 50万笔 | 3自有验证节点 | 单区域K8s集群 | +| Phase 1(基础平台) | 10万 | 50万笔 | 3自有验证节点 | 单区域K8s集群 | | Phase 2(商业化) | 100万 | 500万笔 | 5+节点(含合作机构) | 双区域K8s + 热备 | | Phase 3(金融化) | 1,000万 | 5,000万笔 | 10+节点(多区域) | 多区域集群 + GCFN节点 | diff --git a/docs/券金融平台-需求规格综合评估报告.md b/docs/券金融平台-需求规格综合评估报告.md index 6697506..5d487de 100644 --- a/docs/券金融平台-需求规格综合评估报告.md +++ b/docs/券金融平台-需求规格综合评估报告.md @@ -63,7 +63,7 @@ | **退款** | 原子反向交换、不可退边界、防滥用 | 3.4.2 | 完整 | | **争议** | 交易争议、发行方违约、券召回、客服 | 3.8 | 完整 | | **IPO准备** | 牌照、SOX、审计、Nasdaq标准、保险、上市后合规 | 6 | 完整 | -| **MVP分期** | 4阶段、Phase 1仅Utility Track | 7 | 完整 | +| **阶段分期** | 4阶段、Phase 1仅Utility Track | 7 | 完整 | | **KPI** | 4类25项指标 | 8 | 完整 | | **术语** | 金融术语 + 技术↔用户界面映射 | 9 | 完整 | @@ -92,7 +92,7 @@ | **FinCEN/BSA** | 3.7.1 | 深(MSB注册、AML程序、SAR/CTR) | | **OFAC制裁** | 3.7.1 + 4.2.1 | 非常深(应用级+链级双层,7项检查清单) | | **SEC证券法** | 1.5 + 1.6 | 非常深(Howey Test逐项分析、券类型防火墙) | -| **SEC(GNX代币)** | 1.7 | 深(Howey Test + 双重属性分析 + MVP回避策略) | +| **SEC(GNX代币)** | 1.7 | 深(Howey Test + 双重属性分析 + 合规回避策略) | | **FATF Travel Rule** | 3.7.1 + 4.3.4 | 非常深(分层路由架构、链级强制执行) | | **FTC消费者保护** | 3.7.1 | 深(Section 5、UDAAP、CARD Act + 冲突处理) | | **GENIUS Act(稳定币)** | 3.7.1 | 够用(使用第三方合规稳定币) | @@ -128,12 +128,12 @@ | 风险项(v3.3发现) | 解决版本 | 解决方案 | 最终状态 | |-------------------|---------|---------|---------| -| 券的双重属性(最大法律地雷) | v3.6 | 1.6券类型防火墙 + MVP仅Utility Track | **已清除** | +| 券的双重属性(最大法律地雷) | v3.6 | 1.6券类型防火墙 + Phase 1仅Utility Track | **已清除** | | P2P转移与Travel Rule矛盾 | v3.6 | 4.3.4分层合规路由 + 链级强制 | **已清除** | | OFAC筛查缺失(联邦犯罪) | v3.4 | 3.7.1 + 4.2.1双层OFAC | **已清除** | | 合约清算隐私承诺弱化 | v3.8 | 三级资产控制(提取后=技术保证) | **已清除** | | CARD Act有效期冲突 | v3.8 | 3.7.1法律意见书路径 | **已清除** | -| GNX代币证券风险 | v3.9 | 1.7 Howey Test + MVP回避 | **已清除** | +| GNX代币证券风险 | v3.9 | 1.7 Howey Test + 合规回避策略 | **已清除** | | 隐私删除权vs链上不可删除 | v3.9 | 3.7.3链上仅哈希/链下可删 | **已清除** | --- diff --git a/docs/闲券交易平台-架构开发需求.md b/docs/闲券交易平台-架构开发需求.md index 878a8bd..5530cff 100644 --- a/docs/闲券交易平台-架构开发需求.md +++ b/docs/闲券交易平台-架构开发需求.md @@ -16,7 +16,7 @@ - **区块链是基础设施,不是用户界面**:用户看到支付宝/Zelle,底层跑区块链 - **合约清算保护企业客户**:消费环节平台不介入,客户数据不经过平台 - **自建链 = 完全掌控**:Gas、性能、合规、升级全部自主可控 -- **Utility Track优先**:MVP阶段只开放消费型券,规避SEC证券合规风险 +- **Utility Track优先**:当前阶段只开放消费型券,规避SEC证券合规风险 --- @@ -209,7 +209,7 @@ | **有效期** | 强制 ≤ 12个月 | 可更长 | | **券类型标记** | CouponFactory铸造时写入,不可变 | 同上 | -> **MVP阶段只开放Utility Track。Securities Track待法律意见书和牌照后再开放。** +> **当前阶段只开放Utility Track。Securities Track待法律意见书和牌照后再开放。** ### 4.3 合约代码架构 @@ -741,7 +741,7 @@ API规范: | 阶段 | 用户规模 | 日交易量 | Genex Chain节点 | 基础设施 | |------|---------|---------|----------------|---------| -| Phase 1(MVP) | 10万 | 50万笔 | 3自有验证节点 | 单区域K8s | +| Phase 1(基础平台) | 10万 | 50万笔 | 3自有验证节点 | 单区域K8s | | Phase 2(商业化) | 100万 | 500万笔 | 5+节点 | 双区域K8s+热备 | | Phase 3(金融化) | 1,000万 | 5,000万笔 | 10+节点 | 多区域+GCFN | @@ -749,7 +749,7 @@ API规范: ## 15. 开发里程碑 -### Phase 1: 基础平台(MVP,仅Utility Track) +### Phase 1: 基础平台(仅Utility Track) - [ ] Genex Chain主网上线(Cosmos SDK + cosmos/evm) - [ ] 手机号/邮箱注册系统 + MPC托管钱包 - [ ] UX翻译层(地址映射、Gas代付、订单号映射) diff --git a/docs/闲券平台-软件开发需求.md b/docs/闲券平台-软件开发需求.md index 6e28493..ef2cd45 100644 --- a/docs/闲券平台-软件开发需求.md +++ b/docs/闲券平台-软件开发需求.md @@ -44,7 +44,7 @@ | EVM兼容 | 完全兼容(Solidity、Hardhat、MetaMask) | | 跨链 | IBC + Axelar桥 | | Gas策略 | 平台前期全额补贴,用户零Gas | -| 原生代币 | GNX(Gas + 治理,MVP阶段用户不接触) | +| 原生代币 | GNX(Gas + 治理,当前阶段用户不接触) | | 参考链 | Cronos、dYdX v4、Injective | ### 2.3 整体产品结构 @@ -225,8 +225,8 @@ ### 5.3 券的证券属性合规 - **券类型防火墙**:Utility Track(价格≤面值,不是证券)vs Securities Track(需Broker-Dealer) -- **GNX代币**:MVP阶段用户不接触,仅作链内部机制 -- **MVP策略**:Phase 1只开放Utility Track,规避SEC风险 +- **GNX代币**:当前阶段用户不接触,仅作链内部机制 +- **运营策略**:Phase 1只开放Utility Track,规避SEC风险 ### 5.4 安全事件响应 @@ -287,7 +287,7 @@ | 阶段 | 用户规模 | 日交易量 | |------|---------|---------| -| Phase 1(MVP) | 10万 | 50万笔 | +| Phase 1(基础平台) | 10万 | 50万笔 | | Phase 2 | 100万 | 500万笔 | | Phase 3 | 1,000万 | 5,000万笔 | @@ -304,7 +304,7 @@ | 阶段 | 核心目标 | |------|---------| -| **Phase 1 — MVP** | Genex Chain上线 + Utility Track消费型券 + 手机号注册 + 基础交易市场 + OFAC/Travel Rule | +| **Phase 1 — 基础平台** | Genex Chain上线 + Utility Track消费型券 + 手机号注册 + 基础交易市场 + OFAC/Travel Rule | | **Phase 2 — 体验优化** | AI定价/信用评分 + 做市商 + 完整数据看板 | | **Phase 3 — B端增强** | 批量发券 + POS SDK + 多门店管理 | | **Phase 4 — Securities Track** | 法律意见书 + Broker-Dealer + 投资型券市场 + GCFN跨境节点 | diff --git a/frontend/genex-mobile/lib/app/i18n/strings/en.dart b/frontend/genex-mobile/lib/app/i18n/strings/en.dart index 1ef93c3..a07716c 100644 --- a/frontend/genex-mobile/lib/app/i18n/strings/en.dart +++ b/frontend/genex-mobile/lib/app/i18n/strings/en.dart @@ -638,7 +638,7 @@ const Map en = { 'proMode.tradeTrack': 'Trading Track', 'proMode.utilityTrackDesc': 'Coupon validity ≤12 months, no securities license needed', 'proMode.securitiesTrackDesc': 'Long-term investment coupons (coming soon)', - 'proMode.mvpNote': 'Current MVP only supports Utility Track', + 'proMode.trackNote': 'Currently only Utility Track is available', 'proMode.comingSoon': 'Coming Soon', 'proMode.whatIsTitle': 'What is Pro Mode?', 'proMode.whatIsDesc': 'Pro Mode is for users with blockchain experience. After enabling, you can:\n' diff --git a/frontend/genex-mobile/lib/app/i18n/strings/ja.dart b/frontend/genex-mobile/lib/app/i18n/strings/ja.dart index b3f32f3..b1ea4e8 100644 --- a/frontend/genex-mobile/lib/app/i18n/strings/ja.dart +++ b/frontend/genex-mobile/lib/app/i18n/strings/ja.dart @@ -638,7 +638,7 @@ const Map ja = { 'proMode.tradeTrack': '取引トラック', 'proMode.utilityTrackDesc': 'クーポン有効期限≤12ヶ月、証券ライセンス不要', 'proMode.securitiesTrackDesc': '長期投資型クーポン商品(近日公開)', - 'proMode.mvpNote': '現在のMVP版はUtility Trackのみ対応', + 'proMode.trackNote': '現在はUtility Trackのみ対応', 'proMode.comingSoon': '近日公開', 'proMode.whatIsTitle': 'プロモードとは?', 'proMode.whatIsDesc': 'プロモードはブロックチェーン経験のあるユーザー向けです。有効化後:\n' diff --git a/frontend/genex-mobile/lib/app/i18n/strings/zh_cn.dart b/frontend/genex-mobile/lib/app/i18n/strings/zh_cn.dart index 46113c6..4920ca2 100644 --- a/frontend/genex-mobile/lib/app/i18n/strings/zh_cn.dart +++ b/frontend/genex-mobile/lib/app/i18n/strings/zh_cn.dart @@ -638,7 +638,7 @@ const Map zhCN = { 'proMode.tradeTrack': '交易轨道', 'proMode.utilityTrackDesc': '券有效期≤12个月,无需证券牌照', 'proMode.securitiesTrackDesc': '长期投资型券产品(即将推出)', - 'proMode.mvpNote': '当前MVP版本仅支持Utility Track', + 'proMode.trackNote': '当前仅支持Utility Track', 'proMode.comingSoon': '敬请期待', 'proMode.whatIsTitle': '什么是高级模式?', 'proMode.whatIsDesc': '高级模式面向有区块链经验的用户,开启后可以:\n' diff --git a/frontend/genex-mobile/lib/app/i18n/strings/zh_tw.dart b/frontend/genex-mobile/lib/app/i18n/strings/zh_tw.dart index 9f0d8ee..e060e60 100644 --- a/frontend/genex-mobile/lib/app/i18n/strings/zh_tw.dart +++ b/frontend/genex-mobile/lib/app/i18n/strings/zh_tw.dart @@ -638,7 +638,7 @@ const Map zhTW = { 'proMode.tradeTrack': '交易軌道', 'proMode.utilityTrackDesc': '券有效期≤12個月,無需證券牌照', 'proMode.securitiesTrackDesc': '長期投資型券產品(即將推出)', - 'proMode.mvpNote': '當前MVP版本僅支持Utility Track', + 'proMode.trackNote': '當前僅支持Utility Track', 'proMode.comingSoon': '敬請期待', 'proMode.whatIsTitle': '什麼是高級模式?', 'proMode.whatIsDesc': '高級模式面向有區塊鏈經驗的使用者,開啟後可以:\n' diff --git a/frontend/genex-mobile/lib/features/profile/presentation/pages/pro_mode_page.dart b/frontend/genex-mobile/lib/features/profile/presentation/pages/pro_mode_page.dart index 7d78572..fcdae17 100644 --- a/frontend/genex-mobile/lib/features/profile/presentation/pages/pro_mode_page.dart +++ b/frontend/genex-mobile/lib/features/profile/presentation/pages/pro_mode_page.dart @@ -383,7 +383,7 @@ class _ProModePageState extends State { _buildTrackOption('Securities Track', context.t('proMode.securitiesTrackDesc'), AppColors.warning, false), const SizedBox(height: 8), Text( - context.t('proMode.mvpNote'), + context.t('proMode.trackNote'), style: AppTypography.caption.copyWith(color: AppColors.textTertiary), ), ], diff --git a/frontend/mobile/lib/app/i18n/strings/en.dart b/frontend/mobile/lib/app/i18n/strings/en.dart index d6a4a0a..1dd4d59 100644 --- a/frontend/mobile/lib/app/i18n/strings/en.dart +++ b/frontend/mobile/lib/app/i18n/strings/en.dart @@ -667,7 +667,7 @@ const Map en = { 'proMode.tradeTrack': 'Trading Track', 'proMode.utilityTrackDesc': 'Coupon validity \u226412 months, no securities license needed', 'proMode.securitiesTrackDesc': 'Long-term investment coupons (coming soon)', - 'proMode.mvpNote': 'Current MVP only supports Utility Track', + 'proMode.trackNote': 'Currently only Utility Track is available', 'proMode.comingSoon': 'Coming Soon', 'proMode.whatIsTitle': 'What is Pro Mode?', 'proMode.whatIsDesc': 'Pro Mode is for users with blockchain experience. After enabling, you can:\n' diff --git a/frontend/mobile/lib/app/i18n/strings/ja.dart b/frontend/mobile/lib/app/i18n/strings/ja.dart index 5ac065e..aff90e2 100644 --- a/frontend/mobile/lib/app/i18n/strings/ja.dart +++ b/frontend/mobile/lib/app/i18n/strings/ja.dart @@ -667,7 +667,7 @@ const Map ja = { 'proMode.tradeTrack': '取引トラック', 'proMode.utilityTrackDesc': 'クーポン有効期限\u226412ヶ月、証券ライセンス不要', 'proMode.securitiesTrackDesc': '長期投資型クーポン商品(近日公開)', - 'proMode.mvpNote': '現在のMVP版はUtility Trackのみ対応', + 'proMode.trackNote': '現在はUtility Trackのみ対応', 'proMode.comingSoon': '近日公開', 'proMode.whatIsTitle': 'プロモードとは?', 'proMode.whatIsDesc': 'プロモードはブロックチェーン経験のあるユーザー向けです。有効化後:\n' diff --git a/frontend/mobile/lib/app/i18n/strings/zh_cn.dart b/frontend/mobile/lib/app/i18n/strings/zh_cn.dart index 9485224..629dd06 100644 --- a/frontend/mobile/lib/app/i18n/strings/zh_cn.dart +++ b/frontend/mobile/lib/app/i18n/strings/zh_cn.dart @@ -667,7 +667,7 @@ const Map zhCN = { 'proMode.tradeTrack': '交易轨道', 'proMode.utilityTrackDesc': '券有效期≤12个月,无需证券牌照', 'proMode.securitiesTrackDesc': '长期投资型券产品(即将推出)', - 'proMode.mvpNote': '当前MVP版本仅支持Utility Track', + 'proMode.trackNote': '当前仅支持Utility Track', 'proMode.comingSoon': '敬请期待', 'proMode.whatIsTitle': '什么是高级模式?', 'proMode.whatIsDesc': '高级模式面向有区块链经验的用户,开启后可以:\n' diff --git a/frontend/mobile/lib/app/i18n/strings/zh_tw.dart b/frontend/mobile/lib/app/i18n/strings/zh_tw.dart index c947cb8..2cee6b6 100644 --- a/frontend/mobile/lib/app/i18n/strings/zh_tw.dart +++ b/frontend/mobile/lib/app/i18n/strings/zh_tw.dart @@ -667,7 +667,7 @@ const Map zhTW = { 'proMode.tradeTrack': '交易軌道', 'proMode.utilityTrackDesc': '券有效期≤12個月,無需證券牌照', 'proMode.securitiesTrackDesc': '長期投資型券產品(即將推出)', - 'proMode.mvpNote': '當前MVP版本僅支持Utility Track', + 'proMode.trackNote': '當前僅支持Utility Track', 'proMode.comingSoon': '敬請期待', 'proMode.whatIsTitle': '什麼是高級模式?', 'proMode.whatIsDesc': '高級模式面向有區塊鏈經驗的使用者,開啟後可以:\n' diff --git a/frontend/mobile/lib/features/profile/presentation/pages/pro_mode_page.dart b/frontend/mobile/lib/features/profile/presentation/pages/pro_mode_page.dart index 0af30f3..6d96c54 100644 --- a/frontend/mobile/lib/features/profile/presentation/pages/pro_mode_page.dart +++ b/frontend/mobile/lib/features/profile/presentation/pages/pro_mode_page.dart @@ -383,7 +383,7 @@ class _ProModePageState extends State { _buildTrackOption('Securities Track', context.t('proMode.securitiesTrackDesc'), AppColors.warning, false), const SizedBox(height: 8), Text( - context.t('proMode.mvpNote'), + context.t('proMode.trackNote'), style: AppTypography.caption.copyWith(color: AppColors.textTertiary), ), ],