IIndex.sol
Cette interface définit les structures de données essentielles qu'un appelant fournit pour rééquilibrer un jardin, et l'intention en attente contre laquelle le protocole les vérifie.
Concept Central : Instructions de Swap et Intents#
Pour exécuter un rééquilibrage, l'appelant doit fournir un tableau d'instructions SwapStep. Le protocole compare le résultat de ces étapes au PendingIntent préalablement verrouillé.
rebalanceIntent() et rebalance() sont tous deux permissionless : n'importe qui peut les appeler une fois les délais passés. Des versions antérieures de cette documentation décrivaient cela comme le travail d'un moteur de relais hors chaîne, et en pratique c'est généralement un appelant automatisé qui le déclenche, mais rien dans l'interface ne privilégie cet appelant par rapport à un autre.
Extrait crucial pour les Builders : Les Types d'Exécution#
/// @notice A single swap step used to rebalance the garden.
struct SwapStep {
bytes32 dexId; // Resolved to a selector on-chain (e.g., keccak256("UNISWAP_V3"))
SwapInstruction instruction; // Contains tokens, pools, amounts and a deadline
}
/// @notice Pending rebalance intent data (slimmed for gas efficiency)
struct PendingIntent {
bool active;
uint256 totalValueUsd; // Portfolio value at intent creation
bytes32[] symbols;
uint256[] targetValues; // Desired USD value per token
}Définissez le deadline explicitement
Le SwapInstruction imbriqué embarque un deadline. Passer 0 n'est pas un
« aucun deadline » sûr : chaque facet le remplace par
block.timestamp + 30 minutes, toujours dans le futur pour la transaction en
cours, donc un deadline à 0 n'offre aucune protection. Passez un vrai
timestamp si vous voulez qu'un deadline s'applique.
Dernière mise à jour:
Modifier cette page (opens in a new tab)