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

John Adler gave an AMA with vVv Fund
Camila Ramos on Devs Do Something's Podcast

⚙️ 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:

Nick Dodson on a panel about Non-EVM Compatible L2s

🇵🇹 - 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 the u8 type;
  • Introduce a __revert intrinsic and disallow rvrt, ret and retd in asm blocks;
  • Disallow impl self blocks for Contract;
  • 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 the Vec<T> type;
  • New Root, Logarithm, and BinaryLogarithm traits implemented for u8, u16, u32, u64 and U128;
  • New trait core::ops::Not with method not() to replace the free function core::ops::not(b: bool);
  • Add StorageMap to the standard library prelude;
  • Rename transfer_to_output to transfer_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]  to Forc.toml;
  • Support for forc-client for signing transactions without stdio 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 dedicated forc-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 ABI TypeApplications;
  • 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;

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.

Become a Contributor