Saltearse al contenido

Grants

Los Grants proporcionan una forma para que quien instala un Hook asigne permisos de gestión de estado a un Hook externo en otras cuentas de Xahau.

Una transacción SetHook puede especificar un array HookGrants dentro de cualquier objeto Hook en su array Hooks. El array HookGrants contiene uno o más objetos HookGrant (hasta un máximo de 8).

A diferencia de los Parameters, el array HookGrants siempre se establece exactamente como se especifica en la transacción SetHook. Por lo tanto, si deseas actualizar un HookGrant manteniendo otros previamente definidos, debes obtener primero el array existente, modificarlo y reenviar el array completo en una operación de Update.

Para eliminar todos los Grants, envía un array HookGrants vacío.

Un Grant permite que una cuenta XRPL externa o un Hook modifique el estado del Hook dentro del namespace del Hook específico para el que se define el Grant.

El HookGrant debe especificar al menos:

  • HookHash
    Y también puede especificar una cuenta:
  • Authorize

Solo el Hook especificado por HookHash puede modificar el estado del Hook dentro del namespace del Hook para el cual se define el Grant. Si se especifica Authorize, este permiso se restringe aún más al Hook con ese HookHash cuando está instalado en la cuenta indicada en Authorize.

Account: "rALicebv3hMYNBWtu1VEEWkToArgYsYERs",
TransactionType: "SetHook",
Hooks:
[
{
Hook: {
...,
HookNamespace: "3963ADEB1B0E8934C0963680531202FD511FF1E16D5864402C2DA63861C420A8",
HookGrants:
[
{
HookGrant: // primer grant
{
HookHash: "78CAF69EEE950A6C55A450AC2A980DE434D624CD1B13148E007E28B7B6461CC8"
},
HookGrant: // segundo grant
{
Authorize: "rCLairev2ma2gNZdcHJeTk7fCQ1ki84vr9",
HookHash: "A5B8D62154DA1C329BE13582086B52612476720CEBD097EB85CEE1455E1C70A6"
}
},
]
}
}
],
...

El primer grant anterior permite:

  • cualquier instancia del Hook cuyo código tenga el hash 78CAF69EEE950A6C55A450AC2A980DE434D624CD1B13148E007E28B7B6461CC8
  • ejecutándose en cualquier cuenta
  • modificar el estado del Hook de la cuenta rALicebv3hMYNBWtu1VEEWkToArgYsYERs
  • dentro del namespace 3963ADEB1B0E8934C0963680531202FD511FF1E16D5864402C2DA63861C420A8

El segundo grant anterior permite:

  • cualquier instancia del Hook cuyo código tenga el hash A5B8D62154DA1C329BE13582086B52612476720CEBD097EB85CEE1455E1C70A6
  • pero solo cuando se ejecuta en la cuenta rCLairev2ma2gNZdcHJeTk7fCQ1ki84vr9
  • modificar el estado del Hook de la cuenta rALicebv3hMYNBWtu1VEEWkToArgYsYERs
  • dentro del namespace 3963ADEB1B0E8934C0963680531202FD511FF1E16D5864402C2DA63861C420A8

Para utilizar un grant, un Hook modifica objetos de estado en una cuenta externa llamando a state_foreign_set.