Fairmint DAML合同
此寄存器包含 Fairmint 的 DAML 合同包并发布其生成的 JavaScript
绑定为 @fairmint/daml-js。 。 。 .
该套件包括:
- 州际支付流
- OCF 报告合同
- CIP-0112 股票债券、OTC结算和结算
- OpenCaptable-v35登记册上的TA贸易结算:转让代理的贸易服务台
(单位:千美元)
TradeSettlement-v01及其行业的持有人模板 (单位:千美元)TradeSettlementHolder-v01:条件,持有人的认可和托肯标准V2现金段) - 股权证书,按上限表、利益攸关方和股票类别键取(
EquityCertificate(中文(简体) ) - NFT API和参考合同
- 集成时使用的测试脚本助手
开封表协议合同另行公布. 安装
@fairmint/open-captable-protocol-daml-js
页:1 Fairmint.OpenCapTable 财务报告和审定财务报表 OCP_TEMPLATES;其来源在
Fairmint/open-captable-protocol-daml。 。 。 .
@fairmint/daml-js 只携带 OpenCapTable-v35 和 OpenCapTableApi-v01 的私人副本
类型 TradeSettlement-v01绑定名称(和股权证书类型)
),它被固定在OpenCapTable版本上。 那个副本不是
导出后,没有模板登录到 @daml/types,所以 OpenCapTable 模板总是解决
结束 @fairmint/open-captable-protocol-daml-js。 。 。 .
开发者文档
GitHub维基已退役(残疾). 这些枢纽是可口的.
安装
npm install @fairmint/daml-js
软件包宣布其生成的绑定值使用的DAML JavaScript运行时版本. 保留
@daml/ledger 财务报告和审定财务报表 @daml/types 兼容 npm 报告的对等依赖版本.
软件包表面
浏览器安全根入点导出命名空间包括:
import { CantonPayments, Fairmint, Nft } from '@fairmint/daml-js';
const registryTemplate = Fairmint.EquityTokens.EquityRegistry.EquityRegistry;
const paymentFactoryTemplate =
CantonPayments.PaymentStream.PaymentStreamFactory.PaymentStreamFactory;
const nftInterface = Nft.Api.V1.Nft.Nft;
准确的模块名称来自DAML源. 让类型脚本发现可用的 从已安装的软件包中复制出模板,而不是将软件包ID复制入应用程序代码.
通过稳定的JSON子路径可以获得部署的单子体ID:
import paymentStreamsFactory from '@fairmint/daml-js/paymentStreams-factory-contract-id.json';
import reportsFactory from '@fairmint/daml-js/reports-factory-contract-id.json';
检查 package.json 用于完整导出地图。 生成的软件包表面是
也由 scripts/test-imports.ts 财务报告和审定财务报表
scripts/verify-merged-lib-runtime.ts。 。 。 .
贸易服务台和持单人包
转让代理商的服务台在OpenCaptable-v35登记簿上结算次级贸易,按
ADR-041 (英语)
编辑
OCP 登记册
产品医生。 模块标题下方 TradeSettlement/, (中文(简体) ), TradeSettlementHolder/ 财务报告和审定财务报表
EquityCertificate/ 是准确的契约;形状是:
TradeSettlementHolder-v01持有持有人签署或遵守的合同(Types, (中文(简体) ),Cash, (中文(简体) ),AllocationRequest, (中文(简体) ),Seller, (中文(简体) ),Buyer),并依赖于没有 OpenCapTable 包,所以持有者兽医 没有注册 DAR 并查看注册节点.TradeSettlement-v01拿着桌子TradeDesk, (中文(简体) ),DeskChecks) (中文(简体) ).npm run check:holder-packages,哪个build财务报告和审定财务报表test先运行, 如果失败 持有者包,权益证书包或NFT包名OpenCapTable.TradeSettlement.TestPrivacy检查持有者所看到的: 执行中的合同,并在保留地的交易树上走行,结算和发放,每个登记册 节点只在办公桌节点下. 后续行动,尚未写成:这些试验的每方投影测试 daml Script 无法运行的本地网络交易, 显示没有持有者投影 一个 OpenCapTable-v35 节点(设计为 可见度 例如,在ta-service的本地网络测试中.- 办公桌由盖子表的三把钥匙(发行者、系统操作员和传输)签名
代理),并通过
TradeDeskAuthorization: 系统操作员创建,传输 代理接受,然后发行人。 授权名称是它更换的办公桌 和它失效的办公桌acceptBefore。 。 。 . ta_cash是一个转移代理方,独立于三把钥匙。 与买主是现金 腿的执行者,所以转移代理 永远不能移动现金.Acceptance_Settle买主BuyerAcceptance由发行人控制,系统 运营商、转让代理商和ta_cash一起来.TradeDesk_Settle这是唯一的代码 练习:CapTable_Settle它检查返回SettleResult字段对齐 被接受的条件, 一个不匹配 卷回股票和现金在一起.TradeDesk_Reserve使用卖方的利害相关方和阶级教育CapTable_PlaceHolds并保持持有的ID在一个TradeHoldRecord无人看见;TradeDesk_Release结束交易CapTable_CancelHolds。 。 。 .EquityCertificate以上限表、利益攸关方和股票类别键入,由相同的三个单位签名 键,由它的持有者观察,并仅通过盖子表来刻出EquityCertificateFactory。 。 。 .
单位 @fairmint/daml-js 两个贸易包的模块合并为一个 Fairmint.TradeSettlement
命名空间, 而模板 ID 则命名定义包 : #TradeSettlementHolder-v01:… 联 合 国
持有模块 #TradeSettlement-v01:… 页:1 TradeDesk。 。 。 .
仓库布局
multi-package.yaml声明活动软件包构建图.- 每个包裹
daml.yaml是当前名称、版本、 SDK 和 DAML 的真实来源 依赖性. scripts/包含代码生成,软件包验证,DAR政策和部署工具.dars/财务报告和审定财务报表dars/dars.lock保留备份的DARs及其完整性元数据.generated/财务报告和审定财务报表lib/(b) 不把它们当作: 手工保存的文件.
构建和验证
安装依赖和包列表所选择的 DAML SDK 版本 :
npm install
npx canton-dev-tools install-dpm-sdks
TradeSettlement-v01 数据依赖于两个被锁定的 OpenCapTable DARs
ocp-dars.json,读取器接口(OpenCapTableApi-v01)和寄存器
(打开Captable-v35),一个 open-captable-protocol-daml 承诺. npm run sync-ocp-dars (之前运行)
build, (中文(简体) ), test, (中文(简体) ), lint:daml 财务报告和审定财务报表 check-upgrade-compat)从该存储库取取并
验证他们的SHA -256。 相对于本地的 OpenCapTable DARs 构建, 例如, 不
已备份到仓库中, 已设置 OCP_DAR_PATH 到逗号分隔的列表。 每个都是
与针相匹配 file 是其基准名称( q)<package>-<version>.dar,作为 dpm 名称),和 a
与指针不同的散列被报告为警告.
这个 TradeSettlement-v01 DAR 嵌入了 OpenCaptable DARs, 所以上传它也会上传和审查
他们。 通过 OpenCapTable 发布 open-captable-protocol-daml 在网络上,首先,读者
接口,然后是寄存器 : npm run upload-dar 拒绝 TradeSettlement 直到那个时候
仓库有 dar-deploy/<network>/<package>/v<version> 标记两个 DAR 中的每个。 书桌
还嵌入 TradeSettlementHolder-v01 以及股票证书和NFT包,以及
upload-dar 拒绝任何嵌入此寄存器的软件包, 直到该软件包
拥有自己的 dar-deploy/<network>/<package>/v<version> 标记在这里。 先上传,然后通过
上传工作流程的运行; 拒绝按依赖顺序列出.
需要这些DARs(例如ta-service的本地网络套件)的其他寄存器从
私人活动 @fairmint/daml-dars 软件包( r)npm-dars/)在被钉住的版本中
而不是卖掉它们或克隆这个仓库。 它携带备份的DARs的
对照 dars/dars.lock。 。 。 . npm run stage:npm-dars 重新生成其
当 DAR 更改时显示 npm run check:npm-dars (CI)执行它,有一个版本的凸起.
合并一个起伏 main 通过 npm 信任的出版方式出版(publish-dars.yml) (中文(简体) ).
@fairmint/daml-js 自己仍然没有运输DARs.
正常的本地验证路径为:
npm run build
npm test
当生成绑定物或公布的npm表面受到影响时,也会运行:
npm run codegen
npm run verify-package
见 package.json 和所选脚本的专门检查源和
准确的命令界面 .