DedSec Project

vyper — συγκεντρωτικός οδηγός — DedSec Project

vyper — συγκεντρωτικός οδηγός Vyper Συνήθης χρήση: Γλώσσες έξυπνων συμβολαίων. Προτεινόμενη επέκταση αρχείου: .vy . Εκτέλεση / περιβάλλον: Μεταγλώττιση με συμβατή εγκατάσταση vyper. Αρχικό…

Vyper

Συνήθης χρήση: Γλώσσες έξυπνων συμβολαίων.

Προτεινόμενη επέκταση αρχείου: .vy.

Εκτέλεση / περιβάλλον: Μεταγλώττιση με συμβατή εγκατάσταση vyper.

Αρχικό παράδειγμα

# pragma version ^0.4.0
message: public(String[64])
@deploy
def __init__():
    self.message = "Hello, Ada!"

Πώς διαβάζεται

Η σύνταξη εξαρτάται από την έκδοση μεταγλωττιστή.

Συνηθισμένο λάθος

Η σύνταξη εξαρτάται από την έκδοση μεταγλωττιστή. Έλεγξε την έκδοση διερμηνευτή/μεταγλωττιστή και μην εκλαμβάνεις το δείγμα ως έτοιμη εφαρμογή παραγωγής.

Vyper — Αναλυτικός οδηγός εξάσκησης

Ξεκίνησε από αληθινή σύνταξη

Το αρχικό παράδειγμα της Vyper είναι η μικρότερη αφετηρία. Διάβασε τη σειρά των πράξεων και τον τρόπο εμφάνισης, έπειτα επιβεβαίωσέ το στο σωστό περιβάλλον. Μην θεωρείς ότι η σύνταξη άλλης γλώσσας έχει ίδια σημασία.

# pragma version ^0.4.0
message: public(String[64])
@deploy
def __init__():
    self.message = "Hello, Ada!"

Περιβάλλον εκτέλεσης: Compile using compatible vyper toolchain.. Έλεγξε έκδοση compiler/interpreter πριν τροποποιήσεις τον κώδικα και κράτησε την αρχική έξοδο. Δούλεψε σε προσωρινό κατάλογο, μακριά από πραγματικά δεδομένα.

Οδηγούμενο εργαστήριο

Με Vyper 0.4 δοκίμασε @deploy constructor, πρόσθεσε public counter και σύγκρινε getter με εξουσιοδοτημένη μεταβολή. Απαίτησε απόρριψη άλλου caller.

Δοκιμές ορίων

Μη βάζεις decorators 0.4 σε compiler 0.3. Έλεγξε pragma και μη μεταφέρεις Solidity modifiers ή άπειρους βρόχους.

Προχωρημένη αποστολή

Φτιάξε ξεχωριστό αρχείο για το παραπάνω εργαστήριο και πειραματίσου με μία αλλαγή σε σειρά, σχήμα, τύπο, scope ή περιβάλλον, ανάλογα με τη Vyper. Καθόρισε invariant και σύγκρινε αναμενόμενη με πραγματική έξοδο. Αν κάτι διαφέρει, απομόνωσε το ελάχιστο παράδειγμα πριν μεγαλώσεις το πρόγραμμα.

Vyper — Διαδρομή ουσιαστικής εξάσκησης

Ανεξάρτητο τεχνικό εργαστήριο

Με συγκεκριμένο Vyper 0.4 compiler, κάνε compile @deploy constructor και εξέτασε ABI. Πρόσθεσε owner getter και προστατευμένο counter. Δοκίμασε accepted/rejected callers και αμετάβλητο state μετά revert. Σύγκρινε με αντίστοιχη Solidity λογική, προσέχοντας unsupported modifiers.