Saltearse al contenido

Parámetros

Los desarrolladores de Hooks pueden optar por utilizar parámetros en tiempo de instalación (llamados Hook Parameters) en sus Hooks. Esto permite que quienes instalen posteriormente el Hook puedan modificar ciertos comportamientos definidos por el programador sin necesidad de recompilar o volver a subir el Hook (siempre que al menos una cuenta siga referenciando la definición existente del Hook).

Los Hook Parameters son un conjunto de pares clave-valor establecidos durante la transacción SetHook y recuperables por el Hook en tiempo de ejecución. Tanto ParameterName como ParameterValue se definen como blobs hexadecimales, con un tamaño máximo de 32 bytes y 256 bytes respectivamente.

Una transacción SetHook puede definir hasta 16 parámetros por cada Hook instalado.

El array HookParameters se define opcionalmente dentro de cada Hook en el array Hooks, como se muestra a continuación:

TransactionType: "SetHook",
Hooks:
[
{
Hook: {
...,
HookParameters:
[
{
HookParameter:
{
HookParameterName: "ABCDEF12",
HookParameterValue: "12345678"
}
},
... // opcionalmente hasta 15 parámetros más
]
}
}
],
...

El primer usuario que establece un Hook nuevo puede definir Hook Parameters que se convierten en los parámetros por defecto de ese Hook. Esto significa que cualquier usuario posterior que referencie la misma HookDefinition recibirá estos parámetros por defecto.

El usuario posterior puede definir sus propios parámetros, sobrescribiendo los parámetros por defecto para su instalación.

Para eliminar un parámetro en una instalación posterior, especifica la clave ParameterName sin incluir la clave ParameterValue.

Los parámetros pueden ser leídos por los Hooks utilizando hook_param.

Si hay más de un Hook instalado en una cadena de Hooks, entonces hook_param_set puede utilizarse en ciertos casos para modificar los parámetros de un Hook situado más adelante en la cadena dentro de la misma cuenta.

En Xahau y en la testnet de Xahau, los HookParameters también pueden incluirse en el nivel superior de cualquier tipo de transacción, respetando las mismas reglas y límites de tamaño. Estos parámetros pueden ser accedidos dentro de un Hook mediante la API otxn_param.