Aller au contenu

Fonctions intégrées

Les fonctions intégrées sont divisées en plusieurs catégories:

Contrat, Sous-contrat, Actif, Utilitaires, Chaîne, Conversion, ByteVec, Cryptographie.

Toutes les fonctions intégrées sont suffixées par !.

Tous les encodages de bytes utilisent l'ordre de bytes big-endian.

Fonctions du contrat


createContract

Rust
fn createContract!(bytecode:ByteVec, encodedImmFields:ByteVec, encodedMutFields:ByteVec) -> (ByteVec)

Crée un nouveau contrat sans émission de jetons.

@param bytecode le bytecode du contrat à créer

@param encodedImmFields les champs immuables encodés en tant que ByteVec

@param encodedMutFields les champs mutables encodés en tant que ByteVec

@returns l'id du contrat créé


createContractWithToken

Rust
fn createContractWithToken!(bytecode:ByteVec, encodedImmFields:ByteVec, encodedMutFields:ByteVec, issueTokenAmount:U256, issueTo?:Address) -> (ByteVec)

Crée un nouveau contrat avec émission de jetons.

@param bytecode le bytecode du contrat à créer

@param encodedImmFields les champs immuables encodés en tant que ByteVec

@param encodedMutFields les champs mutables encodés en tant que ByteVec

@param issueTokenAmount le montant de jeton à émettre

@param issueTo (optionnel) une adresse désignée pour recevoir les jetons émis

@returns l'id du contrat créé


copyCreateContract

Rust
fn copyCreateContract!(contractId:ByteVec, encodedImmFields:ByteVec, encodedMutFields:ByteVec) -> (ByteVec)

Crée un nouveau contrat sans émission de jetons en copiant le code d'un autre contrat. Cela coûte moins de gaz que createContract!(...).

@param contractId l'id du contrat à copier

@param encodedImmFields les champs immuables encodés en tant que ByteVec

@param encodedMutFields les champs mutables encodés en tant que ByteVec

@returns l'id du contrat créé


copyCreateContractWithToken

Rust
fn copyCreateContractWithToken!(contractId:ByteVec, encodedImmFields:ByteVec, encodedMutFields:ByteVec, issueTokenAmount:U256, issueTo?:Address) -> (ByteVec)

Crée un nouveau contrat avec émission de jetons en copiant le code d'un autre contrat. Cela coûte moins de gaz que createContractWithToken!(...).

@param contractId l'id du contrat à copier

@param encodedImmFields les champs immuables encodés en tant que ByteVec

@param encodedMutFields les champs mutables encodés en tant que ByteVec

@param issueTokenAmount la quantité de jetons à émettre

@param issueTo (facultatif) une adresse désignée pour recevoir les jetons émis

@returns l'id du contrat créé


selfAddress

Rust
fn selfAddress!() -> (Address)

Retourne l'adresse du contrat.

@returns l'adresse du contrat


selfContractId

Rust
fn selfContractId!() -> (ByteVec)

Retourne l'id (ByteVec) du contrat.

@returns l'id(ByteVec) du contrat


selfTokenId

Rust
fn selfTokenId!() -> (ByteVec)

Retourne l'id du jeton (ByteVec) du contrat.

@returns l'id du jeton (ByteVec) du contrat


tokenId

Rust
fn tokenId!(contract:<Contract>) -> (ByteVec)

Retourne l'id du contrat.

@param contract la variable du contrat

@returns l'id du contrat


contractId

Rust
fn contractId!(contract:<Contract>) -> (ByteVec)

Retourne l'id du contrat

@param contract la variable du contrat

@returns l'id du contrat


contractAddress

Rust
fn contractAddress!(contract:<Contract>) -> (Address)

Retourne l'adresse du contrat

@param contract la variable du contrat

@returns the address of the contract


callerContractId

Rust
fn callerContractId!() -> (ByteVec)

Retourne l'id de contrat de l'appelant.

@returns l'ide du contrat de l'appelant


callerAddress

Rust
fn callerAddress!() -> (Address)

Retourne l'adresse de l'appelant. Lorsqu'il est utilisé dans un TxScript, il renvoie l'adresse d'entrée unique si les adresses d'entrée sont identiques, sinon il échoue.

@returns l'adresse de l'appelant. Lorsqu'il est utilisé dans un TxScript, il renvoie l'adresse d'entrée unique si les adresses d'entrée sont identiques, sinon il échoue


contractInitialStateHash

Rust
fn contractInitialStateHash!(contractId:ByteVec) -> (ByteVec)

Retourne le hash de l'état initial du contrat.

@param contractId l'id du contrat d'entrée

@returns le hachage du code du contrat


contractCodeHash

Rust
fn contractCodeHash!(contractId:ByteVec) -> (ByteVec)

Retourne le hash du code de contrat du contrat.

@param contractId l'id du contrat d'entrée

@returns le hachage du code du contrat


callerInitialStateHash

Rust
fn callerInitialStateHash!() -> (ByteVec)

Retourne le hash de l'état initial du contrat appelant.

@returns the initial state hash of the caller contract


callerCodeHash

Rust
fn callerCodeHash!() -> (ByteVec)

Retourne le hash du code de contrat du contrat appelant.

@returns le hash du code du contrat de l'appelant


contractExists

Rust
fn contractExists!(contractId:ByteVec) -> (Bool)

Vérifie si le contrat existe avec id donné.

@param contractId l'id du contrat à tester

@returns vrai si le contrat existe sur la chaîne, faux sinon


destroySelf

Rust
fn destroySelf!(refundAddress:Address) -> ()

Détruit le contrat et transfère les actifs restants à une adresse désignée.

@param refundAddress l'adresse pour recevoir les actifs restants dans le contrat

@returns


migrate

Rust
fn migrate!(newBytecode:ByteVec) -> ()

Migre le code du contrat.

@param newBytecode le nouveau bytecode vers lequel le contrat doit migrer

@returns


migrateWithFields

Rust
fn migrateWithFields!(newBytecode:ByteVec, newEncodedImmFields:ByteVec, newEncodedMutFields:ByteVec) -> ()

Migre à la fois le code et les champs du contrat.

@param newBytecode le bytecode pour le contrat vers lequel migrer

@param newEncodedImmFields les champs immuables encodés pour le contrat vers lequel migrer

@param newEncodedMutFields les champs mutables encodés pour le contrat vers lequel migrer

@returns


isCalledFromTxScript

Rust
fn isCalledFromTxScript!() -> (Bool)

Vérifie si la fonction est appelée par un TxScript.

@returns vrai si la fonction est appelée par un TxScript, faux sinon


selfContract

Rust
fn selfContract!() -> (<Contract>)

Retourne le contrat lui-même

@returns contrat lui-même


Fonctions de sous-contrat


createSubContract

Rust
fn createSubContract!(subContractPath:ByteVec, bytecode:ByteVec, encodedImmFields:ByteVec, encodedMutFields:ByteVec) -> (ByteVec)

Crée un nouveau sous-contrat sans émission de jetons.

@param subContractPath le chemin du sous-contrat à créer

@param bytecode le bytecode du sous-contrat à créer

@param encodedImmFields les champs immuables encodés sous forme de ByteVec

@param encodedMutFields les champs mutables encodés sous forme de ByteVec

@returns l'id du contrat créé


createSubContractWithToken

Rust
fn createSubContractWithToken!(subContractPath:ByteVec, bytecode:ByteVec, encodedImmFields:ByteVec, encodedMutFields:ByteVec, issueTokenAmount:U256, issueTo?:Address) -> (ByteVec)

Crée un nouveau sous-contrat avec émission de jetons.

@param subContractPath le chemin du sous-contrat à créer

@param bytecode le bytecode du sous-contrat à créer

@param encodedImmFields les champs immuables encodés sous forme de ByteVec

@param encodedMutFields les champs mutables encodés sous forme de ByteVec

@param issueTokenAmount la quantité de jetons à émettre

@param issueTo (facultatif) une adresse désignée pour recevoir les jetons émis

@returns * l'id du contrat créé*


copyCreateSubContract

Rust
fn copyCreateSubContract!(subContractPath:ByteVec, contractId:ByteVec, encodedImmFields:ByteVec, encodedMutFields:ByteVec) -> (ByteVec)

Crée un nouveau sous-contrat sans émission de jetons en copiant le code d'un autre contrat. Cela coûte moins de gaz que createSubContract!(...).

@param subContractPath le chemin du sous-contrat à créer

@param contractId the id of the contract to be copied

@param encodedImmFields les champs immuables encodés sous forme de ByteVec

@param encodedMutFields les champs mutables encodés sous forme de ByteVec

@returns * l'id du contrat créé*


copyCreateSubContractWithToken

Rust
fn copyCreateSubContractWithToken!(subContractPath:ByteVec, contractId:ByteVec, encodedImmFields:ByteVec, encodedMutFields:ByteVec, issueTokenAmount:U256, issueTo?:Address) -> (ByteVec)

Crée un nouveau sous-contrat avec émission de jetons en copiant le code d'un autre contrat. Cela coûte moins de gaz que createSubContractWithToken!(...).

@param subContractPath le chemin du sous-contrat à créer

@param contractId the id of the contract to be copied

@param encodedImmFields les champs immuables encodés sous forme de ByteVec

@param encodedMutFields les champs mutables encodés sous forme de ByteVec

@param issueTokenAmount la quantité de jetons à émettre

@param issueTo (facultatif) une adresse désignée pour recevoir les jetons émis

@returns * l'id du contrat créé*


subContractId

Rust
fn subContractId!(subContractPath:ByteVec) -> (ByteVec)

Retourne id du sous-contrat.

@param subContractPath le chemin du sous-contrat

@returns l'id du sous-contrat


subContractIdOf

Rust
fn subContractIdOf!(contract:<Contract>, subContractPath:ByteVec) -> (ByteVec)

Retourne id du sous-contrat.

@param contract le contrat parent du sous-contrat

@param subContractPath le chemin du sous-contrat

@returns l'id du sous-contrat


subContractIdInParentGroup

Rust
fn subContractIdInParentGroup!(contract:<Contract>, subContractPath:ByteVec) -> (ByteVec)

Retourne id du sous-contrat.

@param contract le contrat parent du sous-contrat

@param subContractPath le chemin du sous-contrat

@returns l'id du sous-contrat


Fonctions d'actif


approveToken

Rust
fn approveToken!(fromAddress:Address, tokenId:ByteVec, amount:U256) -> ()

Approuve l'utilisation d'une certaine quantité de jetons à partir de l'adresse donnée.

@param fromAddress l'adresse pour autoriser le jeton depuis

@param tokenId le jeton à autoriser

@param amount la quantité du jeton à autoriser

@returns


tokenRemaining

Rust
fn tokenRemaining!(address:Address, tokenId:ByteVec) -> (U256)

Retourne le montant restant de jeton dans les actifs d'entrée de la fonction.

@param address l'adresse d'entrée

@param tokenId l'id du jeton

@returns la quantité restante du jeton dans les actifs d'entrée de la fonction


transferToken

Rust
fn transferToken!(fromAddress:Address, toAddress:Address, tokenId:ByteVec, amount:U256) -> ()

Transfère des jetons à partir des actifs d'entrée de la fonction.

@param fromAddress l'adresse d'origine du transfert de jeton

@param toAddress l'adresse de destination du transfert de jeton

@param tokenId le jeton à transférer

@param amount la quantité de jeton à transférer

@returns


transferTokenFromSelf

Rust
fn transferTokenFromSelf!(toAddress:Address, tokenId:ByteVec, amount:U256) -> ()

Transfère les jetons du contrat à partir des actifs d'entrée de la fonction.

@param toAddress l'adresse de destination du transfert de jeton

@param tokenId le jeton à transférer

@param amount la quantité de jeton à transférer

@returns


transferTokenToSelf

Rust
fn transferTokenToSelf!(fromAddress:Address, tokenId:ByteVec, amount:U256) -> ()

Transfère des jetons vers le contrat à partir des actifs d'entrée de la fonction.

@param fromAddress l'adresse de destination du transfert de jeton

@param tokenId le jeton à transférer

@param amount la quantité de jeton à transférer

@returns


burnToken

Rust
fn burnToken!(address:Address, tokenId:ByteVec, amount:U256) -> ()

Brûle des jetons à partir des actifs d'entrée de la fonction.

@param address * l'adresse d'où brûler le jeton*

@param tokenId le jeton à brûler

@param amount la quantité de jeton à brûler

@returns


lockApprovedAssets

Rust
fn lockApprovedAssets!(address:Address, timestamp:U256) -> ()

Verrouille les actifs approuvés actuels.

@param address l'adresse à laquelle les actifs seront bloqués

@param timestamp le moment jusqu'auquel les actifs seront bloqués

@returns


Fonctions utilitaires


assert

Rust
fn assert!(condition:Bool, errorCode:U256) -> ()

Teste la condition ou vérifie les invariants.

@param condition la condition à vérifier

@param errorCode le code d'erreur à renvoyer si la vérification échoue

@returns


checkCaller

Rust
fn checkCaller!(condition:Bool, errorCode:U256) -> ()

Vérifie les conditions de l'appelant externe de la fonction.

@param condition la condition à vérifier

@param errorCode le code d'erreur à renvoyer si la vérification échoue

@returns


isAssetAddress

Rust
fn isAssetAddress!(address:Address) -> (Bool)

Retourne si une adresse est une adresse d'actif.

@param address l'adresse d'entrée à tester

@returns vrai si l'adresse est une adresse d'actif, faux sinon


isContractAddress

Rust
fn isContractAddress!(address:Address) -> (Bool)

Retourne si une adresse est une adresse de contrat.

@param address l'adresse d'entrée à tester

@returns vrai si l'adresse est une adresse d'actif, faux sinon


zeros

Rust
fn zeros!(n:U256) -> (ByteVec)

Retourne un ByteVec de zéros.

@param n le nombre de zéros

@returns un ByteVec de zéros


panic

Rust
fn panic!(errorCode?: U256) -> (Never)

Termine immédiatement l'application.

@param errorCode (facultatif) le code d'erreur à renvoyer lorsque la fonction panic!(...) est appelée

@returns


mulModN

Rust
fn mulModN!(x:U256, y:U256, n:U256) -> (U256)

Returns calcule le résultat de x * y % n

@param x x

@param y y

@param n n

@returns calcule le résultat de x * y % n


addModN

Rust
fn addModN!(x:U256, y:U256, n:U256) -> (U256)

Returns calcule le résultat de (x + y) % n.

@param x x

@param y y

@param n n

@returns calcule le résultat de (x + y) % n


u256Max

Rust
fn u256Max!() -> (U256)

Retourne la valeur maximale de U256.

@returns la valeur maximale de U256


i256Max

Rust
fn i256Max!() -> (I256)

Retourne la valeur maximale de I256.

@returns la valeur maximale deI256


i256Min

Rust
fn i256Min!() -> (I256)

Retourne la valeur minimale de I256.

@returns la valeur minimale de I256


nullContractAddress

Rust
fn nullContractAddress!() -> (Address)

Retourne l'adresse de contrat nulle avec l'id de contrat étant zéros.

@returns l'adresse de contrat nulle avec l'id de contrat étant zéro


Fonctions de chaîne


networkId

Rust
fn networkId!() -> (ByteVec)

Retourne l'id de réseau (un seul octet).

@returns l'id de réseau (un seul octet)


blockTimeStamp

Rust
fn blockTimeStamp!() -> (U256)

Retourne le timestamp du bloc.

@returns le timestamp du bloc


blockTarget

Rust
fn blockTarget!() -> (U256)

Retourne la cible de difficulté du bloc.

@returns la cible de difficulté du bloc


txId

Rust
fn txId!() -> (ByteVec)

Retourne l'id de transaction actuel.

@returns l'id de transaction actuel


txInputAddress

Rust
fn txInputAddress!(txInputIndex:U256) -> (Address)

Retourne l'adresse d'entrée de la transaction n-th.

@param txInputIndex l'indice de l'entrée de la transaction

@returns l'adresse de la n-ième entrée de la transaction


txInputsSize

Rust
fn txInputsSize!() -> (U256)

Retourne le nombre d'adresses d'entrée de transaction.

@returns le nombre d'entrées de transaction


txGasPrice

Rust
fn txGasPrice!() -> (U256)

Retourne le prix actuel du gaz de la transaction.

@returns le prix actuel du gaz de la transaction


txGasAmount

Rust
fn txGasAmount!() -> (U256)

Retourne la quantité de gaz de la transaction actuelle.

@returns la quantité actuelle de gaz de la transaction


txGasFee

Rust
fn txGasFee!() -> (U256)

Retourne les frais de gaz de la transaction actuelle.

@returns la frais de gaz actuel de la transaction


verifyAbsoluteLocktime

Rust
fn verifyAbsoluteLocktime!(lockUntil:U256) -> ()

Vérifie que le locktime absolu est avant le timestamp du bloc, sinon échoue.

@param lockUntil le timestamp jusqu'auquel le verrouillage est valide

@returns


verifyRelativeLocktime

Rust
fn verifyRelativeLocktime!(txInputIndex:U256, lockDuration:U256) -> ()

Vérifie que le timestamp de création de l'entrée + la durée de verrouillage est avant le timestamp du bloc, sinon échoue.

@param txInputIndex l'indice de l'entrée de transaction

@param lockDuration la durée pendant laquelle l'entrée est verrouillée

@returns


dustAmount

Rust
fn dustAmount!() -> (U256)

Retourne la quantité de poussière d'un UTXO.

@returns le montant de poussière d'un UTXO


Fonctions de conversion


toI256

Rust
fn toI256!(from:U256) -> (I256)

Convertit U256 en I256.

@param from un U256 à convertir

@returns un I256


toU256

Rust
fn toU256!(from:I256) -> (U256)

Convertit I256 en U256.

@param from un I256 à convertir

@returns un U256


toByteVec

Rust
fn toByteVec!(from:Bool|I256|U256|Address) -> (ByteVec)

Convertit Bool/I256/U256/Adresse en ByteVec

@param from un Bool|I256|U256|Adresse à convertir

@returns un ByteVec


contractIdToAddress

Rust
fn contractIdToAddress!(contractId:ByteVec) -> (Address)

Convertit l'id de contrat (ByteVec) en adresse de contrat (Adresse).

@param contractId l'id de contrat d'entrée

@returns une adresse de contrat


addressToContractId

Rust
fn addressToContractId!(contractAddress:Address) -> (ByteVec)

Convertit l'adresse de contrat (Adresse) en id de contrat (ByteVec)

@param contractAddress l'adresse du contrat d'entrée

@returns un id de contrat


byteVecToAddress

Rust
fn byteVecToAddress!(bytes:ByteVec) -> (Address)

Convertit ByteVec en Adresse.

@param bytes le ByteVec d'entrée

@returns une Adresse


u256To1Byte

Rust
fn u256To1Byte!(u256:U256) -> (ByteVec)

Convertit U256 en 1 octet.

@param u256 l'entrée U256

@returns 1 octets


u256To2Byte

Rust
fn u256To2Byte!(u256:U256) -> (ByteVec)

Convertit U256 en 2 octets en big-endian.

@param u256 l'entrée U256

@returns 2 octets


u256To4Byte

Rust
fn u256To4Byte!(u256:U256) -> (ByteVec)

Convertit U256 en 4 octets en big-endian.

@param u256 l'entrée U256

@returns 4 octets


u256To8Byte

Rust
fn u256To8Byte!(u256:U256) -> (ByteVec)

Convertit U256 en 8 octets en big-endian.

@param u256 l'entrée U256

@returns 8 octets


u256To16Byte

Rust
fn u256To16Byte!(u256:U256) -> (ByteVec)

Convertit U256 en 16 octets en big-endian.

@param u256 l'entrée U256

@returns 16 octets


u256To32Byte

Rust
fn u256To32Byte!(u256:U256) -> (ByteVec)

Convertit U256 en 32 octets en big-endian.

@param u256 l'entrée U256

@returns 32 octets


u256ToString

Rust
fn u256ToString!(u256:U256) -> (ByteVec)

Convertit U256 en chaîne de caractères dans ByteVec.

@param u256 l'entrée U256

@returns Chaîne convertie en ByteVec


i256ToString

Rust
fn i256ToString!(i256:I256) -> (ByteVec)

Convertit I256 en chaîne de caractères dans ByteVec.

@param i256 l'entrée I256

@returns Chaîne convertie en ByteVec


boolToString

Rust
fn boolToString!(bool:Bool) -> (ByteVec)

Convertit Bool en chaîne de caractères dans ByteVec.

@param bool le Booléen d'entrée

@returns Chaîne convertie en ByteVec


u256From1Byte

Rust
fn u256From1Byte!(bytes:ByteVec) -> (U256)

Convertit 1 octet en U256.

@param bytes le ByteVec d'entrée

@returns un U256


u256From2Byte

Rust
fn u256From2Byte!(bytes:ByteVec) -> (U256)

Convertit 2 octets en big-endian en U256.

@param bytes le ByteVec d'entrée

@returns un U256


u256From4Byte

Rust
fn u256From4Byte!(bytes:ByteVec) -> (U256)

Convertit 4 octets en big-endian en U256.

@param bytes le ByteVec d'entrée

@returns un U256


u256From8Byte

Rust
fn u256From8Byte!(bytes:ByteVec) -> (U256)

Convertit 8 octets en big-endian en U256.

@param bytes le ByteVec d'entrée

@returns un U256


u256From16Byte

Rust
fn u256From16Byte!(bytes:ByteVec) -> (U256)

Convertit 16 octets en big-endian en U256.

@param bytes *le ByteVec d'entrée

@returns un U256


u256From32Byte

Rust
fn u256From32Byte!(bytes:ByteVec) -> (U256)

Convertit 32 octets en big-endian en U256.

@param bytes le ByteVec d'entrée

@returns un U256


Fonctions de vecteur d'octets


size

Rust
fn size!(bytes:ByteVec) -> (U256)

Retourne la taille du ByteVec.

@param bytes un ByteVec

@returns la taille du ByteVec


byteVecSlice

Rust
fn byteVecSlice!(bytes:ByteVec, from:U256, until:U256) -> (ByteVec)

Sélectionne un intervalle d'octets.

@param bytes un ByteVec

@param from l'indice le plus bas à inclure du ByteVec

@param until l'indice le plus bas à inclure du ByteVec

@returns un ByteVec contenant les éléments supérieurs ou égaux à l'indice depuis l'extension jusqu'à (mais non inclus) l'indice jusqu'à de ce ByteVec


encodeToByteVec

Rust
fn encodeToByteVec!(...any) -> (ByteVec)

Encode les entrées en ByteVec en big-endian.

@param any une séquence de valeurs d'entrée

@returns un ByteVec encodant les entrées


Fonctions de cryptographie


blake2b

Rust
fn blake2b!(data:ByteVec) -> (ByteVec)

Calcule le hachage Blake2b-256 de l'entrée.

@param data *les données d'entrée à hasher

@returns le résultat du hachage de 32 octets


keccak256

Rust
fn keccak256!(data:ByteVec) -> (ByteVec)

Calcule le hachage Keccak256 de l'entrée.

@param data les données d'entrée à hasher

@returns le résultat du hachage


sha256

Rust
fn sha256!(data:ByteVec) -> (ByteVec)

Calcule le hachage Sha256 de l'entrée.

@param data les données d'entrée à hasher

@returns le résultat du hachage


sha3

Rust
fn sha3!(data:ByteVec) -> (ByteVec)

Calcule le hachage Sha3 de l'entrée.

@param data les données d'entrée à hasher

@returns le résultat du hachage


verifyTxSignature

Rust
fn verifyTxSignature!(publicKey:ByteVec) -> ()

Vérifie la signature SecP256K1 de transaction d'une clé publique. La signature est signée contre l'id de transaction.

@param publicKey la clé publique (33 octets) du signataire

@returns


getSegregatedSignature

Rust
fn getSegregatedSignature!() -> (ByteVec)

La signature séparée de la transaction.

@returns la signature ségréguée de la transaction


verifySecP256K1

Rust
fn verifySecP256K1!(data:ByteVec, publicKey:ByteVec, signature:ByteVec) -> ()

Vérifie la signature SecP256K1 de l'entrée et de la clé publique.

@param data les données (32 octets) qui étaient censées être signées

@param publicKey la clé publique (33 octets) du signataire

@param signature la valeur de la signature (64 octets)

@returns


verifyED25519

Rust
fn verifyED25519!(data:ByteVec, publicKey:ByteVec, signature:ByteVec) -> ()

Vérifie la signature ED25519 de l'entrée et de la clé publique.

@param data les données (32 octets) qui étaient censées être signées

@param publicKey la clé publique (32 octets) du signataire

@param signature la valeur de la signature (64 octets)

@returns


verifyBIP340Schnorr

Rust
fn verifyBIP340Schnorr!(data:ByteVec, publicKey:ByteVec, signature:ByteVec) -> ()

Vérifie la signature Schnorr BIP340 de l'entrée et de la clé publique.

@param data les données (32 octets) qui étaient censées être signées

@param publicKey la clé publique (32 octets) du signataire

@param signature la valeur de la signature (64 octets)

@returns


ethEcRecover

Rust
fn ethEcRecover!(data:ByteVec, signature:ByteVec) -> (ByteVec)

Récupère le compte ETH qui a signé les données.

@param data les données qui étaient censées être signées

@param signature la valeur de la signature

@returns le compte ETH qui a signé les données