5.4.0
首次公开发布公共网站上线:包含完整明细的费用引擎、具有真实限额的支付通道目录、基于通道的URL架构,以及使所有内容可核查的透明度页面。本日志从真实的发布日期开始记录。
已添加(21)
src/lib/pricing.ts
费用引擎,包含完整明细。网络成本在转换前以资产实物形式收取,然后我们的利润和通道费用各占一行。每次报价时,会计不变量检查毛额减去各行之和是否恰好等于净额,精确到最小单位:如果不等,我们会提出并拒绝报价,而不是让隐藏利润通过。
src/lib/pricing.ts
点差政策已发布并由代码强制执行:基础90个基点,波动性资产加35个基点,测试版通道加25个基点,三个交易量等级分别减15、30或45个基点。我们这边不存在其他费用。
src/lib/pricing.ts
反向输入:您可以输入想要收到的金额,所需存款通过二分搜索解析。固定费用使函数非线性——代数求逆每次都会差几分钱。
src/lib/money.ts
每笔金额都以最小单位的整数(bigint)传输,每个汇率都以Decimal表示。没有金额经过JavaScript浮点数,其中0.1 + 0.2不等于0.3。
src/lib/rates.ts
每次确定报价前都会检查汇率新鲜度。超过源允许的最大年龄后,引擎会引发过期汇率错误并拒绝报价。从缓存提供过期价格在这里被视为财务错误,而非性能问题。
src/app/api/quote/route.ts
公共报价端点。经过模式验证的输入,无存储响应,完整的逐行明细,包括中间市场汇率、有效汇率和总基点差距。通道限额违规在响应正文中返回,而非HTTP错误,并附有确切限额。
src/data/payout-rails.ts
支付方式目录,每种方式包含结算货币、服务国家、p50和p95延迟、工作日和截止时间规则、最小和最大金额(以最小单位计)、真实费用和受益人字段模式。
src/data/corridors.ts
基于通道的URL架构。多国通道为每种资产生成单个页面:SEPA在法国和比利时相同,两个页面会重复相同内容。本地通道——PIX、SPEI、M-Pesa、NIP、Interac——为每个国家生成一个页面,因为国家承载标识符格式、限额和税务处理。约2,200种组合的原始矩阵减少一个数量级,每个保留的页面只包含其独有的信息。
src/data/corridors.ts
发布批次和索引门控。只有在其批次内容实际编写完成后,通道才提供索引;其他通道保持可访问和功能正常,但不在索引中。我们不会要求搜索引擎索引尚未编写的页面。
src/data/assets.ts
资产目录,包含基础单位小数、接受的网络、低于该金额网络费用会吞噬操作的最低存款,以及汇率锁定持续时间——稳定币比波动性资产更长。
src/data/networks.ts
网络目录,包含所需确认数、平均区块时间、地址验证模式,以及对于XRP、Stellar和TON,缺少备注字段会导致资金丢失的备注字段。
src/data/geo.ts
地理参考数据:开放国家、准备中的国家和被拒绝的国家及原因——国际制裁、限制性措施或不可接受的洗钱风险。原因按国家公布。
src/config/company.ts
关于公司事实声明的单一注册表。法定名称、注册、成立年份、监管状态、交易量、评论:每个值要么填写,要么标记为待定——待定值从不显示。网站只能断言从其自身数据计算的内容。
src/components/JsonLd.tsx
结构化数据省略所有未填写的字段。在真实之前,不向搜索引擎声明成立日期、许可证号或综合评分。
src/i18n/routing.ts
每种语言都有区域前缀,包括法语。在“/”和“/fr/”提供相同页面总是导致重复;对称性消除了hreflang和canonical标签中的每个特殊情况。
src/app/[locale]/statut
服务状态页面:每个支付通道和受监控网络一个组件,探针将检查的内容的准确描述、严重性策略和事件报告模板。在测量之前,不显示可用性百分比。
src/app/[locale]/docs
公共API文档:身份验证、分页、幂等性、错误目录和签名webhooks。示例响应是报价端点的真实响应,而非模拟。
src/app/[locale]/reclamations
书面投诉程序:投诉与支持请求的区别、三个升级级别、我们遵守的时限,以及如果答复不满意会发生什么。
src/app/[locale]/presse
媒体资料包:从代码生成的可下载徽标、具有精确值的调色板、可直接引用的简短和详细描述。由于没有可引用的报道,未列出新闻覆盖。
src/app/[locale]/affiliation
联盟计划基于实际收取的利润支付,而非总交易量:合作伙伴不会因推动客户成本更高的通道而获益。
src/app/[locale]/plan-du-site
从数据生成的站点地图,带有即时搜索过滤器。每个已发布的页面都出现在那里:如果页面存在但缺少于此地图,那是一个缺陷。
安全(3)
src/lib/rates.ts
生产保护:开发中使用的确定性汇率源无法在生产环境中启动。进程拒绝启动,而不是提供冻结价格。
src/middleware.ts
在任何渲染前进行地理拒绝,并明确返回HTTP 451而非404:当我们拒绝时,我们会说明原因。拒绝在订单创建时在服务器端重新检查,因为仅IP地址不能证明任何事。
next.config.ts
每个响应上的安全标头:HSTS with preload、禁止框架、阻止MIME嗅探、限制引用者策略、跨源隔离,以及关闭麦克风、地理位置和支付权限。
政策(5)
src/data/payout-rails.ts
收款通道——iDEAL、Bizum、BLIK、TWINT、Satispay、MB WAY、QRIS——被声明为不可用并附有原因,而不是隐藏。它们允许您向商家付款,而非接收资金;每种都指向我们使用的替代通道。
src/data/payout-rails.ts
Zelle被标记为永久不可用:其规则合同禁止第三方商业支付。没有提供商可以合规地通过它为我们推送资金,说明这一点比让人们抱有希望要好。
src/data/payout-rails.ts
已构建但关闭的通道带有其确切的监管原因:UPI的TDS预扣和FIU-IND注册,PayNow的MAS许可证,南非的SARB报告,PayID的AUSTRAC注册,PromptPay的持牌合作伙伴。我们宁愿指出障碍,也不愿宣布日期。
src/data/assets.ts
Monero在目录中,标记为增强匿名性资产,但不提供。欧洲反洗钱法规要求提供商从2027年7月10日起将其下架;我们展示并解释,而不是让它悄悄消失。
docs/CONVENTIONS.md
可执行的编辑规则:任何页面中不得硬编码成立年份、牌照号码、处理量、客户数量、客户评价或合作伙伴标识。成熟度必须来自内容的深度,而非虚构的证据。