【技术实现步骤摘要】
生成智能合约文件的合约接口类的方法及装置
[0001]本说明书一个或多个实施例涉及区块链
,尤其涉及生成智能合约文件的合约接口类的方法及装置。
技术介绍
[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。其中区块链2.0时代中出现了智能合约,将区块链的应用范围提升到了一个新高度。有了智能合约,区块链能做的不再是单一的转账交易,还可以通过调用由用户自定义的代码实现用户期望实现的预定事务。
[0003]希望有一种新的方案,以期能够更加高效的构建智能合约的合约文件。
技术实现思路
[0004]本说明书一个或多个实施例中提供了一种生成智能合约文件的合约接口类的方法及装置。
[0005]第一方面,提供了一种生成智能合约文件的合约接口类的方法,包括:获取由用户编写的合约代码作为智能合约的合约实现类;获取合约描述信息,所述合约描述信息中至少描述了 ...
【技术保护点】
【技术特征摘要】
1.一种生成智能合约文件的合约接口类的方法,包括:获取由用户编写的合约代码作为智能合约的合约实现类;获取合约描述信息,所述合约描述信息中至少描述了用户定义的输入参数和输出参数;根据所述合约描述信息和所述合约实现类生成接口代码,并利用所述接口代码生成合约接口类,其中所述接口代码至少包括第一解码代码、合约调用代码和第一编码代码,所述第一解码代码用于对来自智能合约外部的输入数据进行解码以获得所述输入参数对应的输入参数值,所述合约调用代码用于调用所述合约实现类,获得与所述输出参数对应的输出参数值,所述第一编码代码用于对所述输出参数值进行编码,获得向智能合约外部提供的输出数据;所述合约接口类和所述合约实现类被用来构建所述智能合约的合约文件。2.根据权利要求1所述的方法,其中,所述合约描述信息中还定义了所述输入数据对应的结构体,用于指示所述输入数据对应的若干字段名称和数据类型;所述输入参数值中包括基于所述结构体从所述输入数据中获得的若干第一业务数据。3.根据权利要求1所述的方法,其中,所述合约描述信息中还定义了数据交换格式;所述根据所述合约描述信息和所述合约实现类生成接口代码,具体包括:根据所述输入参数和所述合约实现类生成合约调用代码;以及,根据所述数据交换格式从预设的代码模板集中确定编码代码模板和解码代码模板;根据所述输入参数实例化所述解码代码模板以获得所述第一解码代码,以及根据所述输出参数实例化所述编码代码模板以获得所述第一编码代码。4.根据权利要求1所述的方法,其中,还包括:根据所述合约描述信息从预设的合约工程模板集中确定目标合约工程模板;所述利用所述接口代码生成合约接口类,具体包括:利用所述第一编码代码、所述合约调用代码和所述第一解码代码实例化所述目标合约工程模板,获得所述合约接口类。5.根据权利要求1所述的方法,其中,所述合约描述信息中还定义了接口权限,用于指示被允许或禁止调用所述智能合约的第一账户;所述第一解码代码还用于对所述输入数据进行解码以获得请求调用所述智能合约的第二账户;所述接口代码还包括基于所述第一账户生成的权限校验代码,用于确定所述第二账户是否具有调用所述智能合约的权限;所述利用所述接口代码生成合约接口类,具体包括:利用所述权限校验代码、所述第一解码代码、所述合约调用代码和所述第一编码代码生成合约接口类。6.根据权利要求1所述的方法,其中,所述合约描述信息中还定义了事件日志的数据结构;所述第一解码代码还用于对所述输入数据进行解码以获得若干第二业务数据;所述接口代码还包括基于所述数据结构生成的日志代码,用于根据所述若干第二业务数据生成事件日志;所述利用所述接口代码生成合约接口类,具体包括:利用所述日志代码、所述第一解码代码、所述合约调用代码和所述第一编码代码生成合约接口类。7.根据权利要求1
‑
6中任一项所述的方法,其中,所述合约描述信息中还定义了所述合约接口类的接口名称;所述方法还包括:根据所述合约描述信息生成访问代码,并利用所述访问代码生成合约访问类,所述访问代码包括第二编码代码、接口调用代码和第二解码代码,所述第二编码代码用于将由外部输入所述合约访问类的所述输入参数值编码为所述输
入数据,所述接口调用代码用于基于所述接口名称调用所述合约接口类,所述第二解码代码用于对所述输出数据进行解码以获得所述输出参数值。8.一种生成智能合约文件的合约接口类的装置,包括:代码获取单元,配置为获取由用户编写的合约代码作为智能合约的合约实现类;信息获取单元,配置为获取合约描述信息,所述合约描述信息中...
【专利技术属性】
技术研发人员:邱鸿霖,李炎培,
申请(专利权)人:蚂蚁区块链科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。