Tecnología

Descentralización y Respaldo Comunitario

La tecnología de AREPITA permite una verdadera descentralización. Aunque inicialmente promovido por un grupo de proponentes, incluyendo a Daniel Ceballos y la organización política Asamblea Renovación y Esperanza País, el objetivo es que la comunidad venezolana adopte y haga crecer el token de manera descentralizada. AREPITA sigue el ejemplo de DAI, respaldándose en activos como Bitcoin, Ethereum y otros tokens, así como en la confianza y el soporte de su comunidad.

Contrato Inteligente

Detalles Técnicos del Token AREPITA (ARP)

El token AREPITA (ARP) está implementado en el protocolo NEAR, aprovechando sus capacidades para crear un token descentralizado y seguro. A continuación, se presenta un resumen del smart contract que define las funcionalidades del token.

  • name: "Arepita"

  • symbol: "ARP"

  • const DECIMALS: u8 = 6

Enlace al código del Smart Contract

Funcionalidades Principales

Inicialización del Contrato

El contrato se puede inicializar con una cantidad total de tokens asignados a un propietario específico. Esta inicialización también establece los metadatos del token, incluyendo su nombre, símbolo e ícono.

rustCopiar código#[init]
pub fn new_default_meta(owner_id: AccountId, total_supply: U128) -> Self {
    // Código para inicializar el contrato con metadatos predeterminados
}

Emisión de Tokens

El contrato permite la emisión (minting) de tokens adicionales, que pueden ser asignados a cualquier cuenta. Esta funcionalidad es esencial para aumentar la oferta de AREPITA según sea necesario.

rustCopiar códigopub fn mint(&mut self, amount: U128, account_id: AccountId) {
    // Código para emitir tokens adicionales
}

Seguridad y Control

Descentralización y Propiedad Comunitaria

Una vez inicializado, el contrato asegura que no se pueda reinicializar, garantizando que la propiedad y el control del token permanezcan descentralizados. Además, incluye eventos para registrar la emisión de tokens y operaciones de transferencia.

rustCopiar códigoassert!(!env::state_exists(), "Already initialized");
rustCopiar códigonear_contract_standards::fungible_token::events::FtMint {
    owner_id: &owner_id,
    amount: &total_supply,
    memo: Some("Initial tokens supply is minted"),
}.emit();

Metadatos y Soporte

Metadatos del Token

El contrato incluye soporte para los metadatos del token, asegurando que información como el nombre, símbolo y decimales estén disponibles y sean consistentes.

rustCopiar código#[near_bindgen]
impl FungibleTokenMetadataProvider for Contract {
    fn ft_metadata(&self) -> FungibleTokenMetadata {
        self.metadata.get().unwrap()
    }
}

Funciones de Soporte Adicional

El contrato maneja el cierre de cuentas y la quema de tokens, registrando estos eventos para mantener un registro claro de todas las operaciones que afectan el suministro del token.

rustCopiar códigofn on_account_closed(&mut self, account_id: AccountId, balance: Balance) {
    log!("Closed @{} with {}", account_id, balance);
}

fn on_tokens_burned(&mut self, account_id: AccountId, amount: Balance) {
    log!("Account @{} burned {}", account_id, amount);
}

Implementación y Pruebas

Implementación del Token

El contrato implementa estándares de tokens fungibles para garantizar la interoperabilidad y la conformidad con las expectativas del ecosistema NEAR. Esto incluye las funciones básicas de transferencia y almacenamiento.

rustCopiar códigonear_contract_standards::impl_fungible_token_core!(Contract, token, on_tokens_burned);
near_contract_standards::impl_fungible_token_storage!(Contract, token, on_account_closed);

Pruebas del Contrato

El contrato incluye pruebas para validar su correcto funcionamiento, asegurando que la emisión, transferencia y otras operaciones principales se realicen sin problemas.

rustCopiar código#[cfg(all(test, not(target_arch = "wasm32")))]
mod tests {
    // Código de pruebas
}

Last updated