#css-selectors #decoding #wallet #decode #calldata #abi #abi-encoded

bin+lib wallet-utils

一个基于方法选择器的解码 ABI 编码钱包 calldata 的 Rust 包

1 个不稳定版本

新版本 0.1.0 2024 年 8 月 25 日

#46 in 魔法豆

Download history 146/week @ 2024-08-19

每月下载量:146

MIT 许可证

14KB
58 代码行

钱包工具集

钱包工具集 是一个为基于以太坊函数选择器的 ABI 编码数据解码设计的 Rust 库。它允许您通过将 calldata 与存储在 JSON 文件中的已知函数选择器匹配来动态解码 calldata。

功能

  • 动态 ABI 解码:根据 JSON 文件中提供的函数选择器解码 calldata。
  • 支持多种格式:处理 JSON 文件中定义的简单和批处理类型。(目前仅支持 simpleWallet)
  • 易于集成:可以无缝集成到其他 Rust 项目中。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
wallet-utils = "0.1.0"

用法


use std::error::Error;
use wallet_utils::decode_calldata;

fn main() -> Result<(), Box<dyn Error>> {
let calldata = "b61d27f6000000000000000000000000b382daf7230b73f71a766c96707cf9ec6316b360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000144e555c489000000000000000000000000efb80041d435d26d397bba4d4138b8232ea82d5400000000000000000000000081cc3c9c23ba6ce4dcf10b116079710f15336fd30000000000000000000000000000000000000000000035c900000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009581cc3c9c23ba6ce4dcf10b116079710f15336fd30000000000000000000000000000000000000000000000000000000066c97cdd0000000000000000000000000000000000000000000000000000000066c975d5d78c691a386ed33f24c0611b5021cd9a5231e763bc1127a66840231d97f599a7792bc42640ca19bf7c6f1d04a27095decf66a8dd13ea52f0c221e821965004981c000000000000000000000000000000000000000000000000000000000000000000000000000000";

    let (target, value, calldata) = decode_calldata(calldata)?;

    println!("Decoded Target: {}", target);
    println!("Decoded Value: {}", value);
    println!("Decoded Calldata: {}", calldata);

    Ok(())

}

运行测试

为了运行库的测试


cargo test

贡献

欢迎贡献!请随时提交拉取请求或打开问题。

许可证

此项目使用 MIT 许可证。


依赖

~7.5MB
~142K SLoC