fxamacker / cadence

Cadence, the resource-oriented smart contract programming language πŸƒβ€β™‚οΈ

Home Page:https://onflow.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cadence

Introduction

Cadence is a resource-oriented programming language that introduces new features to smart contract programming that help developers ensure that their code is safe, secure, clear, and approachable.

Some of these features are:

  • Type safety and a strong static type system
  • Resource-oriented programming, a new paradigm that pairs linear types with object capabilities to create a secure and declarative model for digital ownership by ensuring that resources (and their associated assets) can only exist in one location at a time, cannot be copied, and cannot be accidentally lost or deleted
  • Built-in pre-conditions and post-conditions for functions and transactions
  • The utilization of capability-based security, which enforces access control by requiring that access to objects is restricted to only the owner and those who have a valid reference to the object

Getting Started

To get started writing Cadence, try it out in the Playground.

If you want to develop locally, install the Flow Command Line Client, which provides the Flow emulator and the Visual Studio Code extension. The emulator is a lightweight tool that emulates the behaviour of the real Flow network. The Visual Studio Code extension enables the development, deployment of, and interaction with Cadence contracts.

Documentation

To read more about Cadence, have a look at the language reference on the Flow documentation site.

Contributing

If you would like to contribute to Cadence, have a look at the contributing guide.

Development documentation can be found in the docs directory. For example, it contains the source for the language reference.

About

Cadence, the resource-oriented smart contract programming language πŸƒβ€β™‚οΈ

https://onflow.org

License:Apache License 2.0


Languages

Language:Go 97.9%Language:TypeScript 0.8%Language:JavaScript 0.7%Language:Python 0.4%Language:Makefile 0.1%Language:Shell 0.1%Language:HTML 0.0%Language:Haskell 0.0%