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