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_coinpor desvinculación vencida

Permite 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_afterdirecció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_delegationyget_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_validatory 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

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