1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// # GolemBase SDK
//!
//! This is part of the [Golem Base](https://github.com/Golem-Base) project, which is designed as a Layer2 Network deployed on Ethereum, acting as a gateway to various Layer 3 Database Chains (DB-Chains).
//! For an overview of Golem Base, **check out our [Litepaper](https://golem-base.io/wp-content/uploads/2025/03/GolemBase-Litepaper.pdf)**.
//!
//! This SDK allows you to use [GolemBase](https://github.com/Golem-Base) from Rust, it is available on [crates.io](https://crates.io/crates/golem-base-sdk), alng with its [generated documentation](https://docs.rs/golem-base-sdk). We provide an [example application](https://github.com/Golem-Base/rust-sdk/tree/main/demo) to showcase how you can use this SDK.
//!
//! For **getting up and running quickly**, we recommend the following two steps:
//! 1. Start golembase-op-geth through its [`docker-compose`](https://github.com/Golem-Base/golembase-op-geth/blob/main/RUN_LOCALLY.md) ;
//! 2. [Install the demo CLI](https://github.com/Golem-Base/golembase-demo-cli?tab=readme-ov-file#installation) and [create a user](https://github.com/Golem-Base/golembase-demo-cli?tab=readme-ov-file#quickstart), or build the [actual CLI](https://github.com/Golem-Base/golembase-op-geth/blob/main/cmd/golembase/README.md) as it's included in the `golembase-op-geth` repository.
//!
//! When you create a user, it will generate a private key file called `private.key` and store it in the standard folder as per the [XDG specification](https://specifications.freedesktop.org/basedir-spec/latest/):
//! - `~/.config/golembase/` on **Linux**
//! - `~/Library/Application Support/golembase/` on **macOS**
//! - `%LOCALAPPDATA%\golembase\` on **Windows**
//!
//! You will also need to fund the account, you can do it with: `golembase-demo-cli account fund 10`
//!
//! # Transaction Abstractions
//!
//! This SDK provides multiple layers for sending transactions:
//! - Use [`GolemBaseClient`] for high-level operations such as creating, updating, or deleting entities.
//! - Use [`Account`](crate::account::Account) for account-centric and lower-level transaction control.
//! - Advanced users can construct and submit raw Ethereum transactions directly using the types and helpers re-exported from `Alloy`.
/// Re-export commonly used types from `alloy`.
pub use ;
pub use Signature;
pub use PrivateKeySigner;
pub use Url;
pub use ;
pub use ;
/// Module for Ethereum transaction-related functionality.
/// Provides helpers for constructing, signing, and sending Ethereum transactions.
/// Module for JSON-RPC-related functionality.
/// Contains utilities for interacting with JSON-RPC endpoints, including request/response types.
/// Module for GolemBase client functionality.
/// Exposes the main client interface for interacting with the GolemBase network.
/// Module for GolemBase entities and data types.
/// Defines core types such as annotations, hashes, and entity representations.
/// Module for event handling.
/// Contains types and utilities for working with GolemBase events.
/// Module with utility functions.
/// Includes helpers for encoding, decoding, and other common tasks.