5 个版本

0.4.7 2024 年 6 月 23 日
0.4.6 2024 年 4 月 12 日
0.4.5 2023 年 11 月 30 日
0.4.4 2023 年 8 月 13 日
0.4.3 2023 年 7 月 23 日

#7 in #jrsonnet

34 每月下载量
用于 2 crates

MITGPL-3.0-or-later…

165KB
4K SLoC

chainql

使用 Jsonnet 查询 Substrate 区块链。

ChainQL 是一个工具,用于以 JSON 格式表示链数据,并使用 Jsonnet 处理和操作输出。它旨在成为 PolkadotJS 查询链数据的更便捷的替代方案。

安装

安装 Rust 后,运行

cargo install chainql

以全局安装 ChainQL。

如果您想本地安装并运行它,请克隆仓库,然后在仓库中运行

cargo build --release

./target/release/chainql

用法

要查看所有选项,请运行

chainql --help

ChainQL 在 .jsonnet 文件上操作。使用选项 -e,它可以将从输入字段中读取的输入作为 jsonnet 代码直接在命令行中评估。

要提供带有参数的 jsonnet 函数,请使用帮助消息中“顶级参数”部分的选项,例如使用 --tla-str=${your arg name here}=${your arg value} 为字符串或 --tla-code=${arg name}=${your code} 为要评估的 jsonnet 代码和作为值传递的结果。字符串和代码都可以从文件和环境(请参阅帮助消息中的“标准库”部分)提供。

在代码内部,您可以调用 cql.${以下定义的方法名称} 以调用 ChainQL Rust 代码中定义的任何内置实用方法。这些目前包括

cql.chain(/* chain url to get the data from */)
cql.dump(/* chain metadata, dump data, optional parameters, to create a jsonnet representation of a mock chain storage */)
cql.toHex(/* array of bytes to convert to hex string */)
cql.fromHex(/* string to convert to an array of bytes */)
cql.calc(/* array of tokens to evaluate in postfix notation */)
cql.ss58(/* address to get the hex representation from */)

示例

  • chainql -e "(1 + 7) / 3"
    

    选项 -e 允许从输入字段运行一些 jsonnet 代码并将结果打印回终端。

  • chainql -e "(import 'parachain-spec.json') {id+: '-local'}" > new-parachain-spec.json
    

    -local 应用于某些链规范文件顶级字段中 id 字段的值。生成的文件可能看起来像这样

    {
        "name": "some-parachain",
        "id": "parachain-id-local",
        // ...
    }
    

有关文件及其用法的示例,请参阅 examples 文件夹。

依赖项

~75MB
~1.5M SLoC