Est-il possible de planifier des transactions sans verrouiller tout l’éther tout de suite?

Téléportation de chèvre

Est-il possible de planifier des transactions sans verrouiller tout l’éther tout de suite?


Supposons que je veuille un contrat avec une fonction qui envoie X Ether chaque mois. Un utilisateur accepte d’envoyer chaque mois une certaine quantité d’Ether au contrat et effectue une transaction correspondant à un appel de fonction avec X comme argument.

L’idéal serait d’envoyer automatiquement l’Ether chaque mois et de gérer les exceptions prévues dans le contrat si l’utilisateur n’a pas assez d’Ether.

Je ne veux pas avoir à envoyer un grand nombre d’Ether à la fois, comme une année chaque année, mais cela signifierait que le contrat est autorisé à débiter de l’Ether par lui-même.

Comment cela fonctionnerait-il dans la pratique, est-ce possible?

Réponses


 Gabe

Pour autant que je sache, il n’est pas possible d’y parvenir par programme. Cependant, cela est possible en utilisant le réveil ethereum qui peut:

  • Planifier des appels de fonction de contrat
  • Un contrat ethereum qui facilite la fonction de planification appelle à l’avenir un bloc spécifié.
  • Les appels de fonction peuvent être programmés pour être exécutés sur n’importe quel contrat
  • La planification peut être effectuée par des contrats ou des titulaires de compte Ethereum. Entièrement contenu dans le réseau ethereum.

(informations du site Internet du réveil ethereum)

Peut également être trouvé à: http://www.ethereum-alarm-clock.com/

Téléportation de chèvre

Je ne suis pas sûr de bien comprendre comment cela fonctionne. Si je planifie d’envoyer de l’éther X le mois prochain, je devrais verrouiller l’éther maintenant, n’est-ce pas?

Gabe

Je n’y ai pas beaucoup réfléchi, mais pour autant que je sache, vous le faites.


 Thomas Clowes

C’est l’une de ces situations où ne pas utiliser la Blockchain ‘pourrait’ être le meilleur moyen d’atteindre ce que vous voulez atteindre.

En supposant que votre cas d’utilisation ne nécessite pas de vérification décentralisée que ce que vous dites se produira, vous pouvez simplement créer un service Web pour soumettre une transaction signée appropriée à la blockchain à un moment approprié.

Un rapide Google a montré ce billet de blog décrivant comment on peut signer une transaction en JavaScript en utilisant node et Ganache.

Vous pouvez écrire un script similaire, puis l’appeler à partir d’un script shell ou d’une tâche cron, selon le cas.


 Grunzwanzling

Non, cela ne fonctionnerait pas, car les contrats intelligents ne peuvent pas s’invoquer. Quelqu’un devrait envoyer manuellement une transaction au contrat pour déclencher le déblocage des fonds.

À l’exception du problème d’invocation, votre contrat serait possible comme vous le souhaitez.

Téléportation de chèvre

L’invocation ne pourrait-elle pas être effectuée par une partie supérieure du dapp? (Pas directement du contrat mais plus haut dans la pile)


 Daniel Kmak

Ceci est possible en utilisant Ethereum Alarm Clock et l’implémentation personnalisée de Proxy Wallet.

  1. Créer un portefeuille proxy avec plusieurs propriétaires possible
  2. Planifiez une transaction pour appeler la méthode sendEtherFromWallet() sur ProxyWallet – cette méthode tentera d’envoyer ETH à partir de ProxyWallet , à l’adresse que vous avez spécifiée
  3. Assurez-vous que sendEtherFromWallet est marqué comme étant onlyOwner
  4. Ajoutez l’adresse de transaction planifiée à la liste blanche – ajoutez-la en tant que propriétaire au ProxyWallet (vous pouvez également ajouter la méthode appelée Schedule au ProxyWallet lui-même, qui ajouterait automatiquement l’adresse à la liste blanche après la planification)
  5. Lorsque la transaction sera exécutée, ScheduledTransaction appellera sendEtherFromWallet et comme il s’agira d’une adresse sur la liste blanche, il procédera à une tentative d’envoi d’Ether depuis ProxyWallet – à ce moment, si Ether n’est pas présent, la transaction interne (d’appeler sendEtherFromWallet ) sera revenir – mais c’est quelque chose que vous vouliez dans votre question. Si Ether sera présent sur ProxyWallet, tout ira bien.

Nous avons testé cette approche sur l’un des hackathons et ça marche.

 

«verrouiller», #(sans, #de, des, Est-il, l’éther, planifier, possible, suite, tout, transactions

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *