州-节点- sdk
用于Canton Network节点的低级TypeScript SDK(Ledger JSON API,验证器API,Scan API).
开发者文档
公众 GitHub 维基百科 是犬科指南
用于配置、API边界、外部签名、LocalNet、示例和贡献。 这个
公开 src/index.ts 定义
支持的软件包表面; 使用已安装的宣告和公开
examples/ 财务报告和审定财务报表
test/ 准确方法,请求
形状和错误行为.
安装
npm install @fairmint/canton-node-sdk
import { Canton } from '@fairmint/canton-node-sdk';
async function main(): Promise<void> {
const canton = new Canton({ network: 'localnet' });
const version = await canton.ledger.getVersion();
console.log(version);
}
main().catch((error: unknown) => {
console.error(error);
process.exitCode = 1;
});
按接口读取分类账
getActiveContracts, (中文(简体) ), subscribeToUpdates, (中文(简体) ), getUpdateById 财务报告和审定财务报表 getUpdateByOffset 接受
interfaceIds 过滤器,使用 includeInterfaceView 财务报告和审定财务报表 includeCreatedEventBlob 返回每个
合同的界面视图和创建-事件 blob. streamActiveContracts 读取大型活动
合同设定时没有将其收藏在记忆中:当物品运抵时,它会产生这些物品,施加回压
对参与者,如果连接在快照完成前关闭,则丢出。 内容
activeAtOffset 转至 subscribeToUpdates 作为 beginExclusive。见
examples/stream-active-contracts.ts。 。 。 .
阅读为每个政党
政党名单是一个过滤器:它错过的政党,如后来分配的政党,被读作没有
已存在。 构建事件格式的每个读取也都使用 anyParty: true 而不是政党名单
(单位:千美元)subscribeToUpdates, (中文(简体) ), getUpdateById, (中文(简体) ), getActiveContracts, (中文(简体) ), streamActiveContracts, (中文(简体) ),
getEventsByContractId,则 buildEventFormat 编号 : buildTransactionFormat 编号 : buildUpdateFormat
用于 getUpdateByOffset 财务报告和审定财务报表 getUpdatesPage,其任何缔约方参数为:
AnyPartyEventFormatBuilderParams 及其交易和更新变体)。 它发出
filtersForAnyParty,它涵盖每个参与者东道方,需要用户的
CanReadAsAnyParty 对; assertCanReadAsAnyParty(client) 检查一下,扔出一个
MissingUserRightError 命名用户及其拥有的权利。 拒绝类型 anyParty
合并 parties 或者说 readAs,则读数在运行时拒绝组合。 无
anyParty每一个读取都像以前一样.
对于一个档案 分类账说, getRawUpdatesPage 财务报告和审定财务报表 subscribeToRawUpdates 返回每个
页、页项或框架作为与会者发送的确切文本及其 JSON.parse 值,无
计划正常化,但如果解析会改变一个数字,则失败(例如:
JavaScript 无法精确地持有)或放下重复的密钥. 存储 text 每个页面项目或框架;
重新序列化 json 重排整数键 溪流传递出各种各样的
(交易、改派、地形交易和抵消检查站)
顺序,应用后压,以理性结束 token-refresh 在访问符到期前,以及
曝光情况 lastOffset 继续. subscribeToRawCompletions 读取一个用户的完成
同样的方式;它要求明确 userId 和一无所有 parties 列表,与 Ledger API 一样.
见
examples/read-any-party.ts。 。 。 .
通过 CIP-0103 钱包移动动作
Wallets 数字资产工具登记处文书上的持有人行动
通过任何CIP-0103(Canton dApp API)钱包提供者:列表控股,薄荷出价,转让出价
和燃烧请求; 接受薄荷提议; 预览并发送传输; 接受、拒绝或撤回
转让要约; 请求烧伤; 并创建转让预先批准(实验性). 它代表了选择
来自 DA 公共事业 API 的可注入 fetch,只与钱包交谈
通过CIP-0103(getPrimaryAccount, (中文(简体) ), ledgerApi, (中文(简体) ), prepareExecuteAndWait因此,没有钱包SDK是
参与.
它是浏览器安全:导入 @fairmint/canton-node-sdk/build/src/wallets/index.js,没有负载
sDK的节点依赖。 软件包根也作为 Wallets 名称空间.
import {
createDaUtilitiesClient,
createTokenWallet,
type Cip103Provider,
} from '@fairmint/canton-node-sdk/build/src/wallets/index.js';
async function send(provider: Cip103Provider, receiver: string): Promise<void> {
const tokens = createTokenWallet({
provider, // any connected CIP-0103 provider
registry: createDaUtilitiesClient({ network: 'devnet' }),
});
const instrumentId = { admin: 'registrar::1220...', id: 'XMPL' };
const kind = await tokens.previewTransfer({ receiver, instrumentId, amount: '10' });
await tokens.transfer({ receiver, instrumentId, amount: '10', expectedKind: kind });
}
- 写作从不重试. A 类
WalletSubmitError已经outcomerejected-by-user(CIP-0103 4001) (中文(简体) ),failed(3-2003,或钱包在接受之前被拒绝的请求)或unknown(届会) 4100/4900/4901 在提交、超时、其他任何文件时出错: 在钱包之前检查 重新报到. - 每个令牌钱包一次写一次: 开始写一次, 正在写一次被拒绝
busy在阅读之前,所以两个写作 从来没有选择相同的控股. - 控股只有在登记员签名时才算数 只有在信任时才提议和请求
登记提供商签名。 默认情况下,登记员必须是自己的提供者;对于登记员而言
由另一个供应商通行证服务
trustedProviders改为createDaUtilitiesClient任何合同 其他供应商从未被列入清单或对其采取行动. - 数量是精确的十进制( 在 Daml 内部, 最多10个位数)
Numeric 10);选择投入 决了.requirePreapproval: true仅在接收器预先批准时发送 转让,以及expectedKind拒绝自预览以来类型已改变的传输 .
仓库设置和检查
git submodule update --init --depth 1 libs/splice
git submodule update --init --recursive libs/cn-quickstart
npm install
npm run fix
npm test
npm run build
本地网络( 由 @fairmint/canton-dev-tools(中文(简体) )
本地网络生命周期和共享测试帮助者生活在
@fairmint/[email protected] (见
联合国 职责. md) (中文(简体) ).
此 SDK 不发布本地网络 CLI 或 scripts/localnet-cloud.sh。 。 。 .
npm install # installs @fairmint/canton-dev-tools as an exact-pinned devDependency
npm run localnet:start
npm run localnet:readiness # alias: localnet:smoke
npm run localnet:teardown # alias: localnet:stop
# Or call the Dev Tools CLI directly:
npx @fairmint/canton-dev-tools start
npx @fairmint/canton-dev-tools readiness
npx @fairmint/canton-dev-tools teardown
融合帮助者:
import {
buildIntegrationTestClientConfig,
getLocalnetParticipantAdminLedgerClient,
} from '@fairmint/canton-dev-tools/testing';
见 文档/包装边界.md npm 软件包所发布的内容
仅使用 CI 表面npm run check:package-artifacts) (中文(简体) ).