---
description: Utilisez ce composant pour appeler votre propre contrat intelligent sur Oasis
---

# Smart Contract by Oasis (Contrat intelligent par Oasis)

{% hint style="info" %}
Du partage des dossiers médicaux à l'analyse des informations financières personnelles, en passant par la formation aux modèles d'apprentissage automatique, la plateforme Oasis prend en charge des applications qui utilisent les données les plus sensibles sans compromettre la confidentialité ou les performances.
{% endhint %}

## **Blocs de méthode**

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MT-n09CCBKAbEdfWikI%2F-MT-n8s7AgRoS9pk_UNp%2F1.png?generation=1612773631387965\&alt=media)

Utilisez ce bloc pour appeler toute méthode d'un contrat intelligent qui a été déployée dans la chaîne de blocs.

### **Entrée :**

* Method Name (texte) : Le nom de la méthode
* Parameters (type : liste) : Une liste des paramètres qui doivent être passés dans la méthode
* Value (Texte, facultatif) : La quantité de gaz que vous souhaitez envoyer au Smart Contract lorsque vous appelez la méthode
* Gas (Numéro, facultatif) : (identique à SendTransaction) La quantité de gaz qui sera utilisée pour inscrire cette transaction dans la chaîne de caractères. Le gaz non utilisé sera retourné.
* Gas Price(Texte, facultatif) : Le prix du gaz pour cette transaction en wei

### **Sortie :**

* transactionHash : Le hash de cette transaction qui a été envoyé
* Events: Les événements qui ont été émis lors de l'exécution de cette blockchain.
* Error : S'il y a eu une erreur lors de l'exécution de la méthode. Cela peut arriver si vous envoyez plus de gaz que vous n'en avez sur votre compte ou si vous n'avez pas assez de gaz pour payer la méthode et écrire dans la blockchain.
* Receipt: Le reçu de la transaction complétée indiquant ce qui s'est passé lorsque la transaction a été inscrite dans la blockchain. Cela inclut tous les événements qui ont été émis pendant l'exécution de la méthode.

**Exemple :**

```
{
    "transactionHash" : "0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b", 
    "transactionIndex" : 0, 
    "blockHash" : "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46", 
    "blockNumber" : 3, "contractAddress" : "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", 
    "cumulativeGasUsed" : 314159, 
    "gasUsed" : 30234, 
    "events" : 
        {
            "MyEvent" : { 
                returnValues : { 
                    myIndexedParam : 20, 
                    myOtherIndexedParam : '0x123456789...', 
                    myNonIndexParam : 'My String' 
                }, 
                raw : { 
                    data : '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385', 
                    topics : ['0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385'] 
                }, 
                événement : 'MyEvent', 
                signature : '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', 
                logIndex : 0, 
                transactionIndex : 0, 
                transactionHash : '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385', 
                blockHash : '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', 
                blockNumber : 1234, 
                adresse : '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe' 
            }, 
            "MyOtherEvent" : { 
            ... 
            }, 
            "MyMultipleEvent" : [{...}, {...}] // S'il y a des multiples du même événement, ils seront dans un tableau } }

```

## **Méthode utilisée uniquement**

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MT-n09CCBKAbEdfWikI%2F-MT-n8s8hLxSZ22-IeSS%2F2.png?generation=1612773631387907\&alt=media)

Utilisez ce bloc pour simplement exécuter une méthode sans rien écrire dans la chaîne de blocs. Il peut être utilisé pour les méthodes qui ne lisent qu'à partir de la blockchain. Il peut également être utilisé pour vérifier si la méthode s'exécutera correctement compte tenu des entrées. C'est la méthode d'appel du Web3.

### **Entrée :**

* Method Name (texte) : Le nom de la méthode
* Parameters (type : liste) : Une liste des paramètres qui doivent être passés dans la méthode
* Value (Texte, facultatif) : La quantité de gaz que vous souhaitez envoyer au Smart Contract lorsque vous appelez la méthode
* Gas (Numéro, facultatif) : (identique à SendTransaction) La quantité de gaz qui sera utilisée pour inscrire cette transaction dans la chaîne de caractères. Le gaz non utilisé sera retourné.
* Gas Price (Texte, facultatif) : Le prix du gaz pour cette transaction en wei

### **Les résultats :**

* Résult (N'importe lequel) : C'est la valeur que la méthode a renvoyée.
* Error (Objet) : Toute erreur qui s'est produite lors de l'exécution de la méthode.

## **Estimation du gaz**

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MT-n09CCBKAbEdfWikI%2F-MT-n8s9ec608mxT-1rd%2F3.png?generation=1612773631387920\&alt=media)

Ce bloc est similaire au bloc Method\_RunOnly. Le bloc EstimateGas effectue un essai pratique de la méthode avec les entrées données et renvoie une estimation de la quantité de gaz qu'il en coûtera pour exécuter la méthode.

### **Entrée :**

* Method Name (texte) : Le nom de la méthode
* Parameters (type : liste) : Une liste des paramètres qui doivent être passés dans la méthode
* Value (Texte, facultatif) : La quantité de gaz que vous souhaitez envoyer au Smart Contract lorsque vous appelez la méthode
* Gas (Numéro, facultatif) : (identique à SendTransaction) La quantité de gaz qui sera utilisée pour inscrire cette transaction dans la chaîne de caractères. Le gaz non utilisé sera retourné.
* Gas Price (Texte, facultatif) : Le prix du gaz pour cette transaction en wei

### **Sortie :**

* GasAmount : Combien de gaz coûtera l'application de la méthode.
* Error : Toute erreur qui s'est produite lors de l'estimation.

## **S'abonner à l'événement**

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MT-n09CCBKAbEdfWikI%2F-MT-n8sAbF_-Z69ACPA7%2F4.png?generation=1612773631389178\&alt=media)

Semblable au bloc SubscribeToLogs.

### **Entrée :**

* Event Name : Nom de l'événement tel que spécifié dans le contrat smart
* Filter (facultatif) : Vous permet de filtrer les événements par des paramètres indexés, par exemple {filtre : {myNumber : \[12,13]\}} signifie tous les événements où "myNumber" est 12 ou 13.
* From Block (facultatif) : Le numéro du bloc à partir duquel les événements sont organisés.
* Topics (facultatif) : Cela permet de définir manuellement les sujets pour le filtre d'événements. Si la propriété du filtre et la signature de l'événement sont données, (sujet \[0]) ne sera pas défini automatiquement.

### **Sortie :**

* Le Callback est appelé chaque fois qu'un nouvel événement se produit. Les paramètres suivants sont passés dans le rappel :
* logEntry (object) : N'est pas indéfini à chaque fois qu'un nouvel événement correspondant aux thèmes, adresses, etc. se produit. Exemple

```
[returnValues : { 
    myIndexedParam : 20, 
    myOtherIndexedParam : '0x123456789...', 
    myNonIndexParam : 'My String' 
}, 
raw : { 
    data : '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385', 
    topics : ['0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385'] 
    }, 
    event: 'MyEvent', 
    signature : '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', 
    logIndex : 0, 
    transactionIndex : 0, 
    transactionHash : '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385', 
    blockHash : '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', 
    blockNumber : 1234, 
    adress : '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe' 
    }

```

* changedLog (object) : Cette sortie est présente chaque fois qu'un journal est retiré de la blockchain.
* Error (object) : Y a-t-il une erreur lors de l'abonnement

(Veuillez noter qu'Oasis Labs est un produit bêta. Par conséquent, il peut y avoir des mises à jour du système qui ont un impact sur la capacité de votre application à se connecter à la plate-forme ou même des données perdues lors de mises à jour trimestrielles importantes. Vous pouvez en savoir plus sur les cycles de mise à jour en cliquant [_ici_](http://docs.oasiscloud.io/en/latest/dashboard-quickstart/))
