隐藏页面特效

hyperchain HVM使用java编写智能合约的编译、部署流程

新建合约项目

hvm的智能合约最好新建一个maven项目,一般通过模板来创建其中参数如下:
GroupId:cn.hyperchain
ArtifactId:java-contract-archetype
Version:1.0.2
项目中分为了两个部分:合约(SBank),调用接口(ISBank)
接口是提供给应用程序使用的

合约编译

使用命令:mvn compile
mvn jar
生成jar包即可部署

合约部署

直接读取jar包部署
代码如下

DefaultHttpProvider defaultHttpProvider=new DefaultHttpProvider.Builder().setUrl(url).build(); ProviderManager providerManager = ProviderManager.createManager(defaultHttpProvider); ContractService contractService = ServiceManager.getContractService(providerManager); AccountService accountService = ServiceManager.getAccountService(providerManager); Account account = accountService.genAccount(Algo.ECRAW); InputStream inputStream1 = new BufferedInputStream(new FileInputStream("target/TrainingPlatformContract-1.0-SNAPSHOT.jar")); Transaction transaction=new Transaction.HVMBuilder(account.getAddress()) .deploy(inputStream1) .build(); transaction.sign(account); ReceiptResponse receiptResponse = contractService.deploy(transaction).send().polling(); String contractAddress = receiptResponse.getContractAddress(); System.out.println("contract address: " + contractAddress); System.out.println("帐户地址:"+account.getAddress()); System.out.println("账户私钥:" + account.getPrivateKey());

合约调用

首先每个方法需要在应用程序中编写一个InvokeBean类,举例:

public class InvokeTransfer implements BaseInvoke<Boolean, ISBank> { private String from; private String to; private int value; public InvokeTransfer(){ } public InvokeTransfer(String from,String to,int value){ this.from=from; this.to=to; this.value=value; } ... }

调用代码:

Transaction transaction1 = new Transaction.HVMBuilder(account.getAddress()).invoke(receiptResponse.getContractAddress(), new InvokeTransfer("1","2",1)).build(); transaction1.sign(account); ReceiptResponse receiptResponse1 = contractService.invoke(transaction1).send().polling(); System.out.println(receiptResponse1.getRet());

__EOF__

本文作者秋雨清笛
本文链接https://www.cnblogs.com/PanYuDi/p/14531748.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   秋雨清笛  阅读(148)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示