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
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