Docs

Docs

  • 文档
  • github

›开始开发

概述

  • HVM简介
  • HVMD安装
  • 快速开始

HVM 智能合约

  • 合约简介
  • 合约规范
  • 内置类型
  • 注意事项

开始开发

  • 合约模板
  • 应用模板
  • 合约编译
  • SDK使用
  • FAQ

合约模板

使用模板

在HVM中,我们建议用户将合约组织为一个单独的项目,在合约编写完成后生成jar包和SDK交互,这样一方面让工程间的结构更加清晰,一方面使得合约能够在非java语言编写的SDK上使用。

为了方便用户编写合约,我们提供了maven工程的archetype来快速搭建一个合约工程项目。

创建工程

下面介绍如果使用常用开发工具Intellij IDEA和Eclipse创建合约模板工程。

Intellij IDEA

1、打开File->New->Project...->Maven

IDEA创建合约工程01

2、输入模板坐标

GroupId = cn.hyperchain
ArtifactId = java-contract-archetype
Version = 1.0.2

说明:请使用最新模板

IDEA创建合约工程02

Eclipse

1、打开File->New->Other->Maven->Maven Project

eclipse创建合约工程01

2、输入模板坐标

GroupId = cn.hyperchain
ArtifactId = java-contract-archetype
Version = 1.0.2

eclipse创建合约工程01

工程结构

根据用户的输入工程中将会自动创建对应的包结构,并存在一个示例合约SBank以及对应的交付接口。

工程结构01

下面简单介绍一下样例代码:

  • Sbank.java: 合约主体类。需要继承BaseContract父类。合约主要功能是模拟了一个银行业务,提供了存钱、取钱和转账接口。
  • ISBank.java: 交付接口类,继承了BaseContractInterface。用来交付给应用程序开发者,包含了合约拥有者想要对应用程序1(假设)暴露的接口。
  • ISBank2.java: 交付接口类,继承了BaseContractInterface。用来交付给应用程序开发者,包含了合约拥有者想要对应用程序2(假设)暴露的接口。
  • pom.xml: 用户需要根据编写的合约主体类修改pom中<main-class></main-class>属性,值应该为合约主体类的全限定类名。

无法使用模板

如果用户出于某种原因无法使用模板,则需要在自己创建的工程中添加如下依赖

<dependency>
    <groupId>cn.hyperchain</groupId>
    <artifactId>hvm-sdk</artifactId>
    <!--请使用最新版本-->
    <version>1.0.2</version>
</dependency>

此SDK中包含写合约需要用到的基础类,然后打包成对应的jar。打包参考

← 注意事项应用模板 →
  • 使用模板
    • 创建工程
    • 工程结构
  • 无法使用模板
QTechGitHub
Copyright © 2025 Hyperchain Co., Ltd.