@dusk-network/networks

中文文档
0.4.0发布于 2026/11/05MPL-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 2049

Dusk为Dusk应用的网络:端点,合同,路线和标签,有Sozu的规则,DuskEVM的桥接呼叫,账号,气体,奖励估计和共享格式.

中文使用文档
文档目录8 节
  1. 安装
  2. 入境点
  3. 用这个
  4. 在运行时阅读,不是从这里读
  5. 格式
  6. 更新
  7. 释放
  8. 许可证

@ dusk-网络/网络

Dusk应用需要了解的每个Dusk网络,在一个地方:端点,合同ID,桥道,标签和接收方块列表,每个网络一个JSON文件. 它还持有应用共享的规则:索祖的金额并读取,DuskEVM桥接号的功能,账户及其密钥,气体,奖励率估计,以及金额,时间和ID如何被写入.

网页钱包,钱包扩展,探险家和桥梁使用.

安装

从 npm :

npm i @dusk-network/networks

从JSR,在哪里 @dusk/networks数字 :

npx jsr add @dusk/networks
deno add jsr:@dusk/networks

每个登记册名称下的入境点相同: @dusk-network/networks/format 时间是 @dusk/networks/format 关于JSR.

入境点

导入它给的是什么
@dusk-network/networksnetworks, (中文(简体) ), networkFor(chainId), (中文(简体) ), labelFor(net, id), (中文(简体) ), isBlocked(net, account), (中文(简体) ), blockedReason(net, account), (中文(简体) ), routes(net), (中文(简体) ), routeForAccount(net, account, direction), (中文(简体) ), bridgeLink(net, { route, to })
@dusk-network/networks/sozu索祖的收费,stDUSK和最小规则,它的气体,枢纽的争论字节,解码器, readSozuStatus 财务报告和审定财务报表 isSozuCall
@dusk-network/networks/ratesnativeRateEstimate 财务报告和审定财务报表 sozuRateEstimate作为年分数
@dusk-network/networks/duskevm给DuskEVM的桥打个电话能做什么decodeBridgeCall, (中文(简体) ), decodeWithdrawal, (中文(简体) ), duskRecipientOf, (中文(简体) ), bridgeEnvelopeOk),押金的论据(第1行)encodeDepositArgs, (中文(简体) ), depositCall合同duskEvmContracts, (中文(简体) ), isBridgeContract, (中文(简体) ), evmAddressOf),当可以要求撤回(claimFrom),是否现在可以要求(claimReadiness),游戏可以被证明为反对(isEligibleGame),合同的时钟,以及索赔日期(用字来说)
@dusk-network/networks/accountisAccount, (中文(简体) ), accountToRawKey, (中文(简体) ), rawKeyToAccount, (中文(简体) ), encodeBase58, (中文(简体) ), decodeBase58
@dusk-network/networks/gas用于公共转让、DuskEVM矿床和提款的气体withdrawalGasLimit),和相子的相声
@dusk-network/networks/formatformatTime, (中文(简体) ), formatContractId, (中文(简体) ), shortAccount, (中文(简体) ), formatEvmAddress, (中文(简体) ), aboutTime, (中文(简体) ), aboutWords, (中文(简体) ), durationWords
@dusk-network/networks/networks/<name>.jsonmainnet, (中文(简体) ), testnet 或者说 devnet 作为数据
@dusk-network/networks/schema.json档案 JSON Schema
@dusk-network/networks/fixtures/sozu-vectors.json索祖测试向量两个钱包运行

每个入境点都有 .d.ts。没有运行时间依赖关系.

用这个

  • 刻入精确的版本, 并在构建时导入 。 扩展像其它模块一样捆绑它,所以运行时没有获取任何内容.
  • 以链路 ID 来查找网络 /on/node/info (0个本地,1个主网,2个测试网,3个devnet),从未通过主机名. 一个自定义节点然后得到其网络的合同和标签.
import { labelFor, networkFor, routes } from "@dusk-network/networks";
import { formatTime } from "@dusk-network/networks/format";

const net = networkFor(info.chain_id); // null for a chain there's no file for
labelFor(net, contractId); // "Sozu relayer", or null
routes(net).filter((route) => route.running);
formatTime(blockTime); // "Today, 14:05 CET"

苏祖的读物是自己拿的 read(contractId, fnName, argBytes),因此每个应用程序都保留其多点调取器:

import { readSozuStatus, sozuStake } from "@dusk-network/networks/sozu";

const status = await readSozuStatus({ read, contracts: net.sozu, account });
sozuStake(amount, status.pool, status.fees?.deposit); // { fee, worth, stDusk, ok }

account 实值 balance_of'作为池中数据驱动器的参数将其编码;留出以读取无余额.

桩子或未取出从公共账户,按节点的天然气价格:

import { SOZU_FN, SOZU_GAS, sozuCall } from "@dusk-network/networks/sozu";

const call = sozuCall(status.contracts.pool, SOZU_FN.STAKE, amount); // { contractId, deposit, fnArgs, fnName }
const { limit, minimum } = SOZU_GAS[call.fnName]; // warn while typing under the minimum

一个 DuskEVM 撤回的索赔日期来自链条:应用程序读取其枢纽上的证明争议游戏,Portal的两个延迟和 Dusk的最新块,以及 /duskevm 确定门户网站检查索赔的日期:

import { claimFrom, claimReadiness } from "@dusk-network/networks/duskevm";

const claim = claimFrom({ provenAt, game, portal, tip }); // { at, exact, overdue }: "about" until the game resolves
claimReadiness({ claim, portalAccepts, tip }).ready; // the Portal's yes counts from the date only

给DuskEVM的桥的电话读作它所做的,只在网络的自有桥和线路上,并且同步,所以扩展的服务员可以显示:

import { bridgeEnvelopeOk, decodeBridgeCall } from "@dusk-network/networks/duskevm";

const call = decodeBridgeCall(net, { contractId, fnName, args }); // null for any other call
if (call?.kind === "deposit" && bridgeEnvelopeOk(call, { amount, deposit })) call.recipient; // the DuskEVM address
if (call?.kind === "claim") call.recipient; // { kind: "account", account } or { kind: "contract", contractId }

一个账户被检查为关键, Dusk 检查一个 /account 合同的原始形式如下:

import { accountToRawKey, isAccount } from "@dusk-network/networks/account";

isAccount(input); // false for a typo, not just for the wrong length
const raw = accountToRawKey(account); // 193 bytes, or null for anything but an account
Uint8Array.of(1, ...raw); // `Account::External`, as Sozu's stDUSK takes it

大桥采用通路,并设有接通道的"天花"接收站. bridgeLink 在网络桥没有公布地址的情况下

bridgeLink(net, { route: "migrate", to: account }); // "<bridge>/#/move/migrate?to=<account>", or null

在运行时阅读,不是从这里读

文件持有一个应用程序开始的ID 。 这些变化没有发布,所以应用程序读取他们现场:

  • 索祖的合约 背后的枢纽(hub.contract(name):监护人可以随时取出他人的名字. 档案中的"索祖ID"是回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回的回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回的回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回.
  • 索祖的收费率和开关, 从它的底部.
  • DuskEVM的争议游戏,以及门户的延迟和受人尊重的游戏类型.
  • Dusk域名的合同,通过其镜头和发行出品. 档案只写在货单上 上面是Sha256.

格式

  • Dusk合同ID是小写Hex,没有0x. EVM地址带有他们的EIP-55校验和.
  • 时事以英语为主,有当地人时钟,区名而无秒,除非被问到:"今天,14:05 CET","10月26日,09:12 CET","Wed 28 October 2026",14:05:09 CET".
  • 账户和合同ID每端被切为6个字符,EVM地址被切为0x和4,而后4则被切为".
  • 以一览("~15分","~10小时","~7天")的尺度来进行估计;持续时间为整词,到分钟("3天12小时").

更新

  1. 编辑 networks/<name>.json。 。 。 . npm run validate 检查它与计划,和 npm test 负责其他的.
  2. DuskEVM的合同来自 黄昏起源数字 : node scripts/gen-duskevm.mjs <checkout> 写他们和他们的标签。 姓名,终点,预部署和驾驶员都照原样保留.
  3. node scripts/check-chain.mjs 读取每个网络一次,通过多呼 Dusk:中枢必须取出"索祖倒背"的名称,文件中的所有其他合同都必须存在, Dusk域名表必须与其sha256相匹配. 它向链条询问一条路由是否支付其付款地址是寄出交易的账户. 它什么也没有发出.
  4. 如下释出. 应用然后撞出他们的胸针.

CI运行版本检查,计划,测试,类型检查(Cnpm run typecheck),JSR的干线运行(npm run check:jsr对每个推力的起源比较 check-chain 每个星期.

释放

  1. 将新版本设置为两个版本 package.json 财务报告和审定财务报表 jsr.json,并给出一节 CHANGELOG.md。 。 。 .
  2. 标记承诺 vX.Y.Z 并按下标签.
  3. 其余的都是出版工作流程。 它对照两个版本检查标记,运行测试,并以出处发布给JSR和npm. 后从该版本的ChangGELOG部分创建出GitHub发行并生成了笔记. 再运行一次,它会跳过一个已经拥有版本的注册.

许可证

MPL -2.0 (英语).

版本与发布记录

@dusk-network/networks 共发布 8 个版本,首次发布于 2026/10/28;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.0latest2026/11/059 天前
0.3.32026/11/049 天前
0.3.22026/11/0410 天前
0.3.12026/11/0410 天前
0.3.02026/10/3015 天前
0.2.02026/10/2916 天前

关于 @dusk-network/networks 的常见问题

@dusk-network/networks 是什么?

Dusk为Dusk应用的网络:端点,合同,路线和标签,有Sozu的规则,DuskEVM的桥接呼叫,账号,气体,奖励估计和共享格式.

如何安装 @dusk-network/networks?

在项目目录运行 npm install @dusk-network/networks,或使用 pnpm add / yarn add / bun add。

@dusk-network/networks 支持 TypeScript 吗?

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

@dusk-network/networks 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dusk-network/networks 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.10。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dusk-network/networks 可以商用吗?

@dusk-network/networks 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@dusk-network/networks 的下载量有多少?

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

@dusk-network/networks 还在维护吗?

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