¿Cómo enviar ether al contrato inteligente desde una dirección ethereum?

Me gustaría retirar automáticamente una cantidad de dinero de una determinada dirección de ethereum después de que ocurra un evento y mantener el dinero con el contrato. ¿Cómo puedo hacer esto? Cualquier pista es apreciada.

Intenté llamar a una función interna de pago desde mi contrato POD_PhysicalItems:

Así es como lo llamo, el remitente es una dirección de ethereum definida en el constructor, pero hay un error en la línea a continuación Escriba el error "Valor" del miembro no encontrado o no visible después de la búsqueda dependiente del argumento en la dirección de la función:

POD_PhysicalItems.withdrawAgreedUponCollateral.value(2*itemPrice)(sender);

Esta es la función:

 function withdrawAgreedUponCollateral(address entityAddress) payable internal  {
    require(state == contractState.DoneVerificationofTerms);
    collateralWithdrawnSuccessfully("Double deposit is withdrawn successfully from: ", entityAddress);

}
¿Puede proporcionar más detalles sobre lo que está tratando de lograr, por favor? ¿Quiere decir enviar dinero desde una dirección ethereum al contrato? ¿Qué tienes hasta ahora/qué has probado?
Entonces tiene una dirección que está definida en el constructor del contrato. Y cuando ocurre un evento, ¿quieres que esa dirección envíe ether a entityAddress? ¿Entiendo correctamente?
@Chris Quiero la dirección que es la dirección de la entidad o el remitente (lo mismo) para enviar ether al contrato en sí
La dirección de la entidad de @Chris es el nombre del argumento tomado de la función de pago y el remitente es la dirección de ethereum que se pasa cuando se llama a la función.
Así que solo harías eso en web3. Si entityAddresses la misma dirección que el remitente, no necesita el argumento porque solo puede hacer referencia a msg.sender. Respondí una pregunta similar aquí, déjame saber si esto ayuda: ethereum.stackexchange.com/questions/43022/…

Respuestas (1)

Resolvió esto por chat con el siguiente ejemplo:

ejemplo

explicó "no se puede simplemente retirar directamente de esas cuentas. Esto se debe a que la única forma de que el dinero provenga de una cuenta es que esa cuenta firme explícitamente una transacción y envíe algún valor al contrato".