Magician-Web3 1.0.3 发布啦,可以根据 inputData 里的数据 进行监控了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Joker123456789
V2EX    以太坊

Magician-Web3 1.0.3 发布啦,可以根据 inputData 里的数据 进行监控了

  •  
  •   Joker123456789 2022-11-23 16:56:34 +08:00 1637 次点击
    这是一个创建于 1119 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Magician-Web3 是一个区块链开发工具包。它由两个功能组成。一个是扫描区块链,根据开发者的需要监控交易。另一个是对 web3j 的一些二次打包,可减少开发者在一些常见场景下的工作量。它计划支持三种链,ETH ( BSC 、POLYGAN 等)、SOL 和 TRON

    本次更新的点

    1. 新增 InputDataFilter ,可以更加精准的根据 inputData 进行监控了

    2. 改变扫描模式,现在只需要设定一个起始块就好了,程序会按照一定的频率从起始块往后扫描,不再需要设置每轮扫描块数

    3. Web3j 的扩展部分,修改了私钥的传入方式

    InputDataFilter

    如果你想监控,某合约内的某函数 被调用的交易

    public EthMonitorFilter ethMonitorFilter() { return EthMonitorFilter.builder() .setToAddress("0x552115849813d334C58f2757037F68E2963C4c5e") // 合约地址 .setInputDataFilter( // 根据 inputData 筛选 InputDataFilter.create() .setFunctionCode("0xadasasdf") // 被调用的函数编码( inputData 前十位) ); } 

    如果 有一个合约 [0x552115849813d334C58f2757037F68E2963C4c5e], 里面有一个函数是 transferFrom (address from, address to, uint256 amount)

    你想 实现一个监控:如果有人用这个合约里的这个函数,将代币转给 [0x552115849813d334C58f2757037F68E2963C4c5e] 时,就触发 Monitor 事件,那么你可以这样写

    public EthMonitorFilter ethMonitorFilter() { return EthMonitorFilter.builder() .setToAddress("0x552115849813d334C58f2757037F68E2963C4c5e") // 合约地址 .setInputDataFilter( // 根据 inputData 筛选 InputDataFilter.create() .setFunctionCode(ERC20.TRANSFER_FROM.getFunctionCode()) // 被调用的函数编码( inputData 前十位) .setTypeReferences( // 此方法的参数列表(仅类型) new TypeReference<Address>(){}, // 第一个参数的类型 new TypeReference<Address>(){}, // 第二个参数的类型 new TypeReference<Uint256>(){} // 第三个参数的类型 ) .setValue(null, "0x552115849813d334C58f2757037F68E2963C4c5e", null)// 筛选第二个参数( to ) = 0x552115849813d334C58f2757037F68E2963C4c5e ); } 

    只需要设置起始块

    MagicianBlockchainScan.create() .setRpcUrl("https://data-seed-prebsc-1-s1.binance.org:8545/") .setChainType(ChainType.ETH) .setScanPeriod(5000) .setScanSize(1000) // 这个配置项已经被彻底移除了,不再需要配置了 .setBeginBlockNumber(BigInteger.valueOf(24318610)) .addEthMonitorEvent(new EventOne()) .addEthMonitorEvent(new EventTwo()) .addEthMonitorEvent(new EventThree()) .start(); 

    扫描的逻辑换成了从起始块 按照一定的频率 一块一块的往后扫,不再是以前的 每轮扫描多少块了

    Web3j 的扩展部分,修改了私钥的传入方式

    这种方式已经淘汰了

    EthHelper ethHelper = MagicianWeb3.getEthBuilder().getEth(web3j, privateKey); EthContract ethCOntract= MagicianWeb3.getEthBuilder().getEthContract(web3j, privateKey); 

    现在换成了,在调用方法时 才传入,目的是为了解决:如果有多个地址 需要发起交易,可以只用一个对象解决

    // 转账 TransactionReceipt transactiOnReceipt= ethHelper.transfer( toAddress, privateKey, // 调用方法时传入私钥 BigDecimal.valueOf(1), Convert.Unit.ETHER ); // 往合约里写入数据 SendResultModel sendResultModel = ethContract.sendRawTransaction( fromAddress, contractAddress, privateKey, // 调用方法时传入私钥 new BigInteger("1200000"), new BigInteger("800000"), ethAbiCodec.getInputData( "transfer", new Address(toAddress), new Uint256(new BigInteger("1000000000000000000")) ) ); 

    可以访问官网了解更多:https://magician-io.com

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2854 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 14:15 PVG 22:15 LAX 06:15 JFK 09:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86