文章講了什么
本文章講述了如何在合約已經(jīng)部署并且能拿到合約abi文件的情況下,用java代碼去進(jìn)行調(diào)用合約
準(zhǔn)備工作有哪些
- 已經(jīng)部署好的合約地址
- 編譯合約后生成的abi文件?
- 通過hardhat-build去編譯
- 通過remix網(wǎng)站去編譯獲取(教程可自行百度查詢)
JAVA端需要做些什么?
- 引入web3的jar包 版本用最新的就行了
<dependency> <groupId>org.web3j</groupId> <artifactId>core</artifactId> <version>${web3j.version}</version> </dependency>
- 引入web3j-maven-plugin 將編譯后得到的abi文件轉(zhuǎn)換為java所用的對象文件
<build> <plugins> <plugin> <groupId>org.web3j</groupId> <artifactId>web3j-maven-plugin</artifactId> <version>4.8.7</version> <configuration> <packageName>bandex.exchange.entity</packageName> <nativeJavaType>true</nativeJavaType> <outputFormat>java</outputFormat> <abiSourceFiles> <directory>src/main/java/bandex/exchange</directory> <includes> <include>CowbitDex.json</include> </includes> </abiSourceFiles> <outputDirectory> <java>src/main/java</java> </outputDirectory> </configuration> </plugin> </plugins> </build>
然后我們來講下上面的各個參數(shù)所對應(yīng)的含義
-
packageName 對應(yīng)的是生成文件后java文件存放的包名,就是類的包名
-
nativeJavaType 對應(yīng)的是本機(jī)類型是否是JAVA類型
-
outputFormat 對應(yīng)的是生成文件后的文件類型
-
abiSourceFiles
-
directory? 對應(yīng)的是生成java文件的所需abi的目錄
-
include? 對應(yīng)的abi的文件名
-
-
outputDirectory? 對應(yīng)的是java文件生成后存放的路徑
-
?以上做完后 就可以通過插件生成一個java文件了,這個文件就是跟合約對接的關(guān)鍵文件
如何對接合約
? ? ? ? 首先我們需要將生成的這個java類通過下面的方法進(jìn)行實例化
????????
// webUrl 參數(shù)是節(jié)點路徑 這個可以通過infura去創(chuàng)建賬號并生成自己的節(jié)點獲取路徑
// https://infura.io/ infura官網(wǎng) 如果不會的可以百度去查詢下教程
Web3j web3j = Web3j.build(new HttpService(webUrl));
// 創(chuàng)建證書 operatePrivateKey 操作合約者的私鑰 填寫了這個私鑰后 后面對合約的相關(guān)操作 產(chǎn)生的費(fèi)用都由這個地址來承擔(dān) 一般都是設(shè)置為合約的部署者
Credentials credentials = Credentials.create(operatePrivateKey);
// contractAddress 參數(shù)就是我們部署的合約地址
CowbitDex cowbitDex = CowbitDex.load(contractAddress,web3j,credentials,new DefaultGasProvider());
實例完之后 就可以直接使用cowbitDex這個類進(jìn)行調(diào)用合約了,合約所定義的方法和事件都能在這個類里面能調(diào)用到文章來源:http://www.zghlxwxcb.cn/news/detail-792426.html
結(jié)語
? ? ? ? 以上就是java對接合約的詳細(xì)過程,如果有什么問題可以在文章下留言.文章來源地址http://www.zghlxwxcb.cn/news/detail-792426.html
到了這里,關(guān)于區(qū)塊鏈-java對接web3合約的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!