10个版本

0.4.7 2024年6月23日
0.4.5 2023年11月30日
0.4.3 2023年7月23日
0.3.0 2023年1月10日

#16 in #jsonnet

46次每月下载

MITGPL-3.0-or-later…

120KB
2.5K 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},对于要评估并作为值传递的jsonnet代码,请使用--tla-code=${arg name}=${your code}。字符串和代码都可以从文件和环境(请参阅帮助信息中的“标准库”部分)提供。

在代码内部,您可以调用ChainQL Rust代码中定义的任何内置实用方法,例如调用cql.${以下定义的方法名之一}

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文件夹。

依赖关系

~77MB
~1.5M SLoC