合约项目应交付什么
快速测试: 用一句非开发人员也能理解的话描述每个合约函数。如果做不到,说明规则还不够清晰。
智能合约开发将产品商定的规则转化为可在选定区块链上测试并准备发布的代码。有用的成果并非孤立的代码:而是一个实现,其预期行为、边界和交接对产品团队而言是清晰的。
当您的项目需要自定义链上逻辑时,例如代币相关合约、归属计划、质押流程或 dApp 将调用的合约函数,此服务便适用。如果合约是更广泛产品的一部分,我们可以与 Web3 开发 和 dApp 开发 协调计划,使界面和合约在输入、权限和用户操作上保持一致。
在实施之前,请准备:
- 每个用户操作及其预期结果的通俗语言描述。
- 您计划使用的区块链以及任何现有的合约或产品依赖项。
- 关于访问权限、时间安排、变更和异常情况的规则。
- 一位指定的决策者,能够解决未决的产品问题。
如果您尚无法指定某条规则,请将其标记为“未决定”,而不是让它成为隐式的工程选择。我们会将未解决的问题转化为审核清单,然后在开发开始前与您确认合约计划。
需求如何转化为经过测试的行为?
在将每个需求视为可发布之前,我们将其映射到可观察的合约行为和一项测试。这为项目团队提供了一种实用的方式来检查实现是否符合预期规则,而不是依赖于诸如“支持质押”之类的宽泛描述。
工作流程很直接:明确用户角色和允许的操作,定义预期的状态变更,识别无效或不完整的输入,然后实施并测试商定的案例。对于每个函数,验收标准应回答:有效调用做什么、谁可以发起、以及当条件不满足时应该发生什么。我们会与您的产品负责人一起审核这些标准,然后它们才成为开发的基础。
一个有用的计划区分是合约行为与产品体验。合约处理分配给它的规则;连接的应用程序可能仍需要解释状态、显示数据或引导用户完成交易。如果两者都在计划中,我们会与 dApp 开发 协调该边界。对于需要创建和部署以及自定义逻辑的代币,请将合约需求与 代币创建和部署 对齐。
您将收到一份可审核的记录,其中包含商定的行为及其对应的测试。这使得后续的产品变更更容易评估:团队可以在批准更新之前识别哪些现有规则受到影响。
您的7点合约规范检查清单
在编写任何代码之前,请写下这7项。它们将成为每项测试所依据的验收标准。将打勾的清单与您的记录一起保存,因为这是日后解释已商定内容的最快方式。
- 列出每个合约及其单一职责。
- 写明谁可以调用每个函数。
- 用精确数字定义归属和质押计划。
- 决定合约是否可以升级,以及由谁升级。
- 列出失败案例及每个案例的预期结果。
- 选择链和代币标准。
- 在发布前计划一次独立审核。
术语速览
归属:按照固定计划逐步向持有者释放代币。
可升级合约(通俗地说:一种部署后其逻辑可以被替换的合约)。
指定归属和质押规则
归属和质押合约需要明确的规则,涉及资格、时间安排、用户操作以及产品显示的结果。仅仅命名功能是不够的;合约计划应描述实现必须支持的情况以及必须拒绝的情况。
对于归属,决定谁获得分配、什么事件启动计划、如何计算释放,以及在计划设定后是否允许任何变更。确认产品应如何处理用户检查分配或请求可用释放。对于质押,定义参与者可以采取的操作、适用于进入和退出的条件,以及合约如何表示相关余额或状态。这些是需要与您的团队确认的需求,而不是我们默默选择的默认设置。
使用此准备清单:
- 确定可以创建、管理或使用每个合约函数的角色。
- 写下时间规则以及什么算作有效操作。
- 决定应如何处理和沟通异常情况。
- 将已确认的产品规则与仍在审核中的政策或代币决策分开。
如果代币供应或分配是同一发布的一部分,请与 代币创建和部署 协调计划。如果用户将通过专用的钱包体验进行交互,请尽早与 加密钱包开发 讨论连接,以便同时审核合约和界面需求。
项目包含什么
经验法则: 测试显示您考虑到了什么。独立审核显示您没考虑到什么。
项目涵盖商定的合约计划以及您的团队审核、测试和准备发布该工作所需的材料。我们在启动时确认您将收到什么,以便对完成有一个共同的定义,包括任何依赖于您的团队或外部审计师的工作。
根据批准的计划,您收到的内容可能包括:
- 合约需求和验收标准的书面摘要。
- 针对所选区块链和商定功能的自定义合约实现。
- 涵盖规划期间定义的行为和边缘情况的测试。
- 构建和发布说明,解释哪些内容已准备好审核,哪些仍待解决。
- 独立审计的协调,包括打包商定的材料并组织对审计结果的响应。
审计协调意味着帮助团队准备清晰的审核交接,并将反馈跟踪到代码变更中。这不同于代表审计已经发生或审计师已批准代码。如果您的产品需要网站或落地页来解释合约行为,技术计划可以与 Web3 网站和落地页开发 协调。
一个良好的交接让您的内部团队了解构建了什么、测试了什么以及哪些决策仍由他们做出。我们会与您的项目负责人一起审核您收到的内容,记录已接受的变更,并在工作被视为完成之前明确发布状态。
项目如何规划和审核
项目通过指定的审核点从需求推进到实施,时间安排基于已确认的计划。一个定义明确的小型合约和一个多功能的系统不需要相同的计划,因此我们首先确定要构建什么以及谁将做出决策。
在启动时,我们检查所选区块链、合约依赖项、产品规则、现有代码以及负责审批的人员。在开发过程中,我们根据商定的需求分享进展,并提出可能改变行为的问题,以免它们成为最后一刻的意外。您根据验收标准审核实施情况,我们将请求的变更作为具体项目记录下来以供确认。
时间表也考虑了外部审核(如要求)。我们在材料准备好时进行协调,将审计师的反馈与相关需求联系起来,并确认哪些变更包含在商定的计划中。您的团队应计划及时回答产品和访问问题;未解决的决策可能会阻碍实施或发布准备。
为了便于评估工作,请要求一份进度更新,将已完成项目、未决决策、测试状态和后续行动分开。MarketingExtra 使用工程师直接与客户审核验收标准和测试覆盖率的方式,因此批准产品行为的人员可以看到每项测试旨在验证什么。由此产生的交付计划在构建开始前与您确认。
发布代码前需要了解什么
谨慎的开发过程可以提高可审核性,但测试和审计协调并不能消除所有发布风险。测试只能检查它们覆盖的情况,独立审计师可能会发现问题或要求变更;部署应等待您的团队批准确切的发布版本和目标网络。
为了负责任的交接,请确认部署的版本与您的团队审核的版本一致,发布权限已明确,并且项目有负责人处理发布后的问题。保留已接受的需求、测试结果、适用的审计师反馈以及最终发布决策的记录。这些材料有助于您的团队区分已验证的工作与开发计划之外的决策或运营责任。
如果合约开发是更大构建的一部分,请将发布计划与更广泛的 Web3 开发 计划对齐,而不是将合约视为一个独立的终点。向 MarketingExtra 分享您的目标区块链、合约目的的简要描述以及任何现有的规范或代码。我们将审核材料,识别未解决的产品决策,并返回一份书面的工作计划。
发送3件事:您的产品规则、您的目标链以及您的审核时间表。
如何操作
- 分享产品规则发送预期的合约行为、目标区块链、现有代码或规范,以及任何已知的依赖项。清晰标记未解决的决策。
- 确认计划和验收标准我们与您的决策者一起审核角色、操作、异常情况以及您将收到的内容。商定的标准将确定开发和测试涵盖的范围。
- 构建并测试商定的行为工程师实施计划的合约,并根据已接受的测试用例进行检查。影响行为的问题将带回给您决策。
- 协调独立审核如果包含审计协调,我们准备商定的材料,组织反馈,并与您的团队一起跟踪请求的变更。
- 审核发布交接在批准所选网络的发布计划之前,您审核最终收到的内容、测试记录和未决项目。
常见问题
您需要哪些详细信息才能开始?
从合约的目的、目标区块链、用户角色以及每个预期操作的描述开始。如果您有现有的规范、代码或产品依赖项,也请一并提供。我们将共同识别缺失的决策,并在实施前确认验收标准。
您能编写定制的归属或质押合约吗?
可以。我们可以围绕您的产品规则规划定制的归属或质押行为,包括角色、时间安排、允许的操作和异常情况。团队必须在实施前确认这些规则;我们不会为您的项目假设默认条款。
审计是服务的一部分吗?
该服务可以包括与独立审计师的协调,例如准备商定的审核材料并将反馈组织成代码变更。审计协调不同于执行独立审计或发布审计师的批准。我们在工作开始前明确确切的审核计划。
合约工作需要多少周?
时间安排是在审核目标区块链、合约行为、依赖项以及任何请求的审计协调后确认的。计划也反映了您的团队解决产品问题和审核您收到的内容的速度。在这些输入明确后,我们会提供计划的时间表。
合约发布后可以更改吗?
可以根据商定的需求和发布计划评估变更。首先确定哪些行为必须更改、更改的原因以及请求的工作是否影响连接的产品组件。我们会与您一起审核影响,并在继续之前确认任何附加计划。
通过测试是否意味着合约没有风险?
不是。测试仅显示实现对于所覆盖情况的表现,并不排除所有可能的问题。独立审计师仍可能发现问题或要求变更,因此您的团队应审核最终代码并批准所选网络的发布决策。
告诉我们您的项目
回答四个简单问题,经理会在1小时内为您发送方案、时间表和价格范围。全程保密。
正在加载表单…