Inside Fuel — Summer 2022

Welcome to Inside Fuel, our review of the technical developments on the Fuel Network. Take a moment to catch up with all of the latest news.

Introducing 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 which allow for flexibility in the execution of tools.

It simplifies building and maintaining Sway applications with forc and fuel-core for common platforms.

Right now, fuelup has the latest toolchain as the only pre-packaged official toolchain. Components in this toolchain are tested for compatibility in our GitHub CI before being updated. For more flexibility at the cost of possible incompatibility or instability, advanced users can specify specific versions of components they want to install and use.

Basic usages such as keeping the toolchain or Fuelup up to date can be found here.

For more details on how Fuelup works, as well as usage examples, please refer to The Fuelup Book.

Note that Fuelup is still in active development with more features soon to come. Opening issues for any bugs, or suggestions to improve it are welcome.

Sway Applications

The Sway Applications Repository

The purpose of the Sway Applications repository is to demonstrate what can be built with Sway and to promote good development practices.

​That being said, the repository should be deemed as a living project since the applications will be actively maintained, and thus it is likely that none of them will ever reach their final form!​

The repository is young so there isn't anything for anyone to use yet, however, we have lots of applications in development, and lots more planned to be worked on in the near future.

So far, the applications are planned to have a smart contract to demonstrate Sway, tests written in Rust to demonstrate the Rust-SDK, and a user interface to demonstrate the use of the Typescript-SDK.

​That isn't to say that you cannot have a CLI application, a plugin, or any other type of app. Those are simply not in development at the moment.

This part presents the applications that have gone through some level of scrutiny and have been deemed acceptable to be merged into the master branch.​

NOTE
This does not mean that they are complete nor that development has ceased.​

New DAO Smart-Contract prototype

What is a DAO?

A decentralized autonomous organization (DAO) is akin to an on-chain government where participants are able to cast votes on proposals using some governance token. Various consensus mechanisms may be implemented in order to determine whether a proposal will pass and if that happens then the DAO will begin to operate under the rules of the new proposal.

In this implementation, the user deposits governance tokens and receives some number of votes that can be cast and recast on different proposals. They can vote in favor or against proposals and they can transform their votes back into the governance tokens if they wish to withdraw.

  • The smart contract is mostly complete for the basic implementation. There are some issues that need to be worked out but a UI can be started.
  • The user interface does not currently exist.

Updates

Sway Updates

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.

Versions 0.14.5 - 0.21.0 were released
  • The addition of U256 , StorageVec and more, in the standard library. These are useful data structures for writing Sway programs! And they also open up the doors for Sway users to implement their own complex data structures;
  • The break and continue statements are now supported;
  • New swap  method now available on Vec;
  • New JSON ABI format supporting generics has been added;
  • A new minimum forc version field has been added to the Forc.toml manifest;
  • Introducing configuration-time constants in Forc.toml;
  • Bytecode size has been optimized;

Fuel Core Updates

Versions 0.9.1 - 0.10.1 were released
  • New fuel-debugger CLI with Automatic Storage Management (ASM) support;
  • New VM instructions are now supported:
    • GTF - get transaction field;
    • SMO - send message output;
    • JMP/JNE - dynamic jump;
  • The Produce Block API is now usable for SDK tests;
  • Integrated Ethereum contract event handling into fuel-core;
  • Message inputs and outputs in Fuel Core:
    • Message receiving in the Relayer from L1;
    • TxPool validation of Message inputs;
    • Block execution message spending validation;
    • GraphQL APIs for querying available messages to include in a transaction;
  • Breaking Transaction format changes:
    • Added TxPointer;
    • Removed byte_price;
    • Removed static contracts;
  • Integrated latest VM Changes into fuel-core v0.10.x node:
    • Previously implemented opcodes such as JMP & GTF are now available for use in the node;
    • New TIME opcode to fetch the timestamp on the current block header;

Fuel-rs (Rust SDK) Updates

Versions 0.17.0 - 0.21.0 were released
  • You can now bundle many contract calls into one, with ContractMultiCall, which has been officially released;
  • New feature to directly convert raw bytes into contract-defined types;
  • New API for manual and automatic storage initialization;
  • New API to manipulate block height, very useful for testing specific conditions between contract calls;
  • New API to fetch the contract ID and the wallet used to create a contract instance;
  • Bech32 support: all of the internal addresses (ContractId, Address) are now represented as Bech32;
  • You can now create test wallets with multiple custom assets;
  • You can now generate test nodes with configurable consensus parameters;
  • You can now change the underlying wallet of a contract instance with the new contract API ._with_wallet();
  • Wallet.get_coins improvement: now you can specify with assets to be returned;
  • Support for the new JSON ABI — generics, Vec, Option, and Result support coming up!
  • Wallet is now Wallet for read-only operations that don’t need a private key and WalletUnlocked for read-write operations. This reduces the scope of the default wallet and reduces security risks;
  • Predicates are now supported;

For more details, check out the Rust SDK Book here.

Fuel-ts (Typescript SDK) Updates

Versions 0.7.0 - 0.12.0 were released
  • New way to pass amount/assetId overrides with the new forward;
  • Added contract slots on contract deployments;
  • New contract getter on the Provider;
  • New balances API have been added;
  • New multicall (contract calls bundling) API;
  • Full predicates support;
  • You can now set the gas for each call;
  • Provider now integrated with query chain information;
  • Support for generic custom types;
  • Support for Option and Result;
  • Support for the new JSON ABIVec support is coming up!
  • Fixes to the required amount of coins for contract calls;
  • Automatic storage initialization upon contract deployment;
  • Better interface for transaction fee payment;

Start building on Fuel today

Developer Resources for Building with Fuel

  • A step-by-step guide to building a full-stack dapp on Fuel can be found here.
  • The Fuel Book can be found here. It contains everything you need to know about Fuel, from its modular design to its key features.
  • The Sway Book can be found here.

Introducing the Fuel Grants Program

The Fuel Grants program is a way to support projects building on Fuel. Currently, we are offering generous grants ranging from 10,000 - 150,000 USD to developers, creators, and new or existing projects to come build on the world's fastest modular execution layer. We welcome all builders with a passion for decentralization, web3, and building the future. We envision an autonomous future, where systems are built to power the next generation of human coordination and cooperation.

Building on Fuel means breaking free from the constraints of monolithic blockchains that have held us back.

To get started applying for a grant, fill out this form. We’re incredibly excited to launch this program, see more people building on Fuel, and taking the modular pill. If you have any additional questions please feel free to reach out to grants@fuel.sh.


Other

Podcasts and Twitter Spaces

SwaySwap AMA

In case you missed it, discover SwaySwap, a blazingly fast DEX built on the fastest modular execution layer with the developers that built it during the Twitter Space: SwaySwap AMA.

In the News

☕ ️English Content

🇹🇷 Turkish Content

🇷🇺 Russian Content


According to the Rust In Blockchain monthly review (July and August), Fuel is still one of the most active Rust-based projects this summer. Fuel ranked 5th in July and August 2022, right behind Sui, Aptos, Parity, and Solana, with 225 merged PRs, 203 closed issues, and 142 open issues in July and 253 merged PRs, 193 closed issues, and 139 open issues in August.


Public Appearances

🇫🇷 EthCC

We had the opportunity to give several talks during the EthCC in Paris (July 19-21). In case you missed them, here are the replay links below:

🇩🇪 Berlin Blockchain week & EthBerlin

Some of the Fuel contributors will be attending the Berlin Blockchain week (Sept 12-18) and EthBerlin (Sept 16-18). Come say hi and grab some swag if you're around.


Follow us

If you don’t want to miss any update on the Fuel Network, simply follow us and activate the notification bell:

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.

Join us

If you want to join us in this journey, here are our current job openings.