Chaves de sessão e permissões fornecem uma maneira segura de permitir que aplicativos realizem ações em nome dos usuários sem exigir autenticação constante. Isso é particularmente útil para jogos e aplicativos que precisam executar transações automaticamente.
interface Permissions { approvedTargets: string[]; // Endereços de contratos startDate: Date; // Quando as permissões se tornam ativas endDate: Date; // Quando as permissões expiram nativeTokenLimitPerTransaction: number; // Limite de ETH por tx // Limites adicionais de tokens ERC-20 podem ser adicionados}
Para aplicações de jogos, você pode precisar de permissões mais amplas:
Copy
Ask AI
function GamePermissions() { const gamePermissions = { approvedTargets: [ "0x...", // Contrato do jogo "0x...", // Mercado de NFT "0x...", // Contrato de token ], startDate: new Date(), endDate: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000), // 7 dias nativeTokenLimitPerTransaction: 0.001, // Pequeno limite de ETH para gas }; return ( <div className="game-permissions"> <h3>Conceder Permissões de Jogo</h3> <p>Permita que este jogo realize ações em seu nome por 7 dias</p> <RequestPermissionsButton chain={b3Chain} sessionKeyAddress="0x..." permissions={gamePermissions} onSuccess={() => { // Redirecionar para o jogo ou atualizar a UI console.log("Permissões de jogo concedidas!"); }} onError={(error) => { console.error("Falha ao conceder permissões de jogo:", error); }} /> </div> );}