Magician-Web3 1.0.3 发布,支持根据 inputData 里的数据进行监控


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


相關推薦

2022-11-07

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

2022-11-19

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

2022-11-26

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

2023-04-09

What’s Changed fix: 对接 6.0+、7.0+ 版本 ES,查询日志报错 fix: 链路追踪页面 Traces 排序问题 fix: 数据上报一段时间之后出现中断 fix: 请求 ES 跳过 SSL 验证不生效 #1457 by @idcdog fix: 告警规则中附加标签变量配置不合理

2023-04-29

What’s Changed feat: 饼图支持配置是否显示指标值和设置单位、小数位数 @masterjyq feat: 监控大盘变量新增别名设置 feat: 支持机器自动分组,在 categraf config.toml 的 heartbeat url 后面加上 ?gid=x 就可以根据业务组 ID 自动分

2023-04-16

What’s Changed feat: 监控大盘 Elasticsearch 源卡片查询条件支持 sortBy 配置 refactor: 新增大盘迁移工具页面,从 ga.4 开始大盘详情页面去除了右上角全局的 Prometheus 集群切换,可通过数据源变量来实现全局切换数据源。新增的大盘

2022-11-22

Magician-Route是Magician的官方web组件,由Magician-Web发展而来的新项目,主要是去掉了里面的反射,牺牲了一点易用性,将侧重点放在了性能上,两者的区别主要在于路由和拦截器的创建方式上。 Magician-Web 依然会继续维护,如果大

2023-03-22

不止于监控,夜莺 V6 来了!今天我们郑重发布夜莺 6.0 beta 版本,全面支持 Metrics、Logging、Tracing,向着构建开源、开放、完整的可观测性解决方案迈进。您可以借助夜莺 V6,接入和管理 Prometheus、ElasticSearch、Jaeger 多种数据源,

2023-02-11

v2.9.7介绍 2.9.7是LiteFlow 2023年的第一个版本。很抱歉这个版本来的晚了一点。 2.9.7提供了1个特性,5个增强,4个Bug修复,1个开源集成特性,总计11个issue的更新。 其中版本特性为迭代器组件,弥补了循环组件之前的不足。 迭

2024-08-27

年立项开始开发 Thanos 的企业级发行版 Whizard 并于 2022 年发布了第一版,至今已发布了 8 个大小版本。自 KubeSphere Enterprise v3.3.1 基于 Whizard 发布了可对海量 K8s 集群及边缘节点进行监控告警的 Whizard 可观测中心以来,经过 KubeSpher

2024-08-15

WGCLOUD 是一款集成度较高的分布式运维监控平台,具有集群监控,易部署、易上手使用、轻量、高效、自动化等特点,server 端基于 springboot 开发,agent 端使用 go 编写。核心模块包括:主机系统信息监控,CPU 监控,CPU 温

2023-04-02

openGauss 5.0.0 版本现已正式发布。这是openGauss发布的第三个LTS版本,版本生命周期为3年。公告称,openGauss 5.0.0版本与之前的版本功能特性保持兼容,在内核能力、工具链、兼容性方面全面增强。 具体更新内容包括: 一、内核

2023-12-29

本次正式版本更新,主要是增加了视频号模块,已接入大部分接口;企业微信模块主要修复了一些问题,增加了部分实用的接口,针对官方最新文档对一些接口做了调整;小程序模块则主要增加了增加了openApi管理、发货信息管

2024-07-01

若依前后端分离版本 v3.8.8 已发布,更新日志: 菜单管理新增路由名称 新增数据脱敏过滤注解 用户密码新增非法字符验证 限制用户操作数据权限范围 代码生成新增创建表结构功能 定时任务白名单配置范围缩小