diff --git a/cargo-stylus/tests/contract_abi/Cargo.lock b/cargo-stylus/tests/contract_abi/Cargo.lock index 3182cc16..a738a2cd 100644 --- a/cargo-stylus/tests/contract_abi/Cargo.lock +++ b/cargo-stylus/tests/contract_abi/Cargo.lock @@ -4386,6 +4386,7 @@ dependencies = [ "clap", "escargot", "eyre", + "glob", "hex", "log", "regex", @@ -4402,6 +4403,7 @@ dependencies = [ "toml 0.8.23", "toml_edit 0.22.27", "trybuild", + "typed-builder", "wasm-encoder 0.213.0", "wasm-gen", "wasmer", @@ -4933,6 +4935,26 @@ dependencies = [ "toml 0.9.7", ] +[[package]] +name = "typed-builder" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda" +dependencies = [ + "typed-builder-macro", +] + +[[package]] +name = "typed-builder-macro" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "typeid" version = "1.0.3" diff --git a/stylus-proc/src/macros/storage.rs b/stylus-proc/src/macros/storage.rs index 3ae046e6..6e14ffb0 100644 --- a/stylus-proc/src/macros/storage.rs +++ b/stylus-proc/src/macros/storage.rs @@ -390,15 +390,15 @@ impl StorageField { let bytes = <#ty as storage::StorageType>::SLOT_BYTES; let words = <#ty as storage::StorageType>::REQUIRED_SLOTS; + if space < bytes { + space = 32; + total += 1; + } + space -= bytes; + if words > 0 { total += words; space = 32; - } else { - if space < bytes { - space = 32; - total += 1; - } - space -= bytes; } } } diff --git a/stylus-proc/tests/contract_abi/Cargo.lock b/stylus-proc/tests/contract_abi/Cargo.lock index 3182cc16..a738a2cd 100644 --- a/stylus-proc/tests/contract_abi/Cargo.lock +++ b/stylus-proc/tests/contract_abi/Cargo.lock @@ -4386,6 +4386,7 @@ dependencies = [ "clap", "escargot", "eyre", + "glob", "hex", "log", "regex", @@ -4402,6 +4403,7 @@ dependencies = [ "toml 0.8.23", "toml_edit 0.22.27", "trybuild", + "typed-builder", "wasm-encoder 0.213.0", "wasm-gen", "wasmer", @@ -4933,6 +4935,26 @@ dependencies = [ "toml 0.9.7", ] +[[package]] +name = "typed-builder" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda" +dependencies = [ + "typed-builder-macro", +] + +[[package]] +name = "typed-builder-macro" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "typeid" version = "1.0.3"