Contrato Crowdfunding

Explicación

Este contrato de Crowdfunding permite a los usuarios financiar proyectos, pero sólo si alcanzan sus objetivos de financiación en un plazo determinado. Si se alcanza el objetivo, se puede invocar un mensaje de ejecución. Si no se alcanza, el contrato permitirá automáticamente que cualquiera pueda reclamar sus fondos y/o reembolsar a otros.

Crear una instancia

Owner: La persona que crea el contrato debe ser el propietario.

Denom: especifica el tipo de tokens utilizados para la financiación.

Goal: establece el objetivo de financiación en tokens.

Start: Determina cuándo comienza el período de financiación (puede ser inmediato o futuro).

Deadline: Especifica cuándo se debe cumplir la meta de financiamiento (dentro de los 60 días a partir de ahora, en el futuro).

Name: El nombre del proyecto (menos de 32 caracteres).

Description: Una breve descripción del proyecto (menos de 256 caracteres).

Consultas

get_config: devuelve detalles del proyecto como objetivo, fecha límite, nombre y descripción.

get_shares: muestra las acciones de un usuario en el proyecto.

get_funders: proporciona una lista de todos los financiadores y sus acciones.

get_funds: revela el total de fondos recaudados hasta el momento.

Comportamiento

fund: permite a los usuarios contribuir con tokens al proyecto (el proyecto debe iniciarse, no cerrarse y los tokens deben ser válidos).

execute: ejecuta el proyecto si se alcanza el objetivo de financiación (el proyecto debe estar cerrado y totalmente financiado).

refund: Reembolsa a los contribuyentes si no se cumple el objetivo de financiación (el proyecto debe estar cerrado y parcialmente financiado).

claim: Permite reclamar fondos del proyecto si se alcanza la meta (el proyecto debe estar cerrado y parcialmente financiado).

Estado

config: Almacena la configuración del proyecto.

shares: realiza un seguimiento de los recursos compartidos de todos los usuarios en el proyecto.

total_shares: muestra el total de tokens recaudados.

execute_msg: Contiene el mensaje que se ejecutará si se logra el objetivo de financiación.

Ejemplo

Para crear un contrato de financiación colectiva con CosmWasm, puede crear los siguientes archivos: lib.rs contract.rs msg.rs error.rs state.rs helpers.rs reglas.rs

lib.rs

contract.rs

error.rs

state.rs

helpers.rs

rules.rs

Last updated