This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//! THIS IS A GREAT EVIL THAT MUST BE DESTROYED necessitated by the current | |
//! limitations of the `alloy` crate. | |
//! | |
//! This module provides a wrapper for the `SolCall` trait from the `alloy` crate. | |
//! Its main purpose is to create an object-safe interface for `SolCall` implementations, | |
//! allowing for dynamic dispatch and easier handling of different Solidity function calls | |
//! in a uniform manner. | |
//! | |
//! ## Motivation | |
//! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: MIT | |
object "Multicall" { | |
code { | |
// Deploy the contract | |
// Store gas token burn cost in zero slot | |
sstore(0, 0) | |
sstore(1, 0) | |
sstore(2, 0) | |
datacopy(0x0, dataoffset("MulticallRuntime"), datasize("MulticallRuntime")) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: UNLICENSED | |
// It's trivially easy to exploit a weak PRNG based NFT. | |
// Just bundle this with a flashbots bundle where the mint occurs. | |
// | |
// It's also trivially easy to detect/prevent with a took like slither: | |
// https://github.com/crytic/slither/wiki/Detector-Documentation#weak-PRNG | |
pragma solidity ^0.8.0; |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.