Comment intégrer Gauntlet USD Alpha
gtUSDa est l'ERC20 de notre vault phare de stablecoin sur Base, Arbitrum, Optimism et Ethereum Mainnet, qui peut être intégré à d'autres applications DeFi. Voici un guide d'intégration de base pour intégrer gtUSDa à votre protocole ou application.
gtUSDa est un ERC20 transférable sur Base, Arbitrum, Optimism et Ethereum Mainnet.
Nous avons également un frontend dédié pour approvisionner ce vault à app.gauntlet.xyz/vaults/gtusda.
Adresses des contrats
Adresses du vault gtUSDa
0x000000000001CdB57E58Fa75Fe420a0f4D6640D5(contrat gtUSDa sur Base)0x3bd9248048df95Db4fBD748C6CD99C1bAa40bAD0(contrat gtUSDa sur Ethereum)0x000000001DC8bd45d7E7829fb1c969cbe4D0D1eC(contrat gtUSDa sur Arbitrum)0x000000001DC8bd45d7E7829fb1c969cbe4D0D1eC(contrat gtUSDa sur Optimism)
Adresses des jetons
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48(contrat USDC sur Ethereum Mainnet)0xaf88d065e77c8cC2239327C5EDb3A432268e5831(contrat USDC sur Arbitrum)0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85(contrat USDC sur Optimism)
Adresses du provisioner
0x18CF8d963E1a727F9bbF3AEffa0Bd04FB4dBdA07(contrat provisioner sur Base)0x74C4A66CE4F4779B11E7c63D42e51EEef3A80D11(contrat provisioner sur Ethereum)0xDd4a42603E6d8E515C3468789375A98c376821b3(contrat provisioner sur Arbitrum)0xCC923371F0d3A9cA75d98E767Df9dE1cdf5799Ef(contrat provisioner sur Optimism)
Remarque : tous les exemples ci-dessous sont exécutés sur Base.
Approvisionnement via des appels de contrat
Approvisionner dans gtUSDa est une combinaison de 2 appels de fonction : un approve appel pour dépenser l'USDC, et un requestDeposit appel.
appel
approvesur le contrat USDC pour autoriser que le montant d'USDC soit dépensé par le contrat provisionerNotez qu'il ne s'agit pas du contrat vault lui-même, car la demande passe par le provisioner pour émettre des unités vault de manière asynchrone via un mécanisme de résolution (voir https://docs.aera.finance/entry-exit-with-provisioner pour plus de détails)
requestDeposit.requestDepositest une opération asynchrone, l'utilisateur enverra l'USDC au provisioner et, une fois la demande résolue, des unités gtUSDa seront renvoyées directement au portefeuille de l'utilisateur. Cela se produit généralement en moins de 6 heures, mais peut prendre jusqu'à 3 jours (ou selon la deadline). Voir https://docs.aera.finance/entry-exit-with-provisioner pour plus de détailsjeton :
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)tokensIn : montant d'USDC entrant (valeur ajustée en décimales)
minUnitsOut : ce paramètre doit être basé sur le prix actuel de gtUSDa. Pour le calculer, référez-vous au PriceAndFeeCalculator contrat, en particulier l'appel de fonction
convertTokenToUnits.convertTokenToUnits(0x000000000001CdB57E58Fa75Fe420a0f4D6640D5, 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, tokensIn)-> Renvoie les unités gtUSDa ajustées en décimales.Multipliez la valeur ci-dessus par 0.97 (une marge de sécurité en cas de variation de prix)
solverTip :
0deadline :
block.timestamp + 259200(3 jours en secondes)maxPriceAge :
3600(1 heure en secondes)isFixedPrice :
False
minUnitsOut n'est techniquement pas requis pour les ordres à prix automatique si le prix du vault est fiable, mais il est fortement recommandé pour des raisons de sécurité.
Veuillez ne pas inclure un solverTip car le solver ne résoudra pas ces requêtes.
Veuillez ne pas inclure une deadline trop longue, car les ordres non exécutables ne peuvent pas être remboursés avant la deadline.
Exemple de demande pour déposer 1000 USDC
Appeler approve sur le contrat USDC de Base pour autoriser le provisioner à dépenser
appel requestDeposit sur le provisioner, paramétrer cet appel est important
Retrait via des appels de contrat
Pour retirer, vous devez de la même manière faire un approve appel suivi de requestRedeem sur le contrat Provisioner avec les paramètres corrects.
appel
approvesur le contrat gtUSDa pour autoriser que le montant gtUSDa soit dépensé par le contrat provisionerrequestRedeemC'est également un appel asynchrone où l'utilisateur renvoie les vaultUnits au contrat Provisioner et, une fois la requête résolue, l'utilisateur recevra de l'USDC dans son portefeuillejeton :
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)unitsIn : le montant d'unités de vault que vous souhaitez racheter, correctement ajusté en décimales. Si vous voulez calculer le
unitsInsur la base de la valeur USDC pour l'utilisateur, vous pouvez à nouveau utiliser laconvertTokenToUnitsfonction sur le PriceAndFeeCalculator contrat, comme pour l'appel de dépôt.minTokensOut : ce paramètre doit être basé sur le prix actuel de gtUSDa. Pour le calculer, référez-vous au PriceAndFeeCalculator contrat, en particulier l'appel de fonction
convertUnitsToTokenfonction.convertUnitsToToken(0x000000000001CdB57E58Fa75Fe420a0f4D6640D5, 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, unitsIn)-> Renvoie la valeur USDC ajustée en décimales des VaultUnitsMultipliez la valeur ci-dessus par 0.97 (une marge de sécurité en cas de variation de prix)
solverTip :
0deadline :
block.timestamp + 259200(3 jours en secondes)maxPriceAge :
3600(1 heure en secondes)isFixedPrice :
False
minTokensOut n'est techniquement pas requis pour les ordres à prix automatique si le prix du vault est fiable, mais il est fortement recommandé pour des raisons de sécurité.
Veuillez ne pas inclure un solverTip car le solver ne résoudra pas ces requêtes.
Veuillez ne pas inclure une deadline trop longue, car les ordres non exécutables ne peuvent pas être remboursés avant la deadline.
Exemple de demande pour retirer 1000 USDC
appel approve sur le contrat gtUSDa pour autoriser le provisioner à dépenser
appel requestRedeem sur le provisioner, paramétrer cet appel est important
[AVANCÉ] Surveillance et remboursement des ordres
Suivi des ordres
Lorsqu'un ordre asynchrone est placé, l'utilisateur aura un ordre actif mais non exécuté. Pour offrir plus de transparence aux utilisateurs, ces ordres peuvent être surveillés en suivant les DepositRequested ou RedeemRequested événements :
Vérification du moment où les ordres sont exécutés
Lorsqu'un dépôt ou un rachat est exécuté, l'un des événements suivants sera émis dans le Provisioner :
Remboursement des ordres expirés
Si la deadline est dépassée mais qu'un ordre n'est pas résolu (rare), l'utilisateur doit récupérer ses USDC ou ses jetons gtUSDa en utilisant le refundRequest fonction.
Obtenir le solde gtUSDa de l'utilisateur
Appelez simplement la fonction balanceOf sur gtUSDa avec l'adresse de l'utilisateur.
Tarification des unités gtUSDa en USDC (et inversement)
Nous fournissons de simples utilitaires de conversion de prix entre gtUSDa et USDC via le PriceAndFeeCalculator contrat.
Plus précisément, il y a deux fonctions pertinentes
convertTokensToUnits-> Prend une valeur USDC et renvoie le montant d'unités vault au prix actuelvault :
0x000000000001CdB57E58Fa75Fe420a0f4D6640D5(contrat vault gtUSDa)jeton :
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)tokenAmount : valeur USDC ajustée en décimales (USDC a 6 décimales)
convertUnitsToTokens-> Prend des vaultUnits et renvoie la valeur USDC au prix actuelvault :
0x000000000001CdB57E58Fa75Fe420a0f4D6640D5(contrat vault gtUSDa)jeton :
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)unitsAmount : valeur gtUSDa ajustée en décimales (gtUSDa a 18 décimales)
Récupération de l'APY du vault
Cela est un peu plus délicat pour le moment, mais nous visons à simplifier cela à l'avenir via une API. Pour l'instant, la meilleure façon d'obtenir l'APY du vault est d'indexer le prix des unités du vault en USDC sur une période donnée et d'extrapoler cela en un APY annuel.
Calcul du TVL du vault
Pour obtenir le TVL total du vault, utilisez la fonction convertUnitsToTokens et utilisez le totalSupply de gtUSDa comme entrée.
Mis à jour
Ce contenu vous a-t-il été utile ?
