Solidity et FreeTon : Introduction aux DeBots

Steven de Oliveira
OCamlPro FreeTON FR
4 min readNov 2, 2021

Cet article nécessite une compréhension, même sommaire, de ce qu’est un smart-contract.

La blockchain FreeTon utilise comme langage de smart-contract une version de Solidity adaptée aux besoins et aux outils proposés par la blockchain. Comme pour toute blockchain, l’intéraction avec ces smart contracts se fait via des messages (ou transactions) contenant les différents paramètres permettant au contrat de pouvoir s’exécuter. Dans Freeton, chaque adresse active est même associée à un contrat. Il faut donc pouvoir interagir facilement avec les contrats de la chaine. Là où la plupart des blockchains proposent des outils pour s’interfacer avec des contrats, FreeTon s’est dotée d’un système d’interface graphique inscrit directement dans la blockchain : il s’agit des DeBots (Decentralized Bots).

Utiliser son premier DeBot

Un DeBot est un smart-contract comme un autre. Il possède des méthodes, une mémoire, et il peut appeler d’autres contrats. Pour intéragir avec un DeBot, vous n’avez pas besoin d’avoir de fonds : tout se fait localement (tant qu’il ne doit pas envoyer de message/transactions).

Allez sur Ton Surf, un des wallet sur navigateur de FreeTon. Pour plus d’informations sur Ton Surf, ce tutoriel vous présentera comment vous en servir en détail. Pour le moment, vous n’aurez besoin que d’une seule chose : accéder au DeBot du contract “Multisig”.

NB : Comme nous le disions précédemment, chaque adresse active est associée à un contrat. Si vous avez un “compte” sur FreeTon, c’est que vous avez en réalité un contrat de “Multisig”.

Cliquez sur “Browse DeBots” et cherchez le DeBot “Multisig”
Selectionnez “I Understand”

Vous êtes maintenant connecté au DeBot ! Ce dernier est capable d’afficher des choses à l’écran et d’imprimer une liste de choix.

Le DeBot n’est associé à aucun compte en particulier. Si vous souhaitez travailler avec, il faut lui renseigner votre adresse. Ton Surf vous permet de la renseigner automatiquement en cliquant sur “My Crystals”.

Le DeBot a rajouté votre adresse dans sa mémoire locale. A présent, vous pouvez l’utiliser pour générer des transactions à votre nom et faire tout ce qu’un Multisig permet de faire. Pratique !

Notez que j’ai parlé de mémoire locale. Le code du DeBot est en réalité exécuté par votre navigateur depuis l’interface de Ton Surf. Toutes les données entrées jusqu’ici sont temporaires et disparaitront une fois que vous quitterez le DeBot. Bien entendu, si le DeBot emet une transaction en votre nom, la transaction, elle, ne disparaitra pas.

A quoi ressemble un DeBot ?

Voyons un peu ce qui se cache sous le capot. Vous pouvez accéder à son code complet sur Github. Concentrons nous sur les composants principaux du DeBot.

Un invariant à tout DeBot est la présence de la fonction publique start. Cette fonction est le point d’entrée que votre navigateur va exécuter en premier. Dans le cas du DeBot de Multisig, il commence par demander l’adresse du wallet avec lequel travailler avec la fonction AddressInput.get. Cette fonction attend deux arguments : l’identifiant de la fonction qui traitera l’adresse demandée et le texte à afficher sur le navigateur. Une fois l’adresse entrée, la fonction startChecks sera appelée.

La fonction startChecks commence avant tout par envoyer une requête sur le type de compte à laquelle l’adresse rensignée correspond. Le résultat sera envoyé à checkStatus. Ensuite, l’adresse est sauvegardée dans la variable globale m_wallet. Cette variable n’est sauvegardée que localement et jamais sur la chaine ; l’exécution d’un DeBot ne modifiera jamais son état sur la chaine sans que vous ne soyiez invité à signer une transaction.

N’hésitez pas à parcourir les différents DeBots sur le GitHub de TonLabs.

Rejoignez l’univers FreeTon

Telegram : https://t.me/TONCRYSTAL
Telegram Francophone : https://t.me/gramfr
Medium France : https://medium.com/ocamlpro-blockchain-fr
Medium : https://free-ton.medium.com/
Ton Surf : https://web.ton.surf
Ton Surf tutorial : https://medium.com/bubbalexmedia/ton-surf-wallet-guide-for-storing-free-ton-tokens-9149977d60d8

--

--