Skip to content

Commit 47c279b

Browse files
committed
retrigger workflow
1 parent 8298745 commit 47c279b

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

README.md

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
# ██ █████ █████ ███ ██ ████ ██ ███ ██ ███ ████ █████ ██ ████ █
88
# ███████████████████████████████████████████████████████████████████████████████████████████
99
```
10+
1011
> Expanding the Starknet tooling ecosystem.
1112
1213
![Github Actions](https://github.com/astraly-labs/starkbiter/workflows/test/badge.svg)
1314
![Twitter Badge](https://badgen.net/badge/icon/twitter?icon=twitter&label)(https://twitter.com/PragmaOracle)
1415

1516
## Overview
17+
1618
> **Starkbiter** is a framework for orchestrating event based agentic simulations on top of Starknet Devnet sandbox.
1719
1820
Starkbiter provides a Full JSON-RPC Starknet Node capabilities with additional methods to control block production, contract and account deployments and declaration. It integrates deeply with starknet-devnet and starknet-rs types crates allowing for seamless integration for all the tooling that depends on those. Thus, it also provides additional layer of well known contract bindings generated by [cainome](https://github.com/cartridge-gg/cainome).
@@ -22,6 +24,7 @@ The primary use of Starkbiter is to probe the mechanism security of smart contra
2224
---
2325

2426
The Starkbiter workspace has five crates:
27+
2528
- `starkbiter`: The bin that exposes a command line interface for contract bindings.
2629
- `starkbiter-core`: A lib containing the core logic for the Starkbiter framework, including the `StarkbiterMiddleware` discussed before, and the `Environment`, our sandbox.
2730
- `starkbiter-engine`: A lib that provides abstractions for building simulations, agents, and behaviors.
@@ -34,9 +37,9 @@ The Starkbiter workspace has five crates:
3437
- [x] core docs
3538
- [x] main readme
3639
- [ ] docs docs
37-
- [x] getting started
38-
- [ ] usage
39-
- [x] index
40+
- [x] getting started
41+
- [ ] usage
42+
- [x] index
4043
- [ ] benchmarks
4144
- [x] python bindings
4245
- [x] more test cases
@@ -57,11 +60,12 @@ The Starkbiter workspace has five crates:
5760
- [ ] Add API to preload state and save it to file. (like EKUBO core contract storage)
5861
- [ ] Test approach to set local nonce before adding transaction to bypass validation (less remote calls)
5962

60-
6163
## Book
64+
6265
TODO: Does not exist yet
6366

6467
## Motivation
68+
6569
Starkbiter was adapted from [Arbiter](https://github.com/harnesslabs/arbiter) code to allow you to work with smart contracts in a stateful sandbox and thus design agents that can be used alongside the contracts.
6670
This gives you many capabilities.
6771
For instance, smart contract engineers must test their contracts against various potentially adversarial environments and parameters instead of relying on static and stateless testing.
@@ -71,41 +75,55 @@ A financial engineer may want to test their strategies against thousands of mark
7175
Likewise, the same engineer may want to develop searcher agents, solver agents, or other autonomous agents that can be run on the blockchain.
7276

7377
## Working with the Starkbiter Framework
78+
7479
To work with Starkbiter, you must have Rust installed on your machine.
7580
You can install Rust by following the instructions [here](https://www.rust-lang.org/tools/install).
7681
It will also be helpful to get the `cargo-generate` package, which you can install by doing:
82+
7783
```bash
84+
7885
cargo install cargo-generate
86+
7987
```
8088

8189
### Examples
90+
8291
We have an example that will run what we have set up in a template.
8392
To run this, you can clone the repository and update the submodules:
93+
8494
```bash
8595
git clone https://github.com/astraly-labs/starkbiter
8696
cd starkbiter
8797
```
8898

8999
From here, you can now try running the following from the clone's root directory:
100+
90101
```bash
91102
cargo run --example minter
92103
```
104+
93105
This command will enter the template CLI and show you the commands and flags.
94106

95107
To run the `ModifiedCounter.sol` example and see some logging, try:
108+
96109
```bash
97110
cargo run --example minter simulate ./examples/minter/config.toml -vvvv
98111
```
112+
99113
This sets the log level to `trace` so you can see what's happening internally.
100114

101115
### Binary
116+
102117
To install the Starkbiter binary, run:
118+
103119
```bash
104120
cargo install starkbiter
105121
```
122+
106123
This will install the Starkbiter binary on your machine. You can then run `starkbiter --help` to see that Starkbiter was correctly installed and see the help menu.
107124

108125
### Bindings
126+
109127
You can put your compiled sierra 1.0 contract jsons in the `contracts/` directory of your templated project, you'll need to run:
110128

111129
```bash
@@ -116,6 +134,7 @@ to generate rust bindings and you are good to go. You can use those within your
116134
Starkbiter uses `cainome` to generate rust bindings and in turn `cainome` relies on starknet-rs account abstraction implementation. You can easily generate an account using `create_single_owner_account` method of the environment (and middleware) and pass it to create an instance of the contract you you want to execute.
117135

118136
### Forking
137+
119138
To fork a state of an Starknet network, you need to specify fork parameters upon instantiating environment. Fork is being initialised lazily, this mechanics is inherited from starknet devnet implementation.
120139

121140
```rust
@@ -134,6 +153,7 @@ This will instantiate environment which will upon request fetch missing bits of
134153
## Cargo Docs
135154

136155
To see the Cargo docs for the Starkbiter crates, please visit the following:
156+
137157
- [`starkbiter`](https://docs.rs/crate/starkbiter/)
138158
- [`starkbiter-bindings`](https://docs.rs/crate/starkbiter-bindings/)
139159
- [`starkbiter-core`](https://docs.rs/starkbiter-core/)
@@ -143,6 +163,7 @@ To see the Cargo docs for the Starkbiter crates, please visit the following:
143163
You will find each of these on crates.io.
144164

145165
## Benchmarks
166+
146167
In `starkbiter-core`, we have a a small benchmarking suite that currently is under WIP.
147168
TODO: benchmarks. What are we benchmarking against?
148169

0 commit comments

Comments
 (0)