Difference between revisions of "RICM5 2018 2019 - UGAChain - Interface du smart contract"

From air
Jump to navigation Jump to search
Line 21: Line 21:
 
Cette fonction consulte le world state et recherche le hash passé en paramètre.
 
Cette fonction consulte le world state et recherche le hash passé en paramètre.
 
La valeur associée au hash est retournée en cas de succès, la chaîne de caractères <code>NOT_FOUND</code> est retournée si le hash est introuvable.
 
La valeur associée au hash est retournée en cas de succès, la chaîne de caractères <code>NOT_FOUND</code> est retournée si le hash est introuvable.
  +
  +
* <code>func (t *SimpleChaincode) add(stub shim.ChaincodeStubInterface, args []string) pb.Response</code>
  +
  +
Cette fonction ajoute le hash passé en paramètre au world state du ledger avec pour valeur initiale la chaîne de caractères <code>VALID</code>.
  +
Si le hash est déjà présent dans le world state, la chaîne de caractère <code>ALREADY_PRESENT</code> est retournée.
  +
  +
* <code>func (t *SimpleChaincode) setValid(stub shim.ChaincodeStubInterface, args []string) pb.Response</code>
  +
  +
* <code>func (t *SimpleChaincode) setInvalid(stub shim.ChaincodeStubInterface, args []string) pb.Response</code>
  +
  +
* <code>func (t *SimpleChaincode) setFraudulent(stub shim.ChaincodeStubInterface, args []string) pb.Response</code>

Revision as of 11:38, 18 March 2019

Le smart contract de la blockchain utilisée par UGAChain, dénommé ugachaincode, a été rédigé dans le langage Go. Les différentes fonctions implémentées dans celui-ci sont décrites ci-dessous.

  • func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response

Cette fonction est appelée lors de l'instanciation du réseau de la blockchain. Actuellement celle-ci se contente de laisser une trace de l'initialisation du réseau Hyperledger et retourne nil.

  • func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response

Cette fonction permet l'invocation des fonctions du smart contract. Celle-ci appelle la fonction dont le nom et les paramètres sont passés en paramètre. La valeur de retour de la fonction appelée est retournée. Si la fonction appelée n'existe pas, une erreur est retournée.

  • func (t *SimpleChaincode) delete(stub shim.ChaincodeStubInterface, args []string) pb.Response

Cette fonction supprime le hash passé en paramètre du world state (une transaction de la suppression est ajoutée au ledger). Nil est retourné en cas de succès, une erreur est retournée sinon.

  • func (t *SimpleChaincode) query(stub shim.ChaincodeStubInterface, args []string) pb.Response

Cette fonction consulte le world state et recherche le hash passé en paramètre. La valeur associée au hash est retournée en cas de succès, la chaîne de caractères NOT_FOUND est retournée si le hash est introuvable.

  • func (t *SimpleChaincode) add(stub shim.ChaincodeStubInterface, args []string) pb.Response

Cette fonction ajoute le hash passé en paramètre au world state du ledger avec pour valeur initiale la chaîne de caractères VALID. Si le hash est déjà présent dans le world state, la chaîne de caractère ALREADY_PRESENT est retournée.

  • func (t *SimpleChaincode) setValid(stub shim.ChaincodeStubInterface, args []string) pb.Response
  • func (t *SimpleChaincode) setInvalid(stub shim.ChaincodeStubInterface, args []string) pb.Response
  • func (t *SimpleChaincode) setFraudulent(stub shim.ChaincodeStubInterface, args []string) pb.Response