Las claves de sesión y los permisos proporcionan una manera segura de permitir que las aplicaciones realicen acciones en nombre de los usuarios sin requerir autenticación constante. Esto es particularmente útil para juegos y aplicaciones que necesitan ejecutar transacciones automáticamente.
interface Permissions { approvedTargets: string[]; // Direcciones de contratos startDate: Date; // Cuando los permisos se activan endDate: Date; // Cuando los permisos expiran nativeTokenLimitPerTransaction: number; // Límite de ETH por tx // Se pueden añadir límites adicionales de tokens ERC-20}
Para aplicaciones de juegos, podrías necesitar permisos más amplios:
Copy
Ask AI
function GamePermissions() { const gamePermissions = { approvedTargets: [ "0x...", // Contrato del juego "0x...", // Mercado de NFT "0x...", // Contrato de tokens ], startDate: new Date(), endDate: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000), // 7 días nativeTokenLimitPerTransaction: 0.001, // Pequeño límite de ETH para gas }; return ( <div className="game-permissions"> <h3>Conceder Permisos de Juego</h3> <p>Permitir que este juego realice acciones en tu nombre durante 7 días</p> <RequestPermissionsButton chain={b3Chain} sessionKeyAddress="0x..." permissions={gamePermissions} onSuccess={() => { // Redirigir al juego o actualizar UI console.log("¡Permisos de juego concedidos!"); }} onError={(error) => { console.error("Falló al conceder permisos de juego:", error); }} /> </div> );}