今天小編給大家分享一下web3j轉(zhuǎn)賬方式有哪些的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)隆林,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
web3 轉(zhuǎn)賬功能
為了完成以太坊交易,必須有幾個(gè)先決條件
1、對(duì)方的以太坊地址
2、確定要轉(zhuǎn)賬的金額
3、自己地址的轉(zhuǎn)賬權(quán)限
4、大于轉(zhuǎn)賬金額的以太幣,以太幣轉(zhuǎn)賬其實(shí)就是提出一個(gè)交易,礦工會(huì)幫你計(jì)算,計(jì)算完成即達(dá)成交易,但是礦工計(jì)算需要支付一定的費(fèi)用(GAS),支付過少,計(jì)算轉(zhuǎn)賬就有可能很慢或者不成功。
轉(zhuǎn)賬方式1:
代碼如下
1 import org.web3j.crypto.Credentials; 2 import org.web3j.crypto.RawTransaction; 3 import org.web3j.crypto.TransactionEncoder; 4 import org.web3j.protocol.Web3j; 5 import org.web3j.protocol.core.DefaultBlockParameterName; 6 import org.web3j.protocol.core.methods.response.EthGetTransactionCount; 7 import org.web3j.protocol.core.methods.response.EthSendTransaction; 8 import org.web3j.protocol.http.HttpService; 9 import org.web3j.utils.Convert; 10 import org.web3j.utils.Numeric; 11 12 import java.math.BigInteger; 13 14 15 public class TransactionTest { 16 public static void main(String[] args) throws Exception { 17 //設(shè)置需要的礦工費(fèi) 18 BigInteger GAS_PRICE = BigInteger.valueOf(22_000_000_000L); 19 BigInteger GAS_LIMIT = BigInteger.valueOf(4_300_000); 20 21 //調(diào)用的是kovan測(cè)試環(huán)境,這里使用的是infura這個(gè)客戶端 22 Web3j web3j = Web3j.build(new HttpService("https://kovan.infura.io/<your-token>")); 23 //轉(zhuǎn)賬人賬戶地址 24 String ownAddress = "0xD1c82c71cC567d63Fd53D5B91dcAC6156E5B96B3"; 25 //被轉(zhuǎn)人賬戶地址 26 String toAddress = "0x6e27727bbb9f0140024a62822f013385f4194999"; 27 //轉(zhuǎn)賬人私鑰 28 Credentials credentials = Credentials.create("xxxxxxxxxxxxx"); 29 // Credentials credentials = WalletUtils.loadCredentials( 30 // "123", 31 // "src/main/resources/UTC--2018-03-01T05-53-37.043Z--d1c82c71cc567d63fd53d5b91dcac6156e5b96b3"); 32 33 //getNonce(這里的Nonce我也不是很明白,大概是交易的筆數(shù)吧) 34 EthGetTransactionCount ethGetTransactionCount = web3j.ethGetTransactionCount( 35 ownAddress, DefaultBlockParameterName.LATEST).sendAsync().get(); 36 BigInteger nonce = ethGetTransactionCount.getTransactionCount(); 37 38 //創(chuàng)建交易,這里是轉(zhuǎn)0.5個(gè)以太幣 39 BigInteger value = Convert.toWei("0.5", Convert.Unit.ETHER).toBigInteger(); 40 RawTransaction rawTransaction = RawTransaction.createEtherTransaction( 41 nonce, GAS_PRICE, GAS_LIMIT, toAddress, value); 42 43 //簽名Transaction,這里要對(duì)交易做簽名 44 byte[] signedMessage = TransactionEncoder.signMessage(rawTransaction, credentials); 45 String hexValue = Numeric.toHexString(signedMessage); 46 47 //發(fā)送交易 48 EthSendTransaction ethSendTransaction = 49 web3j.ethSendRawTransaction(hexValue).sendAsync().get(); 50 String transactionHash = ethSendTransaction.getTransactionHash(); 51 52 //獲得到transactionHash后就可以到以太坊的網(wǎng)站上查詢這筆交易的狀態(tài)了 53 System.out.println(transactionHash); 54 } 55 }
注意:
以上交易代碼是離線交易,先組裝交易,然后發(fā)送到鏈上,web3j提供在線交易,但是這種交易需要parity錢包,將完整的區(qū)塊鏈錢包下載下來,然后綁定賬戶進(jìn)去。
1、第27-31行,可以用兩種方式獲得地址的信任憑證,一種是直接使用私鑰,一種是使用keystore文件
2、https://kovan.etherscan.io/tx/0x88cb6e625b57cadd6d7f71872433c2e638014fca30e47c649f2831db79b54304
這個(gè)地址是可以查到你的這筆交易的
0x88cb6e625b57cadd6d7f71872433c2e638014fca30e47c649f2831db79b54304是transactionHash
這個(gè)地址是測(cè)試地址,如果需要查詢主網(wǎng)上的,刪除kovan
轉(zhuǎn)賬方式2:
import org.web3j.crypto.Credentials; import org.web3j.protocol.Web3j; import org.web3j.protocol.core.methods.response.TransactionReceipt; import org.web3j.protocol.http.HttpService; import org.web3j.tx.Transfer; import org.web3j.utils.Convert; import java.math.BigDecimal; public class TransactionTest2 { public static void main(String[] args) throws Exception { Web3j web3j = Web3j.build(new HttpService("https://kovan.infura.io/<your-token>")); String ownAddress = "0xD1c82c71cC567d63Fd53D5B91dcAC6156E5B96B3"; String toAddress = "0x6e27727bbb9f0140024a62822f013385f4194999"; Credentials credentials = Credentials.create("xxxxxxxx"); TransactionReceipt transactionReceipt = Transfer.sendFunds( web3j, credentials, toAddress, BigDecimal.valueOf(0.2), Convert.Unit.ETHER).send(); System.out.println(transactionReceipt.getTransactionHash()); } }
注意
這種也是離線的,但是代碼量比較小。
備注:
如果在kovan環(huán)境中沒有以太幣的話,可以到https://gitter.im/kovan-testnet/faucet這里去要,直接注冊(cè)賬號(hào)之后,把你的賬號(hào)地址發(fā)到群里就行了,過幾分鐘就會(huì)給你轉(zhuǎn)錢的,主網(wǎng)的賬號(hào)地址和kovan是一樣的,但是里面的幣是不一樣的。
以上就是“web3j轉(zhuǎn)賬方式有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:web3j轉(zhuǎn)賬方式有哪些
文章網(wǎng)址:http://m.rwnh.cn/article20/jehojo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站營銷、微信公眾號(hào)、面包屑導(dǎo)航、搜索引擎優(yōu)化、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)