国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java掃描區(qū)塊鏈的工具包|Java掃塊|監(jiān)聽token轉(zhuǎn)賬

這篇具有很好參考價(jià)值的文章主要介紹了Java掃描區(qū)塊鏈的工具包|Java掃塊|監(jiān)聽token轉(zhuǎn)賬。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Magician-Scanning是一個(gè)用Java開發(fā)的掃描區(qū)塊鏈的工具包,當(dāng)我們?cè)诔绦蛑行枰恍┕δ軙r(shí),它可以派上用場(chǎng),比如說(shuō)。

  • 當(dāng)一個(gè)地址收到ETH時(shí),程序中的一個(gè)方法會(huì)被自動(dòng)觸發(fā),這個(gè)交易會(huì)被傳入該方法。
  • 當(dāng)一個(gè)合約的某個(gè)功能被調(diào)用時(shí)(比如ERC20轉(zhuǎn)賬),它會(huì)自動(dòng)觸發(fā)程序中的一個(gè)方法,并將這個(gè)交易傳遞給這個(gè)方法。它甚至可以只在代幣被轉(zhuǎn)移到指定地址時(shí)被觸發(fā)。
  • 當(dāng)程序需要保留一個(gè)區(qū)塊高度開始以來(lái)的所有交易記錄時(shí),也可以使用這個(gè)工具包。

一、導(dǎo)入依賴

<dependency>
    <groupId>com.github.yuyenews</groupId>
    <artifactId>Magician-Scanning</artifactId>
    <version>1.0.6</version>
</dependency>

<!-- This is the logging package, you must have it or the console will not see anything, any logging package that can bridge with slf4j is supported -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>1.7.12</version>
</dependency>

二、創(chuàng)建一個(gè)監(jiān)聽器

監(jiān)聽器可以創(chuàng)建多個(gè),根據(jù)你的需求分別設(shè)置監(jiān)聽條件

ETH(BSC, POYGAN 等)監(jiān)聽器

/**
 * 創(chuàng)建一個(gè)類,實(shí)現(xiàn) EthMonitorEvent接口 即可
 */
public class EventDemo implements EthMonitorEvent {

    /**
     * 篩選條件,如果遇到了符合條件的交易,會(huì)自動(dòng)觸發(fā) call方法
     * 這些條件都是 并且的關(guān)系,必須要同時(shí)滿足才行
     * 如果不想根據(jù)某個(gè)條件篩選,直接不給那個(gè)條件設(shè)置值就好了
     * 這個(gè)方法如果不實(shí)現(xiàn),或者返回null, 那么就代表監(jiān)聽任意交易
     */
    @Override
    public EthMonitorFilter ethMonitorFilter() {
        return EthMonitorFilter.builder()
                .setFromAddress("0x131231249813d334C58f2757037F68E2963C4crc") // 篩選 fromAddress 發(fā)送的交易
                .setToAddress("0x552115849813d334C58f2757037F68E2963C4c5e") // 篩選 toAddress 或 合約地址 收到的交易
                .setMinValue(BigInteger.valueOf(1)) // 篩選發(fā)送的主鏈幣數(shù)量 >= minValue 的交易
                .setMaxValue(BigInteger.valueOf(10)) // 篩選發(fā)送的主鏈幣數(shù)量 <= maxValue 的交易
                .setInputDataFilter( // 根據(jù)inputData篩選
                        InputDataFilter.builder()
                                .setFunctionCode(ERC20.TRANSFER.getFunctionCode()) // 函數(shù)簽名(被調(diào)用的合約內(nèi)的某方法), 支持任意函數(shù),這里的枚舉只是一部分標(biāo)準(zhǔn)的合約函數(shù)
                                .setTypeReferences( // 此方法的參數(shù)列表(僅類型)
                                        new TypeReference<Address>(){},
                                        new TypeReference<Uint256>(){}
                                )
                                .setValue("0x552115849813d334C58f2757037F68E2963C4c5e", null)// 篩選第幾個(gè)參數(shù) = 什么值
                );
    }

    /**
     * 如果遇到了符合上面條件的交易,就會(huì)觸發(fā)這個(gè)方法
     * transactionModel.getEthTransactionModel() 是一個(gè)交易對(duì)象,內(nèi)部包含hash,value,from,to 等 所有的數(shù)據(jù)
     */
    @Override
    public void call(TransactionModel transactionModel) {
        String template = "EventOne 掃描到了, hash:{0}, from:{1}, to: {2}, input: {3}";
        template = template.replace("{0}", transactionModel.getEthTransactionModel().getBlockHash());
        template = template.replace("{1}", transactionModel.getEthTransactionModel().getFrom());
        template = template.replace("{2}", transactionModel.getEthTransactionModel().getTo());
        template = template.replace("{3}", transactionModel.getEthTransactionModel().getInput());

        System.out.println(template);
    }
}

InputDataFilter 詳解
如果你想監(jiān)控,某合約內(nèi)的某函數(shù) 被調(diào)用的交易

public EthMonitorFilter ethMonitorFilter() {
        return EthMonitorFilter.builder()
                .setToAddress("0x552115849813d334C58f2757037F68E2963C4c5e") // 合約地址
                .setInputDataFilter( // 根據(jù)inputData篩選
                        InputDataFilter.builder()
                                .setFunctionCode("0xadasasdf") // 被調(diào)用的函數(shù)編碼(inputData前十位)
                );
}

如果 有一個(gè)合約[0x552115849813d334C58f2757037F68E2963C4c5e], 里面有一個(gè)函數(shù)是 transferFrom(address from, address to, uint256 amount)

你想 實(shí)現(xiàn)一個(gè)監(jiān)控:如果有人用這個(gè)合約里的這個(gè)函數(shù),將代幣轉(zhuǎn)給[0x552115849813d334C58f2757037F68E2963C4c5e]時(shí),就觸發(fā) Monitor事件,那么你可以這樣寫文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-798773.html

public EthMonitorFilter ethMonitorFilter() {
        return EthMonitorFilter.builder()
                .setToAddress("0x552115849813d334C58f2757037F68E2963C4c5e") // 合約地址
                .setInputDataFilter( // 根據(jù)inputData篩選
                        InputDataFilter.builder()
                                .setFunctionCode(ERC20.TRANSFER_FROM.getFunctionCode()) // 被調(diào)用的函數(shù)編碼(inputData前十位)
                                .setTypeReferences( // 此方法的參數(shù)列表(僅類型)
                                        new TypeReference<Address>(){}, // 第一個(gè)參數(shù)的類型
                                        new TypeReference<Address>(){}, // 第二個(gè)參數(shù)的類型
                                        new TypeReference<Uint256>(){} // 第三個(gè)參數(shù)的類型
                                )
                                .setValue(null, "0x552115849813d334C58f2757037F68E2963C4c5e", null)// 篩選第二個(gè)參數(shù)(to) = 0x552115849813d334C58f2757037F68E2963C4c5e
                );
}

三、開啟一個(gè)掃塊任務(wù)

// 初始化線程池,核心線程數(shù)必須 >= 掃塊的任務(wù)數(shù)量 + 重試策略的數(shù)量
EventThreadPool.init(1);

// 開啟一個(gè)掃塊任務(wù),如果你想掃描多個(gè)鏈,那么直接拷貝這段代碼,并修改配置即可
MagicianBlockchainScan.create()
        .setRpcUrl(
                EthRpcInit.create()
                        .addRpcUrl("https://data-seed-prebsc-1-s1.binance.org:8545")
        ) // 節(jié)點(diǎn)的RPC地址
        .setScanPeriod(5000) // 間隔多久,掃描下一個(gè)區(qū)塊
        .setBeginBlockNumber(BigInteger.valueOf(24318610)) // 從哪個(gè)塊高開始掃描
        .addEthMonitorEvent(new EventOne()) // 添加 監(jiān)聽事件
        .addEthMonitorEvent(new EventTwo()) // 添加 監(jiān)聽事件
        .addEthMonitorEvent(new EventThree()) // 添加 監(jiān)聽事件
        .start();

到了這里,關(guān)于Java掃描區(qū)塊鏈的工具包|Java掃塊|監(jiān)聽token轉(zhuǎn)賬的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JAVA深化篇_26——Apache commons-io工具包的使用

    Apache基金會(huì)介紹 Apache軟件基金會(huì)(也就是Apache Software Foundation,簡(jiǎn)稱為ASF),是專門為支持開源軟件項(xiàng)目而辦的一個(gè)非盈利性組織。在它所支持的Apache項(xiàng)目與子項(xiàng)目中,所發(fā)行的軟件產(chǎn)品都遵循Apache許可證(Apache License)。 官方網(wǎng)址為:www.apache.org 。 很多著名的Java開源項(xiàng)目

    2024年02月06日
    瀏覽(68)
  • Java智能合約工具包|Java調(diào)用智能合約|Java調(diào)用ERC20、ERC721、ERC1155合約

    Magician-ContractsTools是一個(gè)用于調(diào)用智能合約的工具包,你可以非常容易地在Java程序中調(diào)用智能合約進(jìn)行查詢和寫入操作。 有三個(gè)內(nèi)置的標(biāo)準(zhǔn)合約模板,分別是ERC20、ERC721和ERC1155,如果你需要調(diào)用這三個(gè)合約中的標(biāo)準(zhǔn)函數(shù),可以幫助你非??焖俚赝瓿晒ぷ?。除了內(nèi)置的合同模板

    2024年02月11日
    瀏覽(19)
  • 跨平臺(tái)的開源Java生成PPT文件工具包,PPTShowV1.3更新啦

    項(xiàng)目官網(wǎng):https://pptshow.cc/ 參考文檔:https://pptshow.cc/book/(GitPage制作,打不開請(qǐng)科學(xué)沖浪) 開源地址:https://github.com/qrpcode/pptshow(有幫助記得點(diǎn)star呀~) 國(guó)內(nèi)鏡像:中文版本(Gitee)? ? ?Github鏡像(Gitcode) PPTShow是一個(gè)開源的Java生成PPT文檔工具包,支持2010版PPTX新特性。

    2024年02月09日
    瀏覽(22)
  • 【面試題】JDK(工具包)、JRE(運(yùn)行環(huán)境和基礎(chǔ)庫(kù))、JVM(java虛擬機(jī))之間的關(guān)系?

    【面試題】JDK(工具包)、JRE(運(yùn)行環(huán)境和基礎(chǔ)庫(kù))、JVM(java虛擬機(jī))之間的關(guān)系?

    【面試題】JDK、JRE、JVM之間的關(guān)系? JDK (Java Development Kit):Java開發(fā)工具包,提供給Java程序員使用,包含了JRE,同時(shí)還包含了編譯器javac與自帶的調(diào)試工具Jconsole、jstack等。 JRE (Java Runtime Environment):Java運(yùn)行時(shí)環(huán)境,包含了JVM,Java基礎(chǔ)類庫(kù)。是使用Java語(yǔ)言編寫程序運(yùn)行的所需環(huán)境

    2024年02月11日
    瀏覽(33)
  • 【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包

    【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包

    ? ? ? 對(duì)于一個(gè)沒(méi)有寫過(guò)支付的小白,打開微信支付官方文檔時(shí)徹底懵逼 ,因?yàn)?微信支付文檔太過(guò)詳細(xì), 導(dǎo)致我無(wú)從下手,所以寫此文章,幫助第一次寫支付的小伙伴梳理一下。 一、流程分為三個(gè)接口:(這是前言,先看一遍,保持印象,方便理解代碼) 1、第一個(gè)接口:

    2024年02月03日
    瀏覽(31)
  • Eclipse打不開?報(bào)錯(cuò):要運(yùn)行Eclipse,必須提供Java運(yùn)行時(shí)環(huán)境(JRE)或Java開發(fā)工具包(JDK),搜索以下位置后未找到Java虛擬機(jī)。

    Eclipse打不開?報(bào)錯(cuò):要運(yùn)行Eclipse,必須提供Java運(yùn)行時(shí)環(huán)境(JRE)或Java開發(fā)工具包(JDK),搜索以下位置后未找到Java虛擬機(jī)。

    A Java Runtime Environment(JRE)or Java Development Kit(JDK)must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations:C:UsersRouRoueclipsejee-2022-06eclipseeclipsejre?binjavaw.exejavaw.exe in your current PATH 為了運(yùn)行Eclipse,必須提供Java運(yùn)行時(shí)環(huán)境(JRE)或Java開發(fā)工具包(

    2024年04月10日
    瀏覽(29)
  • 儀酷LabVIEW AI視覺(jué)工具包及開放神經(jīng)網(wǎng)絡(luò)交互工具包常見(jiàn)問(wèn)題解答

    儀酷LabVIEW AI視覺(jué)工具包及開放神經(jīng)網(wǎng)絡(luò)交互工具包常見(jiàn)問(wèn)題解答

    哈嘍,各位朋友,好久不見(jiàn)~ 之前給大家分享了基于LabVIEW開發(fā)的AI視覺(jué)工具包及開放神經(jīng)網(wǎng)絡(luò)交互工具包,不少朋友私信說(shuō)在安裝和使用過(guò)程中會(huì)遇到一些問(wèn)題,今天我們就集中回復(fù)一下大家問(wèn)到最多的問(wèn)題。如果大家在使用過(guò)程中還有其他問(wèn)題,可以補(bǔ)充到評(píng)論區(qū),我們這

    2024年02月16日
    瀏覽(23)
  • GIS工具包

    GIS工具包,根據(jù)jts工具,結(jié)合實(shí)際使用場(chǎng)景提取出來(lái)的常用工具集合;涵蓋幾何格式轉(zhuǎn)換(WKT,GeoJSON等)與geometry轉(zhuǎn)換、gis距離計(jì)算、度距離單位換算、角度計(jì)算、buffer運(yùn)算、映射截取、幾何穿串等操作 gis-tools源碼庫(kù)地址 1.1 WktTool使用說(shuō)明 wkt格式與geometry互轉(zhuǎn); wkt轉(zhuǎn)geometry操作

    2024年02月06日
    瀏覽(123)
  • 學(xué)習(xí)筆記-JVM-工具包(JVM分析工具)

    學(xué)習(xí)筆記-JVM-工具包(JVM分析工具)

    常用工具 JDK工具 ① jps: JVM Process status tool:JVM進(jìn)程狀態(tài)工具,查看進(jìn)程基本信息 ② jstat: JVM statistics monitoring tool : JVM統(tǒng)計(jì)監(jiān)控工具,查看堆,GC詳細(xì)信息 ③ jinfo:Java Configuration Info :查看配置參數(shù)信息,支持部分參數(shù)運(yùn)行時(shí)修改 ④ jmap:Java Memory Map :分析堆內(nèi)存工具,du

    2024年02月13日
    瀏覽(27)
  • MATLAB添加工具包(詳細(xì))

    MATLAB添加工具包(詳細(xì))

    我這里要添加的文件包為:DeepLearnToolbox-master 我這里的安裝目錄是:D:softwareMATLABtoolbox (1)以中文版為例,在主界面找到“設(shè)置路徑”按鈕 (2)點(diǎn)擊“設(shè)置路徑”,彈出設(shè)置界面 第一步:點(diǎn)“添加文件夾” (注:如果要工具包中有多個(gè)子文件夾,則點(diǎn)“添加并包含子文

    2024年02月02日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包