@gainratio/ receipt-ui (英语)
渲染并验证 Avow SignedReceipt 在反应.
您的应用程序在引擎级别上签名收据; 这可以显示用户是否
实际检查出来。 掉进一个 <ReceiptBadge> 或者说 <ReceiptPanel>把手拿过来
收据和您所信任的公用钥匙, 它在挂起并制造
四个明显、失败的状态之一:
- 正在校验.. ——验收在逃(初始,未完成).
- 已验证 —签名有效 财务报告和审定财务报表 由被绑定的密钥签名 .
- 未核实的——被篡改或无效的签名 ——核查员拒绝了.
- 未验证的—— 不信任的签名符 - 收据的钥匙不是你绑的.
只有按下被钉住的密钥的解析校正 已验证任意
其它——拒绝,错误,未绑定的密钥,或检查前时刻
返回——读取为未验证。 状态通过图标传递 财务报告和审定财务报表 文本( 从未
在ARIA内部 role="status" 生活区.
安装
pnpm add @gainratio/receipt-ui @gainratio/avow react
@gainratio/avow 财务报告和审定财务报表 react 是同伴的依附关系——应用程序提供了它们,所以
只有一个案件和一个案件 SignedReceipt 整个应用程序的类型
和这个包裹.
| 实收 | @gainratio/avow 端点 | 收到格式 |
|---|---|---|
| 0.3.x (单位:千美元) | ^0.5.2 | avow.receipt/v1 (卡车a schema 字段) |
| 0.1.x - 0.2.x (中文(简体) ) | ^0.1.0 | (从旧的 hseshadr/assay 转接) |
收据,没有 avow.receipt/v1 计划 未核实 打开
0.3.x:avow 0.5拒绝,而这个包裹永远不会推翻avow的判决.
使用
import { ReceiptPanel } from "@gainratio/receipt-ui";
// `receipt` came from your engine (avow `signPayload`); `SIGNER_KEY` is the
// hex public key you trust. `verify` is optional — it defaults to avow's own
// `verifySignature`, so omit it unless your app injects a custom verifier.
<ReceiptPanel
receipt={receipt}
expectedPublicKey={SIGNER_KEY}
renderPayload={(p) => <p>Score: {p.score}</p>}
/>;
ReceiptBadge 一样 receipt 编号 : expectedPublicKey 编号 : verify 道具
并做出一线判决; ReceiptPanel 添加信封元数据
(算法、缩短了的签名键、有效载荷散列、签名)和有效载荷体.
判决维持在 useReceiptVerification 钩子,如果你想建你的
自我介绍; StatusPill 是独立的判决芯片.
本地化
要求数
@gainratio/receipt-ui0.2.0或更新出头. 0.1.0没有labels道克——它使内置的英语字符串沉默地忽略了 对象。 在提交错误前检查您解决的版本 。 见CHANGELOG.md。 。 。 .
每个转换的字符串都可以注射:通过 a labels 对象( 类型)
ReceiptLabels改为: StatusPill, (中文(简体) ), ReceiptBadge 或者说 ReceiptPanel这是一个
深度部分 —— 省略任何保留内置的英语默认值:
<ReceiptPanel
receipt={receipt}
expectedPublicKey={SIGNER_KEY}
labels={{
status: { verified: { text: t("receipt.verified") } },
panel: { receipt: t("receipt.section"), algorithm: t("receipt.algorithm") },
}}
/>;
labels.status 覆盖每个状态的判决芯片(checking 编号 : verified 编号 :
invalid 编号 : wrong-key,每个 { text?, icon? }(三); labels.panel 覆盖
面板的元字符串( r)receipt ——"亚亚"-"标签"一款外加 algorithm, (中文(简体) ),
signerKey, (中文(简体) ), payloadHash, (中文(简体) ), signature) (中文(简体) ).
开发
这个包裹住在 hseshadr/avow
pnpm 工作空间 ts/packages/receipt-ui 和对阴道源的试验
内 ts/,而不是出版的拷贝.
pnpm --dir ts install
pnpm --dir ts build # receipt-ui imports avow from ts/dist
pnpm --dir ts/packages/receipt-ui gate # biome -> tsc strict -> vitest (+coverage) -> build
释放是标记驱动的,与avow分离 vX.Y.Z 标记: 起伏
package.json 财务报告和审定财务报表 CHANGELOG.md,合并,然后推 receipt-ui-vX.Y.Z。 。 。 .
.github/workflows/publish-receipt-ui.yml 通过信任的 npm 发布
以出处出版.
测试建立真实的 Avow 收据( 有效、 被篡改、 错误的键) 并重放 Avow 的
共享金色向量( e)testdata/vectors/receipts.json),主张
部分反映了avow自己的判断——财产而不是形状.