Tal vez me equivoque, pero entiendo que las Transacciones de Contratos Inteligentes siempre deben contener un campo "VALOR", es decir, la cantidad de Ether que Alice transferirá a Bob en caso de que se cumpla cierta condición.
Teniendo esto en cuenta, ¿significa que los Smart Contracts de Ethereum no se pueden utilizar para establecer cláusulas que no involucren a Ether? Como por ejemplo:
a) SI Alice transfiere el Título de Propiedad de una casa a Bob, ENTONCES Bob a cambio le transfiere otro Título de Propiedad;
O, por ejemplo: b) SI el valor de la temperatura de enero es inferior a X, ENTONCES el seguro reduce la prima del seguro para el próximo mes;
c) SI el consumidor A compra algo pero está roto, ENTONCES recibe una compensación (no monetaria) del vendedor.
En caso de que esto sea posible, los nodos tendrán una compensación según el Gas utilizado, incluso si no hay una transacción de Ether entre las partes. ¿no es así?
Gracias de antemano.
Tu no entiendes.
Las transacciones contienen data
y value
en el nivel de protocolo. data
es para una posible interpretación por un contrato inteligente. value
puede contener un valor distinto de cero y el propio protocolo impone reglas como no gastar ETH que el remitente no tiene.
Una transacción puede ser estrictamente sobre data
y posibles cambios de estado en el almacenamiento del contrato. En todos los casos, el costo de ejecución (peso computacional) se expresa en unidades de gas
y se gas
paga con ETH.
Aquí hay un contrato simple que no se preocupa por las transferencias de valor. Costaría una pequeña cantidad de ETH pagar el gas para invocar set()
.
pragma solidity 0.4.25;
contract Simple {
uint public number;
function set(uint _number) public {
number = _number;
}
}
Espero eso ayude.
usuario19510
value
campo, pero el valor puede ser simplemente0
.Niak3
Rob Hitchens