Crate golem_base_sdk

Source
Expand description

This is part of the 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.

This SDK allows you to use GolemBase from Rust, it is available on crates.io, alng with its generated documentation. We provide an example application 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 ;
  2. Install the demo CLI and create a user, or build the actual CLI 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:

  • ~/.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 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-exports§

pub use client::GolemBaseClient;
pub use client::GolemBaseRoClient;
pub use entity::Annotation;
pub use entity::Hash;
pub use entity::NumericAnnotation;
pub use entity::StringAnnotation;

Modules§

client
Module for GolemBase client functionality. Exposes the main client interface for interacting with the GolemBase network.
entity
Module for GolemBase entities and data types. Defines core types such as annotations, hashes, and entity representations.
eth
Module for Ethereum transaction-related functionality. Provides helpers for constructing, signing, and sending Ethereum transactions.
events
Module for event handling. Contains types and utilities for working with GolemBase events.
rpc
Module for JSON-RPC-related functionality. Contains utilities for interacting with JSON-RPC endpoints, including request/response types.
utils
Module with utility functions. Includes helpers for encoding, decoding, and other common tasks.

Structs§

Address
Re-export commonly used types from alloy. An Ethereum address, 20 bytes in length.
Signature
An Ethereum ECDSA signature.
Url
A parsed URL record.

Functions§

keccak256
Re-export commonly used types from alloy. Simple interface to the Keccak-256 hash function.

Type Aliases§

PrivateKeySigner
A signer instantiated with a locally stored private key.