Nommez votre taux.Le marchévient à vous.
prove.cash est un carnet d’ordres pour les swaps sur PulseChain. Vous publiez une offre à votre taux. Elle reste ouverte jusqu’à ce que quelqu’un la prenne. Pas de prix de pool, pas de slippage, aucune transaction de votre part.
Elle s’exécute à votre taux ou mieux, ou pas du tout. Vous pouvez laisser le taux baisser avec le temps jusqu’à un plancher : le minimum que vous acceptez. Vous pouvez aussi la laisser s’exécuter en plusieurs fois.
Un exemple d’offre signée, tracée sur de vrais prix WBTC/UNI.
- signataire
- 0x7a3f…c19d
- donner
- jusqu’à0,4
WBTC
- recevoir
- exécutée à7 762,68
UNI
- exécutée par
- n’importe qui
Vous recevez au moins ce que vous avez demandé
Le contrat tient l’autre partie au nombre que vous avez signé, et arrondit en votre faveur. Si vous ajoutez des frais, l’app signe un montant plus grand pour les couvrir. Vous recevez toujours ce que vous avez demandé.
N’importe qui peut l’exécuter
Pas de liste blanche, pas de caution, pas d’inscription. Celui qui exécute votre offre paie le gaz. Il garde ce que le marché donne au-dessus du nombre que vous avez signé.
Publier ne coûte pas de gaz
Votre navigateur fournit un instant de travail pour la publier. Pas de gaz, pas de transaction, pas d’inscription.
Comment ça marche
- vous
Signez l’offre
Donner au plus tant d’un jeton, recevoir au moins tant d’un autre, dans cette fenêtre. C’est tout l’engagement.
- le carnet
Porte l’offre
L’offre circule sur un tableau de messages, pas sur la chaîne. La publier coûte à votre navigateur un instant de travail. Aucune transaction, aucun gaz, aucun compte.
- n’importe qui
L’exécute
Pas de liste blanche, pas de caution, pas d’inscription. Celui qui l’exécute est l’exécuteur. Il paie le gaz et le nombre que vous avez signé, et garde ce que le marché donne au-dessus.
Ce que vous signez dépend de votre jeton
Vos jetons peuvent bouger de cinq façons au moment de l’exécution. L’app lit votre jeton et choisit la moins chère qu’il accepte, donc vous ne pouvez pas vous tromper de choix.
- EIP-30092 signaturesLe jeton peut bouger sur une simple signature. Vous n’envoyez jamais de transaction, et rien n’est approuvé à l’avance.
- permit EIP-26122 signaturesDeux signatures. Vos jetons restent dans votre portefeuille jusqu’au moment où quelqu’un exécute l’offre.
- Permit22 signatures, 1 tx une foisApprouvez Permit2 une seule fois. Son adresse est la même sur toutes les chaînes, et personne ne peut la déplacer. Chaque offre ensuite tient en deux signatures, et votre jeton n’a besoin d’aucun support particulier.
- une autorisation1 tx, une foisApprouvez le contrat une seule fois. Chaque offre ensuite tient en une signature.
- séquestre1 txVous déposez d’avance. Cela coûte une transaction, et en échange l’offre est financée, donc un exécuteur peut s’y fier au premier coup d’œil.
Où reposent vos jetons.
Une offre ne vaut que ce qui la garantit.
autorisation
financé à l’exécutionLes jetons restent dans votre portefeuille. Votre autorisation signée les déplace dans le contrat au moment de l’exécution.
- vous dépensez
- Coûte 2 signatures et 0 transaction
- sortie
- validBeforeVotre signature déplace les jetons au moment de l’exécution, et elle est liée à cette seule offre. Son expiration fait partie de la signature. Une annulation en chaîne y met fin aussitôt.
séquestre
en séquestreLes jetons sont dans le contrat, engagés sur cette seule offre, jusqu’à ce que vous les retiriez.
- vous dépensez
- Coûte 1 signature et 1 à 2 transactions
- sortie
- withdraw · 1 txUn seul retrait vous rend votre argent et met fin à l’offre. Pas de délai, pas d’étape de déblocage, pas de fenêtre à manquer. Une offre que vous n’avez jamais financée, c’est différent : quelqu’un d’autre peut la financer avec de l’argent déjà immobilisé à votre nom. Annulez celles que vous ne voulez pas.
permit2
financé à l’exécutionLes jetons restent dans votre portefeuille. Votre transfert Permit2 signé les déplace dans le contrat au moment de l’exécution, une fois et une seule.
- vous dépensez
- Coûte 2 signatures et au plus 1 transaction
- sortie
- deadlineUn transfert Permit2 ne sert qu’une fois et expire avec l’offre. Aucune autorisation permanente en notre faveur ne lui survit. Votre seule approbation va à Permit2 lui-même, à une adresse que nous ne pouvons pas déplacer. Une annulation en chaîne met fin à l’offre aussitôt.
permit
dans le portefeuilleLes jetons restent dans votre portefeuille sous une autorisation. Une seconde signature pose cette autorisation, donc vous n’envoyez aucune transaction. Vous pouvez encore dépenser les jetons avant l’exécution, et alors l’exécution échoue.
- vous dépensez
- Coûte 2 signatures et 0 transaction
- sortie
- cancel · 1 txUn permit est une autorisation posée par une signature, donc il ne coûte aucune transaction. Cela reste une autorisation. La révoquer ne met pas fin à l’offre, parce que votre permit signé la repose à l’exécution suivante. L’annulation est l’interrupteur. Un inconnu qui dépense votre permit en premier ne peut pas empêcher l’exécution.
approbation
dans le portefeuilleLes jetons restent dans votre portefeuille sous une autorisation. Vous pouvez les dépenser avant l’exécution, et alors l’exécution échoue.
- vous dépensez
- Coûte 1 signature et au plus 1 transaction
- sortie
- cancel · 1 txLa révocation de l’approbation se fait sur le jeton, là où le contrat ne la voit pas. Elle arrête une exécution mais n’annule pas l’offre. Approuvez ce jeton à nouveau plus tard, et l’offre revit. Seule une annulation y met fin, et elle coûte une transaction.
La facture entière.
Du gaz mesuré, pas des estimations. Publier est gratuit. Celui qui exécute votre offre paie le reste.
Le cas habituel. Le solde qui reçoit détient déjà un peu de ce jeton.
Publier une offre
vous- la signer et la mettre au tableaupreuve de travailLe tableau demande à votre navigateur un instant de travail au lieu d’argent. Pas de gaz, pas de transaction, pas d’inscription.0
La financer par séquestre
vous- déposer, pour que l’offre soit financéepremier contactFinancer un séquestre vide est toujours un premier contact, il n’a donc pas de prix à chaud. C’est facultatif : une autorisation ne coûte rien d’avance.124 790
Exécuter une offre
un exécuteur- depuis votre autorisation115 763
- depuis le séquestre123 037
- avec un callbackpourquoiL’exécuteur emprunte vos jetons, les vend ailleurs et rembourse dans le même appel. Il n’a besoin d’aucun argent à lui.130 533
En exécuter vingt d’un coup
un exécuteur- une paire, par offre57 245
- paires mélangées, par offre62 945
- la vingt-et-unième offremarginalCe qu’une offre de plus ajoute à un lot déjà en cours. Ce nombre décide si une marge mince vaut la peine.52 869
- avec callbacks, par offre+505 de créditEmprunter à l’intérieur d’un lot coûte un peu plus sur chaque offre. Le chiffre est la différence : une offre de plus avec callback, moins une offre de plus sans. Il est trop petit pour se voir sur ces barres.56 579
Sur le mainnet, une exécution à chaud coûte une fraction de centime. L’exécuteur la paie, et garde ce que le marché donne au-dessus du nombre que vous avez signé.
Un inconnu paie votre gaz. Voici ce qu’il y gagne.
Personne ne paie le gaz d’un inconnu par gentillesse. Vous êtes l’émetteur (le maker). Celui qui exécute votre offre est le solveur. Il gagne l’écart entre ce que paie le marché et le nombre que vous avez signé. C’est tout son revenu, et voici ce qu’il lui en coûte de le poursuivre.
ce qu’ils perdent
Un solveur paie le gaz de chaque offre qu’il tente, et apprend après coup lesquelles ont été exécutées. Une exécution coûte 62 480 de gaz. Ces trois cas coûtent le gaz et ne rapportent rien.
l’offre a expiré
Coûte 13 327 gasL’offre a expiré entre le moment où il l’a évaluée et celui où le bloc est arrivé. Le contrat la refuse avant que le moindre jeton ne bouge, c’est donc le cas le moins cher.
quelqu’un a été plus rapide
Coûte 14 070 gasUn autre solveur a exécuté la même offre en premier. C’est normal sur un carnet ouvert : deux solveurs qui le lisent vont se chevaucher, et le plus lent paie le doublon.
l’émetteur a tout repris
Coûte 76 389 gasL’offre était bonne quand le solveur l’a vérifiée. Puis l’émetteur a retiré l’argent avant que le bloc n’arrive. C’est le seul échec que quelqu’un puisse provoquer exprès, et chaque tentative coûte une transaction à l’émetteur. Une offre qui n’a jamais été bonne est détectée avant tout envoi, et ne coûte rien.
ce qu’ils gagnent
Le reste, et rien d’autre. Pas de frais de notre part, pas de ristourne, pas de priorité, pas de file d’attente. Ils paient le gaz. Ils paient le nombre que vous avez signé. Ils gardent ce qui reste. Vos frais sortent du nombre que vous avez signé, pas de la part du solveur. S’il ne reste rien, ils perdent le gaz.
pourquoi c’est sûr pour vous
Ils ne peuvent pas gagner plus en vous donnant moins.
Votre taux est dans la signature. Le contrat facture ce nombre aux solveurs, quoi que fasse le marché. Ils ne peuvent gagner plus qu’en trouvant un meilleur prix, jamais en vous en passant un moins bon.
N’importe qui peut en être un.
Pas de liste blanche, pas de caution, pas d’inscription, pas de capital bloqué. Un solveur est n’importe quelle adresse qui envoie la transaction. Personne ne peut en être écarté, et personne ne peut y être enfermé.
C’est la concurrence qui remplit votre offre.
Les solveurs ne font pas baisser votre prix. C’est vous qui le fixez. Ils se font concurrence sur la finesse de la marge qu’ils acceptent. Plus elle est mince, plus d’offres s’exécutent au taux voulu par leurs émetteurs.
Où va l’argent
Une exécution
ouvrez une étape pour voir le calculCe que l’exécuteur paie, sur la fenêtre
L’offre ouvre au-dessus de ce que paie le pool aujourd’hui et descend jusqu’à sa clôture : de 1 005,17 DAI à 964,65 DAI sur 24h 0m. Ce sont deux montants que vous signez. Retirez les frais du nombre de clôture et vous obtenez le plancher que vous avez tapé. Les lignes en pointillés sont la même offre sans frais et avec des frais de deux pour cent : un seul nombre tapé, trois montants signés. Chaque point est l’endroit où cette offre rencontre le marché dans la semaine tracée ici, après le gaz. Une autre semaine place les points ailleurs.Vous payez les frais, prélevés sur le montant que vous signez. Des frais plus élevés font que l’offre s’exécute plus tard. C’est tout ce que les frais vous coûtent.
Ce que personne ne peut vous faire
Vous avez signé quelque chose. Voici trois choses qu’il ne permet à personne, et où chacune est écrite.
Personne ne peut changer ce que vous recevez.
Votre prix est dans l’offre que vous signez. Le contrat calcule tout le paiement à partir de ce nombre, en retire les frais que vous avez nommés, et vous verse le reste. Là où l’arithmétique doit arrondir, elle arrondit en votre faveur.
où vérifier_quote arrondit le brut vers le haut avec _ceilDiv, en retire les frais arrondis vers le bas, et vous verse le reste.Aucuns frais pour nous, et aucun interrupteur pour en ajouter.
Les frais tiennent en deux nombres dans l’offre que vous signez : un taux, et leur destination. Ne nommez aucune adresse et rien n’est prélevé. Nous n’en prenons aucune part, et nous n’en ajoutons pas. Le code qui pourrait en facturer est supprimé, donc aucun propriétaire ne peut l’activer. Des frais pour nous exigeraient un autre contrat à une autre adresse, et votre signature est liée à celui-ci. Rien de ce qui est décidé plus tard n’atteint une offre que vous avez déjà signée.
où vérifier_quote facture i.feeRate et porte le montant au crédit de i.feeTo, et claim le verse depuis là. Le commit 3961c2a a supprimé feeSink, feeFloorRate, protocolShare, feePolicy, setFees et setFeePolicy.Il n’y a ni pause ni mise à jour.
Aucun interrupteur nulle part n’atteint votre argent. Le propriétaire peut choisir où vont les jetons qui n’appartiennent à personne. C’est toute la liste. Aucune fonction du propriétaire ne peut dépenser une autorisation que vous avez donnée.
où vérifiersetDefaultProceeds et transferOwnership sont les seules fonctions réservées au propriétaire.
Deux personnes ont été payées pour tenter de casser ce qui précède : une revue de sécurité et une revue économique. Chaque constat de la revue de sécurité est corrigé. Un constat économique reste ouvert à dessein, et son propre test affirme que l’attaque fonctionne toujours. C’est l’une des onze limites que nous avons mesurées, acceptées et écrites. Le périmètre de l’audit, le tri de l’analyse statique, les contrats et les tests sont dans un dépôt. Les adresses sur PulseChain sont dans le registre de déploiement.
Signez-en une et voyez.
Donnez-nous une adresse et nous marquons les jetons qu’elle a déjà bougés sur cette chaîne. Choisissez-en un et l’app s’ouvre avec ce jeton sélectionné. Vous fixez toujours votre prix, et vous voyez chaque coût avant de signer quoi que ce soit.
Ou commencez par n’importe lequel de ceux-ci.