diff --git a/crates/sol-macro-expander/src/expand/mod.rs b/crates/sol-macro-expander/src/expand/mod.rs index 86f9743a7..d4c4a0458 100644 --- a/crates/sol-macro-expander/src/expand/mod.rs +++ b/crates/sol-macro-expander/src/expand/mod.rs @@ -15,6 +15,8 @@ use proc_macro_error2::{abort, emit_error}; use quote::{format_ident, quote, TokenStreamExt}; use std::{ borrow::Borrow, + collections::HashMap, + fmt, fmt::Write, sync::atomic::{AtomicBool, Ordering}, }; @@ -157,7 +159,8 @@ impl<'ast> ExpCtxt<'ast> { if !self.all_items.0.is_empty() { self.resolve_custom_types(); - if self.mk_overloads_map().is_err() { + // Selector collisions requires resolved types. + if self.mk_overloads_map().is_err() || self.check_selector_collisions().is_err() { abort = true; } } @@ -254,6 +257,82 @@ impl<'ast> ExpCtxt<'ast> { } } + /// Checks for function and error selector collisions in the resolved items. + fn check_selector_collisions(&mut self) -> std::result::Result<(), ()> { + #[derive(Clone, Copy)] + enum SelectorKind { + Function, + Error, + // We can ignore events since their selectors are 32 bytes which are unlikely to + // collide. + // Event, + } + + impl fmt::Display for SelectorKind { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Function => "function", + Self::Error => "error", + // Self::Event => "event", + } + .fmt(f) + } + } + + let mut result = Ok(()); + + let mut selectors = vec![HashMap::new(); 3]; + let all_items = std::mem::take(&mut self.all_items); + for (namespace, items) in &all_items.0 { + self.with_namespace(namespace.clone(), |this| { + selectors.iter_mut().for_each(|s| s.clear()); + for (_, &item) in items { + let (kind, selector) = match item { + Item::Function(function) => { + (SelectorKind::Function, this.function_selector(function)) + } + Item::Error(error) => (SelectorKind::Error, this.error_selector(error)), + // Item::Event(event) => (SelectorKind::Event, this.event_selector(event)), + _ => continue, + }; + let selector: [u8; 4] = selector.array.try_into().unwrap(); + // 0x00000000 or 0xffffffff are reserved for custom errors. + if matches!(kind, SelectorKind::Error) + && (selector == [0, 0, 0, 0] || selector == [0xff, 0xff, 0xff, 0xff]) + { + emit_error!( + item.span(), + "{kind} selector `{}` is reserved", + hex::encode_prefixed(selector), + ); + result = Err(()); + continue; + } + match selectors[kind as usize].entry(selector) { + std::collections::hash_map::Entry::Vacant(entry) => { + entry.insert(item); + } + std::collections::hash_map::Entry::Occupied(entry) => { + result = Err(()); + let other = *entry.get(); + emit_error!( + item.span(), + "{kind} selector `{}` collides with `{}`", + hex::encode_prefixed(selector), + other.name().unwrap(); + + note = other.span() => "other declaration is here"; + ); + } + } + } + }) + } + self.all_items = all_items; + + result + } + fn mk_overloads_map(&mut self) -> std::result::Result<(), ()> { let mut overloads_map = std::mem::take(&mut self.overloads); diff --git a/crates/sol-types/tests/ui/collisions.rs b/crates/sol-types/tests/ui/collisions.rs new file mode 100644 index 000000000..ad2e12fa0 --- /dev/null +++ b/crates/sol-types/tests/ui/collisions.rs @@ -0,0 +1,38 @@ +use alloy_sol_types::sol; + +// https://github.com/alloy-rs/core/issues/729 + +sol! { + error func_2093253501(bytes); + error transfer(address,uint256); + + function func_2093253501(bytes); + function transfer(address,uint256); + + error BlazingIt4490597615(); + + contract A { + error func_2093253501(bytes); + error transfer(address,uint256); + + function func_2093253501(bytes); + function transfer(address,uint256); + + error BlazingIt4490597615(); + } +} + +// This is OK. +mod namespaced { + use alloy_sol_types::sol; + + sol! { + function func_2093253501(bytes); + + contract B { + function transfer(address,uint256); + } + } +} + +fn main() {} diff --git a/crates/sol-types/tests/ui/collisions.stderr b/crates/sol-types/tests/ui/collisions.stderr new file mode 100644 index 000000000..fa51c5dcd --- /dev/null +++ b/crates/sol-types/tests/ui/collisions.stderr @@ -0,0 +1,35 @@ +error: function selector `0xa9059cbb` collides with `func_2093253501` + --> tests/ui/collisions.rs:10:14 + | +10 | function transfer(address,uint256); + | ^^^^^^^^ + | +note: other declaration is here + --> tests/ui/collisions.rs:9:14 + | +9 | function func_2093253501(bytes); + | ^^^^^^^^^^^^^^^ + +error: error selector `0x00000000` is reserved + --> tests/ui/collisions.rs:12:11 + | +12 | error BlazingIt4490597615(); + | ^^^^^^^^^^^^^^^^^^^ + +error: function selector `0xa9059cbb` collides with `func_2093253501` + --> tests/ui/collisions.rs:19:18 + | +19 | function transfer(address,uint256); + | ^^^^^^^^ + | +note: other declaration is here + --> tests/ui/collisions.rs:18:18 + | +18 | function func_2093253501(bytes); + | ^^^^^^^^^^^^^^^ + +error: error selector `0x00000000` is reserved + --> tests/ui/collisions.rs:21:15 + | +21 | error BlazingIt4490597615(); + | ^^^^^^^^^^^^^^^^^^^ diff --git a/crates/sol-types/tests/ui/keywords.stderr b/crates/sol-types/tests/ui/keywords.stderr index e52156078..1d3e00f97 100644 --- a/crates/sol-types/tests/ui/keywords.stderr +++ b/crates/sol-types/tests/ui/keywords.stderr @@ -1862,6 +1862,14 @@ error[E0658]: postfix match is experimental = note: see issue #121618 for more information = help: add `#![feature(postfix_match)]` to the crate attributes to enable +error: `Self` is not valid in the self type of an impl block + --> tests/ui/keywords.rs:45:5 + | +45 | Self + | ^^^^ + | + = note: replace `Self` with a different type + error: `Self` is not valid in the self type of an impl block --> tests/ui/keywords.rs:5:9 | @@ -1885,14 +1893,6 @@ error: `Self` is not valid in the self type of an impl block = note: replace `Self` with a different type = note: this error originates in the derive macro `Clone` which comes from the expansion of the macro `kws` (in Nightly builds, run with -Z macro-backtrace for more info) -error: `Self` is not valid in the self type of an impl block - --> tests/ui/keywords.rs:45:5 - | -45 | Self - | ^^^^ - | - = note: replace `Self` with a different type - error[E0117]: only traits defined in the current crate can be implemented for arbitrary types --> tests/ui/keywords.rs:5:9 | @@ -1950,344 +1950,8 @@ error[E0747]: constant provided when a type was expected 65 | true | ^^^^ -error[E0609]: no field `crate` on type `crateCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `crate` on type `&crateCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `self` on type `selfCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `self` on type `&selfCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - error[E0609]: no field `Self` on type `(alloy_sol_types::private::Uint<256, 4>,)` --> tests/ui/keywords.rs:7:22 | 7 | uint $kw; | ^^^ unknown field - -error[E0609]: no field `Self` on type `SelfCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `Self` on type `&SelfCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `super` on type `superCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `super` on type `&superCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#as` on type `asCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#as` on type `&asCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#break` on type `breakCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#break` on type `&breakCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#continue` on type `continueCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#continue` on type `&continueCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#else` on type `elseCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#else` on type `&elseCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#enum` on type `enumCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#enum` on type `&enumCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#false` on type `falseCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#false` on type `&falseCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#for` on type `forCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#for` on type `&forCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#if` on type `ifCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#if` on type `&ifCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#in` on type `inCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#in` on type `&inCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#let` on type `letCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#let` on type `&letCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#return` on type `returnCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#return` on type `&returnCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#static` on type `staticCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#static` on type `&staticCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#struct` on type `structCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#struct` on type `&structCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#true` on type `trueCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#true` on type `&trueCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#type` on type `typeCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#type` on type `&typeCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#while` on type `whileCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#while` on type `&whileCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#abstract` on type `abstractCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#abstract` on type `&abstractCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#do` on type `doCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#do` on type `&doCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#final` on type `finalCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#final` on type `&finalCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#macro` on type `macroCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#macro` on type `¯oCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#override` on type `overrideCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#override` on type `&overrideCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#typeof` on type `typeofCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#typeof` on type `&typeofCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#virtual` on type `virtualCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#virtual` on type `&virtualCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#try` on type `tryCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field - -error[E0609]: no field `r#try` on type `&tryCall` - --> tests/ui/keywords.rs:10:31 - | -10 | function $kw(uint $kw); - | ^^^ unknown field diff --git a/crates/sol-types/tests/ui/type.stderr b/crates/sol-types/tests/ui/type.stderr index c72a36a04..c21c6282e 100644 --- a/crates/sol-types/tests/ui/type.stderr +++ b/crates/sol-types/tests/ui/type.stderr @@ -130,7 +130,7 @@ error[E0412]: cannot find type `a` in this scope 739 | mapping(mapping(a b => c d) e => mapping(f g => h i) j) map; | ^ not found in this scope -error[E0277]: the trait bound `(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, Int<256>, Int<8>, Int<16>, Int<24>, Int<32>, Int<40>, Int<48>, Int<56>, Int<64>, Int<72>, Int<80>, Int<88>, Int<96>, Int<104>, Int<112>, Int<120>, Int<128>, Int<136>, Int<144>, Int<152>, Int<160>, Int<168>, Int<176>, Int<184>, Int<192>, Int<200>, Int<208>, Int<216>, Int<224>, Int<232>, Int<240>, Int<248>, Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>): SolType` is not satisfied +error[E0277]: the trait bound `(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, alloy_sol_types::sol_data::Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Int<8>, alloy_sol_types::sol_data::Int<16>, alloy_sol_types::sol_data::Int<24>, alloy_sol_types::sol_data::Int<32>, alloy_sol_types::sol_data::Int<40>, alloy_sol_types::sol_data::Int<48>, alloy_sol_types::sol_data::Int<56>, alloy_sol_types::sol_data::Int<64>, alloy_sol_types::sol_data::Int<72>, alloy_sol_types::sol_data::Int<80>, alloy_sol_types::sol_data::Int<88>, alloy_sol_types::sol_data::Int<96>, alloy_sol_types::sol_data::Int<104>, alloy_sol_types::sol_data::Int<112>, alloy_sol_types::sol_data::Int<120>, alloy_sol_types::sol_data::Int<128>, alloy_sol_types::sol_data::Int<136>, alloy_sol_types::sol_data::Int<144>, alloy_sol_types::sol_data::Int<152>, alloy_sol_types::sol_data::Int<160>, alloy_sol_types::sol_data::Int<168>, alloy_sol_types::sol_data::Int<176>, alloy_sol_types::sol_data::Int<184>, alloy_sol_types::sol_data::Int<192>, alloy_sol_types::sol_data::Int<200>, alloy_sol_types::sol_data::Int<208>, alloy_sol_types::sol_data::Int<216>, alloy_sol_types::sol_data::Int<224>, alloy_sol_types::sol_data::Int<232>, alloy_sol_types::sol_data::Int<240>, alloy_sol_types::sol_data::Int<248>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>): SolType` is not satisfied --> tests/ui/type.rs:3:1 | 3 | / sol! { @@ -154,7 +154,7 @@ error[E0277]: the trait bound `(alloy_sol_types::sol_data::Address, alloy_sol_ty and $N others = note: this error originates in the macro `sol` (in Nightly builds, run with -Z macro-backtrace for more info) -error[E0277]: the trait bound `(alloy_sol_types::private::Address, alloy_sol_types::private::Address, std::string::String, bool, alloy_sol_types::private::Bytes, alloy_sol_types::private::FixedBytes<1>, alloy_sol_types::private::FixedBytes<2>, alloy_sol_types::private::FixedBytes<3>, alloy_sol_types::private::FixedBytes<4>, alloy_sol_types::private::FixedBytes<5>, alloy_sol_types::private::FixedBytes<6>, alloy_sol_types::private::FixedBytes<7>, alloy_sol_types::private::FixedBytes<8>, alloy_sol_types::private::FixedBytes<9>, alloy_sol_types::private::FixedBytes<10>, alloy_sol_types::private::FixedBytes<11>, alloy_sol_types::private::FixedBytes<12>, alloy_sol_types::private::FixedBytes<13>, alloy_sol_types::private::FixedBytes<14>, alloy_sol_types::private::FixedBytes<15>, alloy_sol_types::private::FixedBytes<16>, alloy_sol_types::private::FixedBytes<17>, alloy_sol_types::private::FixedBytes<18>, alloy_sol_types::private::FixedBytes<19>, alloy_sol_types::private::FixedBytes<20>, alloy_sol_types::private::FixedBytes<21>, alloy_sol_types::private::FixedBytes<22>, alloy_sol_types::private::FixedBytes<23>, alloy_sol_types::private::FixedBytes<24>, alloy_sol_types::private::FixedBytes<25>, alloy_sol_types::private::FixedBytes<26>, alloy_sol_types::private::FixedBytes<27>, alloy_sol_types::private::FixedBytes<28>, alloy_sol_types::private::FixedBytes<29>, alloy_sol_types::private::FixedBytes<30>, alloy_sol_types::private::FixedBytes<31>, alloy_sol_types::private::FixedBytes<32>, Signed<256, 4>, i8, i16, i32, i32, i64, i64, i64, i64, i128, i128, i128, i128, i128, i128, i128, i128, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, alloy_sol_types::private::Uint<256, 4>, u8, u16, u32, u32, u64, u64, u64, u64, u128, u128, u128, u128, u128, u128, u128, u128, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>): SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, Int<256>, Int<8>, Int<16>, Int<24>, Int<32>, Int<40>, Int<48>, Int<56>, Int<64>, Int<72>, Int<80>, Int<88>, Int<96>, Int<104>, Int<112>, Int<120>, Int<128>, Int<136>, Int<144>, Int<152>, Int<160>, Int<168>, Int<176>, Int<184>, Int<192>, Int<200>, Int<208>, Int<216>, Int<224>, Int<232>, Int<240>, Int<248>, Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not satisfied +error[E0277]: the trait bound `(alloy_sol_types::private::Address, alloy_sol_types::private::Address, std::string::String, bool, alloy_sol_types::private::Bytes, alloy_sol_types::private::FixedBytes<1>, alloy_sol_types::private::FixedBytes<2>, alloy_sol_types::private::FixedBytes<3>, alloy_sol_types::private::FixedBytes<4>, alloy_sol_types::private::FixedBytes<5>, alloy_sol_types::private::FixedBytes<6>, alloy_sol_types::private::FixedBytes<7>, alloy_sol_types::private::FixedBytes<8>, alloy_sol_types::private::FixedBytes<9>, alloy_sol_types::private::FixedBytes<10>, alloy_sol_types::private::FixedBytes<11>, alloy_sol_types::private::FixedBytes<12>, alloy_sol_types::private::FixedBytes<13>, alloy_sol_types::private::FixedBytes<14>, alloy_sol_types::private::FixedBytes<15>, alloy_sol_types::private::FixedBytes<16>, alloy_sol_types::private::FixedBytes<17>, alloy_sol_types::private::FixedBytes<18>, alloy_sol_types::private::FixedBytes<19>, alloy_sol_types::private::FixedBytes<20>, alloy_sol_types::private::FixedBytes<21>, alloy_sol_types::private::FixedBytes<22>, alloy_sol_types::private::FixedBytes<23>, alloy_sol_types::private::FixedBytes<24>, alloy_sol_types::private::FixedBytes<25>, alloy_sol_types::private::FixedBytes<26>, alloy_sol_types::private::FixedBytes<27>, alloy_sol_types::private::FixedBytes<28>, alloy_sol_types::private::FixedBytes<29>, alloy_sol_types::private::FixedBytes<30>, alloy_sol_types::private::FixedBytes<31>, alloy_sol_types::private::FixedBytes<32>, alloy_sol_types::private::Signed<256, 4>, i8, i16, alloy_sol_types::private::Signed<24, 1>, i32, alloy_sol_types::private::Signed<40, 1>, alloy_sol_types::private::Signed<48, 1>, alloy_sol_types::private::Signed<56, 1>, i64, alloy_sol_types::private::Signed<72, 2>, alloy_sol_types::private::Signed<80, 2>, alloy_sol_types::private::Signed<88, 2>, alloy_sol_types::private::Signed<96, 2>, alloy_sol_types::private::Signed<104, 2>, alloy_sol_types::private::Signed<112, 2>, alloy_sol_types::private::Signed<120, 2>, i128, alloy_sol_types::private::Signed<136, 3>, alloy_sol_types::private::Signed<144, 3>, alloy_sol_types::private::Signed<152, 3>, alloy_sol_types::private::Signed<160, 3>, alloy_sol_types::private::Signed<168, 3>, alloy_sol_types::private::Signed<176, 3>, alloy_sol_types::private::Signed<184, 3>, alloy_sol_types::private::Signed<192, 3>, alloy_sol_types::private::Signed<200, 4>, alloy_sol_types::private::Signed<208, 4>, alloy_sol_types::private::Signed<216, 4>, alloy_sol_types::private::Signed<224, 4>, alloy_sol_types::private::Signed<232, 4>, alloy_sol_types::private::Signed<240, 4>, alloy_sol_types::private::Signed<248, 4>, alloy_sol_types::private::Signed<256, 4>, alloy_sol_types::private::Uint<256, 4>, u8, u16, alloy_sol_types::private::Uint<24, 1>, u32, alloy_sol_types::private::Uint<40, 1>, alloy_sol_types::private::Uint<48, 1>, alloy_sol_types::private::Uint<56, 1>, u64, alloy_sol_types::private::Uint<72, 2>, alloy_sol_types::private::Uint<80, 2>, alloy_sol_types::private::Uint<88, 2>, alloy_sol_types::private::Uint<96, 2>, alloy_sol_types::private::Uint<104, 2>, alloy_sol_types::private::Uint<112, 2>, alloy_sol_types::private::Uint<120, 2>, u128, alloy_sol_types::private::Uint<136, 3>, alloy_sol_types::private::Uint<144, 3>, alloy_sol_types::private::Uint<152, 3>, alloy_sol_types::private::Uint<160, 3>, alloy_sol_types::private::Uint<168, 3>, alloy_sol_types::private::Uint<176, 3>, alloy_sol_types::private::Uint<184, 3>, alloy_sol_types::private::Uint<192, 3>, alloy_sol_types::private::Uint<200, 4>, alloy_sol_types::private::Uint<208, 4>, alloy_sol_types::private::Uint<216, 4>, alloy_sol_types::private::Uint<224, 4>, alloy_sol_types::private::Uint<232, 4>, alloy_sol_types::private::Uint<240, 4>, alloy_sol_types::private::Uint<248, 4>, alloy_sol_types::private::Uint<256, 4>): SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, alloy_sol_types::sol_data::Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Int<8>, alloy_sol_types::sol_data::Int<16>, alloy_sol_types::sol_data::Int<24>, alloy_sol_types::sol_data::Int<32>, alloy_sol_types::sol_data::Int<40>, alloy_sol_types::sol_data::Int<48>, alloy_sol_types::sol_data::Int<56>, alloy_sol_types::sol_data::Int<64>, alloy_sol_types::sol_data::Int<72>, alloy_sol_types::sol_data::Int<80>, alloy_sol_types::sol_data::Int<88>, alloy_sol_types::sol_data::Int<96>, alloy_sol_types::sol_data::Int<104>, alloy_sol_types::sol_data::Int<112>, alloy_sol_types::sol_data::Int<120>, alloy_sol_types::sol_data::Int<128>, alloy_sol_types::sol_data::Int<136>, alloy_sol_types::sol_data::Int<144>, alloy_sol_types::sol_data::Int<152>, alloy_sol_types::sol_data::Int<160>, alloy_sol_types::sol_data::Int<168>, alloy_sol_types::sol_data::Int<176>, alloy_sol_types::sol_data::Int<184>, alloy_sol_types::sol_data::Int<192>, alloy_sol_types::sol_data::Int<200>, alloy_sol_types::sol_data::Int<208>, alloy_sol_types::sol_data::Int<216>, alloy_sol_types::sol_data::Int<224>, alloy_sol_types::sol_data::Int<232>, alloy_sol_types::sol_data::Int<240>, alloy_sol_types::sol_data::Int<248>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not satisfied --> tests/ui/type.rs:3:1 | 3 | / sol! { @@ -164,17 +164,17 @@ error[E0277]: the trait bound `(alloy_sol_types::private::Address, alloy_sol_typ ... | 111 | | } 112 | | } - | |_^ the trait `SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, Int<256>, Int<8>, Int<16>, Int<24>, Int<32>, Int<40>, Int<48>, Int<56>, Int<64>, Int<72>, Int<80>, Int<88>, Int<96>, Int<104>, Int<112>, Int<120>, Int<128>, Int<136>, Int<144>, Int<152>, Int<160>, Int<168>, Int<176>, Int<184>, Int<192>, Int<200>, Int<208>, Int<216>, Int<224>, Int<232>, Int<240>, Int<248>, Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not implemented for `(Address, ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ...)` + | |_^ the trait `SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, alloy_sol_types::sol_data::Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Int<8>, alloy_sol_types::sol_data::Int<16>, alloy_sol_types::sol_data::Int<24>, alloy_sol_types::sol_data::Int<32>, alloy_sol_types::sol_data::Int<40>, alloy_sol_types::sol_data::Int<48>, alloy_sol_types::sol_data::Int<56>, alloy_sol_types::sol_data::Int<64>, alloy_sol_types::sol_data::Int<72>, alloy_sol_types::sol_data::Int<80>, alloy_sol_types::sol_data::Int<88>, alloy_sol_types::sol_data::Int<96>, alloy_sol_types::sol_data::Int<104>, alloy_sol_types::sol_data::Int<112>, alloy_sol_types::sol_data::Int<120>, alloy_sol_types::sol_data::Int<128>, alloy_sol_types::sol_data::Int<136>, alloy_sol_types::sol_data::Int<144>, alloy_sol_types::sol_data::Int<152>, alloy_sol_types::sol_data::Int<160>, alloy_sol_types::sol_data::Int<168>, alloy_sol_types::sol_data::Int<176>, alloy_sol_types::sol_data::Int<184>, alloy_sol_types::sol_data::Int<192>, alloy_sol_types::sol_data::Int<200>, alloy_sol_types::sol_data::Int<208>, alloy_sol_types::sol_data::Int<216>, alloy_sol_types::sol_data::Int<224>, alloy_sol_types::sol_data::Int<232>, alloy_sol_types::sol_data::Int<240>, alloy_sol_types::sol_data::Int<248>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not implemented for `(Address, ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ...)` | = help: the following other types implement trait `SolTypeValue`: - <() as SolTypeValue<()>> - <(T1, T2) as SolTypeValue<(U1, U2)>> - <(T1, T2, T3) as SolTypeValue<(U1, U2, U3)>> - <(T1, T2, T3, T4) as SolTypeValue<(U1, U2, U3, U4)>> - <(T1, T2, T3, T4, T5) as SolTypeValue<(U1, U2, U3, U4, U5)>> - <(T1, T2, T3, T4, T5, T6) as SolTypeValue<(U1, U2, U3, U4, U5, U6)>> - <(T1, T2, T3, T4, T5, T6, T7) as SolTypeValue<(U1, U2, U3, U4, U5, U6, U7)>> - <(T1, T2, T3, T4, T5, T6, T7, T8) as SolTypeValue<(U1, U2, U3, U4, U5, U6, U7, U8)>> + `()` implements `SolTypeValue<()>` + `(T1, T2)` implements `SolTypeValue<(U1, U2)>` + `(T1, T2, T3)` implements `SolTypeValue<(U1, U2, U3)>` + `(T1, T2, T3, T4)` implements `SolTypeValue<(U1, U2, U3, U4)>` + `(T1, T2, T3, T4, T5)` implements `SolTypeValue<(U1, U2, U3, U4, U5)>` + `(T1, T2, T3, T4, T5, T6)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6)>` + `(T1, T2, T3, T4, T5, T6, T7)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6, U7)>` + `(T1, T2, T3, T4, T5, T6, T7, T8)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6, U7, U8)>` and $N others note: required by a bound in `alloy_sol_types::SolType::abi_encoded_size` --> src/types/ty.rs @@ -183,7 +183,7 @@ note: required by a bound in `alloy_sol_types::SolType::abi_encoded_size` | ^^^^^^^^^^^^^^^^^^ required by this bound in `SolType::abi_encoded_size` = note: this error originates in the macro `sol` (in Nightly builds, run with -Z macro-backtrace for more info) -error[E0277]: the trait bound `(alloy_sol_types::private::Address, alloy_sol_types::private::Address, std::string::String, bool, alloy_sol_types::private::Bytes, alloy_sol_types::private::FixedBytes<1>, alloy_sol_types::private::FixedBytes<2>, alloy_sol_types::private::FixedBytes<3>, alloy_sol_types::private::FixedBytes<4>, alloy_sol_types::private::FixedBytes<5>, alloy_sol_types::private::FixedBytes<6>, alloy_sol_types::private::FixedBytes<7>, alloy_sol_types::private::FixedBytes<8>, alloy_sol_types::private::FixedBytes<9>, alloy_sol_types::private::FixedBytes<10>, alloy_sol_types::private::FixedBytes<11>, alloy_sol_types::private::FixedBytes<12>, alloy_sol_types::private::FixedBytes<13>, alloy_sol_types::private::FixedBytes<14>, alloy_sol_types::private::FixedBytes<15>, alloy_sol_types::private::FixedBytes<16>, alloy_sol_types::private::FixedBytes<17>, alloy_sol_types::private::FixedBytes<18>, alloy_sol_types::private::FixedBytes<19>, alloy_sol_types::private::FixedBytes<20>, alloy_sol_types::private::FixedBytes<21>, alloy_sol_types::private::FixedBytes<22>, alloy_sol_types::private::FixedBytes<23>, alloy_sol_types::private::FixedBytes<24>, alloy_sol_types::private::FixedBytes<25>, alloy_sol_types::private::FixedBytes<26>, alloy_sol_types::private::FixedBytes<27>, alloy_sol_types::private::FixedBytes<28>, alloy_sol_types::private::FixedBytes<29>, alloy_sol_types::private::FixedBytes<30>, alloy_sol_types::private::FixedBytes<31>, alloy_sol_types::private::FixedBytes<32>, Signed<256, 4>, i8, i16, i32, i32, i64, i64, i64, i64, i128, i128, i128, i128, i128, i128, i128, i128, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, Signed<256, 4>, alloy_sol_types::private::Uint<256, 4>, u8, u16, u32, u32, u64, u64, u64, u64, u128, u128, u128, u128, u128, u128, u128, u128, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>, alloy_sol_types::private::Uint<256, 4>): SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, Int<256>, Int<8>, Int<16>, Int<24>, Int<32>, Int<40>, Int<48>, Int<56>, Int<64>, Int<72>, Int<80>, Int<88>, Int<96>, Int<104>, Int<112>, Int<120>, Int<128>, Int<136>, Int<144>, Int<152>, Int<160>, Int<168>, Int<176>, Int<184>, Int<192>, Int<200>, Int<208>, Int<216>, Int<224>, Int<232>, Int<240>, Int<248>, Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not satisfied +error[E0277]: the trait bound `(alloy_sol_types::private::Address, alloy_sol_types::private::Address, std::string::String, bool, alloy_sol_types::private::Bytes, alloy_sol_types::private::FixedBytes<1>, alloy_sol_types::private::FixedBytes<2>, alloy_sol_types::private::FixedBytes<3>, alloy_sol_types::private::FixedBytes<4>, alloy_sol_types::private::FixedBytes<5>, alloy_sol_types::private::FixedBytes<6>, alloy_sol_types::private::FixedBytes<7>, alloy_sol_types::private::FixedBytes<8>, alloy_sol_types::private::FixedBytes<9>, alloy_sol_types::private::FixedBytes<10>, alloy_sol_types::private::FixedBytes<11>, alloy_sol_types::private::FixedBytes<12>, alloy_sol_types::private::FixedBytes<13>, alloy_sol_types::private::FixedBytes<14>, alloy_sol_types::private::FixedBytes<15>, alloy_sol_types::private::FixedBytes<16>, alloy_sol_types::private::FixedBytes<17>, alloy_sol_types::private::FixedBytes<18>, alloy_sol_types::private::FixedBytes<19>, alloy_sol_types::private::FixedBytes<20>, alloy_sol_types::private::FixedBytes<21>, alloy_sol_types::private::FixedBytes<22>, alloy_sol_types::private::FixedBytes<23>, alloy_sol_types::private::FixedBytes<24>, alloy_sol_types::private::FixedBytes<25>, alloy_sol_types::private::FixedBytes<26>, alloy_sol_types::private::FixedBytes<27>, alloy_sol_types::private::FixedBytes<28>, alloy_sol_types::private::FixedBytes<29>, alloy_sol_types::private::FixedBytes<30>, alloy_sol_types::private::FixedBytes<31>, alloy_sol_types::private::FixedBytes<32>, alloy_sol_types::private::Signed<256, 4>, i8, i16, alloy_sol_types::private::Signed<24, 1>, i32, alloy_sol_types::private::Signed<40, 1>, alloy_sol_types::private::Signed<48, 1>, alloy_sol_types::private::Signed<56, 1>, i64, alloy_sol_types::private::Signed<72, 2>, alloy_sol_types::private::Signed<80, 2>, alloy_sol_types::private::Signed<88, 2>, alloy_sol_types::private::Signed<96, 2>, alloy_sol_types::private::Signed<104, 2>, alloy_sol_types::private::Signed<112, 2>, alloy_sol_types::private::Signed<120, 2>, i128, alloy_sol_types::private::Signed<136, 3>, alloy_sol_types::private::Signed<144, 3>, alloy_sol_types::private::Signed<152, 3>, alloy_sol_types::private::Signed<160, 3>, alloy_sol_types::private::Signed<168, 3>, alloy_sol_types::private::Signed<176, 3>, alloy_sol_types::private::Signed<184, 3>, alloy_sol_types::private::Signed<192, 3>, alloy_sol_types::private::Signed<200, 4>, alloy_sol_types::private::Signed<208, 4>, alloy_sol_types::private::Signed<216, 4>, alloy_sol_types::private::Signed<224, 4>, alloy_sol_types::private::Signed<232, 4>, alloy_sol_types::private::Signed<240, 4>, alloy_sol_types::private::Signed<248, 4>, alloy_sol_types::private::Signed<256, 4>, alloy_sol_types::private::Uint<256, 4>, u8, u16, alloy_sol_types::private::Uint<24, 1>, u32, alloy_sol_types::private::Uint<40, 1>, alloy_sol_types::private::Uint<48, 1>, alloy_sol_types::private::Uint<56, 1>, u64, alloy_sol_types::private::Uint<72, 2>, alloy_sol_types::private::Uint<80, 2>, alloy_sol_types::private::Uint<88, 2>, alloy_sol_types::private::Uint<96, 2>, alloy_sol_types::private::Uint<104, 2>, alloy_sol_types::private::Uint<112, 2>, alloy_sol_types::private::Uint<120, 2>, u128, alloy_sol_types::private::Uint<136, 3>, alloy_sol_types::private::Uint<144, 3>, alloy_sol_types::private::Uint<152, 3>, alloy_sol_types::private::Uint<160, 3>, alloy_sol_types::private::Uint<168, 3>, alloy_sol_types::private::Uint<176, 3>, alloy_sol_types::private::Uint<184, 3>, alloy_sol_types::private::Uint<192, 3>, alloy_sol_types::private::Uint<200, 4>, alloy_sol_types::private::Uint<208, 4>, alloy_sol_types::private::Uint<216, 4>, alloy_sol_types::private::Uint<224, 4>, alloy_sol_types::private::Uint<232, 4>, alloy_sol_types::private::Uint<240, 4>, alloy_sol_types::private::Uint<248, 4>, alloy_sol_types::private::Uint<256, 4>): SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, alloy_sol_types::sol_data::Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Int<8>, alloy_sol_types::sol_data::Int<16>, alloy_sol_types::sol_data::Int<24>, alloy_sol_types::sol_data::Int<32>, alloy_sol_types::sol_data::Int<40>, alloy_sol_types::sol_data::Int<48>, alloy_sol_types::sol_data::Int<56>, alloy_sol_types::sol_data::Int<64>, alloy_sol_types::sol_data::Int<72>, alloy_sol_types::sol_data::Int<80>, alloy_sol_types::sol_data::Int<88>, alloy_sol_types::sol_data::Int<96>, alloy_sol_types::sol_data::Int<104>, alloy_sol_types::sol_data::Int<112>, alloy_sol_types::sol_data::Int<120>, alloy_sol_types::sol_data::Int<128>, alloy_sol_types::sol_data::Int<136>, alloy_sol_types::sol_data::Int<144>, alloy_sol_types::sol_data::Int<152>, alloy_sol_types::sol_data::Int<160>, alloy_sol_types::sol_data::Int<168>, alloy_sol_types::sol_data::Int<176>, alloy_sol_types::sol_data::Int<184>, alloy_sol_types::sol_data::Int<192>, alloy_sol_types::sol_data::Int<200>, alloy_sol_types::sol_data::Int<208>, alloy_sol_types::sol_data::Int<216>, alloy_sol_types::sol_data::Int<224>, alloy_sol_types::sol_data::Int<232>, alloy_sol_types::sol_data::Int<240>, alloy_sol_types::sol_data::Int<248>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not satisfied --> tests/ui/type.rs:3:1 | 3 | / sol! { @@ -193,17 +193,17 @@ error[E0277]: the trait bound `(alloy_sol_types::private::Address, alloy_sol_typ ... | 111 | | } 112 | | } - | |_^ the trait `SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, Int<256>, Int<8>, Int<16>, Int<24>, Int<32>, Int<40>, Int<48>, Int<56>, Int<64>, Int<72>, Int<80>, Int<88>, Int<96>, Int<104>, Int<112>, Int<120>, Int<128>, Int<136>, Int<144>, Int<152>, Int<160>, Int<168>, Int<176>, Int<184>, Int<192>, Int<200>, Int<208>, Int<216>, Int<224>, Int<232>, Int<240>, Int<248>, Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not implemented for `(Address, ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ...)` + | |_^ the trait `SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, alloy_sol_types::sol_data::Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Int<8>, alloy_sol_types::sol_data::Int<16>, alloy_sol_types::sol_data::Int<24>, alloy_sol_types::sol_data::Int<32>, alloy_sol_types::sol_data::Int<40>, alloy_sol_types::sol_data::Int<48>, alloy_sol_types::sol_data::Int<56>, alloy_sol_types::sol_data::Int<64>, alloy_sol_types::sol_data::Int<72>, alloy_sol_types::sol_data::Int<80>, alloy_sol_types::sol_data::Int<88>, alloy_sol_types::sol_data::Int<96>, alloy_sol_types::sol_data::Int<104>, alloy_sol_types::sol_data::Int<112>, alloy_sol_types::sol_data::Int<120>, alloy_sol_types::sol_data::Int<128>, alloy_sol_types::sol_data::Int<136>, alloy_sol_types::sol_data::Int<144>, alloy_sol_types::sol_data::Int<152>, alloy_sol_types::sol_data::Int<160>, alloy_sol_types::sol_data::Int<168>, alloy_sol_types::sol_data::Int<176>, alloy_sol_types::sol_data::Int<184>, alloy_sol_types::sol_data::Int<192>, alloy_sol_types::sol_data::Int<200>, alloy_sol_types::sol_data::Int<208>, alloy_sol_types::sol_data::Int<216>, alloy_sol_types::sol_data::Int<224>, alloy_sol_types::sol_data::Int<232>, alloy_sol_types::sol_data::Int<240>, alloy_sol_types::sol_data::Int<248>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not implemented for `(Address, ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ...)` | = help: the following other types implement trait `SolTypeValue`: - <() as SolTypeValue<()>> - <(T1, T2) as SolTypeValue<(U1, U2)>> - <(T1, T2, T3) as SolTypeValue<(U1, U2, U3)>> - <(T1, T2, T3, T4) as SolTypeValue<(U1, U2, U3, U4)>> - <(T1, T2, T3, T4, T5) as SolTypeValue<(U1, U2, U3, U4, U5)>> - <(T1, T2, T3, T4, T5, T6) as SolTypeValue<(U1, U2, U3, U4, U5, U6)>> - <(T1, T2, T3, T4, T5, T6, T7) as SolTypeValue<(U1, U2, U3, U4, U5, U6, U7)>> - <(T1, T2, T3, T4, T5, T6, T7, T8) as SolTypeValue<(U1, U2, U3, U4, U5, U6, U7, U8)>> + `()` implements `SolTypeValue<()>` + `(T1, T2)` implements `SolTypeValue<(U1, U2)>` + `(T1, T2, T3)` implements `SolTypeValue<(U1, U2, U3)>` + `(T1, T2, T3, T4)` implements `SolTypeValue<(U1, U2, U3, U4)>` + `(T1, T2, T3, T4, T5)` implements `SolTypeValue<(U1, U2, U3, U4, U5)>` + `(T1, T2, T3, T4, T5, T6)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6)>` + `(T1, T2, T3, T4, T5, T6, T7)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6, U7)>` + `(T1, T2, T3, T4, T5, T6, T7, T8)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6, U7, U8)>` and $N others note: required by a bound in `alloy_sol_types::SolType::abi_encode_packed_to` --> src/types/ty.rs @@ -211,3 +211,32 @@ note: required by a bound in `alloy_sol_types::SolType::abi_encode_packed_to` | fn abi_encode_packed_to>(rust: &E, out: &mut Vec) { | ^^^^^^^^^^^^^^^^^^ required by this bound in `SolType::abi_encode_packed_to` = note: this error originates in the macro `sol` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0277]: the trait bound `(alloy_sol_types::private::Address, alloy_sol_types::private::Address, std::string::String, bool, alloy_sol_types::private::Bytes, alloy_sol_types::private::FixedBytes<1>, alloy_sol_types::private::FixedBytes<2>, alloy_sol_types::private::FixedBytes<3>, alloy_sol_types::private::FixedBytes<4>, alloy_sol_types::private::FixedBytes<5>, alloy_sol_types::private::FixedBytes<6>, alloy_sol_types::private::FixedBytes<7>, alloy_sol_types::private::FixedBytes<8>, alloy_sol_types::private::FixedBytes<9>, alloy_sol_types::private::FixedBytes<10>, alloy_sol_types::private::FixedBytes<11>, alloy_sol_types::private::FixedBytes<12>, alloy_sol_types::private::FixedBytes<13>, alloy_sol_types::private::FixedBytes<14>, alloy_sol_types::private::FixedBytes<15>, alloy_sol_types::private::FixedBytes<16>, alloy_sol_types::private::FixedBytes<17>, alloy_sol_types::private::FixedBytes<18>, alloy_sol_types::private::FixedBytes<19>, alloy_sol_types::private::FixedBytes<20>, alloy_sol_types::private::FixedBytes<21>, alloy_sol_types::private::FixedBytes<22>, alloy_sol_types::private::FixedBytes<23>, alloy_sol_types::private::FixedBytes<24>, alloy_sol_types::private::FixedBytes<25>, alloy_sol_types::private::FixedBytes<26>, alloy_sol_types::private::FixedBytes<27>, alloy_sol_types::private::FixedBytes<28>, alloy_sol_types::private::FixedBytes<29>, alloy_sol_types::private::FixedBytes<30>, alloy_sol_types::private::FixedBytes<31>, alloy_sol_types::private::FixedBytes<32>, alloy_sol_types::private::Signed<256, 4>, i8, i16, alloy_sol_types::private::Signed<24, 1>, i32, alloy_sol_types::private::Signed<40, 1>, alloy_sol_types::private::Signed<48, 1>, alloy_sol_types::private::Signed<56, 1>, i64, alloy_sol_types::private::Signed<72, 2>, alloy_sol_types::private::Signed<80, 2>, alloy_sol_types::private::Signed<88, 2>, alloy_sol_types::private::Signed<96, 2>, alloy_sol_types::private::Signed<104, 2>, alloy_sol_types::private::Signed<112, 2>, alloy_sol_types::private::Signed<120, 2>, i128, alloy_sol_types::private::Signed<136, 3>, alloy_sol_types::private::Signed<144, 3>, alloy_sol_types::private::Signed<152, 3>, alloy_sol_types::private::Signed<160, 3>, alloy_sol_types::private::Signed<168, 3>, alloy_sol_types::private::Signed<176, 3>, alloy_sol_types::private::Signed<184, 3>, alloy_sol_types::private::Signed<192, 3>, alloy_sol_types::private::Signed<200, 4>, alloy_sol_types::private::Signed<208, 4>, alloy_sol_types::private::Signed<216, 4>, alloy_sol_types::private::Signed<224, 4>, alloy_sol_types::private::Signed<232, 4>, alloy_sol_types::private::Signed<240, 4>, alloy_sol_types::private::Signed<248, 4>, alloy_sol_types::private::Signed<256, 4>, alloy_sol_types::private::Uint<256, 4>, u8, u16, alloy_sol_types::private::Uint<24, 1>, u32, alloy_sol_types::private::Uint<40, 1>, alloy_sol_types::private::Uint<48, 1>, alloy_sol_types::private::Uint<56, 1>, u64, alloy_sol_types::private::Uint<72, 2>, alloy_sol_types::private::Uint<80, 2>, alloy_sol_types::private::Uint<88, 2>, alloy_sol_types::private::Uint<96, 2>, alloy_sol_types::private::Uint<104, 2>, alloy_sol_types::private::Uint<112, 2>, alloy_sol_types::private::Uint<120, 2>, u128, alloy_sol_types::private::Uint<136, 3>, alloy_sol_types::private::Uint<144, 3>, alloy_sol_types::private::Uint<152, 3>, alloy_sol_types::private::Uint<160, 3>, alloy_sol_types::private::Uint<168, 3>, alloy_sol_types::private::Uint<176, 3>, alloy_sol_types::private::Uint<184, 3>, alloy_sol_types::private::Uint<192, 3>, alloy_sol_types::private::Uint<200, 4>, alloy_sol_types::private::Uint<208, 4>, alloy_sol_types::private::Uint<216, 4>, alloy_sol_types::private::Uint<224, 4>, alloy_sol_types::private::Uint<232, 4>, alloy_sol_types::private::Uint<240, 4>, alloy_sol_types::private::Uint<248, 4>, alloy_sol_types::private::Uint<256, 4>): SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, alloy_sol_types::sol_data::Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Int<8>, alloy_sol_types::sol_data::Int<16>, alloy_sol_types::sol_data::Int<24>, alloy_sol_types::sol_data::Int<32>, alloy_sol_types::sol_data::Int<40>, alloy_sol_types::sol_data::Int<48>, alloy_sol_types::sol_data::Int<56>, alloy_sol_types::sol_data::Int<64>, alloy_sol_types::sol_data::Int<72>, alloy_sol_types::sol_data::Int<80>, alloy_sol_types::sol_data::Int<88>, alloy_sol_types::sol_data::Int<96>, alloy_sol_types::sol_data::Int<104>, alloy_sol_types::sol_data::Int<112>, alloy_sol_types::sol_data::Int<120>, alloy_sol_types::sol_data::Int<128>, alloy_sol_types::sol_data::Int<136>, alloy_sol_types::sol_data::Int<144>, alloy_sol_types::sol_data::Int<152>, alloy_sol_types::sol_data::Int<160>, alloy_sol_types::sol_data::Int<168>, alloy_sol_types::sol_data::Int<176>, alloy_sol_types::sol_data::Int<184>, alloy_sol_types::sol_data::Int<192>, alloy_sol_types::sol_data::Int<200>, alloy_sol_types::sol_data::Int<208>, alloy_sol_types::sol_data::Int<216>, alloy_sol_types::sol_data::Int<224>, alloy_sol_types::sol_data::Int<232>, alloy_sol_types::sol_data::Int<240>, alloy_sol_types::sol_data::Int<248>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not satisfied + --> tests/ui/type.rs:3:1 + | +3 | / sol! { +4 | | struct BuiltinTypes { +5 | | address a; +6 | | address payable ap; +... | +111 | | } +112 | | } + | |_^ the trait `SolTypeValue<(alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::Address, alloy_sol_types::sol_data::String, alloy_sol_types::sol_data::Bool, alloy_sol_types::sol_data::Bytes, alloy_sol_types::sol_data::FixedBytes<1>, alloy_sol_types::sol_data::FixedBytes<2>, alloy_sol_types::sol_data::FixedBytes<3>, alloy_sol_types::sol_data::FixedBytes<4>, alloy_sol_types::sol_data::FixedBytes<5>, alloy_sol_types::sol_data::FixedBytes<6>, alloy_sol_types::sol_data::FixedBytes<7>, alloy_sol_types::sol_data::FixedBytes<8>, alloy_sol_types::sol_data::FixedBytes<9>, alloy_sol_types::sol_data::FixedBytes<10>, alloy_sol_types::sol_data::FixedBytes<11>, alloy_sol_types::sol_data::FixedBytes<12>, alloy_sol_types::sol_data::FixedBytes<13>, alloy_sol_types::sol_data::FixedBytes<14>, alloy_sol_types::sol_data::FixedBytes<15>, alloy_sol_types::sol_data::FixedBytes<16>, alloy_sol_types::sol_data::FixedBytes<17>, alloy_sol_types::sol_data::FixedBytes<18>, alloy_sol_types::sol_data::FixedBytes<19>, alloy_sol_types::sol_data::FixedBytes<20>, alloy_sol_types::sol_data::FixedBytes<21>, alloy_sol_types::sol_data::FixedBytes<22>, alloy_sol_types::sol_data::FixedBytes<23>, alloy_sol_types::sol_data::FixedBytes<24>, alloy_sol_types::sol_data::FixedBytes<25>, alloy_sol_types::sol_data::FixedBytes<26>, alloy_sol_types::sol_data::FixedBytes<27>, alloy_sol_types::sol_data::FixedBytes<28>, alloy_sol_types::sol_data::FixedBytes<29>, alloy_sol_types::sol_data::FixedBytes<30>, alloy_sol_types::sol_data::FixedBytes<31>, alloy_sol_types::sol_data::FixedBytes<32>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Int<8>, alloy_sol_types::sol_data::Int<16>, alloy_sol_types::sol_data::Int<24>, alloy_sol_types::sol_data::Int<32>, alloy_sol_types::sol_data::Int<40>, alloy_sol_types::sol_data::Int<48>, alloy_sol_types::sol_data::Int<56>, alloy_sol_types::sol_data::Int<64>, alloy_sol_types::sol_data::Int<72>, alloy_sol_types::sol_data::Int<80>, alloy_sol_types::sol_data::Int<88>, alloy_sol_types::sol_data::Int<96>, alloy_sol_types::sol_data::Int<104>, alloy_sol_types::sol_data::Int<112>, alloy_sol_types::sol_data::Int<120>, alloy_sol_types::sol_data::Int<128>, alloy_sol_types::sol_data::Int<136>, alloy_sol_types::sol_data::Int<144>, alloy_sol_types::sol_data::Int<152>, alloy_sol_types::sol_data::Int<160>, alloy_sol_types::sol_data::Int<168>, alloy_sol_types::sol_data::Int<176>, alloy_sol_types::sol_data::Int<184>, alloy_sol_types::sol_data::Int<192>, alloy_sol_types::sol_data::Int<200>, alloy_sol_types::sol_data::Int<208>, alloy_sol_types::sol_data::Int<216>, alloy_sol_types::sol_data::Int<224>, alloy_sol_types::sol_data::Int<232>, alloy_sol_types::sol_data::Int<240>, alloy_sol_types::sol_data::Int<248>, alloy_sol_types::sol_data::Int<256>, alloy_sol_types::sol_data::Uint<256>, alloy_sol_types::sol_data::Uint<8>, alloy_sol_types::sol_data::Uint<16>, alloy_sol_types::sol_data::Uint<24>, alloy_sol_types::sol_data::Uint<32>, alloy_sol_types::sol_data::Uint<40>, alloy_sol_types::sol_data::Uint<48>, alloy_sol_types::sol_data::Uint<56>, alloy_sol_types::sol_data::Uint<64>, alloy_sol_types::sol_data::Uint<72>, alloy_sol_types::sol_data::Uint<80>, alloy_sol_types::sol_data::Uint<88>, alloy_sol_types::sol_data::Uint<96>, alloy_sol_types::sol_data::Uint<104>, alloy_sol_types::sol_data::Uint<112>, alloy_sol_types::sol_data::Uint<120>, alloy_sol_types::sol_data::Uint<128>, alloy_sol_types::sol_data::Uint<136>, alloy_sol_types::sol_data::Uint<144>, alloy_sol_types::sol_data::Uint<152>, alloy_sol_types::sol_data::Uint<160>, alloy_sol_types::sol_data::Uint<168>, alloy_sol_types::sol_data::Uint<176>, alloy_sol_types::sol_data::Uint<184>, alloy_sol_types::sol_data::Uint<192>, alloy_sol_types::sol_data::Uint<200>, alloy_sol_types::sol_data::Uint<208>, alloy_sol_types::sol_data::Uint<216>, alloy_sol_types::sol_data::Uint<224>, alloy_sol_types::sol_data::Uint<232>, alloy_sol_types::sol_data::Uint<240>, alloy_sol_types::sol_data::Uint<248>, alloy_sol_types::sol_data::Uint<256>)>` is not implemented for `(Address, ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ...)` + | + = help: the following other types implement trait `SolTypeValue`: + `()` implements `SolTypeValue<()>` + `(T1, T2)` implements `SolTypeValue<(U1, U2)>` + `(T1, T2, T3)` implements `SolTypeValue<(U1, U2, U3)>` + `(T1, T2, T3, T4)` implements `SolTypeValue<(U1, U2, U3, U4)>` + `(T1, T2, T3, T4, T5)` implements `SolTypeValue<(U1, U2, U3, U4, U5)>` + `(T1, T2, T3, T4, T5, T6)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6)>` + `(T1, T2, T3, T4, T5, T6, T7)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6, U7)>` + `(T1, T2, T3, T4, T5, T6, T7, T8)` implements `SolTypeValue<(U1, U2, U3, U4, U5, U6, U7, U8)>` + and $N others +note: required by a bound in `abi_packed_encoded_size` + --> src/types/ty.rs + | + | fn abi_packed_encoded_size>(rust: &E) -> usize { + | ^^^^^^^^^^^^^^^^^^ required by this bound in `SolType::abi_packed_encoded_size` + = note: this error originates in the macro `sol` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/scripts/bless_tests.sh b/scripts/bless_tests.sh index 5a627f451..a028bc0f3 100755 --- a/scripts/bless_tests.sh +++ b/scripts/bless_tests.sh @@ -4,5 +4,5 @@ set -eo pipefail export RUSTFLAGS="-Zthreads=1" export TRYBUILD=overwrite -cargo +nightly test -p alloy-sol-types --test compiletest -cargo +nightly test -p alloy-sol-types --test compiletest --features json +cargo +nightly test -p alloy-sol-types --test compiletest -- --include-ignored +cargo +nightly test -p alloy-sol-types --test compiletest --features json -- --include-ignored