Solidity Summit 2022 Agenda

Time Title Speaker
9:00 +++ Registration Opens +++
Opening & Welcome
We welcome you to the Solidity Summit, give and overview of the content of day, the venue, and everything else you need to know.
Franziska Heintel
Solidity Team, EF
Solidity in 2022: Recent and Planned Features
In the recent months, Solidity has introduced several exciting features that make it more flexible and safer at the same time, without compromising on performance. I would like to show you some examples of what is possible with the latest version of Solidity and explain some reasoning behind the features. The improvements do not stop there, though: We want to allow you to write generic code, improve the memory management and extract as much "magical code" from the compiler into a generic library as possible.
Christian Reitwiessner
Solidity Team, EF
Thanks for all the bugs!
In the past year, we (Dedaub) have disclosed numerous vulnerabilities in deployed smart contracts and received 8 significant bug bounties totaling over $2.5M. The talk derives from this experience: I'll talk about the Dedaub tooling (including the code explorer) and a couple of Solidity patterns that have been behind high-value vulnerabilities we've identified. The main body of the talk, however, will focus on a simple question: "what can I do as a developer to make my smart contract auditor more efficient and effective?" This is not much different from asking "how can I write better code?" but I intend to give actionable advice, based on numerous audits (and instances of hair pulling).
Yannis Smaragdakis
Good practices from a Data Analyst Perspective
Make an approach to good practices on events emission, to introduce to Sol developers an idea on how to model the event database so that the information is available for posterior data analysts. I see a lot of gas saving discussions, and none on good data practices, as well as very few clean data dashboards, because of hacky implementations.
DeFi Wonderland
11:25 +++ Short Break +++
Mocking of Internal Functions in Solidity Unit Tests
The smart contracts for make use of lots of small, inter-dependent, internal functions. The best solution we could find to solve these issues at the time was smock (which is probably still the best option), however this only allows mocking of external functions. As a solution to this, we built a code-generation tool that built out modified smart contracts that externalised all internal functions to call out to an external contract so that we can selectively turn on mocking for any internal function and use smock on any internal function. All this code was generated by looking at the AST, abi and contract code in the code-gen process. We are currently in the process of experimenting with how we can use similar techniques in forge/foundry contract testing.
Jason Smythe
Float Capital
Create 2 Patterns
I would enjoy talking about various interesting things you can do using `create2`. That goes all the way from proxies that don't need to explicitly store owners, to crosschain address oracles and fancy bridge escrowing systems. I want to highlight a couple of these different approaches and how they are used in deployed applications.
Offchain Labs building Arbitrum
Foundry - A blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
Foundry is a portable, fast and modular toolkit for Ethereum application development.
Georgios Konstantopoulos
Foundry 101, a hands-on introduction
We will go through examples of using Foundry in the real-world™️ and also see how we can easily migrate existing testing suites to Foundry.
12:50 +++ Lunch Break +++
dΞth Crypto
At DethCrypto we are working on dev tooling for crypto. You might have used typechain, eth-sdk, earl or deth code. I would briefly go through those tools and then talk about the Solidity profiling service we are building and unique features it will provide.
Leo Logvinov
Remix Hybrid Tools
Remix Hybrid tools to help drafting and developing dapps.
Remix Team, EF
Presenting @truffle/decoder
Truffle's ultra-powerful @truffle/decoder package, a high-level interface for decoding transactions, events, and state variables for Ethereum smart contracts.
G. Nicholas D'Andrea
Human-Friendly Contract Interactions with Sourcify Verification
Goodbye YOLO-Signing! Sourcify's source code verification via contract metadata enables human-friendly contract interactions and provides byte-by-byte (perfect) matches of the deployed contract. The talk encompasses how perfect matches work, how can you use Sourcify, and what Sourcify's vision for better contract interactions is.
Kaan Uzdogan
Sourcify Team, EF
Hybrid Attack Synthesis for DeFi
We present two open-source analysis tools developed by Veridise, a new software auditing company for smart contracts. First, Vanguard is the first cross-chain tool that finds vulnerabilities in smart contracts by looking for common patterns. Second, Eurus, uses symbolic execution to discover vulnerabilities in smart contracts. Unlike other analysis tools both Vanguard and Eurus provide users with concrete evidence of exploitability. In this talk, we showcase the functionality of these tools and examine how they can automatically generate complex attacks on smart contracts such as flashloan attacks.
Jon Stephens
PRBMath: A Smart Contract Library for Fixed-Point Math
What PRBMath is needed for and the most popular use cases
Paul Razvan Berg
IntelliJ Solidity Debugger
We've been working on a Solidity debugger for IntelliJ this past few months and we'd like to demo it.
Conor Svensson
Web3 Labs
15:45 +++ Short Break +++
What would Solidity look like if it was built today?
Exploring how Solidity would look like if it were designed today, with everything we know about both language development and smart contract development. Including, but not limited to: tooling, zero-cost abstractions, type system, etc. These features can even be added to Solidity in the future if there is demand!
John Adler
Fuel Labs
Bootstrapping a Compiler with Yul
An overview of how Yul has been used in Fe's development. We will discuss how we use Yul to generate bytecode for a high-level language and go over the Rust tooling that assists us.
Grant Wuerker
Fe Team, EF
The Solidity Optimizooooor
There is a lot of mystery behind the Solidity optimizer. Understanding the optimizer would allow one to write contracts that are readable while also being gas efficient. This is especially important for the viaIR pipeline as it enables the compiler to perform complex optimizations. The talk will give an overview of some optimization steps, with a focus on how it affects real world code!
Hari Mulackal
Solidity Team, EF
Generating EVM Bytecode from Yul in the New via-IR Pipeline
While Yul is a low-level language that provides only a thin abstraction over the bare opcodes of the EVM, the transition from Yul to EVM bytecode still leaves room for certain choices: most obviously the control-flow structures of Yul have to be translated to plain jumps in the EVM. But furthermore, Yul does not presuppose the layout of its variables on the EVM's stack - and due to the fact that the EVM merely allows access to the 16 top-most values on its stack, the precise construction of suitable stack layouts and transitions between them is particularly important. In this talk, I will sketch the inner workings of the Yul-to-EVM code transform used in the new via-IR compilation pipeline with enabled optimizer. I will discuss its advantages over the more naive approach used for Yul components in the legacy compiler pipeline, how it interacts with the Yul optimizer to move variables from stack to memory to avoid stack-too-deep errors and what further improvements can be expected in the near future. Lastly, I will hint at the challenges this new mechanism presents for tooling and debuggers.
Daniel Kirchner
Solidity Team, EF
Underhanded Solidity Contest Winner Presentations
The winners of this year's Underhanded Solidity Contest will present their submissions.
Tynan Richards, Santiago Palladino, Michael Zhu
18:00 +++ End of Conference +++