Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md for rs-soroban-env #1501

Merged
merged 2 commits into from
Dec 20, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,16 @@

Rust contract-environment interface and (optional) host implementation for Soroban.

The `soroban-env-common` crate contains elements of the shared environment-interface between smart contract guest and host: the `Env` trait that defines the set of available environment functions as well as the `Val` type that can pass back and forth through the WASM calling convention. Additionally small wrappers around subtypes of `Val` are included: `Object`, `Symbol`, `Error`, etc.
The `soroban-env-common` crate contains elements of the shared environment-interface between smart contract guest and host: the `Env` trait that defines the set of available environment functions as well as the `Val` type that can pass back and forth through the Wasm calling convention. Additionally small wrappers around subtypes of `Val` are included: `Object`, `Symbol`, `Error`, etc.

The `soroban-env-guest` crate contains the guest-side _stub implementation_ of the environment interface called `Guest` dependent on extern fns provided by the host implementation. This can be used in a WASM runtime that provides the extern fns.
The `soroban-env-guest` crate contains the guest-side _stub implementation_ of the environment interface called `Guest` dependent on extern fns provided by the host implementation. This can be used in a Wasm runtime that provides the extern fns.

The `soroban-env-host` crate contains the host-side _full implementation_ of the environment interface called `Host`. This can be used either in the real blockchain host, or for local testing in the SDK.
The `soroban-env-host` crate contains the host-side _full implementation_ of the environment interface called `Host`. This can be used either in the real blockchain host, or for local testing in the SDK. It also contains the shared implementation for Soroban fee compution (`fees.rs`) and a library for 'end-to-end' invocation of contracts menat to be used for applying transactions on-chain (`e2e_invoke.rs`).

The `soroban-simulation` crate contains the utilities for simulating the Soroban transactions 'end-to-end': given an invocation specification and provided with on-chain storage access, this allows users to record all the information necessary for submitting the transaction on-chain, such as the storage access footprint, necessary resources, recorded authorization payloads that need to be signed etc.

The `soroban-builtin-sdk-macros` and `soroban-env-macros` are crates dedicated to macros used internally by `soroban-env-host`. The former imitates the contract function and type definitions used by generated by `rs-soroban-sdk`, and the latter contains misc internal macros.

The `soroban-bench-utils` crate contains the utilties for running the benchmarks using for calibration of the Soroban execution costs via benchmarks.

The `soroban-synth-wasm` and `soroban-test-wasms` are crates used for tests that use smart contract. The former synthesizes simple parametric Wasms, and the latter contains various pre-compiled smart contract contracts used by tests.
Loading