Inside Fuel — October 2022
Welcome to Inside Fuel, our review of technical developments and everything happening on the Fuel Network. Take a moment to catch up on all the latest news.
Newest Additions To Fuel
Building the fastest modular execution layer would not be possible without an incredible contributor team. Here are the newest additions to the team this month:
In The News
According to the Rust In Blockchain monthly review, Fuel is one of the most active Rust-based projects this October with 316 merged PRs, 236 closed issues, and 143 open issues. We are ranked fifth right behind Aptos, Parity, Solana, and Sui.
🎙️ Podcasts & AMAs
⚙️ Workshops
Fullstack Fuel: Writing Smart Contracts in Rust with Sway
Minority Programmers: Building Smart Contracts on Fuel with Sway
🌴 Sway Day
We hosted the first edition of Sway Day, a monthly discussion about all-things Sway, where we had the chance to have the founders of Elix Finance, one of the first granted projects on Fuel.
Public Appearances
🇨🇴 - Devcon, Bogota
We flew to Colombia to attend one of the most significant events of the year, where we participated in various talks:
- New Paradigms by Non-EVM Compatible L2s ft. Nick Dodson
- Scaling Ethereum with the Fastest Modular Execution Layer, by John Adler
- Machismo, Remittance, & Inflation: Scaling Ethereum for Widespread Adoption in LATAM, by Camila Ramos
🇵🇹 - Lisbon
We participated in various events in Lisbon this month, here is an overview of a few of them:
TRGC Panel
Nick Dodson was on stage during the panel organized by TRGC intituled: Post Tornado Cash: Can Web3 Ever Be Truly Decentralized? Watch the replay here.
ETH Lisbon Hackathon
We sponsored ETH Lisbon, a 3 day-long hackathon during which hackers teamed up to build DApps. Read more about the winners here.
StarknetCC panel
Nick Dodson participated in a panel during StarknetCC around high-level-languages implementation on top of Rollups, where he explained the reasons and needs for Sway. Read the TL;DR or watch the full panel replay here.
Technical Updates
Fuelup
What is Fuelup?
Fuelup is the official package manager and multiplexer for Fuel that installs The Fuel Toolchain from the official release channels. It enables you to easily install pre-packaged toolchains, keep them up to date or even create custom toolchains and switch between them.
Binaries are executed through Fuelup as proxies allowing flexibility in the execution of tools.
It simplifies building and maintaining Sway applications with forc and fuel-core for common platforms.
The forc-wallet
now comes with the toolchain by default, i.e. running fuelup toolchain install latest
grabs forc-wallet
automatically as well.
Sway
What is Sway?
Sway is a language for writing smart contracts for the Fuel Virtual Machine (FuelVM), a blazing-fast, blockchain-optimized VM designed for the Fuel blockchain. It is heavily inspired by Rust and aims to bring modern language development and performance to the blockchain ecosystem. Start learning the Sway language today with the Sway Book and the FuelVM Bootcamp.
General Updates
- New support for generic traits in the type system, allowing the writing of more advanced, composable programs with advanced types;
- Significant improvements to compile times by making optimizations to dead code analysis, Bytecode generation, Type checking, Register allocation, and more;
- New support for
asm
control flow for previously unsupported cases; - A new
raw_ptr
type and a new**
operator; - Rework of method application syntax so that
~
is no longer needed; - New support for adding Turbofish-type arguments (
::<T, F>
) to method calls; - An updated way of representing function calls in the compiler backend that helps align the high-level compiler design with our vision of Sway features in the future;
- Removal of the
byte
type in favor of using theu8
type; - Introduce a
__revert
intrinsic and disallowrvrt
,ret
andretd
inasm
blocks; - Disallow
impl self
blocks forContract
; - Enable predicate-specific
asm
checks; - Detect and disallow multiple methods with the same name;
- Improvements to error recovery during compilation;
Standard Library Updates
- New function
set
for theVec<T>
type; - New
Root
,Logarithm
, andBinaryLogarithm
traits implemented foru8
,u16
,u32
,u64
andU128
; - New trait
core::ops::Not
with methodnot()
to replace the free functioncore::ops::not(b: bool)
; - Add
StorageMap
to the standard library prelude; - Rename
transfer_to_output
totransfer_to_address
; - Revamped implementation of
send_message
; - Remove
raw_ptr::addr()
;
Fuel Orchestrator (Forc) Updates
- New
forc-doc
plugin for automatically generating documentation from doc comments; - Introduce support for
[contract-dependencies]
toForc.toml
; - Support for
forc-client
for signing transactions withoutstdio
prompts; - New
--silent
and--log-level
flags;
Forc Backend
- Better error message when fetching a git dependency failed;
- Improve how dependencies are fetched when local git sources are available;
- Additions to the Sway formatter;
- Remove Rust integration testing behavior from
forc test
; - Extract tracing utilities from
forc-util
into a dedicatedforc-tracing
plugin;
Sway Language Server Protocol (LSP)
- New support for inlay hints for variables;
- New support for showing formatted documentation on hover;
- Errors and warnings are now displayed to users inside of their editors;
Fuel Core Updates
- Configurable block production modes (instant, interval, hybrid) for Proof of Authority (PoA);
- PoA block signing has been implemented;
- Multi-transaction blocks;
- Cross-chain asset bridging to/from ETH;
- Coinbase* transactions;
- Generically typed transactions;
- State opcodes now return whether the storage is unset or zeroed via
$rB
flag;
*Coinbase refers to the validators paying themselves for processing a block from the transaction fees. Having a coinbase transaction on each block make this process transparent to all users.
Fuels-rs (Rust SDK) Updates
- Generate
ParamTypes
from your JSON ABITypeApplications
; - Automatic variable output estimation: no need to guess the variable outputs for your transactions;
- You can now
.estimate_tx_dependencies(number_of_tries)
do update your transaction with the correct number of variable outputs. The same is coming for contract inputs; - Contract instance creation now takes a
Bech32ContractId
, not a string, improving the type-safety around contract instantiation; - Notable QoL improvements
- Query the balance from your contract through the
contract_instance
; - Create
Bits256
from strings; - Many improvements to the
Provider
API and many new methods for it;
- Query the balance from your contract through the
Fuels-ts (Typescript SDK) Updates
- New wallet functionality: vault export;
- Full support for messages, which will enable bridge communication with the base layer, which is a major upcoming release;
- The wallet now splits into
WalletLocked
for read-only operations and WalletUnlocked for write operations; - Automatic variable output estimation;
Follow Us
About Us
Fuel is the fastest execution layer for the modular blockchain stack. Powerful and sleek, the technology enables parallel transaction execution, empowering developers with the highest flexible throughput and maximum security required to scale. Developers choose the FuelVM for its superior developer experience and the ability to go beyond the limitations of the EVM.