以太坊私链 利用Java 调用智能合约_contract.load 没有这个方法-程序员宅基地

技术标签: 区块链  

利用Java 发布智能合约:https://blog.csdn.net/Keith003/article/details/82744534

使用前需要将合约转换为java 代码 :https://blog.csdn.net/Keith003/article/details/81873154

如果没有搭建本地以太坊节点可以使用云客户端 infura :https://infura.io

连接以太坊网络

Web3j web3j = Web3j.build(new HttpService("以太坊节点地址"));

创建凭证

Credentials credentials = WalletUtils.loadCredentials("密码","Keystore文件地址");

获取当前gasPrice

public BigInteger getPrice(Web3j web3j) throws Exception{	
    EthGasPrice send = web3j.ethGasPrice().send();
    BigInteger gasPrice = send.getGasPrice();
    return gasPrice;
}

初始化合约

String contractAddress = "合约地址";
BigInteger gasPrice = getPrice(Web3j web3j);
BigInteger gasLimit = BigInteger.valueOf(80_000);
Contract erc20 = Contract.load(contractAddress, web3j, credentials, gasPrice, gasLimit );

注:这里GasLimit 设置为默认10KWei  ,GasPrice 获取当前链上实时的GasPrice

调用合约方法:获取账户代币数量

RemoteCall<BigInteger> balanceOf = erc20.balanceOf("以太坊账户地址");
CompletableFuture<BigInteger> sendAsync = balanceOf.sendAsync();
System.out.println(sendAsync.get());

注:合约方法提供了send 同步方法和 sendAsync 异步方法  可根据具体需要选择

调用合约转账方法

BigInteger price = BigInteger.valueOf(10_000_000);
String to = "转到的账户地址";
RemoteCall<TransactionReceipt> transfer = erc20.transfer(to , price);
CompletableFuture<TransactionReceipt> sendAsync = transfer.sendAsync();
TransactionReceipt transactionReceipt = sendAsync.get();//返回交易信息

注:这里以太坊由于手续费不同可能打包的时间会不同  这里需要注意

还有很多接口这里就不一一列举了

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/keith003/article/details/82802012

智能推荐

django基于微信小程序的学生考勤管理系统(程序+开题报告)_开发学生考勤管理app存在的代码难题和解决办法-程序员宅基地

文章浏览阅读600次,点赞13次,收藏12次。此外,系统还可以提供请假功能,方便学生在线提交请假申请,并得到及时的审批和反馈。最重要的是,基于微信小程序的学生考勤管理系统可以提供数据统计和分析功能,帮助学校领导更好地了解学生的出勤情况,为学校的管理和决策提供有力支持。通过该系统的实施,可以提高学生考勤管理的效率和准确性,减轻教师和辅导员的工作负担,促进学校管理的科学化和规范化。本研究拟解决的主要问题包括如何设计一个用户友好、易操作的学生考勤管理界面,如何实现学生、教师、辅导员和学校领导之间的信息共享和协同工作,以及如何保证考勤数据的准确性和安全性等。_开发学生考勤管理app存在的代码难题和解决办法

java/php/node.js/python教师教学质量评价系统【2024年毕设】-程序员宅基地

文章浏览阅读78次。springboot基于springboot和vue技术的视频与图集网站。springboot基于springbootvue框架的零售店记账系统。springboot基于springboot的学生宿舍管理系统。springboot基于springboot城市智能出行系统。springboot四川工商学院食堂送餐系统的研究与设计。springboot基于javaweb的校友管理系统。springboot基于协同过滤算法的音乐推荐系统。springboot基于微信小程序的社交系统。

层次Softmax相关论文整理_softmax论文-程序员宅基地

文章浏览阅读4.6k次,点赞6次,收藏5次。Softmax函数是逻辑函数的一种推广,广泛应用于神经网络的多分类问题中,然而其计算复杂度与类别大小呈线性关系,在应用于语言模型、机器翻译时会带来高额的计算量,故而不少研究尝试寻找其高效的近似方法,层次Softmax便是其中一种常用的方法,本小节中将介绍层次Softmax中的一些代表模型。1992年,Brown等人在论文《Class-based n-gram models of natural..._softmax论文

sed_find_awk_grep刷题_unix中在当前目录下所有.cc 的文件中找到含有“asiainfo”内容的文件,命令为_____-程序员宅基地

文章浏览阅读627次。填空Unix中在当前目录下所有.cc 的文件中找到含有“asiainfo”内容的文件,命令为:grep 'asiainfo' file使用AWK指定分隔符的参数是 -Fawk -F简答找出当前目录下包含127.0.0.1关键字的文件?grep '127.0.0.1' files删除/显示1.txt文件第3行到第10行的内容?sed -n '3,10p' file..._unix中在当前目录下所有.cc 的文件中找到含有“asiainfo”内容的文件,命令为_____

oracle scn 转时间,oracle SCN跟TIMESTAMP之间转换-程序员宅基地

文章浏览阅读274次。sql代码--获取当前的SCN代码如下:select dbms_flashback.get_system_change_number scn1,timestamp_to_scn(sysdate) scn2 from dual;--将SCN转换成功时间代码如下:select to_char(scn_to_timestamp(34607271),'yyyy-mm-dd hh24:mi:ss') chr..._ora-06512: 在 "sys.scn_to_timestamp", line 1

建筑与建材行业相关深度学习数据集大合集_工程施工数据集csdn-程序员宅基地

文章浏览阅读1.2k次。近期又整理了一批建筑与建材行业相关深度学习数据集,分享给大家。废话不多说,直接上干货!!_工程施工数据集csdn

随便推点

android漏洞修复工具,张源:安卓软件漏洞 修复与检测技术研究-程序员宅基地

文章浏览阅读246次。随着安卓生态系统的发展,安卓软件的安全性不容忽视。安卓软件的漏洞会导致重大的危害,例如隐私泄露、金钱丢失、钓鱼攻击等。告介绍安卓软件漏洞修复和检测的相关工作。漏洞修复是一个困难的过程,并且在漏洞被修复后经常需要花大量的时间去更新具有漏洞的软件。本次报告提出了一个基于规则进行漏洞修复的系统,可以及时的修复软件中存在的权限泄露漏洞。通过对安卓系统进行改造,告介绍如何使用规则去主动的修复具有漏洞的软件并..._有修复漏洞功能的软件安卓版

初中生学c++还是python_2020,你该学习Python还是C++-程序员宅基地

文章浏览阅读1.1k次。前面有一段时间,我学习了Python这门语言,所以到现在,总会有人问我:“你觉得Python还是C++实用?哪个更好用?”接下来的文章就想给大家介绍下两者的一些区别以及优缺点。首先不多说,先给大家说下他们俩的一些差异或者优缺点吧:Python是通用的,也是高级编程语言之一。在python中编写代码时,无需声明即可直接使用变量。在C ++中,单个程序需要在要运行代码的每个操作系统上进行编译。Pyth..._学c++还是学python

企业微信-通讯录管理-成员管理以及部门管理_企业微信 接口创建部门需要通讯录应用吗-程序员宅基地

文章浏览阅读4.8k次。企业微信-通讯录管理-成员管理以及部门管理官方文档通讯录管理的相关接口可以对企业微信里面部门、成员、标签等通讯录信息进行查询、添加、修改、删除等操作。一、开启企业微信通讯录相关权限我们使用通讯录管理的相关接口,原则上需要使用 通讯录管理的 secret,但实际上我们也可以使用企业内应用 secret。但是使用应用 secret 只能进行“查询”、“邀请”等非写操作,而且只能操作应用可见范围内的通讯录。获取通讯录管理 secret 的流程:进入企业微信管理后台,在“管理工具” — “通讯录同步_企业微信 接口创建部门需要通讯录应用吗

MFC:整数编辑框CEdit_mfc cedit 整数-程序员宅基地

文章浏览阅读786次。_mfc cedit 整数

MFC控件使用说明_mfcgetcheck-程序员宅基地

文章浏览阅读9.5k次,点赞15次,收藏77次。VC++控件工具箱:2 按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。在一个对话框中,可以定义一个默认按钮,这只要选中按钮属性中的“Default”选项。如果在对话框活动的时候按下了Enter键,则等同于单..._mfcgetcheck

MyBatis 从入门到精通:MyBatis属性名和字段名配置-程序员宅基地

文章浏览阅读816次,点赞27次,收藏7次。在使用 MyBatis 进行持久化框架开发时,经常会遇到属性名和数据库字段名不一致的情况,这时就需要进行属性名和字段名的配置。本文将深入探讨在 MyBatis 中如何解决属性名和字段名不一致的问题。通过本文的学习,读者学会了解决 MyBatis 中属性名和字段名不一致的两种方法:起别名和 resultMap。这些方法能够帮助开发者轻松解决数据库字段名和实体类属性名不一致的问题。如对本文内容有任何疑问、建议或意见,请联系作者,作者将尽力回复并改进;中,字段名和数据库字段名不一致。

推荐文章

热门文章

相关标签