Pact-Community-Organization/pact-contract-catalog

GitHub: Pact-Community-Organization/pact-contract-catalog

由 PCO 维护的 Pact 智能合约目录,提供经过审计的可复用合约模板和链上合约注册表参考。

Stars: 1 | Forks: 1

# Pact 合约目录 可复用、受信任的 Pact 智能合约,由 Pact 社区组织 (PCO) 维护,致力于实现一个使命:**让企业能够轻松、安全地开始使用智能合约进行构建。** 该目录提供了两个明确区分的产品(参见 [ADR-001](docs/adr/ADR-001-registry-library-split.md)): - **[`contracts/library/`](contracts/library/) — 库 (Library)**:由 PCO 编写的可部署模板。从这里开始。 - **[`contracts/registry/`](contracts/registry/) — 注册表 (Registry)**:一个观测站,记录已经存在于链上的合约,原封不动地进行编目以供参考。 ## 库 八个生产级模板,涵盖了大多数项目所需的基础设施。每一个都必须经过同样三道关卡:**阻塞性 CI 测试套件**、**静态分析检查**,以及**独立的对抗性安全审查**,其审查结果和修复方案都记录在条目的 `AUDIT.md` 中——包括尝试过并被成功防御的攻击。 | 模板 | 它是什么 | |---|---| | [token-fungible](contracts/library/token-fungible/) | 一个强化版的 `fungible-v2` + `fungible-xchain-v1` token:coin 模式守护强制执行、受治理的铸造、保留名称保护、跨链步骤语义。 | | [gas-station](contracts/library/gas-station/) | 防止资金被抽干的 gas 赞助:基于*实际*链上 gas(绝不使用签名者提供的数值)的边界限制和核算,以及基于用户的链上白名单。 | | [multisig-treasury](contracts/library/multisig-treasury/) | M-of-N 金库:存放在受 capability 保护的保险库中的 KDA,异步的提议/批准/执行机制,以及撤销过期批准的轮换机制。 | | [vesting](contracts/library/vesting/) | 预先托管的悬崖期 + 线性归属:受益人绝不依赖于资助者的偿付能力;撤销仅返还尚未归属的部分;治理合约没有任何资金提取路径。 | | [dao-voting](contracts/library/dao-voting/) | 带有法定人数 + 阈值的会员投票制:针对每个提案的通过标准快照,轮换机制会撤销被泄露成员尚未完成的投票。与金库模板配合使用。 | | [nft-collection-policy](contracts/library/nft-collection-policy/) | 一个 marmalade-v2 具体策略:具有规模上限的创建者权限集合和严格的一对一 NFT 不变量,并针对真实的 marmalade 账本进行了测试。 | | [oracle-feed](contracts/library/oracle-feed/) | 具有故障关闭消费机制的中位数数据/价格馈送:链上分配的时间戳、过期时间窗口、作为即时撤销手段的发布者轮换,外加一个实用的消费者模式示例。 | | [hello-world](contracts/library/hello-world/) | 最简启动模板:模块结构、治理机制和真实的测试套件。 | 所有条目目前都带有 `audit_status: self-reviewed` 标签——这是一个明确的声明,而不是凭感觉:请参阅 [审计状态阶梯](docs/CONTRACT_POLICIES.md)(§3.1),了解每个级别的确切含义以及所需的证据。本目录中没有任何内容在不指明审计者身份的情况下自称“已通过审计”。 ### 开始一个项目 1. 浏览上表或自动生成的[合约索引](docs/index.md)。 2. 将模板目录复制到你的项目中;根据需要调整 namespace、keyset 和业务规则。 3. 阅读条目的 `README.md`(用法、部署清单、已知限制)和 `AUDIT.md`(威胁模型、历史发现记录)——它们篇幅很短,专为易于阅读而编写。 4. 运行并扩展同目录下的测试套件(见下文)。 5. **在主网上线前,先在 devnet 上进行验证。** 每个条目的 README 都会提到这一点,因为这至关重要:某一类 KDA-CE bug(在 `enforce` 条件内进行表读取)在 REPL 中是不可见的。这些模板采用了节点安全的模式编写,但你所作的调整同样需要这种验证。 ### 测试 库的测试套件是**自包含的**——它们会从此仓库的注册表树中加载自身的依赖项(coin、kip 接口、marmalade)。在你的 PATH 中配置好 [Pact 5 二进制文件](https://github.com/kadena-io/pact-5) 后: ``` cd contracts/library/multisig-treasury/examples pact treasury-test.repl ``` CI 会在每个 PR 上将每个库套件作为阻塞检查运行,此外还会运行目录验证器和索引新鲜度检查。 ## 注册表 [`contracts/registry/`](contracts/registry/) 对已经存在的合约进行了编目,并按依赖层进行了分组:`kip/`(标准接口)、`core/`(预部署的链基础设施)、`marmalade/`(NFT 框架)、`ecosystem/`(经普查精选的第三方主网模块)以及 `community/`。这些是**逐字快照**——用作集成的只读参考、教育和尽职调查,而不是项目的起点。有关分层模型和普查方法,请参见 [ARCHITECTURE.md](ARCHITECTURE.md)。 ## 治理 本仓库遵循 [PCO Foundation](https://github.com/Pact-Community-Organization/foundation) 中定义的治理模型。合约策略:[docs/CONTRACT_POLICIES.md](docs/CONTRACT_POLICIES.md)。架构决策:[docs/adr/](docs/adr/)。安全披露:[SECURITY.md](SECURITY.md)。 ## 许可证 Apache-2.0 — 详见 [LICENSE](LICENSE)。
标签:Pact, Web3, 区块链, 智能合约, 模板库