Skip to content

Audit develop

Audit develop #276

Triggered via pull request September 13, 2024 22:49
Status Success
Total duration 1m 4s
Artifacts

mac.yml

on: pull_request
Matrix: test
Fit to window
Zoom out
Zoom in

Annotations

20 warnings
struct `StorageArray` has a public `len` method, but no `is_empty` method: stylus-sdk/src/storage/array.rs#L42
warning: struct `StorageArray` has a public `len` method, but no `is_empty` method --> stylus-sdk/src/storage/array.rs:42:5 | 42 | pub const fn len(&self) -> usize { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty = note: `#[warn(clippy::len_without_is_empty)]` on by default
doc list item without indentation: stylus-sdk/src/lib.rs#L13
warning: doc list item without indentation --> stylus-sdk/src/lib.rs:13:5 | 13 | //! storage caching. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation = note: `#[warn(clippy::doc_lazy_continuation)]` on by default help: indent this line | 13 | //! storage caching. | ++
first doc comment paragraph is too long: stylus-sdk/src/storage/traits.rs#L100
warning: first doc comment paragraph is too long --> stylus-sdk/src/storage/traits.rs:100:1 | 100 | / /// Binds a storage accessor to a lifetime to prevent aliasing. 101 | | /// Because this type doesn't implement `DerefMut`, mutable methods on the accessor aren't available. 102 | | /// For a mutable accessor, see [`StorageGuardMut`]. | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph help: add an empty line | 100 ~ /// Binds a storage accessor to a lifetime to prevent aliasing. 101 + /// |
first doc comment paragraph is too long: stylus-sdk/src/storage/traits.rs#L87
warning: first doc comment paragraph is too long --> stylus-sdk/src/storage/traits.rs:87:1 | 87 | / /// Trait for top-level storage types, usually implemented by proc macros. 88 | | /// Top-level types are special in that their lifetimes track the entirety 89 | | /// of all the EVM state-changes throughout a contract invocation. 90 | | /// 91 | | /// To prevent storage aliasing during reentrancy, you must hold a reference | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph help: add an empty line | 87 ~ /// Trait for top-level storage types, usually implemented by proc macros. 88 + /// |
first doc comment paragraph is too long: stylus-sdk/src/storage/traits.rs#L76
warning: first doc comment paragraph is too long --> stylus-sdk/src/storage/traits.rs:76:1 | 76 | / /// Trait for simple accessors that store no more than their wrapped value. 77 | | /// The type's representation must be entirely inline, or storage leaks become possible. 78 | | /// Note: it is a logic error if erasure does anything more than writing the zero-value. | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph help: add an empty line | 76 ~ /// Trait for simple accessors that store no more than their wrapped value. 77 + /// |
first doc comment paragraph is too long: stylus-sdk/src/storage/traits.rs#L12
warning: first doc comment paragraph is too long --> stylus-sdk/src/storage/traits.rs:12:1 | 12 | / /// Accessor trait that lets a type be used in persistent storage. 13 | | /// Users can implement this trait to add novel data structures to their contract definitions. 14 | | /// The Stylus SDK by default provides only solidity types, which are represented [`the same way`]. 15 | | /// 16 | | /// [`the same way`]: https://docs.soliditylang.org/en/latest/internals/layout_in_storage.html | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph help: add an empty line | 12 ~ /// Accessor trait that lets a type be used in persistent storage. 13 + /// |
struct `StorageArray` has a public `len` method, but no `is_empty` method: stylus-sdk/src/storage/array.rs#L42
warning: struct `StorageArray` has a public `len` method, but no `is_empty` method --> stylus-sdk/src/storage/array.rs:42:5 | 42 | pub const fn len(&self) -> usize { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty = note: `#[warn(clippy::len_without_is_empty)]` on by default
first doc comment paragraph is too long: stylus-sdk/src/hostio.rs#L448
warning: first doc comment paragraph is too long --> stylus-sdk/src/hostio.rs:448:11 | 448 | $(#[$meta])* | ^ | ::: stylus-sdk/src/msg.rs:23:1 | 23 | / wrap_hostio!( 24 | | /// Gets the address of the account that called the program. For normal L2-to-L2 transactions 25 | | /// the semantics are equivalent to that of the EVM's [`CALLER`] opcode, including in cases 26 | | /// arising from [`DELEGATE_CALL`]. ... | 34 | | sender SENDER msg_sender Address 35 | | ); | |_- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph = note: this warning originates in the macro `wrap_hostio` (in Nightly builds, run with -Z macro-backtrace for more info)
first doc comment paragraph is too long: stylus-sdk/src/methods.rs#L6
warning: first doc comment paragraph is too long --> stylus-sdk/src/methods.rs:6:1 | 6 | / /// State mutability of a contract fuction. This is currently used for checking whether contracts 7 | | /// are allowed to override a function from another contract they inherit from. 8 | | /// Users should not need this type outside of proc macros. | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph = note: `#[warn(clippy::too_long_first_doc_paragraph)]` on by default
doc list item without indentation: stylus-sdk/src/lib.rs#L13
warning: doc list item without indentation --> stylus-sdk/src/lib.rs:13:5 | 13 | //! storage caching. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation = note: `#[warn(clippy::doc_lazy_continuation)]` on by default help: indent this line | 13 | //! storage caching. | ++
first doc comment paragraph is too long: stylus-proc/src/lib.rs#L389
warning: first doc comment paragraph is too long --> stylus-proc/src/lib.rs:389:1 | 389 | / /// Just as with storage, Stylus SDK methods are Solidity ABI-equivalent. This means that contracts written 390 | | /// in different programming languages are fully interoperable. You can even automatically export your 391 | | /// Rust contract as a Solidity interface so that others can add it to their Solidity projects. 392 | | /// 393 | | /// This macro makes methods "public" so that other contracts can call them by implementing the [`Router`] trait. | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph
first doc comment paragraph is too long: stylus-proc/src/lib.rs#L318
warning: first doc comment paragraph is too long --> stylus-proc/src/lib.rs:318:1 | 318 | / /// Defines the entrypoint, which is where Stylus execution begins. 319 | | /// Without it the contract will fail to pass [`cargo stylus check`][check]. 320 | | /// Most commonly this macro is used to annotate the top level storage `struct`. 321 | | /// 322 | | /// ```ignore | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph help: add an empty line | 318 ~ /// Defines the entrypoint, which is where Stylus execution begins. 319 + /// |
first doc comment paragraph is too long: stylus-proc/src/lib.rs#L250
warning: first doc comment paragraph is too long --> stylus-proc/src/lib.rs:250:1 | 250 | / /// Some [`StorageType`] values implement [`Erase`], which provides an [`erase()`] method for clearing state. 251 | | /// [The Stylus SDK][sdk] implements [`Erase`] for all primitives, and for vectors of primitives, but not for maps. 252 | | /// This is because a Solidity mapping does not provide iteration, and so it's generally impossible to 253 | | /// know which slots to clear. 254 | | /// 255 | | /// Structs may also be [`Erase`] if all of the fields are. `#[derive(Erase)]` | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph help: add an empty line | 250 ~ /// Some [`StorageType`] values implement [`Erase`], which provides an [`erase()`] method for clearing state. 251 + /// |
first doc comment paragraph is too long: stylus-proc/src/lib.rs#L79
warning: first doc comment paragraph is too long --> stylus-proc/src/lib.rs:79:1 | 79 | / /// The types in [`#[storage]`][storage] are laid out in the EVM state trie exactly 80 | | /// as they are in [Solidity][solidity]. This means that the fields of a `struct` definition will map 81 | | /// to the same storage slots as they would in EVM programming languages. Hence, it is often nice to 82 | | /// define types using Solidity syntax, which makes this guarantee easier to see. 83 | | /// 84 | | /// ```ignore | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph = note: `#[warn(clippy::too_long_first_doc_paragraph)]` on by default
first doc comment paragraph is too long: stylus-proc/src/lib.rs#L389
warning: first doc comment paragraph is too long --> stylus-proc/src/lib.rs:389:1 | 389 | / /// Just as with storage, Stylus SDK methods are Solidity ABI-equivalent. This means that contracts written 390 | | /// in different programming languages are fully interoperable. You can even automatically export your 391 | | /// Rust contract as a Solidity interface so that others can add it to their Solidity projects. 392 | | /// 393 | | /// This macro makes methods "public" so that other contracts can call them by implementing the [`Router`] trait. | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph
first doc comment paragraph is too long: stylus-proc/src/lib.rs#L318
warning: first doc comment paragraph is too long --> stylus-proc/src/lib.rs:318:1 | 318 | / /// Defines the entrypoint, which is where Stylus execution begins. 319 | | /// Without it the contract will fail to pass [`cargo stylus check`][check]. 320 | | /// Most commonly this macro is used to annotate the top level storage `struct`. 321 | | /// 322 | | /// ```ignore | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph help: add an empty line | 318 ~ /// Defines the entrypoint, which is where Stylus execution begins. 319 + /// |
first doc comment paragraph is too long: stylus-proc/src/lib.rs#L250
warning: first doc comment paragraph is too long --> stylus-proc/src/lib.rs:250:1 | 250 | / /// Some [`StorageType`] values implement [`Erase`], which provides an [`erase()`] method for clearing state. 251 | | /// [The Stylus SDK][sdk] implements [`Erase`] for all primitives, and for vectors of primitives, but not for maps. 252 | | /// This is because a Solidity mapping does not provide iteration, and so it's generally impossible to 253 | | /// know which slots to clear. 254 | | /// 255 | | /// Structs may also be [`Erase`] if all of the fields are. `#[derive(Erase)]` | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph help: add an empty line | 250 ~ /// Some [`StorageType`] values implement [`Erase`], which provides an [`erase()`] method for clearing state. 251 + /// |
first doc comment paragraph is too long: stylus-proc/src/lib.rs#L79
warning: first doc comment paragraph is too long --> stylus-proc/src/lib.rs:79:1 | 79 | / /// The types in [`#[storage]`][storage] are laid out in the EVM state trie exactly 80 | | /// as they are in [Solidity][solidity]. This means that the fields of a `struct` definition will map 81 | | /// to the same storage slots as they would in EVM programming languages. Hence, it is often nice to 82 | | /// define types using Solidity syntax, which makes this guarantee easier to see. 83 | | /// 84 | | /// ```ignore | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_long_first_doc_paragraph = note: `#[warn(clippy::too_long_first_doc_paragraph)]` on by default
(aarch64-apple-darwin, stable)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
(aarch64-apple-darwin, nightly)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/