#monero #net #asynchronous #rpc #client-builder

monero-rpc

Monero守护进程和钱包的RPC客户端

5个版本 (3个破坏性更新)

0.4.0 2023年9月15日
0.3.2 2022年12月13日
0.2.0 2022年8月1日
0.1.0 2022年6月29日

#2742 in 魔法豆

Download history 12/week @ 2024-04-08 8/week @ 2024-04-15 30/week @ 2024-04-22 7/week @ 2024-04-29 10/week @ 2024-05-06 13/week @ 2024-05-13 26/week @ 2024-05-20 18/week @ 2024-05-27 88/week @ 2024-06-03 15/week @ 2024-06-10 23/week @ 2024-06-17 38/week @ 2024-06-24 38/week @ 2024-07-01 10/week @ 2024-07-08 14/week @ 2024-07-15 34/week @ 2024-07-22

每月下载量103
用于 4 crate

Apache-2.0

79KB
2K SLoC

Build Status unsafe forbidden Crates.io Documentation License MSRV

Monero守护进程 & 钱包RPC

使用异步Rust 🦀编写的Monero守护进程和钱包RPC。

示例:使用 tokio::test

创建RPC客户端并将其转换为守护进程RPC以调用 /get_transactions 方法并打印结果。

use monero_rpc::{RpcClientBuilder, JsonTransaction};

#[tokio::test]
async fn monero_daemon_transactions_test() {
    let tx_id = "7c50844eced8ab78a8f26a126fbc1f731134e0ae3e6f9ba0f205f98c1426ff60".to_string();
    let rpc_client = monero_rpc::RpcClientBuilder::new()
        .build("http://node.monerooutreach.org:18081")
        .unwrap();
    let daemon_rpc_client = rpc_client.daemon_rpc();
    let mut fixed_hash: [u8; 32] = [0; 32];
    hex::decode_to_slice(tx_id, &mut fixed_hash).unwrap();
    let tx = daemon_rpc_client
        .get_transactions(vec![fixed_hash.into()], Some(true), Some(true))
        .await;
    println!("tx {:?}", tx);
    println!(
        "unlock time: {:?}",
        serde_json::from_str::<JsonTransaction>(&tx.unwrap().txs_as_json.unwrap()[0])
    );
}

测试

首先,您需要 dockerdocker compose 来运行位于 tests/ 的RPC集成测试,如果您不想在自己的机器上运行 monerodmonero-wallet-rpc

如果您已安装docker stack,请转到 tests 文件夹并运行 docker compose up。请注意,守护进程将在端口 18081 上运行,而 monero-wallet-rpc 将在端口 18083 上运行。

之后,只需像平常一样运行 cargo test

此外,您还可以运行 docker compose down 来停止并删除由 docker compose up 启动的两个容器。

重要:在运行 main_functional_test 测试于 tests/rpc.rs 时,区块链必须是空的,也就是说,它只能包含创世区块。在 regtest 中,当 monerod 重新启动时,区块链会重启(顺便提一下,如果您想在 regtest 中在重启之间保持区块链,请在启动 monerod 时传递 --keep-fakechain 标志)。

版本和变更日志

请参阅 CHANGELOG.mdRELEASING.md

许可协议

本项目中使用的代码根据 Apache-2.0 许可协议授权。

依赖项

~8–20MB
~319K SLoC