in smartpy, parametro variabile locale, qual è la differenza?

Sep 28 2020

in smartpy

def aa(self) {
    value_in_func = "1234"
    msg = "abc" + value_in_func
    hex_string = msg.encode("utf-8")
    thingToSign = sp.bytes("0x" + hex_string.hex())
}

Funziona bene, ma

value = "1234"
def aa(self, value)
{
    msg = "abc" + value
    hex_string = msg.encode("utf-8")
    thingToSign = sp.bytes("0x" + hex_string.hex())
}

non funziona. Errore: call () manca 1 argomento posizionale: arg

Non conosco la differenza tra i due.

che differenza c'è?

Ho controllato sp.verify(value_in_func == value), questo è vero.

Risposte

1 RodrigoQuelhas Sep 28 2020 at 19:08

Il motivo dell'errore è che non stai passando un parametro al metodo:

Il tuo test dovrebbe contenere qualcosa del genere

    c1 = YourContract(...)
    scenario += c1
    scenario += c1.aa("1234")

E rimuovere ilvalue = "1234"