sologger_log_transformer_wasm

Crates.iosologger_log_transformer_wasm
lib.rssologger_log_transformer_wasm
version0.2.1
sourcesrc
created_at2024-10-16 19:29:03.988753
updated_at2024-10-16 19:29:03.988753
descriptionThis library provides utility to extract and structure logs from Solana API logSubscribe responses and provides WASM support.
homepage
repositoryhttps://github.com/brytelands/sologger
max_upload_size
id1412243
size36,378
Will Kennedy (wkennedy)

documentation

README

sologger-log-transformer-wasm

Overview

This library provides utility to extract and structure logs from Solana API logSubscribe responses and provides WASM support.

Example Usage

To run the example:

cd wasm-examples
node basic.mjs
async function run() {
    const logs = ["Program 9RX7oz3WN5VRTqekBBHBvEJFVMNRnrCmVy7S6B6S5oU7 invoke [1]",
        "Program log: Instruction: Initialize",
        "Program 11111111111111111111111111111111 invoke [2]",
        "Program 11111111111111111111111111111111 success",
        "Program log: Initialized new event. Current value",
        "Program 9RX7oz3WN5VRTqekBBHBvEJFVMNRnrCmVy7S6B6S5oU7 consumed 59783 of 200000 compute units",
        "Program 9RX7oz3WN5VRTqekBBHBvEJFVMNRnrCmVy7S6B6S5oU7 success",
        "Program AbcdefGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [1]",
        "Program log: Create",
        "Program AbcdefGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 5475 of 200000 compute units",
        "Program failed to complete: Invoked an instruction with data that is too large (12178014311288245306 > 10240)",
        "Program AbcdefGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL failed: Program failed to complete"
    ];

    const transformer = new WasmLogContextTransformer(["9RX7oz3WN5VRTqekBBHBvEJFVMNRnrCmVy7S6B6S5oU7", "AbcdefGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"]);

    // Example usage of from_rpc_logs_response
    const rpcLogsResponse = {
        signature: "test_signature",
        err: null,
        logs: logs
    };
    const slot = 123456789;

    try {
        const result = transformer.from_rpc_logs_response(rpcLogsResponse, BigInt(slot));
        console.log(JSON.parse(JSON.stringify(result)));
    } catch (error) {
        console.error("Error:", error);
    }

    // Example usage of from_rpc_response
    const rpcResponse = {
        context: {
            slot: 12324,
            api_version: null
        },
        value: rpcLogsResponse
    };

    try {
        const result = transformer.from_rpc_response(rpcResponse);
        console.log(JSON.parse(JSON.stringify(result)));
    } catch (error) {
        console.error("Error:", error);
    }
}

Please see the sologger-log-context crate for more information regarding LogContext.

Commit count: 44

cargo fmt