Concessões
Concessões
Seção intitulada “Concessões”As Concessões fornecem uma maneira para um Instalador de Hook atribuir permissões de Gerenciamento de Estado a um Hook externo em outras contas Xahau.
Uma Transação SetHook pode especificar um array HookGrants dentro de qualquer objeto Hook em seu array Hooks. O array HookGrants contém um ou mais objetos HookGrant (até 8).
Ao contrário dos Parâmetros, o array HookGrants é sempre definido exatamente como especificado na Transação SetHook. Portanto, se você deseja atualizar um HookGrant específico enquanto mantém múltiplas outras entradas HookGrant que foram definidas anteriormente, você deve primeiro obter o antigo array HookGrants, modificá-lo e depois reenviar o array completo em uma Operação de Atualização.
Para excluir todas as Concessões, envie um array HookGrants vazio.
Uma Concessão permite que uma conta XRPL externa ou um Hook modifique o Estado do Hook dentro do namespace do Hook específico para o qual a Concessão é definida.
A HookGrant deve especificar pelo menos:
HookHash
E também pode especificar uma conta:Authorize
Somente o Hook especificado por HookHash pode modificar o Estado do Hook dentro do namespace do Hook para o qual a HookGrant é especificada. Se Authorize for especificado, então essa permissão é restringida ainda mais apenas ao Hook especificado pelo HookHash quando instalado na conta especificada por Authorize.
Exemplo
Seção intitulada “Exemplo”Account: "rALicebv3hMYNBWtu1VEEWkToArgYsYERs",TransactionType: "SetHook",Hooks:[ { Hook: { ..., HookNamespace: "3963ADEB1B0E8934C0963680531202FD511FF1E16D5864402C2DA63861C420A8", HookGrants: [ { HookGrant: // primeira concessão { HookHash: "78CAF69EEE950A6C55A450AC2A980DE434D624CD1B13148E007E28B7B6461CC8" }, HookGrant: // segunda concessão { Authorize: "rCLairev2ma2gNZdcHJeTk7fCQ1ki84vr9", HookHash: "A5B8D62154DA1C329BE13582086B52612476720CEBD097EB85CEE1455E1C70A6" } }, ] } }],...A primeira concessão acima permite:
- qualquer instância do Hook cujo código gera o hash
78CAF69EEE950A6C55A450AC2A980DE434D624CD1B13148E007E28B7B6461CC8 - executando em qualquer conta
- modificar o Estado do Hook da conta
rALicebv3hMYNBWtu1VEEWkToArgYsYERs - dentro do Namespace
3963ADEB1B0E8934C0963680531202FD511FF1E16D5864402C2DA63861C420A8
A segunda concessão acima permite:
- qualquer instância do Hook cujo código gera o hash
A5B8D62154DA1C329BE13582086B52612476720CEBD097EB85CEE1455E1C70A6 - mas somente quando executado na conta
rCLairev2ma2gNZdcHJeTk7fCQ1ki84vr9 - modificar o Estado do Hook da conta
rALicebv3hMYNBWtu1VEEWkToArgYsYERs - dentro do Namespace
3963ADEB1B0E8934C0963680531202FD511FF1E16D5864402C2DA63861C420A8
Usando a Concessão
Seção intitulada “Usando a Concessão”Para fazer uso de uma concessão, um Hook modifica objetos de Estado em uma conta externa chamando state_foreign_set.