
Caractéristiques:
️ Python 3.12 est soutenu expérimentalement.
via pip
pip3 install eth-wakeLa documentation de réveil peut être trouvée ici.
Vous pouvez également trouver une section sur la contribution.
| Vulnérabilité | Gravité | Projet | Méthode | Découvert par | Ressources |
|---|---|---|---|---|---|
| Bénéfice et perte comptabilisée deux fois | Critique | Ipor | Test de fuzz | Blockchain ackee | Rapport, tests de réveil |
| Console déni de service permanent | Haut | Brahma | Test de fuzz | Blockchain ackee | Rapport |
| Échange d'erreur de formule de détention | Haut | Ipor | Test de fuzz | Blockchain ackee | Rapport, tests de réveil |
| Échange des frais de détente comptabilisés deux fois | Haut | Ipor | Test de fuzz | Blockchain ackee | Rapport, tests de réveil |
| Données d'événements incorrects | Haut | Solady | Test d'intégration | Blockchain ackee | Rapport, tests de réveil |
INTEREST_FROM_STRATEGY_BELOW_ZERO revient DOS | Moyen | Ipor | Test de fuzz | Blockchain ackee | Rapport, tests de réveil |
| Formule d'intérêt hypothétique inexact | Moyen | Ipor | Test de fuzz | Blockchain ackee | Rapport, tests de réveil |
| Échange d'erreur de normalisation des frais de détention | Moyen | Ipor | Test de fuzz | Blockchain ackee | Rapport, tests de réveil |
| Les dépôts de liquidation sont comptabilisés en solde LP | Moyen | Ipor | Test de fuzz | Blockchain ackee | Rapport, tests de réveil |
| Fonction de réception manquante | Moyen | Axélar | Test de fuzz | Blockchain ackee | Tests de réveil |
SafeERC20 non utilisé pour approve | Moyen | Piscine | Test de fuzz | Blockchain ackee | Tests de réveil |
| Vetting non optimiste et clés non liées à une mauvaise comptabilité | Moyen | Piscine | Test de fuzz | Blockchain ackee | Rapport, tests de réveil |
Voir des exemples et une documentation pour plus d'informations.
Les tests d'écriture sont aussi simples que:
from wake . testing import *
from pytypes . contracts . Counter import Counter
@ chain . connect ()
def test_counter ():
counter = Counter . deploy ()
assert counter . count () == 0
counter . increment ()
assert counter . count () == 1Fuzzer s'appuie sur le cadre des tests et permet des tests de fuzz efficaces des contrats intelligents de Solidity.
from wake . testing import *
from wake . testing . fuzzing import *
from pytypes . contracts . Counter import Counter
class CounterTest ( FuzzTest ):
def pre_sequence ( self ) -> None :
self . counter = Counter . deploy ()
self . count = 0
@ flow ()
def increment ( self ) -> None :
self . counter . increment ()
self . count += 1
@ flow ()
def decrement ( self ) -> None :
with may_revert ( PanicCodeEnum . UNDERFLOW_OVERFLOW ) as e :
self . counter . decrement ()
if e . value is not None :
assert self . count == 0
else :
self . count -= 1
@ invariant ( period = 10 )
def count ( self ) -> None :
assert self . counter . count () == self . count
@ chain . connect ()
def test_counter ():
CounterTest (). run ( sequences_count = 30 , flows_count = 100 )Tous les détecteurs de vulnérabilité et de qualité de code peuvent être exécutés en utilisant:
wake detect allUn détecteur spécifique peut être exécuté en utilisant:
wake detect < detector-name >Voir la documentation pour une liste de tous les détecteurs.
Une imprimante spécifique peut être exécutée en utilisant:
wake print < printer-name >Voir la documentation pour une liste de toutes les imprimantes.
Reportez-vous au Guide de démarrage pour plus d'informations. Consultez également Wake_Detectors et Wake_printers pour la mise en œuvre de détecteurs et d'imprimantes intégrés.
Wake implémente un serveur LSP pour la solidité. Le seul canal de communication actuellement pris en charge est TCP.
Le serveur LSP Wake peut être exécuté en utilisant:
wake lspOu avec un argument en option (Port (par défaut 65432):
wake lsp --port 1234Toutes les fonctionnalités du serveur LSP peuvent être trouvées dans la documentation.
Ce projet est concédé sous licence ISC.
| Rockawayx | Coincement |
|---|---|
![]() | ![]() |