add Telegram link

This commit is contained in:
Francis Brunelle 2020-01-22 10:16:08 -05:00
parent 7828b57636
commit af23dcaebb
No known key found for this signature in database
GPG Key ID: 288C7E1A305B9AB8
25 changed files with 96 additions and 57 deletions

View File

@ -62,7 +62,7 @@ Each entrypoint function receives two arguments:
- `parameter` - this is the parameter received in the invocation operation - `parameter` - this is the parameter received in the invocation operation
- `storage` - this is the current (real) on-chain storage value - `storage` - this is the current (real) on-chain storage value
Storage can only be modified by running the smart contract entrypoint, which is responsible for returning a list of operations, and a new storage at the end of it's execution. Storage can only be modified by running the smart contract entrypoint, which is responsible for returning a list of operations, and a new storage at the end of its execution.
## Built-in contract variables ## Built-in contract variables

View File

@ -33,7 +33,7 @@ Output of the `dry-run` is the return value of our entrypoint function, we can s
## Building a counter contract ## Building a counter contract
Our counter contract will store a single `int` as it's storage, and will accept an `action` variant in order to re-route our single `main` entrypoint into two entrypoints for `addition` and `subtraction`. Our counter contract will store a single `int` in its storage, and will accept an `action` variant in order to re-route our single `main` entrypoint into two entrypoints for `addition` and `subtraction`.
<!--DOCUSAURUS_CODE_TABS--> <!--DOCUSAURUS_CODE_TABS-->
<!--Pascaligo--> <!--Pascaligo-->
@ -167,7 +167,7 @@ ligo compile-storage src/counter.ligo main 5
<!--END_DOCUSAURUS_CODE_TABS--> <!--END_DOCUSAURUS_CODE_TABS-->
In our case the LIGO storage value maps 1:1 to it's Michelson representation, however this will not be the case once the parameter is of a more complex data type, like a record. In our case the LIGO storage value maps 1:1 to its Michelson representation, however this will not be the case once the parameter is of a more complex data type, like a record.
## Invoking a LIGO contract ## Invoking a LIGO contract

View File

@ -9,7 +9,7 @@ Timestamps in LIGO, or in Michelson in general are available in smart contracts,
### Current time ### Current time
You can obtain the current time using the built-in syntax specific expression, please be aware that it's up to the baker to set the current timestamp value. You can obtain the current time using the built-in syntax specific expression, please be aware that it is up to the baker to set the current timestamp value.
<!--DOCUSAURUS_CODE_TABS--> <!--DOCUSAURUS_CODE_TABS-->

View File

@ -23,9 +23,9 @@ The first issues will most likely be:
>Tests are **really** important, we dont have lots of them, and mostly regression ones. This cant be stressed enough. Some features are missing not because we cant add them, but because we dont know as no tests tell us they are missing. >Tests are **really** important, we dont have lots of them, and mostly regression ones. This cant be stressed enough. Some features are missing not because we cant add them, but because we dont know as no tests tell us they are missing.
## How ## How
Issues will be added to Gitlab tagged with `On-boarding and Front-End` / `Middle-End` / `Back-End` / `Everything`. Issues will be added to GitLab tagged with `On-boarding and Front-End` / `Middle-End` / `Back-End` / `Everything`.
If you try to tackle an issue and you have **any** problem, please tell us by creating a new Gitlab issue, contacting us on Riot, on Discord, or even by mail! If you try to tackle an issue and you have **any** problem, please tell us by creating a new GitLab issue, contacting us on Riot, on Discord, or even by mail!
Problems might include: Problems might include:
* Installing the repository or the tools needed to work on it * Installing the repository or the tools needed to work on it

View File

@ -111,4 +111,4 @@ What if we want to write a test of our own? If the test is in the integration te
1. Write a test contract which uses the new syntax or feature in [src/test/contracts](https://gitlab.com/ligolang/ligo/tree/dev/src/test/contracts). 1. Write a test contract which uses the new syntax or feature in [src/test/contracts](https://gitlab.com/ligolang/ligo/tree/dev/src/test/contracts).
2. Write an integration test in [src/test/integration_tests.ml](https://gitlab.com/ligolang/ligo/blob/dev/src/test/integration_tests.ml) in the vein of existing tests, make sure you add it to the test runner that is currently located at the bottom of the file. 2. Write an integration test in [src/test/integration_tests.ml](https://gitlab.com/ligolang/ligo/blob/dev/src/test/integration_tests.ml) in the vein of existing tests, make sure you add it to the test runner that is currently located at the bottom of the file.
3. Write the feature, assuming it doesn't already exist. Build the resulting version of LIGO without errors. 3. Write the feature, assuming it doesn't already exist. Build the resulting version of LIGO without errors.
4. Run the test suite, see if your test(s) pass. If they do, you're probably done. If not it's time to go debugging. 4. Run the test suite, see if your test(s) pass. If they do, you're probably done. If not, it's time to go debugging.

View File

@ -3,8 +3,8 @@ id: origin
title: Origin title: Origin
--- ---
LIGO is a programming language that aims to provide developers with an uncomplicated and safe way to implement smart-contracts. Since it is being implemented for the Tezos blockchain LIGO compiles to Michelson—the native smart-contract language of Tezos. LIGO is a programming language that aims to provide developers with an uncomplicated and safe way to implement smart contracts. Since it is being implemented for the Tezos blockchain LIGO compiles to Michelson—the native smart contract language of Tezos.
> Smart-contracts are programs that run within a blockchain network. > Smart contracts are programs that run within a blockchain network.
LIGO was meant to be a language for developing Marigold on top of a hacky framework called Meta-Michelson. However, due to the attention received by the Tezos community, LIGO is now a standalone language being developed to support Tezos directly. LIGO was meant to be a language for developing Marigold on top of a hacky framework called Meta-Michelson. However, due to the attention received by the Tezos community, LIGO is now a standalone language being developed to support Tezos directly.

View File

@ -6,7 +6,7 @@ title: Philosophy
To understand LIGOs design choices its important to understand its philosophy. We have two main concerns in mind while building LIGO. To understand LIGOs design choices its important to understand its philosophy. We have two main concerns in mind while building LIGO.
## Safety ## Safety
Once a smart-contract is deployed, it will likely be impossible to change it. You must get it right on the first try, and LIGO should help as much as possible. There are multiple ways to make LIGO a safer language for smart-contracts. Once a smart contract is deployed, it will likely be impossible to change it. You must get it right on the first try, and LIGO should help as much as possible. There are multiple ways to make LIGO a safer language for smart contracts.
### Automated Testing ### Automated Testing
Automated Testing is the process through which a program runs another program, and checks that this other program behaves correctly. Automated Testing is the process through which a program runs another program, and checks that this other program behaves correctly.
@ -18,7 +18,7 @@ Static analysis is the process of having a program analyze another one.
For instance, type systems are a kind of static analysis through which it is possible to find lots of bugs. LIGO already has a simple type system, and we plan to make it much stronger. For instance, type systems are a kind of static analysis through which it is possible to find lots of bugs. LIGO already has a simple type system, and we plan to make it much stronger.
### Conciseness ### Conciseness
Writing less code gives you less room to introduce errors. That's why LIGO encourages writing lean rather than chunky smart-contracts. Writing less code gives you less room to introduce errors. That's why LIGO encourages writing lean rather than chunky smart contracts.
--- ---

View File

@ -15,7 +15,7 @@ executable (see below). This manages the Docker bits for you.
* Use the Docker image available at [Docker Hub](https://hub.docker.com/r/ligolang/ligo). * Use the Docker image available at [Docker Hub](https://hub.docker.com/r/ligolang/ligo).
This lets you run multiple versions and keep your installation(s) self contained, but requires more familiarity with Docker. This lets you run multiple versions and keep your installation(s) self contained, but requires more familiarity with Docker.
Sources for the image can be found on [Gitlab](https://gitlab.com/ligolang/ligo/blob/master/docker/Dockerfile). Sources for the image can be found on [GitLab](https://gitlab.com/ligolang/ligo/blob/master/docker/Dockerfile).
If this is your first time using Docker, you probably want to set up a global LIGO executable as shown below. If this is your first time using Docker, you probably want to set up a global LIGO executable as shown below.
### Setting up a globally available `ligo` executable ### Setting up a globally available `ligo` executable

View File

@ -64,7 +64,7 @@ Unfortunately (???), we **can't run Javascript on the Tezos blockchain** at the
## C-like smart contracts instead of Michelson ## C-like smart contracts instead of Michelson
Let's take a look at a similar LIGO program. Don't worry if it's a little confusing at first; we'll explain all the syntax in the upcoming sections of the documentation. Let's take a look at a similar LIGO program. Don't worry if it is a little confusing at first; we'll explain all the syntax in the upcoming sections of the documentation.
<!--DOCUSAURUS_CODE_TABS--> <!--DOCUSAURUS_CODE_TABS-->
<!--Pascaligo--> <!--Pascaligo-->
@ -133,7 +133,7 @@ The LIGO contract behaves exactly* like the Michelson contract we've saw first,
## Runnable code snippets & exercises ## Runnable code snippets & exercises
Some of the sections in this documentation will include runnable code snippets and exercises. Sources for those are available at Some of the sections in this documentation will include runnable code snippets and exercises. Sources for those are available at
the [LIGO Gitlab repository](https://gitlab.com/ligolang/ligo). the [LIGO GitLab repository](https://gitlab.com/ligolang/ligo).
### Snippets ### Snippets
For example **code snippets** for the *Types* subsection of this doc, can be found here: For example **code snippets** for the *Types* subsection of this doc, can be found here:
@ -142,7 +142,7 @@ For example **code snippets** for the *Types* subsection of this doc, can be fou
### Exercises ### Exercises
Solutions to exercises can be found e.g. here: `gitlab-pages/docs/language-basics/exercises/types/**/solutions/**` Solutions to exercises can be found e.g. here: `gitlab-pages/docs/language-basics/exercises/types/**/solutions/**`
### Running snippets / excercise solutions ### Running snippets / exercise solutions
In certain cases it makes sense to be able to run/evaluate the given snippet or a solution, usually there'll be an example command which you can use, such as: In certain cases it makes sense to be able to run/evaluate the given snippet or a solution, usually there'll be an example command which you can use, such as:
```shell ```shell

View File

@ -141,7 +141,7 @@ const min_age: nat = 16n;
(* (*
This function is really obnoxious, but it showcases This function is really obnoxious, but it showcases
how the if statement and it's syntax can be used. how the if statement and its syntax can be used.
Normally, you'd use `with (age > min_age)` instead. Normally, you'd use `with (age > min_age)` instead.
*) *)
@ -168,7 +168,7 @@ let min_age: nat = 16n
(** (**
This function is really obnoxious, but it showcases This function is really obnoxious, but it showcases
how the if statement and it's syntax can be used. how the if statement and its syntax can be used.
Normally, you'd use `with (age > min_age)` instead. Normally, you'd use `with (age > min_age)` instead.
@ -183,7 +183,7 @@ let min_age: nat = 16n;
(** (**
This function is really obnoxious, but it showcases This function is really obnoxious, but it showcases
how the if statement and it's syntax can be used. how the if statement and its syntax can be used.
Normally, you'd use `with (age > min_age)` instead. Normally, you'd use `with (age > min_age)` instead.

View File

@ -71,7 +71,7 @@ argument until every parameter is filled. This is useful because it means that
CameLIGO can support [partial application](https://en.wikipedia.org/wiki/Partial_application). CameLIGO can support [partial application](https://en.wikipedia.org/wiki/Partial_application).
Currying is however *not* the preferred way to pass function arguments in CameLIGO. Currying is however *not* the preferred way to pass function arguments in CameLIGO.
While this approach is faithful to the original OCaml, it's costlier in Michelson While this approach is faithful to the original OCaml, it is costlier in Michelson
than naive function execution accepting multiple arguments. Instead for most than naive function execution accepting multiple arguments. Instead for most
functions with more than one parameter we should place the arguments in a functions with more than one parameter we should place the arguments in a
[tuple](language-basics/sets-lists-touples.md) and pass the tuple in as a single [tuple](language-basics/sets-lists-touples.md) and pass the tuple in as a single
@ -111,7 +111,7 @@ value.
Functions without a name, also known as anonymous functions are useful in cases when you want to pass the function as an argument or assign it to a key in a record/map. Functions without a name, also known as anonymous functions are useful in cases when you want to pass the function as an argument or assign it to a key in a record/map.
Here's how to define an anonymous function assigned to a variable `increment`, with it's appropriate function type signature. Here's how to define an anonymous function assigned to a variable `increment`, with its appropriate function type signature.
<!--DOCUSAURUS_CODE_TABS--> <!--DOCUSAURUS_CODE_TABS-->
<!--Pascaligo--> <!--Pascaligo-->
```pascaligo group=c ```pascaligo group=c

View File

@ -42,7 +42,7 @@ let id_string = (p: string) : option(string) => {
## Hashing Keys ## Hashing Keys
It's often desirable to hash a public key. In Michelson, certain data structures It is often desirable to hash a public key. In Michelson, certain data structures
such as maps will not allow the use of the `key` type. Even if this weren't the case such as maps will not allow the use of the `key` type. Even if this weren't the case
hashes are much smaller than keys, and storage on blockchains comes at a cost premium. hashes are much smaller than keys, and storage on blockchains comes at a cost premium.
You can hash keys with the `key_hash` type and associated built in function. You can hash keys with the `key_hash` type and associated built in function.

View File

@ -1,13 +1,13 @@
--- ---
id: tezos-taco-shop-smart-contract id: tezos-taco-shop-smart-contract
title: Taco shop smart-contract title: Taco shop smart contract
--- ---
<div> <div>
Meet **Pedro**, our *artisan taco chef* who has decided to open a Taco shop on the Tezos blockchain, using a smart-contract. He sells two different kinds of tacos, the **el clásico** and the **especial del chef**. Meet **Pedro**, our *artisan taco chef* who has decided to open a Taco shop on the Tezos blockchain, using a smart contract. He sells two different kinds of tacos, the **el clásico** and the **especial del chef**.
To help Pedro open his dream taco shop, we'll implement a smart-contract, that will manage supply, pricing & sales of his tacos to the consumers. To help Pedro open his dream taco shop, we'll implement a smart contract, that will manage supply, pricing & sales of his tacos to the consumers.
<br/> <br/>
<img src="/img/tutorials/get-started/tezos-taco-shop-smart-contract/taco-stand.svg" width="50%" /> <img src="/img/tutorials/get-started/tezos-taco-shop-smart-contract/taco-stand.svg" width="50%" />
@ -68,7 +68,7 @@ The best way to install the dockerized LIGO is as a **global executable** throug
> From now on we'll get a bit more technical. If you run into something we have not covered yet - please try checking out the [LIGO cheat sheet](api/cheat-sheet.md) for some extra tips & tricks. > From now on we'll get a bit more technical. If you run into something we have not covered yet - please try checking out the [LIGO cheat sheet](api/cheat-sheet.md) for some extra tips & tricks.
To begin implementing our smart contract, we need an entry point. We'll call it `main` and it'll specify our contract's storage (`int`) and input parameter (`int`). Of course this is not the final storage/parameter of our contract, but it's something to get us started and test our LIGO installation as well. To begin implementing our smart contract, we need an entry point. We'll call it `main` and it'll specify our contract's storage (`int`) and input parameter (`int`). Of course this is not the final storage/parameter of our contract, but it is something to get us started and test our LIGO installation as well.
### `taco-shop.ligo` ### `taco-shop.ligo`
```pascaligo group=a ```pascaligo group=a
@ -138,7 +138,7 @@ end
type taco_shop_storage is map(nat, taco_supply); type taco_shop_storage is map(nat, taco_supply);
``` ```
Next step is to update the `main` entry point to include `taco_shop_storage` as its storage - while doing that let's set the `parameter` to `unit` as well to clear things up. Next step is to update the `main` entry point to include `taco_shop_storage` in its storage - while doing that let's set the `parameter` to `unit` as well to clear things up.
**`taco-shop.ligo`** **`taco-shop.ligo`**
```pascaligo group=b+ ```pascaligo group=b+
@ -154,7 +154,7 @@ function main (const parameter: unit ; const taco_shop_storage : taco_shop_stora
### Populating our storage in a dry-run ### Populating our storage in a dry-run
When dry-running a contract, it's crucial to provide a correct initial storage value - in our case the storage is type-checked as `taco_shop_storage`. Reflecting [Pedro's daily offer](tutorials/get-started/tezos-taco-shop-smart-contract.md#daily-offer), our storage's value will be defined as following: When dry-running a contract, it is crucial to provide a correct initial storage value - in our case the storage is type-checked as `taco_shop_storage`. Reflecting [Pedro's daily offer](tutorials/get-started/tezos-taco-shop-smart-contract.md#daily-offer), our storage's value will be defined as following:
**Storage value** **Storage value**
```zsh ```zsh

View File

@ -8,7 +8,7 @@ author: Gabriel Alfour
--- ---
## A Refresher: What is LIGO? ## A Refresher: What is LIGO?
LIGO is a statically typed high-level smart-contract language that compiles down to Michelson. It seeks to be easy to use, extensible and safe. LIGO is a statically typed high-level smart contract language that compiles down to Michelson. It seeks to be easy to use, extensible and safe.
The core language is being developed by The Marigold Project. George Dupéron and Christian Rinderknecht of Nomadic Labs help on the core language, and tooling for LIGO is being developed by Stove Labs (Granary, docs and infrastructure) and Brice Aldrich (syntax highlighting). The core language is being developed by The Marigold Project. George Dupéron and Christian Rinderknecht of Nomadic Labs help on the core language, and tooling for LIGO is being developed by Stove Labs (Granary, docs and infrastructure) and Brice Aldrich (syntax highlighting).
@ -95,7 +95,7 @@ We are looking to develop a Super Type System that has the following features:
The current version explicitly excludes non-essential features which can produce unexpected explosions in gas costs. To alleviate this constraint, we plan to integrate gas benchmarks on all top-level declarations with some fuzzing. This will allow developers and users to estimate the cost of their contracts in real time. The current version explicitly excludes non-essential features which can produce unexpected explosions in gas costs. To alleviate this constraint, we plan to integrate gas benchmarks on all top-level declarations with some fuzzing. This will allow developers and users to estimate the cost of their contracts in real time.
## Getting Started and Contact ## Getting Started and Contact
Come visit [our website](https://ligolang.org)! You can also join our [Discord](https://discord.gg/9rhYaEt), Riot (*#ligo-public:matrix.org*) or Telegram Chat (Ligo Public channel). Come visit [our website](https://ligolang.org)! You can also join our [Discord](https://discord.gg/9rhYaEt), Riot (*#ligo-public:matrix.org*) or [Telegram Chat](https://t.me/LigoLang).

View File

@ -7,7 +7,7 @@ author: Gabriel Alfour
--- ---
It's been a few weeks since our last update. Since then, we've onboarded new collaborators to both LIGO and Marigold, rewritten much of the codebase, and we've begun some exciting new projects. Let's tell you all about it! It has been a few weeks since our last update. Since then, we've onboarded new collaborators to both LIGO and Marigold, rewritten much of the codebase, and we've begun some exciting new projects. Let's tell you all about it!
# LIGO # LIGO
@ -41,7 +41,7 @@ The most brittle part of our code base is about to become its strongest part. We
Concretely: Concretely:
- Running LIGO-in-Browser will become much easier. Instead of having to dry-run it remotely or to rewrite a Michelson interpreter, we'll be able to **directly interpret** the LIGO program. - Running LIGO-in-Browser will become much easier. Instead of having to dry-run it remotely or to rewrite a Michelson interpreter, we'll be able to **directly interpret** the LIGO program.
- It will be possible to prove the properties of Smart-Contracts written in LIGO directly, instead of having to prove the Michelson they produce. - It will be possible to prove the properties of smart contracts written in LIGO directly, instead of having to prove the Michelson they produce.
- Fewer tests will ned to be written and testing will instead focus mostly on the developer-facing layers of the compiler (i.e. syntax, typing), rather than on the actual compiling part. - Fewer tests will ned to be written and testing will instead focus mostly on the developer-facing layers of the compiler (i.e. syntax, typing), rather than on the actual compiling part.
# Marigold # Marigold
@ -56,4 +56,4 @@ It is thus hard for newcomers (even CS researchers!) to dive into Plasma in a co
# Contact # Contact
If you have any question, feel free to visit [our website](ligolang.org) and to contact us :) If you have any question, feel free to visit [our website](https://ligolang.org) and to contact us :)

View File

@ -47,8 +47,8 @@ const TEAM = [
const COMMUNICATION_CHANNELS = [ const COMMUNICATION_CHANNELS = [
{ {
link: 'https://discord.gg/9rhYaEt', link: 'https://t.me/LigoLang',
icon: 'img/discord.svg', icon: 'img/telegram.svg',
description: "We're hear to help. Ask us anything" description: "We're hear to help. Ask us anything"
}, },
{ {

View File

@ -77,7 +77,7 @@ module.exports = props => {
</ul> </ul>
</div> </div>
<div id="preview"> <div id="preview">
<h1>A friendly smart-contract language for Tezos</h1> <h1>A friendly smart contract language for Tezos</h1>
<p>Michelson was never so easy</p> <p>Michelson was never so easy</p>
<CodeExamples MarkdownBlock={MarkdownBlock}></CodeExamples> <CodeExamples MarkdownBlock={MarkdownBlock}></CodeExamples>
</div> </div>

View File

@ -102,7 +102,7 @@ function Versions(props) {
</table> </table>
<p> <p>
You can find past versions of this project on{' '} You can find past versions of this project on{' '}
<a href={repoUrl}>Gitlab</a>. <a href={repoUrl}>GitLab</a>.
</p> </p>
</div> </div>
</Container> </Container>

View File

@ -4,7 +4,7 @@ let reasonHighlightJs = require('reason-highlightjs');
const siteConfig = { const siteConfig = {
title: 'LIGO', // Title for your website. title: 'LIGO', // Title for your website.
tagline: 'LIGO is a friendly smart-contract language for Tezos', tagline: 'LIGO is a friendly smart contract language for Tezos',
taglineSub: 'Michelson was never so easy', taglineSub: 'Michelson was never so easy',
url: 'https://ligolang.org', // Your website URL url: 'https://ligolang.org', // Your website URL
baseUrl: '/', // Base URL for your project */ baseUrl: '/', // Base URL for your project */
@ -29,7 +29,7 @@ const siteConfig = {
label: 'Tutorials' label: 'Tutorials'
}, },
{ blog: true, label: 'Blog' }, { blog: true, label: 'Blog' },
// TODO: { href: "/odoc", label: "Api" }, // TODO: { href: "/odoc", label: "API" },
// { doc: 'contributors/origin', label: 'Contribute' }, // { doc: 'contributors/origin', label: 'Contribute' },
{ href: '/contact', label: 'Ask Questions' }, { href: '/contact', label: 'Ask Questions' },
{ search: true } { search: true }
@ -40,14 +40,24 @@ const siteConfig = {
{ doc: 'intro/installation', label: 'Install' }, { doc: 'intro/installation', label: 'Install' },
{ doc: 'api/cli-commands', label: 'CLI Commands' }, { doc: 'api/cli-commands', label: 'CLI Commands' },
{ doc: 'contributors/origin', label: 'Contribute' }, { doc: 'contributors/origin', label: 'Contribute' },
{ href: '/odoc', label: 'Api Documentation' } { href: '/odoc', label: 'API Documentation' }
], ],
community: [ community: [
{
href: 'https://forum.tezosagora.org/tag/ligo',
label: 'Tezos Agora Forum',
blankTarget: true
},
{ {
href: 'https://tezos.stackexchange.com/questions/tagged/ligo', href: 'https://tezos.stackexchange.com/questions/tagged/ligo',
label: 'Tezos Stack Exchange', label: 'Tezos Stack Exchange',
blankTarget: true blankTarget: true
}, },
{
href: 'https://t.me/LigoLang',
label: 'Telegram',
blankTarget: true
},
{ {
href: 'https://discord.gg/9rhYaEt', href: 'https://discord.gg/9rhYaEt',
label: 'Discord', label: 'Discord',
@ -59,7 +69,7 @@ const siteConfig = {
doc: 'tutorials/get-started/tezos-taco-shop-smart-contract', doc: 'tutorials/get-started/tezos-taco-shop-smart-contract',
label: 'Tutorials' label: 'Tutorials'
}, },
{ href: repoUrl, label: 'Gitlab' } { href: repoUrl, label: 'GitLab' }
] ]
}, },

View File

@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 50 50">
<defs>
<linearGradient id="telegram-a" x1="66.7%" x2="41.7%" y1="16.7%" y2="75%">
<stop offset="0%" stop-color="#37AEE2"/>
<stop offset="100%" stop-color="#1E96C8"/>
</linearGradient>
<linearGradient id="telegram-b" x1="66%" x2="85.1%" y1="43.065%" y2="83.244%">
<stop offset="0%" stop-color="#EFF7FC"/>
<stop offset="100%" stop-color="#FFF"/>
</linearGradient>
</defs>
<g fill="none" transform="translate(1 1)">
<circle cx="23.5" cy="23.5" r="23.5" fill="url(#telegram-a)"/>
<path fill="#C8DAEA" d="M19.2727273,35 C18.4774545,35 18.6126591,34.7064 18.3383636,33.966 L16,26.4414 L34,16"/>
<path fill="#A9C9DD" d="M19,35 C19.6818182,35 19.9829545,34.7309188 20.3636364,34.4116301 L24,31.3603439 L19.4640909,29"/>
<path fill="url(#telegram-b)" d="M19.7939067,28.5186178 L29.058792,35.7003368 C30.1161307,36.312398 30.8790086,35.9954126 31.1424333,34.6705866 L34.9137167,16.0247303 C35.2997536,14.4006073 34.3236454,13.6637218 33.3120947,14.1455316 L11.1671796,23.1045396 C9.65560092,23.7407214 9.66460526,24.6255468 10.8916853,25.0197183 L16.5745698,26.8808265 L29.7310517,18.1722711 C30.3521592,17.7770947 30.922306,17.9893563 30.4544638,18.4251358"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -4,8 +4,8 @@ title: Origin
original_id: origin original_id: origin
--- ---
LIGO is a programming language that aims to provide developers with an uncomplicated and safer way to implement smart-contracts. LIGO is currently being implemented for the Tezos blockchain and as a result, it compiles down to Michelson - the native smart-contract language of Tezos. LIGO is a programming language that aims to provide developers with an uncomplicated and safe way to implement smart contracts. Since it is being implemented for the Tezos blockchain LIGO compiles to Michelson—the native smart contract language of Tezos.
> Smart-contracts are programs that run within a blockchain network. > Smart contracts are programs that run within a blockchain network.
LIGO was initially meant to be a language for developing Marigold, on top of a hacky framework called Meta-Michelson. However, due to the attention received by the Tezos community, a decision has been put into action to develop LIGO as a standalone language that will support Tezos directly as well. LIGO was meant to be a language for developing Marigold on top of a hacky framework called Meta-Michelson. However, due to the attention received by the Tezos community, LIGO is now a standalone language being developed to support Tezos directly.

View File

@ -4,23 +4,22 @@ title: Philosophy
original_id: philosophy original_id: philosophy
--- ---
To understand LIGOs design choices, its important to get its philosophy. There are two main concerns that we have in mind when building LIGO. To understand LIGOs design choices its important to understand its philosophy. We have two main concerns in mind while building LIGO.
## Safety ## Safety
Once a smart-contract is deployed, it will likely be impossible to change it. You must get it right on the first try, and LIGO should help as much as possible. There are multiple ways to make LIGO a safer language for smart-contracts. Once a smart contract is deployed, it will likely be impossible to change it. You must get it right on the first try, and LIGO should help as much as possible. There are multiple ways to make LIGO a safer language for smart contracts.
### Automated Testing ### Automated Testing
Automated Testing is the process through which a program will run some other program, and check that this other program behaves correctly. Automated Testing is the process through which a program runs another program, and checks that this other program behaves correctly.
There already is a testing library for LIGO programs written in OCaml that is used to test LIGO itself. Making it accessible to users will greatly improve safety. A way to do so would be to make it accessible from within LIGO. There already is a testing library for LIGO programs written in OCaml that is used to test LIGO itself. Making it accessible to users will greatly improve safety. A way to do so would be to make it accessible from within LIGO.
### Static Analysis ### Static Analysis
Static analysis is the process of having a program analyze another one. Static analysis is the process of having a program analyze another one.
For instance, type systems are a kind of static analysis through which it is possible to find lots of bugs. There is already a fairly simple type system in LIGO, and we plan to make it much stronger. For instance, type systems are a kind of static analysis through which it is possible to find lots of bugs. LIGO already has a simple type system, and we plan to make it much stronger.
### Conciseness ### Conciseness
Writing less code gives you less room to introduce errors and that's why LIGO encourages writing lean rather than chunky smart-contracts. Writing less code gives you less room to introduce errors. That's why LIGO encourages writing lean rather than chunky smart contracts.
--- ---

View File

@ -6,15 +6,27 @@
"version-next-intro/editor-support" "version-next-intro/editor-support"
], ],
"Language Basics": [ "Language Basics": [
"version-next-language-basics/cheat-sheet",
"version-next-language-basics/types", "version-next-language-basics/types",
"version-next-language-basics/variables", "version-next-language-basics/constants-and-variables",
"version-next-language-basics/math-numbers-tez",
"version-next-language-basics/strings",
"version-next-language-basics/functions", "version-next-language-basics/functions",
"version-next-language-basics/entrypoints", "version-next-language-basics/boolean-if-else",
"version-next-language-basics/operators" "version-next-language-basics/loops",
"version-next-language-basics/unit-option-pattern-matching",
"version-next-language-basics/maps-records",
"version-next-language-basics/sets-lists-tuples",
"version-next-language-basics/tezos-specific"
],
"Advanced": [
"version-next-advanced/timestamps-addresses",
"version-next-advanced/entrypoints-contracts",
"version-next-advanced/include",
"version-next-advanced/first-contract"
], ],
"API": [ "API": [
"version-next-api-cli-commands" "version-next-api/cli-commands",
"version-next-api/cheat-sheet"
] ]
}, },
"version-next-contributors-docs": { "version-next-contributors-docs": {

View File

@ -1,4 +1,4 @@
# This script accepts three arguments, os family, os and it's version, # This script accepts three arguments, os family, os and its version,
# which are subsequently used to fetch the respective docker # which are subsequently used to fetch the respective docker
# image from the ocaml/infrastructure project. # image from the ocaml/infrastructure project.
# #

View File

@ -330,7 +330,7 @@ let storage_error err = fail (Storage_error err)
(* Initialization *********************************************************) (* Initialization *********************************************************)
(* This key should always be populated for every version of the (* This key should always be populated for every version of the
protocol. It's absence meaning that the context is empty. *) protocol. Its absence meaning that the context is empty. *)
let version_key = ["version"] let version_key = ["version"]
let version_value = "babylon_005" let version_value = "babylon_005"