@canton-network/core-provider-dapp

中文文档
1.17.0发布于 2026/11/06Apache-2.0TypeScriptESM + CJS近 30 天下载 33.7万

CIP-0103 为web dApps提供商,覆盖Sync和Async API.

中文使用文档
文档目录10 节
  1. 安装
  2. 供应商
  3. 同步 vs 同步
  4. 使用量
  5. DappSyncProvider
  6. DappAsyncProvider
  7. 活动
  8. window.canton
  9. 相关
  10. 光谱

@ canton- network/ 核心提供者- dapp

CIP-103 (中文(简体) ) 提供者 州 dApps 的执行。扩展 @canton-network/core-splice-provider 以钱包为媒介的访问 dApp API(和代理分类账调用).

大多数应用程序应当使用 @canton-network/dapp-sdk,哪个 摘取并包装这些提供者。 新建下层时直接使用此软件包 集成或自定义发现/运输接线.

发表于 无 下级 阿帕奇2.0 (英语).

安装

npm install @canton-network/core-provider-dapp

供应商

类API 密码典型钱包运输
DappSyncProviderCIP-103 同步浏览器扩展名/ 桌面postMessage (单位:千美元)WindowTransport(中文(简体) )
DappAsyncProviderCIP-103 自动合成远程/保管网关HTTPS RPC + SSE 软件
flowchart LR
    dApp["dApp / dApp SDK"] --> Sync["DappSyncProvider"]
    dApp --> Async["DappAsyncProvider"]
    Sync -->|"postMessage"| Ext["Extension / desktop wallet"]
    Async -->|"HTTPS + SSE"| Gw["Remote wallet gateway"]
    Ext --> LAPI["JSON Ledger API"]
    Gw --> LAPI

两者都执行同样的提供方表面(request, (中文(简体) ), on, (中文(简体) ), emit, (中文(简体) ), removeListener方法 而事件类型来自生成的 OpenRPC 客户端 (单位:千美元)@canton-network/core-wallet-dapp-rpc-client 财务报告和审定财务报表 @canton-network/core-wallet-dapp-remote-rpc-client) (中文(简体) ).

同步 vs 同步

同步 ——用户交互是进程内(流行/扩展). 方法返回结果 直接说.

自动同步 ——用户互动不能阻断. 需要批准返回的方法a userUrl (或类似的)让用户完成动作;结果稍后作为事件到达 (例如 connected, (中文(简体) ), txChanged, (中文(简体) ), messageSignature) (中文(简体) ).

同步自动同步
连接准备好后返回会话可能回来 userUrl· ; connected 登录后
prepareExecute请求的完成回返 userUrl; 通过 txChanged
signMessage返回签名等待 / 签名 / 失败通过 messageSignature
活动关于窗口传输的钱包通知从网关共享 SSE 流

使用量

DappSyncProvider

默认为 a WindowTransport 有义务 window。通过自定义 RpcTransport 测试时 或者连接一个非浏览器主机.

import { DappSyncProvider } from '@canton-network/core-provider-dapp'

const provider = new DappSyncProvider()

provider.on('statusChanged', (status) => {
    console.log('connected:', status.connection.isConnected)
})

const { isConnected } = await provider.request({ method: 'isConnected' })
if (!isConnected) {
    await provider.request({ method: 'connect' })
}

const accounts = await provider.request({ method: 'listAccounts' })

DappAsyncProvider

指向远程网关基址。 可选会话符号打开 SSE 事件流 立即; 在弹出式的 IDP 认证后, 提供者会更新符号并重新连接 SSE .

import { DappAsyncProvider } from '@canton-network/core-provider-dapp'

const provider = new DappAsyncProvider('https://wallet-gateway.example.com')

provider.on('connected', (status) => {
    console.log('session ready', status)
})

provider.on('txChanged', (tx) => {
    if (tx.status === 'executed') console.log(tx.payload.updateId)
})

const connect = await provider.request({ method: 'connect' })
// If not already authenticated, open connect.userUrl for the user to log in.

活动

订阅 provider.on 编号 : provider.removeListener。有效载荷随CIP-103/ OpenRPC事件计划.

活动同步自动同步何时
statusChanged对对连接/ 会话更改
accountsChanged对对增加/取消的缔约方或主要变化
txChanged对对prepareExecute 生命周期
connected—— 说对自动登录完成 connect
messageSignature—— 说对自动同步 signMessage 生命周期

DappSyncProvider 桥接钱包所发送的通知 WindowTransport 输入 提供者倾听器地图 . DappAsyncProvider 多轴共享 EventSource 纵横 同一网关 URL + 令牌.

window.canton

此软件包会增强 Window 有可选注射提供者的:

window.canton?: Provider<DappLedgerRpc>

DappLedgerRpc 是同步 dApp RPC 映射与 Ledger 组合 ledgerApi 操作类型, 匹配一个既能讲CIP-103又能讲代理分类账的完整浏览器钱包注入.

软件包作用
@canton-network/core-splice-provider提供者接口和 AbstractProvider
@canton-network/core-provider-ledger直接 JSON LAPI 供应商( 无钱包)
@canton-network/core-rpc-transportWindowTransport, (中文(简体) ), HttpTransport,, , , , , , , ,
@canton-network/dapp-sdk高级SDK在这些供应商之上

光谱

版本与发布记录

@canton-network/core-provider-dapp 共发布 42 个版本,首次发布于 2026/03/02;过去 12 个月发布了 42 个版本。

版本发布日期距今
1.17.0latest2026/11/063 天前
1.16.02026/10/2910 天前
1.12.2-backport.3bugfix2026/10/2613 天前
1.15.02026/10/2317 天前
1.14.02026/10/1227 天前
1.12.2-backport.12026/10/031 个月前

关于 @canton-network/core-provider-dapp 的常见问题

@canton-network/core-provider-dapp 是什么?

CIP-0103 为web dApps提供商,覆盖Sync和Async API.

如何安装 @canton-network/core-provider-dapp?

在项目目录运行 npm install @canton-network/core-provider-dapp,或使用 pnpm add / yarn add / bun add。

@canton-network/core-provider-dapp 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@canton-network/core-provider-dapp 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@canton-network/core-provider-dapp 可以商用吗?

@canton-network/core-provider-dapp 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@canton-network/core-provider-dapp 的下载量有多少?

根据 npm 官方下载统计,@canton-network/core-provider-dapp 在 2026/10/09 – 2026/11/07 这 30 天内被下载 337,464 次,日均约 11,249 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@canton-network/core-provider-dapp 还在维护吗?

最新版本 1.17.0 发布于 2026/11/06(3 天前);至今共发布 42 个版本,其中过去 12 个月发布了 42 个;首次发布于 2026/03/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。