Módulos relacionados con el replanteo
Descripción general
Los ejemplos proporcionados ilustran una serie de módulos Move centrados en la funcionalidad de participación dentro de Initia. Estos módulos permiten a los usuarios registrarse para apostar, delegar y anular la delegación de tokens, reclamar recompensas y obtener información sobre sus actividades de participación y procesos de desvinculación. A continuación se muestra un desglose de la funcionalidad proporcionada por cada función de entrada y visualización dentro del contexto del módulo de participación:
Funciones de entrada
Registrar una tienda de delegación de cuentas
Inicializa un área de almacenamiento para las actividades de delegación de una cuenta, permitiéndole participar en operaciones de participación.
public entry fun register(
account: &signer // account to register
){
...
}
Delegar recompensas de monedas y depósitos
Permite que una cuenta delegue tokens a un validador. Este proceso implica especificar el tipo de token a través de metadatos, la dirección del validador y la cantidad a delegar.
public entry fun delegate_script(
account: &signer,
metadata: Object<Metadata>, // metadata of the coin/lp token to delegate
validator: String, // validator address in bech32 format
amount: u64, // amount to delegate
) acquires DelegationStore, ModuleStore {
...
}
Delegar
Permite retirar un importe previamente delegado de un validador. Tenga en cuenta que el importe devuelto puede variar ligeramente debido a errores de redondeo.
public entry fun undelegate_script(
account: &signer,
metadata: Object<Metadata>, // metadata of the coin/lp token to undelegate
validator: String, // validator address in bech32 format
amount: u64, // amount to delegate
) acquires DelegationStore, ModuleStore {
...
}
Reclamo unbonding_coin
por desvinculación vencida
unbonding_coin
por desvinculación vencidaPermite reclamar tokens después de que haya expirado el período de desvinculación, según los metadatos, el validador y el tiempo de liberación especificados.
public entry fun claim_unbonding_script(
account: &signer,
metadata: Object<Metadata>, // metadata of the coin/lp token to claim
validator: String, // validator address in bech32 format
release_time: u64 // release timstamp of unbonding in seconds
) acquires DelegationStore, ModuleStore {
...
}
Reclamar premios
Permite que una cuenta reclame recompensas de apuesta de un validador específico, según los tokens delegados.
public entry fun claim_reward_script(
account: &signer,
metadata: Object<Metadata>, // metadata of the coin/lp token that you delegated
validator: String // validator address in bech32 format
) acquires DelegationStore, ModuleStore {
...
}
Ver funciones
Obtener información de delegación de una dirección y una dirección de validador
Recupera información detallada sobre una delegación específica, incluidos los metadatos de los tokens delegados, el validador involucrado y los detalles de la respuesta, como acciones y recompensas no reclamadas.
public fun get_delegation(
addr: address, // address who delegated
metadata: Object<Metadata>, // metadata of the coin/lp token that address delegated
validator: String, // validator address in bech32 format
): DelegationResponse acquires DelegationStore, ModuleStore {
...
}
Obtener toda la información de delegación de una dirección
Obtiene todos los registros de delegación para una dirección determinada, con la capacidad de paginar los resultados utilizando una start_after
dirección de validador y limitar la cantidad de respuestas.
public fun get_delegations(
addr: address, // address who delegated
metadata: Object<Metadata>, // metadata of the coin/lp token that address delegated
start_after: Option<String>, // validator address offset of query
limit: u8, // number of response (MAX = 30)
): vector<DelegationResponse> acquires DelegationStore, ModuleStore {
...
}
Ejemplo de respuesta de get_delegation
yget_delegations
get_delegation
yget_delegations
Contiene información devuelta por las consultas de delegación, incluidos detalles sobre la participación de la delegación, recompensas no reclamadas y los tokens involucrados.
struct DelegationResponse has drop {
metadata: Object<Metadata>, // metadata of the coin/lp token that address delegated
validator: String, // validator address in bech32 format
share: u64, // share of delegation
unclaimed_reward: u64, // unclaimed init reward
}
Obtenga información de desvinculación
Obtiene información sobre una operación de desvinculación específica, detallando los metadatos, el validador, el tiempo de liberación y otros datos relevantes.
public fun get_unbonding(
addr: address, // address who undelegated
metadata: Object<Metadata>, // metadata of the coin/lp token that address undelegated
validator: String, // validator address in bech32 format
release_time: u64, // release timstamp of unbonding in seconds
): UnbondingResponse acquires DelegationStore, ModuleStore {
...
}
Obtenga todas las desvinculaciones de una dirección
Recupera todos los registros desvinculados para una dirección y un validador específicos, ofreciendo paginación a través de start_after_validator
y start_after_release_time
, junto con un límite de respuesta.
public fun get_unbondings(
addr: address, // address who undelegated
metadata: Object<Metadata>, // metadata of the coin/lp token that address undelegated
start_after_validator: Option<String>, // validator address offset of query must be given with `start_after_release_time`
start_after_release_time: Option<u64>, // release timestamp offset of query must be given with `start_after_validator`
limit: u8, // number of response (MAX = 30)
): vector<UnbondingResponse> acquires DelegationStore, ModuleStore {
...
}
Ejemplo de respuesta deget_unbondings
get_unbondings
Proporciona detalles de consultas de desvinculación, como la cantidad que se desvincula, el tiempo de liberación asociado y otros datos pertinentes.
struct UnbondingResponse has drop {
metadata: Object<Metadata>, // metadata of the coin/lp token that address undelegated
validator: String, // validator address in bech32 format
unbonding_amount: u64, // unbonding amount of coin/lp token
release_time: u64, // release timstamp of unbonding in seconds
}
Last updated