Skip to content

flintlang/flint-2

Repository files navigation

Flint 2 is a new Rust-based implementation of Flint, designed for better blockchain-agnostic smart contracts, with the same safety-oriented language features as before. Flint 2 includes:

  • Type states to ensure a contract interactions happen when the time is right
  • Caller protections allow only authorised actors to access or modify protected parts of the contract
  • Abstraction features such as structs, traits, and assets allow structures code on any blockchain
  • Safety-first language features reduce accidental developer mistakes

More information on the features and how to use Flint 2 are available at the language guide.

Flint 2 has been developed thanks to the work at the Department of Computing, Imperial College London under the supervision of Professor Susan Eisenbach, undertaken by Jessica Lally, Matthew Ross Rachar, and George Stacey, with the core of the project the Quartz research compiler by Ali Chaudhry, built for his MEng thesis.

Flint 2 is based on Flint, which had been developed as part of projects and summer work at the department under the supervision of Professors Susan Eisenbach and Sophia Drossopoulou. Its original developer was Franklin Schrans for his MEng thesis and then continued. The following people have contributed to Flint: Matteo Bilardi, Aurel Bily, Mohammad Chowdhury, Catalin Craciun, Calin Farcas, Ioannis Gabrielides, Daniel Hails, Alexander Harkness, Constantin Mueller, Yicheng Leo, Matthew Ross Rachar, Franklin Schrans, Niklas Vangerow, and Manshu Wang.