Diario de desarrollo de contratos inteligentes en Rust (11): Análisis del mecanismo de propuestas de Sputnik DAO
Sputnik-DAO como infraestructura de NEAR Protocol está impulsando el ecosistema NEAR hacia un desarrollo descentralizado. Actualmente, esta plataforma ha facilitado la creación de múltiples proyectos NEAR que establecen comunidades autónomas descentralizadas, y proporciona soluciones completas y flexibles para la gobernanza comunitaria.
sputnikdaov2 es el contrato inteligente de votación de gobernanza de la comunidad Sputnik-DAO. Este artículo presentará los conceptos centrales de dicho contrato: propuesta (Proposal), los artículos posteriores se centrarán en la introducción de modelos de gobernanza de la comunidad DAO relacionados con la propuesta (Policy).
1. Inicio de propuestas
Cada miembro en Sputnik-DAO puede expresar opiniones o presentar propuestas sobre la gestión de la gobernanza del proyecto. Cada miembro de la comunidad que posea acciones puede revisar y votar sobre las propuestas, influyendo así en la dirección futura del proyecto.
En el nivel del contrato, los miembros del DAO pueden invocar el método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta:
óxido
u64
El proponente debe proporcionar detalles sobre la propuesta (ProposalInput):
Descripción del texto de la propuesta (Description)
Tipo de propuesta ( kind )
Esta información se pasará como parámetro al método add_proposal(), que realizará un proceso de validación, generando una propuesta completa (Proposal), y se vinculará con el único proposal_id, añadiéndola al pool de propuestas mantenido globalmente por el contrato.
La información completa de las propiedades de la propuesta incluye:
description: descripción
kind: tipo
proposer: proponente
status: estado
submission_time: hora de presentación
vote_counts: conteo de votos
votes: Registros de votación
Es importante tener en cuenta que en el Sputnik-DAO existe el concepto de depósito de propuesta (proposal_bond), donde el proponente debe bloquear una cierta cantidad de tokens NEAR como garantía al llamar a add_proposal(). Este depósito será devuelto al finalizar normalmente la propuesta.
2. Estado de la propuesta
Las propuestas en Sputnik-DAO pueden pasar por varios estados:
InProgress: en progreso
Approved: Aprobado
Rechazado: 已拒绝
Eliminado: Ya se ha eliminado
El cambio de estado de la propuesta es impulsado por el método act_proposal(). Los miembros del DAO pueden llamar a este método para realizar las siguientes operaciones en la propuesta:
VoteApprove: aprobación
VoteReject: Rechazar
VoteRemove: eliminar
Después de la votación, se llamará a policy.proposal_status() para contar los votos. El estado de la propuesta que cumpla con las condiciones cambiará a Approved, Rejected o Removed.
Las propuestas en estado Aprobado se ejecutarán, mientras que los estados Rechazado y Eliminado llevarán a cabo operaciones de cierre. Las propuestas en estado Eliminado se eliminarán del fondo de propuestas y no se reembolsará el depósito.
3. Ejecución de propuestas
Para las propuestas en estado Approved, act_proposal() llamará a internal_execute_proposal() para ejecutar el contenido de la propuesta.
Sputnik-DAO apoya varios tipos de propuestas, principalmente relacionadas con la actualización de la configuración del modo de gobernanza del DAO. Este artículo se centra en el proceso de tratamiento de dos tipos típicos de propuestas:
( 3.1 Propuesta de ejecución de función de contrato ) FunctionCall ###
La propuesta de tipo FunctionCall se crea pasando la operación de función a ejecutar (actions). internal_execute_proposal() ejecutará estas llamadas a funciones en forma de Promesas de Acciones por Lotes.
( 3.2 Propuesta de transferencia de fondos del contrato ) Transferir ###
La propuesta de tipo Transfer se utiliza para transferir tokens acumulados en la cuenta del contrato a una cuenta designada. internal_execute_proposal() llamará a la función internal_payout() para realizar operaciones de transferencia de diferentes tipos de tokens y cuentas receptoras.
4. Resumen
Este artículo presenta los conceptos básicos del contrato de Sputnik DAO: la propuesta (Proposal), que incluye la creación de la propuesta, los cambios de estado y el proceso de ejecución. Artículos posteriores proporcionarán una descripción más detallada de la implementación y configuración del modelo de gobernanza de Sputnik-DAO basado en el mecanismo de propuestas (Policy).
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
Análisis del contrato inteligente Sputnik DAO: explicación del mecanismo de propuestas y proceso de ejecución
Diario de desarrollo de contratos inteligentes en Rust (11): Análisis del mecanismo de propuestas de Sputnik DAO
Sputnik-DAO como infraestructura de NEAR Protocol está impulsando el ecosistema NEAR hacia un desarrollo descentralizado. Actualmente, esta plataforma ha facilitado la creación de múltiples proyectos NEAR que establecen comunidades autónomas descentralizadas, y proporciona soluciones completas y flexibles para la gobernanza comunitaria.
sputnikdaov2 es el contrato inteligente de votación de gobernanza de la comunidad Sputnik-DAO. Este artículo presentará los conceptos centrales de dicho contrato: propuesta (Proposal), los artículos posteriores se centrarán en la introducción de modelos de gobernanza de la comunidad DAO relacionados con la propuesta (Policy).
1. Inicio de propuestas
Cada miembro en Sputnik-DAO puede expresar opiniones o presentar propuestas sobre la gestión de la gobernanza del proyecto. Cada miembro de la comunidad que posea acciones puede revisar y votar sobre las propuestas, influyendo así en la dirección futura del proyecto.
En el nivel del contrato, los miembros del DAO pueden invocar el método add_proposal() del contrato sputnikdaov2 para iniciar una nueva propuesta:
óxido u64
El proponente debe proporcionar detalles sobre la propuesta (ProposalInput):
Esta información se pasará como parámetro al método add_proposal(), que realizará un proceso de validación, generando una propuesta completa (Proposal), y se vinculará con el único proposal_id, añadiéndola al pool de propuestas mantenido globalmente por el contrato.
La información completa de las propiedades de la propuesta incluye:
Es importante tener en cuenta que en el Sputnik-DAO existe el concepto de depósito de propuesta (proposal_bond), donde el proponente debe bloquear una cierta cantidad de tokens NEAR como garantía al llamar a add_proposal(). Este depósito será devuelto al finalizar normalmente la propuesta.
2. Estado de la propuesta
Las propuestas en Sputnik-DAO pueden pasar por varios estados:
El cambio de estado de la propuesta es impulsado por el método act_proposal(). Los miembros del DAO pueden llamar a este método para realizar las siguientes operaciones en la propuesta:
Después de la votación, se llamará a policy.proposal_status() para contar los votos. El estado de la propuesta que cumpla con las condiciones cambiará a Approved, Rejected o Removed.
Las propuestas en estado Aprobado se ejecutarán, mientras que los estados Rechazado y Eliminado llevarán a cabo operaciones de cierre. Las propuestas en estado Eliminado se eliminarán del fondo de propuestas y no se reembolsará el depósito.
3. Ejecución de propuestas
Para las propuestas en estado Approved, act_proposal() llamará a internal_execute_proposal() para ejecutar el contenido de la propuesta.
Sputnik-DAO apoya varios tipos de propuestas, principalmente relacionadas con la actualización de la configuración del modo de gobernanza del DAO. Este artículo se centra en el proceso de tratamiento de dos tipos típicos de propuestas:
( 3.1 Propuesta de ejecución de función de contrato ) FunctionCall ###
La propuesta de tipo FunctionCall se crea pasando la operación de función a ejecutar (actions). internal_execute_proposal() ejecutará estas llamadas a funciones en forma de Promesas de Acciones por Lotes.
( 3.2 Propuesta de transferencia de fondos del contrato ) Transferir ###
La propuesta de tipo Transfer se utiliza para transferir tokens acumulados en la cuenta del contrato a una cuenta designada. internal_execute_proposal() llamará a la función internal_payout() para realizar operaciones de transferencia de diferentes tipos de tokens y cuentas receptoras.
4. Resumen
Este artículo presenta los conceptos básicos del contrato de Sputnik DAO: la propuesta (Proposal), que incluye la creación de la propuesta, los cambios de estado y el proceso de ejecución. Artículos posteriores proporcionarán una descripción más detallada de la implementación y configuración del modelo de gobernanza de Sputnik-DAO basado en el mecanismo de propuestas (Policy).