Skip to content

Commit

Permalink
make code wasm-compatible
Browse files Browse the repository at this point in the history
Note: only the main code compiles, not the tests yet
  • Loading branch information
damip committed Dec 21, 2023
1 parent 8752531 commit a27fe6b
Show file tree
Hide file tree
Showing 13 changed files with 265 additions and 159 deletions.
106 changes: 101 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 3 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"

[features]
default = ["rocksdb"]
default = []
rocksdb = ["dep:rocksdb"]

[dependencies]
Expand All @@ -17,13 +17,9 @@ smallvec = "1.11.2"
rustc-hex = "2.1.0"
env_logger = "0.10.1"
lru = "0.12.1"
parking_lot = "0.12.1"

bitvec = { version = "1", default-features = false }
bitvec = { version = "1" }
derive_more = { version = "0.99.17", features = ["constructor"] }
mp-felt = { git = "https://github.com/keep-starknet-strange/madara.git", rev = "f30acea8af7e28e956e771928130e12bfc084832", package = "mp-felt", features = ["parity-scale-codec", "serde"]}
mp-hashers = { git = "https://github.com/keep-starknet-strange/madara.git", rev = "f30acea8af7e28e956e771928130e12bfc084832", package = "mp-hashers" }
mp-transactions = { git = "https://github.com/keep-starknet-strange/madara.git", rev = "f30acea8af7e28e956e771928130e12bfc084832", package = "mp-transactions", features = ["parity-scale-codec", "serde"] }
starknet-types-core = { git = "https://github.com/starknet-io/types-rs", rev = "096770d939b15f0d50d3b3a9735a0ca5522d4f37", package = "starknet-types-core", features=["hash"] }

[dev-dependencies]
tempfile = "3.8.0"
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ use bonsai_trie::{
id::{BasicIdBuilder, BasicId},
BonsaiStorage, BonsaiStorageConfig, BonsaiTrieHash,
};
use mp_felt::Felt252Wrapper;
use mp_felt::Felt;
use bitvec::prelude::*;

fn main() {
Expand All @@ -54,12 +54,12 @@ fn main() {
let mut id_builder = BasicIdBuilder::new();

// Insert an item `pair1`.
let pair1 = (vec![1, 2, 1], Felt252Wrapper::from_hex_be("0x66342762FDD54D033c195fec3ce2568b62052e").unwrap());
let pair1 = (vec![1, 2, 1], Felt::from_hex_be("0x66342762FDD54D033c195fec3ce2568b62052e").unwrap());
let bitvec_1 = BitVec::from_vec(pair1.0.clone());
bonsai_storage.insert(&bitvec_1, &pair1.1).unwrap();

// Insert a second item `pair2`.
let pair2 = (vec![1, 2, 2], Felt252Wrapper::from_hex_be("0x66342762FD54D033c195fec3ce2568b62052e").unwrap());
let pair2 = (vec![1, 2, 2], Felt::from_hex_be("0x66342762FD54D033c195fec3ce2568b62052e").unwrap());
let bitvec = BitVec::from_vec(pair2.0.clone());
bonsai_storage.insert(&bitvec, &pair2.1).unwrap();

Expand All @@ -68,7 +68,7 @@ fn main() {
bonsai_storage.commit(id1);

// Insert a new item `pair3`.
let pair3 = (vec![1, 2, 2], Felt252Wrapper::from_hex_be("0x664D033c195fec3ce2568b62052e").unwrap());
let pair3 = (vec![1, 2, 2], Felt::from_hex_be("0x664D033c195fec3ce2568b62052e").unwrap());
let bitvec = BitVec::from_vec(pair3.0.clone());
bonsai_storage.insert(&bitvec, &pair3.1).unwrap();

Expand Down Expand Up @@ -126,7 +126,7 @@ fn main() {
// Insert a new item and commit.
let pair4 = (
vec![1, 2, 3],
Felt252Wrapper::from_hex_be("0x66342762FDD54D033c195fec3ce2568b62052e").unwrap(),
Felt::from_hex_be("0x66342762FDD54D033c195fec3ce2568b62052e").unwrap(),
);
bonsai_storage
.insert(&BitVec::from_vec(pair4.0.clone()), &pair4.1)
Expand Down
2 changes: 1 addition & 1 deletion src/databases/hashmap_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ impl From<HashMapDbError> for BonsaiStorageError {
}
}

#[derive(Clone)]
#[derive(Clone, Default)]
pub struct HashMapDbConfig {}

#[derive(Clone)]
Expand Down
3 changes: 3 additions & 0 deletions src/databases/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#![allow(dead_code)]
mod hashmap_db;
pub use hashmap_db::{HashMapDb, HashMapDbConfig};

#[cfg(feature = "rocksdb")]
mod rocks_db;

#[cfg(feature = "rocksdb")]
pub use rocks_db::{create_rocks_db, RocksDB, RocksDBBatch, RocksDBConfig};
21 changes: 21 additions & 0 deletions src/felt.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// This file is there just to make Felts serializable with the parity-scale-codec crate.

use parity_scale_codec::{Decode, Encode, Error, Input, Output};
use starknet_types_core::felt::Felt;

#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct FeltWrapper(pub Felt);

impl Encode for FeltWrapper {
fn encode_to<T: Output + ?Sized>(&self, dest: &mut T) {
dest.write(&self.0.to_bytes_be());
}
}

impl Decode for FeltWrapper {
fn decode<I: Input>(input: &mut I) -> Result<Self, Error> {
let mut buf: [u8; 32] = [0; 32];
input.read(&mut buf)?;
Ok(FeltWrapper(Felt::from_bytes_be(&buf)))
}
}
Loading

0 comments on commit a27fe6b

Please sign in to comment.