Comment s'intégrer à Gauntlet USD Alpha
gtUSDa est l'ERC20 pour notre vault stablecoin phare sur Base, Arbitrum, Optimism et le réseau principal Ethereum, qui peut être intégré dans d'autres applications DeFi. Voici un guide d'intégration de base pour incorporer gtUSDa dans votre protocole ou application.
gtUSDa est un ERC20 transférable sur Base, Arbitrum, Optimism et le réseau principal Ethereum.
Nous disposons également d'une interface dédiée pour fournir des fonds dans 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 tokens
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48(contrat USDC sur le réseau principal Ethereum)0xaf88d065e77c8cC2239327C5EDb3A432268e5831(contrat USDC sur Arbitrum)0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85(contrat USDC sur Optimism)
Adresses des provisioners
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 appels de contrat
Fournir dans gtUSDa est une combinaison de 2 appels de fonction : un approve appel pour autoriser la dépense de l'USDC, et un requestDeposit appel.
appel
approvesur le contrat USDC pour permettre que la quantité d'USDC soit dépensée par le contrat provisionerNotez qu'il ne s'agit pas du contrat du vault lui‑même, car la requête passe par le provisioner pour émettre des unités du 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 soumettra l'USDC au provisioner et après que la requête soit résolue des unités gtUSDa seront renvoyées directement au portefeuille de l'utilisateur. Cela se produira généralement dans les 6 heures mais peut prendre jusqu'à 3 jours (ou autrement selon la date limite). Voir https://docs.aera.finance/entry-exit-with-provisioner pour plus de détailstoken :
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)tokensIn : montant d'USDC entrant (valeur ajustée selon les décimales)
minUnitsOut : Ce paramètre doit être basé sur le prix actuel de gtUSDa. Pour le calculer, reportez‑vous au PriceAndFeeCalculator contrat, plus précisément à la
convertTokenToUnitsappel de fonction.convertTokenToUnits(0x000000000001CdB57E58Fa75Fe420a0f4D6640D5, 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, tokensIn)-> Retourne les unités gtUSDa ajustées selon les décimales.Multipliez la valeur ci‑dessus par 0.97 (une marge au cas où il y aurait des variations 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 digne de confiance 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 date limite longue car les ordres inexploitables ne peuvent pas être remboursés avant la deadline.
Exemple de requête pour déposer 1000 USDC
Appeler approve sur le contrat USDC de Base pour permettre au provisioner de dépenser
appel requestDeposit sur le provisioner, paramétrer cet appel est important
Retrait via appels de contrat
Pour retirer, vous devez de même effectuer un approve appel suivi de requestRedeem sur le contrat Provisioner avec les bons paramètres.
appel
approvesur le contrat gtUSDa pour permettre que la quantité de gtUSDa soit dépensée par le contrat provisionerrequestRedeemIl s'agit également d'un appel asynchrone où l'utilisateur fournit les vaultUnits au contrat Provisioner et après résolution de la requête l'utilisateur recevra de l'USDC dans son portefeuilletoken :
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)unitsIn : Le montant d'unités du vault que vous souhaitez racheter, correctement ajusté selon les décimales. Si vous voulez calculer les
unitsInbasés sur la valeur en 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, reportez‑vous à la PriceAndFeeCalculator contrat, plus précisément à la
convertUnitsToTokenfonction.convertUnitsToToken(0x000000000001CdB57E58Fa75Fe420a0f4D6640D5, 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, unitsIn)-> Retourne la valeur USDC ajustée selon les décimales des VaultUnitsMultipliez la valeur ci‑dessus par 0.97 (une marge au cas où il y aurait des variations 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 digne de confiance 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 date limite longue car les ordres inexploitables ne peuvent pas être remboursés avant la deadline.
Exemple de requête pour retirer 1000 USDC
appel approve sur le contrat gtUSDa pour permettre au provisioner de 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 rempli. Pour fournir une transparence supplémentaire aux utilisateurs, ces ordres peuvent être surveillés en suivant les DepositRequested ou RedeemRequested événements :
Vérifier quand les ordres sont remplis
Lorsqu'un dépôt ou un rachat est rempli, l'un des événements suivants sera émis dans le Provisioner :
Remboursement des ordres expirés
Si la date limite passe mais qu'un ordre n'est pas résolu (rare), l'utilisateur doit récupérer son USDC ou ses tokens gtUSDa en utilisant la refundRequest fonction.
Obtention du solde de l'utilisateur en gtUSDa
Appelez simplement la balanceOf fonction sur gtUSDa avec l'adresse de l'utilisateur.
Tarification des unités gtUSDa en USDC (et inversement)
Nous fournissons des utilitaires simples 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 retourne le montant d'unités du vault au prix courantvault :
0x000000000001CdB57E58Fa75Fe420a0f4D6640D5(contrat du vault gtUSDa)token :
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)tokenAmount : valeur USDC ajustée selon les décimales (USDC a 6 décimales)
convertUnitsToTokens-> Prend des vaultUnits et retourne la valeur en USDC au prix courantvault :
0x000000000001CdB57E58Fa75Fe420a0f4D6640D5(contrat du vault gtUSDa)token :
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913(contrat USDC sur Base)unitsAmount : valeur gtUSDa ajustée selon les décimales (gtUSDa a 18 décimales)
Récupération de l'APY du vault
Celle‑ci est un peu plus compliquée 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 chiffre d'APY annuel.
Calcul du TVL du vault
Pour obtenir le TVL total du vault, utilisez la convertUnitsToTokens fonction et utilisez la totalSupply de gtUSDa comme entrée.
Mis à jour
Ce contenu vous a-t-il été utile ?
