Skip to content

Commit a269e50

Browse files
thibault-martinezDaughterOfMarsThoralf-M
authored
feat: BCS ABNF compile-time generation (#1040)
* feat: BCS ABNF PoC * fix TypeTag order * add new types * execution-status order * feat: Add grammar driven fuzzing * dprint and clippy * fmt * improve definitions and tests * consistent comments * Remove trait * licenses and stuff * add CI job * nits * const file name * remove duplicates * add env check to proc macro * replace hex with decimal * conform to rfc5234 * disallow duplicate names * combine * fix duplication detection * fmt * update bindings * add sdk prefix * add README.md * dprint fmt * remove "sorted" * add iota-bcs-schema to cargo sort script * bool / option as decimal * remove opt * update ABNF * only i64 exists as primitive * Mention the duplicate-name check * %d for option/bool * claude diff * fix ABNF * align comments * handle some diffs * remove diff * nit * align * harmonise ABNF and BCS comments * fix hex conversion --------- Co-authored-by: Chloe Martin <[email protected]> Co-authored-by: Thoralf Müller <[email protected]>
1 parent 6755daf commit a269e50

48 files changed

Lines changed: 4085 additions & 2172 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/lints.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ jobs:
4040
if: (!github.event.pull_request.draft || contains(github.event.pull_request.body, '[run-ci]'))
4141
run: make doc
4242

43+
- name: BCS schema
44+
if: (!github.event.pull_request.draft || contains(github.event.pull_request.body, '[run-ci]'))
45+
run: BCS_SCHEMA=1 cargo check -p iota-sdk-types --features bcs-schema
46+
4347
- run: make is-dirty
4448

4549
cargo-sort:

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
resolver = "2"
33
members = [
44
"crates/iota-sdk",
5+
"crates/iota-sdk-bcs-schema",
56
"crates/iota-sdk-crypto",
67
"crates/iota-sdk-ffi",
78
"crates/iota-sdk-graphql-client",
@@ -44,6 +45,7 @@ variadics_please = "1.1"
4445
wasm-bindgen-test = "0.3"
4546

4647
# internal dependencies
48+
iota-bcs-schema = { version = "0.0.0", package = "iota-sdk-bcs-schema", path = "crates/iota-sdk-bcs-schema" }
4749
iota-crypto = { version = "0.0.1-alpha.1", package = "iota-sdk-crypto", path = "crates/iota-sdk-crypto", default-features = false }
4850
iota-graphql-client = { version = "0.0.1-alpha.1", package = "iota-sdk-graphql-client", path = "crates/iota-sdk-graphql-client", default-features = false }
4951
iota-graphql-client-build = { version = "0.0.1-alpha.1", package = "iota-sdk-graphql-client-build", path = "crates/iota-sdk-graphql-client-build", default-features = false }

0 commit comments

Comments
 (0)