1. Accueil
  2. /
  3. Écosystème
  4. /
  5. Premier contrat Marlowe sur le mainnet

Premier contrat Marlowe sur le mainnet

Le 29 avril 2022, l’équipe chargée du développement de Marlowe annonce avoir déployé le premier contrat intelligent en Marlowe sur le mainnet.

Une occasion à ne pas rater, nous vous proposons un aperçu de cette technologie.

Qu’est-ce que Marlowe ?

Marlowe est un langage spécifique pour développer des contrats intelligents ( dit DSL pour « Domain Specific Langage »).

Marlowe est conçu pour être agnostique à sa plateforme : il pourrait être déployé sur toutes les blockchains qui auront cette volonté.

Ce langage permet de gérer des paiements, observer des actions ( via des oracles ), attendre et/ou évaluer des conditions, dans l’idée de gérer des remboursements, de mettre d’accord des parties, ou tout autres accords financiers qui pourraient être exprimées par un contrat classique. C’est un langage financier, si on peut dire !

Ça ressemble à quoi ?

Pour les plus curieux et aguerris d’entre vous, voici à quoi ressemble Marlowe :

When [
  (Case
     (Deposit
        (Role "Ada provider")
        (Role "Ada provider")
        (Token "" "")
        (MulValue
           (Constant 1000000)
           (ConstantParam "Amount of Ada")))
     (When [
        (Case
           (Deposit
              (Role "Dollar provider")
              (Role "Dollar provider")
              (Token "85bb65" "dollar")
              (ConstantParam "Amount of dollars"))
           (Pay
              (Role "Ada provider")
              (Party
                 (Role "Dollar provider"))
              (Token "" "")
              (MulValue
                 (Constant 1000000)
                 (ConstantParam "Amount of Ada"))
              (Pay
                 (Role "Dollar provider")
                 (Party
                    (Role "Ada provider"))
                 (Token "85bb65" "dollar")
                 (ConstantParam "Amount of dollars") Close)))] (SlotParam "Timeout for dollar deposit") Close))] (SlotParam "Timeout for Ada deposit") Close

Cet exemple est un contrat d’échange dit « swap » ; il bloque un montant de Ada d’un côté, un montant en dollars de l’autre, et permet ainsi à des inconnus de procéder à un échange de devise.

Une fois le code créé, il est possible d’émuler le contrat, pour vérifier que tout se passe comme prévu, via la « marlowe playground« .

Marlowe et ses interfaces

Ce langage simplifie l’édition de contrats intelligents tout en améliorant la sécurité de ceux-ci. A première vu, rien de nouveau sous le soleil : cela reste du code.

Les équipes d’IOG ont conçu Marlowe pour pouvoir l’utiliser via différents environnements. Il sera possible de concevoir un contrat Marlowe a partir de Javascript, Haskell, et tout un tas d’autres langages, selon les besoins de chaque projet.

Pour répondre à la demande de « no-code », il existe une interface de développement de contrat intelligent bien-nommée « Blockly ». Comme une image vaut mille mots, voici un aperçu du même contrat que plus haut, mais cette fois, développée via une interface en glissé-déposé.

swap en marlowe blockly
Blockly permet de composer un contrat pour générer du code Marlowe.

Pour en savoir plus…