专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

以太坊web3j开发常用代码片段

  获取账户的NoncepublicstaticBigIntegergetNonce(Web3jweb3j,Stringaddr){try{EthGetTransactionCountgetNonceweb3j。ethGetTransactionCount(addr,DefaultBlockParameterName。PENDING)。send();if(getNoncenull){thrownewRuntimeException(neterror);}returngetNonce。getTransactionCount();}catch(IOExceptione){thrownewRuntimeException(neterror);}}
  获取ETH余额publicstaticBigDecimalgetBalance(Web3jweb3j,Stringaddress){try{EthGetBalanceethGetBalanceweb3j。ethGetBalance(address,DefaultBlockParameterName。LATEST)。send();returnConvert。fromWei(newBigDecimal(ethGetBalance。getBalance()),Convert。Unit。ETHER);}catch(IOExceptione){e。printStackTrace();returnnull;}}
  获取代币余额方法一publicstaticBigIntegergetTokenBalance(Web3jweb3j,StringfromAddress,StringcontractAddress){StringmethodNamebalanceOf;ListTypeinputParametersnewArrayList();ListTypeReferencelt;?outputParametersnewArrayList();AddressaddressnewAddress(fromAddress);inputParameters。add(address);TypeReferenceUint256typeReferencenewTypeReferenceUint256(){};outputParameters。add(typeReference);FunctionfunctionnewFunction(methodName,inputParameters,outputParameters);StringdataFunctionEncoder。encode(function);TransactiontransactionTransaction。createEthCallTransaction(fromAddress,contractAddress,data);EthCallethCall;BigIntegerbalanceValueBigInteger。ZERO;try{ethCallweb3j。ethCall(transaction,DefaultBlockParameterName。LATEST)。send();ListTyperesultsFunctionReturnDecoder。decode(ethCall。getValue(),function。getOutputParameters());balanceValue(BigInteger)results。get(0)。getValue();}catch(IOExceptione){e。printStackTrace();}returnbalanceValue;}
  获取代币余额方法二(仅支持主链上的代币)StringtokenBanceUrlhttps:api。etherscan。ioapi?moduleaccountactiontokenbalancecontractaddress0x5aA8D6dE8CBf23DAC734E6f904B93bD056B15b81Token合约地址address0xd4279e30e27f52ca60fac3cc9670c7b9b1eeefdc要查询额的账户余地址taglatestapikeyYourApiKeyToken;StringresultHttpRequestUtil。sendGet(tokenBanceUrl,);TokenBalanceResulttokenBalanceResultJSON。parseObject(result,TokenBalanceResult。class);System。out。println(tokenBalanceResult。toString());if(tokenBalanceResult。getStatus()1){BigDecimaltokenCountnewBigDecimal(tokenBalanceResult。getResult())。pide(newBigDecimal(10)。pow(FinalValue。TOKENDECIMALS));returntokenCount。floatValue();}构造交易构造eth交易TransactiontransactionTransaction。createEtherTransaction(fromAddr,nonce,gasPrice,null,toAddr,value);构造合约调用交易TransactiontransactionTransaction。createFunctionCallTransaction(fromAddr,nonce,gasPrice,null,contractAddr,funcABI);估算gasLimitpublicstaticBigIntegergetTransactionGasLimit(Web3jweb3j,Transactiontransaction){try{EthEstimateGasethEstimateGasweb3j。ethEstimateGas(transaction)。send();if(ethEstimateGas。hasError()){thrownewRuntimeException(ethEstimateGas。getError()。getMessage());}returnethEstimateGas。getAmountUsed();}catch(IOExceptione){thrownewRuntimeException(neterror);}}转账ETHpublicstaticStringtransferETH(Web3jweb3j,StringfromAddr,StringprivateKey,StringtoAddr,BigDecimalamount,Stringdata){获得nonceBigIntegernoncegetNonce(web3j,fromAddr);value转换BigIntegervalueConvert。toWei(amount,Convert。Unit。ETHER)。toBigInteger();构建交易TransactiontransactionTransaction。createEtherTransaction(fromAddr,nonce,gasPrice,null,toAddr,value);计算gasLimitBigIntegergasLimitgetTransactionGasLimit(web3j,transaction);查询调用者余额,检测余额是否充足BigDecimalethBalancegetBalance(web3j,fromAddr);BigDecimalbalanceConvert。toWei(ethBalance,Convert。Unit。ETHER);balanceamountgasLimit??if(balance。compareTo(amount。add(newBigDecimal(gasLimit。toString())))0){thrownewRuntimeException(余额不足,请核实);}returnsignAndSend(web3j,nonce,gasPrice,gasLimit,toAddr,value,data,chainId,privateKey);}转账代币publicstaticStringtransferToken(Web3jweb3j,StringfromAddr,StringprivateKey,StringtoAddr,StringcontractAddr,longamount){BigIntegernoncegetNonce(web3j,fromAddr);构建方法调用信息Stringmethodtransfer;构建输入参数ListTypeinputArgsnewArrayList();inputArgs。add(newAddress(toAddr));inputArgs。add(newUint256(BigDecimal。valueOf(amount)。multiply(BigDecimal。TEN。pow(18))。toBigInteger()));合约返回值容器ListTypeReferencelt;?outputArgsnewArrayList();StringfuncABIFunctionEncoder。encode(newFunction(method,inputArgs,outputArgs));TransactiontransactionTransaction。createFunctionCallTransaction(fromAddr,nonce,gasPrice,null,contractAddr,funcABI);RawTransactionrawTransactionRawTransaction。createTransaction(nonce,gasPrice,null,contractAddr,null,funcABI);BigIntegergasLimitgetTransactionGasLimit(web3j,transaction);获得余额BigDecimalethBalancegetBalance(web3j,fromAddr);BigIntegertokenBalancegetTokenBalance(web3j,fromAddr,contractAddr);BigIntegerbalanceConvert。toWei(ethBalance,Convert。Unit。ETHER)。toBigInteger();if(balance。compareTo(gasLimit)0){thrownewRuntimeException(手续费不足,请核实);}if(tokenBalance。compareTo(BigDecimal。valueOf(amount)。toBigInteger())0){thrownewRuntimeException(代币不足,请核实);}returnsignAndSend(web3j,nonce,gasPrice,gasLimit,contractAddr,BigInteger。ZERO,funcABI,chainId,privateKey);}转账代币方法二publicstaticStringtransferToken2(StringfromAddr,StringtoAddr,Stringamount){StringcontractAddress0xa22c2217e785f7796c9e8826c6be55c2e481f9f5;Web3jweb3jMyWalletUtils。getWeb3j();CredentialscredentialsMyWalletUtils。getCredentials();System。out。println(我的钱包地址:credentials。getAddress());try{EthGetTransactionCountethGetTransactionCountweb3j。ethGetTransactionCount(fromAddr,DefaultBlockParameterName。LATEST)。sendAsync()。get();BigIntegernonceethGetTransactionCount。getTransactionCount();FunctionfunctionnewFunction(transfer,Arrays。asList(newAddress(toAddr),newUint256(newBigInteger(amount))),Arrays。asList(newTypeReferenceType(){}));StringencodedFunctionFunctionEncoder。encode(function);RawTransactionrawTransactionRawTransaction。createTransaction(nonce,Convert。toWei(18,Convert。Unit。GWEI)。toBigInteger(),Convert。toWei(100000,Convert。Unit。WEI)。toBigInteger(),contractAddress,encodedFunction);byte〔〕signedMessageTransactionEncoder。signMessage(rawTransaction,credentials);StringhexValueNumeric。toHexString(signedMessage);System。out。println(transferhexValue:hexValue);EthSendTransactionethSendTransactionweb3j。ethSendRawTransaction(hexValue)。sendAsync()。get();if(ethSendTransaction。hasError()){System。out。println(transfererror:ethSendTransaction。getError()。getMessage());returnethSendTransaction。getError()。getMessage();}else{StringtransactionHashethSendTransaction。getTransactionHash();return;}}catch(Exceptione){e。printStackTrace();returne。getMessage();}}对交易签名,并发送交易publicstaticStringsignAndSend(Web3jweb3j,BigIntegernonce,BigIntegergasPrice,BigIntegergasLimit,Stringto,BigIntegervalue,Stringdata,bytechainId,StringprivateKey){StringtxHash;RawTransactionrawTransactionRawTransaction。createTransaction(nonce,gasPrice,gasLimit,to,value,data);if(privateKey。startsWith(0x)){privateKeyprivateKey。substring(2);}ECKeyPairecKeyPairECKeyPair。create(newBigInteger(privateKey,16));CredentialscredentialsCredentials。create(ecKeyPair);byte〔〕signMessage;主网是1responst测试网是3具体查看ChainIdif(chainIdChainId。NONE){signMessageTransactionEncoder。signMessage(rawTransaction,chainId,credentials);}else{signMessageTransactionEncoder。signMessage(rawTransaction,credentials);}StringsignDataNumeric。toHexString(signMessage);if(!。equals(signData)){try{EthSendTransactionsendweb3j。ethSendRawTransaction(signData)。send();txHashsend。getTransactionHash();System。out。println(JSON。toJSONString(send));}catch(IOExceptione){thrownewRuntimeException(交易异常);}}returntxHash;}获取token代理额度publicstaticBigIntegergetAllowanceBalance(Web3jweb3j,StringfromAddr,StringtoAddr,StringcontractAddress){StringmethodNameallowance;ListTypeinputParametersnewArrayList();inputParameters。add(newAddress(fromAddr));inputParameters。add(newAddress(toAddr));ListTypeReferencelt;?outputsnewArrayList();TypeReferenceUint256typeReferencenewTypeReferenceUint256(){};outputs。add(typeReference);FunctionfunctionnewFunction(methodName,inputParameters,outputs);StringdataFunctionEncoder。encode(function);TransactiontransactionTransaction。createEthCallTransaction(fromAddr,contractAddress,data);EthCallethCall;BigIntegerbalanceValueBigInteger。ZERO;try{ethCallweb3j。ethCall(transaction,DefaultBlockParameterName。LATEST)。send();ListTyperesultFunctionReturnDecoder。decode(ethCall。getValue(),function。getOutputParameters());balanceValue(BigInteger)result。get(0)。getValue();}catch(IOExceptione){e。printStackTrace();}returnbalanceValue;}

1938年的这个铝盆,太不寻常八路军武汉办事处旧址纪念馆大武汉1938陈列展览中展出了一个直径37厘米,高12厘米的铝盆,它的大小看似寻常,但它的意义却很不寻常。它有什么不寻常?这个铝盆是用日机残骸制成的。承载10月下半月尼康Z9销量登顶榜首,销量就是实力的证明CAPACAMERAWEB网站刊登了日本淀桥相机销售商2022年10月下半年镜头交换式数码相机的畅销前十名。题目是畅销的单反相机TOP10!尼康时隔8个月夺回首位数据统计的期间是2智慧零售善云运动男装服装电商小程序开发本文关键词男装时尚穿搭电商小程序智慧零售对于任何的服装零售商家,都想要做好线上与线下的经营。线下客户可以通过小程序扫码来加入商城,在线上购物。对于线上客户,也可以通过服装小程序商城华为全屋智能3。0重构智慧家居底层逻辑未来的智慧家庭是什么样子?指纹锁轻轻一按,房间门打开了。接着,客厅窗帘缓缓打开,音乐响起。热水器里的水已经提前烧好,空调开到了合适温度11月4日,华为开发者大会2022(Toget普洱茶,到底是养生还是养癌呢?实验揭开真相导语我们中国的茶叶有着几千年的文化传承,而且茶叶是我们中国自古以来的特产。中国人喜欢喝茶,而且越来越多的年轻人也都特别的喜欢喝茶。并且我国的茶叶种类是比较繁多的,有红茶,绿茶,普洱江苏女排14人大名单出炉,11名00后,主攻副攻接应二传各3人20222023女排超级联赛第一阶段的比赛正式开赛,由于疫情导致A组的比赛延期到12月初补办,B组有序进行,举办地是在江苏常州。B组的7支球队分别是江苏上海福建广东云南河南和河北。联赛杯2逆转淘汰维拉北京时间11月11日凌晨4点,202223赛季英格兰联赛杯第三轮,曼联在主场对阵阿斯顿维拉。上半场双方均无建树,下半场沃特金斯帮助维拉取得领先,马夏尔进球扳平比分,达洛特乌龙让维拉供销社,医药涨上天了早盘供销社概念,医药依然是最强势的,天禾股份一字板,中农继续板,拍大腿了,卖飞了好几十点昨天入的新华制药,上午表现还可以,下午居然跳水了,你这还是医药概念吗?其他的都涨停了,作为市安徽三个水库移民安置项目入选全国典型案例中安在线中安新闻客户端讯近日,水利部印发通知,经过发文征集地方申报技术审查专家评审等环节,全国24个水利工程移民安置项目入选水利工程移民安置高质量发展实践典型案例,并结集出版向全国7年败光170亿!被中国捧红的猛男车企,没法体面离场文金错刀频道这两年,因无力经营而退场的合资公司不在少数。长安铃木的关停,标志着铃木全线退出中国市场东风雷诺停止雷诺品牌相关业务活动,其旗下的4款国产车型也将全面停产。喊出不是所有吉深度观察日元贬值对韩国经济带来的重重危机日本印象日本时事解析日韩经济10月11日开始,日本放宽了对外国游客的所有限制,恢复了接待外国游客的赴日自由行。现在,每天已经有许多外国游客顺利进入日本各地,开启了期盼已久的日本之行
家庭英语启蒙,孩子双语混用怎么办?如何合理利用家庭资源?这是软实力英语分享的第1091篇原创英语启蒙文章。写在前面记得有一次一位宝妈问我为什么欧洲许多国家的孩子都会两国甚至是三国语言,而我们的孩子只学一门外语都这么难?这的确是一个好问题人可以不善良,但决不可以丧尽天良头条创作挑战赛可怕的疫情已在人间迷漫了三年,反反复复,没完没了。三年来,人们的生活被搅得不得安宁。整天都是慌慌不安。恐惧烦燥焦虑抱怨期盼,一天天,一年年,病魔就是不消散。多少人没有坚持这20条,5年后获益匪浅,飞速成长今天看到向上生长这本书,有句话特别打动我你做一件事,做一周没什么用,做两个月也没什么用,但是如果你能持续5年,绝对能折腾出点名堂。我们现在就要做对未来有意义的事,培养长线思维,用今沉稳应对至暗时刻方能破局而出当下正值隆冬,虽然万物皆枯,但天地正在蕴藏着无限生机。现在听到最多的词儿就是难,其实岁月静好是片刻,一地鸡毛是日常。人生不如意,十之八九,在大家都面对同样难的情况下,如何保持内心不谈一谈感同身受头条创作挑战赛感同身受感激的心情如同身受到恩惠一般。这就是感同身受。我认为这种解释不对,感同身受应该是我的感觉和你的感觉一模一样,就好像在你身上的快乐与伤痛和在我身上一样。我一个疑央视美女主持人王端端豪气爽直才华出众,另一半却是个谜王端端是央视出了名的荧幕女神,也是工作能力突出的美女主持人。如今的她已经44岁了,在央视工作也有19年了。多年来,她留给人们人们的印象,就是端庄优雅。王端端业务水平高,人长得也漂亮访谈王雁翔深情书写大时代广州的担当与情怀一个也不能少花城出版社2021年11月出版深情书写大时代广州担当与情怀长篇报告文学一个也不能少创作访谈广州广播电视台诗与远方主持人央央广州扶贫从1978年到2020年,时间跨度蛮大50人落网!山西阳城警方集群打零破毒案通过集群打零跨省缉毒,山西阳城警方成功打掉一吸贩毒团伙,抓获吸贩毒违法犯罪人员50人,缴获海洛因冰毒甲卡西酮等各类毒品200余克。2022年6月,阳城县公安局禁毒大队民警在对前期案Meta正在构建下一代框架机器学习框架PyTorch2。0每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。Meta今天宣布了其开源机器学习框架PyTorch的最新更新。据该公司称,P最新表情包分享有趣好玩的沙雕表情哈喽啊,宝子们!(周末愉快!)阿这该死的生物钟小手一叉,哼哼完全失去了动力但如果是去见你,我一定马上到!那个吵架的时候,可以不讲理叫你一声,你敢答应吗宝,我来被佛山印象影响的生活,你幸福吗?对佛山最初的印象停留在电影里,佛山黄飞鸿几乎是我对这个城市最深刻的印象。从未曾想过有一天,我的生活会与佛山这座城市息息相关,日常家居好物,居然大多数都产自这座城市。细数一下,不难发
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网