¿Cuál es la diferencia entre pagar y ver en un contrato inteligente en solidez?

No entiendo muy bien el concepto de pago en una función en el contrato inteligente y la diferencia entre pago, vista y puro.

Respuestas (2)

Pagadero significa que la función puede recibir Ether a través de esa llamada de función. Los comentarios en este contrato explican este modificador.

Ver significa que la función solo lee las variables miembro contenidas en el contrato. Explicado aquí .

Pure establece que no se leen variables miembro dentro del contrato: todos los datos requeridos están dentro del alcance de la función misma. Explicado aquí .

Payablefunción significa que enviará algo de ETH con la función. Si no envía ningún ETH con él, transactionfallará.

Viewse utiliza para devolver datos de la función. Tal función leerá contrato state/storage.

Purees lo mismo que View, excepto que no puede leer state/storageen él, pero solo hace cálculos con parametersvariables pasadas o creadas dentro de la función.

Viewy Pureson libres de gas cuando son llamados desde fuera del contrato o desde otra View/Purefunción. Sin embargo, si llama a dicha función desde dentro de la función normal (que cambia el estado del contrato), se le cobrará.