El objetivo es crear un contrato que permita a la parte B retirar dinero de la cuenta de la parte A según alguna fórmula. No quiero usar un modelo de depósito en garantía, sino solo para:
¿Hay algún ejemplo o mejores prácticas para esto?
No puede retirar directamente de la cuenta de otra persona. Sin embargo, puede crear contratos inteligentes en los que A pueda depositar el dinero. Luego, B puede retirar el dinero del contrato inteligente durante un cierto período de tiempo. Si B no ha retirado el dinero y el plazo ha terminado, A puede retirar el dinero del contrato inteligente
Recomiendo usar una bóveda. Puede consultar OpenZeppelin RefundVault. Los usuarios envían algunos fondos a esta bóveda y, según su lógica comercial, el usuario puede solicitar un reembolso y retirar fondos.
Para los tokens ERC20, puede usar la approve
función para permitir que otra persona se retire de sus tokens:
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md#approve
Permite
_spender
retirar de su cuenta varias veces, hasta el_value
monto. Si se vuelve a llamar a esta función, sobrescribe la asignación actual con_value
.
Para Ether, puede configurar algo así como una billetera de múltiples firmas donde las personas tienen acceso a los mismos fondos almacenados en ese contrato. Es posible que este contrato no funcione exactamente como lo espera desde el primer momento, pero debería ser un gran comienzo:
Pablo Razvan Berg
shawn tabrizi