|
7 | 7 | import { |
8 | 8 | SafeERC20 |
9 | 9 | } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; |
10 | | -//import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; // ******* LINEA A SER ELIMINADA ******* |
11 | 10 |
|
12 | 11 | /** |
13 | 12 | * @title DAOVoting |
@@ -137,23 +136,15 @@ contract DAOVoting is ERC2771Context { |
137 | 136 | */ |
138 | 137 | modifier onlyProposer() { |
139 | 138 | // Obtenemos el remitente real (funciona con meta-transacciones) |
140 | | - // address sender = _msgSender(); // ******* LINEA A SER ELIMINADA ******* |
141 | | - |
142 | 139 | // Requerimos que el balance del usuario sea mayor o igual al 10% del balance total del DAO |
143 | 140 | // Cálculo: (Balance Total * 10) / 100 |
144 | 141 | // Usamos SafeMath de Solidity (implícito desde 0.8.0) para prevenir overflows. |
145 | 142 | // Aunque el balance total podría ser cero, verificamos si es mayor a cero para evitar división entre cero, |
146 | 143 | // pero el chequeo principal es si el balance del usuario es >= al umbral. |
147 | | - // require(_totalDaoBalance > 0, "DAOVoting: DAO has no funds yet."); // ******* LINEA A SER ELIMINADA ******* |
148 | 144 |
|
149 | 145 | // Calcula el umbral de 10% |
150 | | - // uint256 requiredBalance = (_totalDaoBalance * 10) / 100; // ******* LINEA A SER ELIMINADA ******* |
151 | 146 |
|
152 | 147 | // Valida que el balance del usuario cumpla con el requisito |
153 | | - /* require( // ******* BLOQUE A SER ELIMINADO ******* |
154 | | - _userBalances[sender] >= requiredBalance, |
155 | | - "DAOVoting: Insufficient balance. Must hold >= 10% of total DAO balance to propose." |
156 | | - );*/ |
157 | 148 | _onlyProposer(); // Llama a la función de validación |
158 | 149 | _; |
159 | 150 | } |
@@ -321,51 +312,12 @@ contract DAOVoting is ERC2771Context { |
321 | 312 | } |
322 | 313 | // Importante: No hay lógica para VoteType.NONE aquí porque un usuario |
323 | 314 | // no debería poder "des-votar" a un estado nulo una vez que participó. |
324 | | - |
325 | | - // Opcionalmente, emitir un evento de voto |
326 | | - // emit VoteCasted(proposalId, voter, voteType); |
327 | 315 | } |
328 | 316 |
|
329 | 317 | /** |
330 | 318 | * @notice Ejecuta una propuesta si el tiempo ha terminado y la votación fue exitosa (FOR > AGAINST). |
331 | 319 | * @param proposalId ID de la propuesta a ejecutar. |
332 | 320 | */ |
333 | | - /* function executeProposal(uint256 proposalId) public { |
334 | | - // Usamos 'storage' para modificar la estructura en el almacenamiento |
335 | | - Proposal storage proposal = proposals[proposalId]; |
336 | | -
|
337 | | - // 1. Verificaciones iniciales |
338 | | - require(proposal.id != 0, "DAOVoting: Proposal does not exist."); |
339 | | - require(!proposal.executed, "DAOVoting: Proposal already executed."); |
340 | | -
|
341 | | - // 2. Verificar que el deadline ha pasado (requerido por el sistema de ejecución) |
342 | | - require( |
343 | | - block.timestamp > proposal.deadline, |
344 | | - "DAOVoting: Voting is still active." |
345 | | - ); |
346 | | -
|
347 | | - // 3. Determinar el estado final y ejecutar |
348 | | - if (proposal.votesFor > proposal.votesAgainst) { |
349 | | - // Propuesta APROBADA |
350 | | - proposal.state = ProposalState.Executed; |
351 | | - proposal.executed = true; |
352 | | -
|
353 | | - // Actualizamos la contabilidad interna |
354 | | - _totalDaoBalance -= proposal.amount; |
355 | | -
|
356 | | - // Transferencia de fondos (la ejecución principal de la DAO) |
357 | | - (bool success, ) = proposal.recipient.call{value: proposal.amount}( |
358 | | - "" |
359 | | - ); |
360 | | - require(success, "DAOVoting: ETH transfer failed."); |
361 | | - } else { |
362 | | - // Propuesta RECHAZADA (FOR <= AGAINST) |
363 | | - proposal.state = ProposalState.Rejected; |
364 | | - proposal.executed = true; // Marcamos como ejecutada para que no se reintente |
365 | | - } |
366 | | -
|
367 | | - emit ProposalExecuted(proposalId, proposal.state); |
368 | | - }*/ |
369 | 321 |
|
370 | 322 | function executeProposal(uint256 proposalId) public { |
371 | 323 | Proposal storage proposal = proposals[proposalId]; |
@@ -445,39 +397,4 @@ contract DAOVoting is ERC2771Context { |
445 | 397 | } |
446 | 398 |
|
447 | 399 | // ==================================================================== |
448 | | -// (0) 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 - Address 0 |
449 | | -// (0) 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 - Private Key 0 |
450 | | -// (1) 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 - Addres 1 |
451 | | -// (1) 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d - Private Key 1 |
452 | | -// MinimalForwarder deployed at: 0x5FbDB2315678afecb367f032d93F642f64180aa3 |
453 | | -// DAOVoting deployed at: 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 |
454 | | -// |
455 | | -//Available Accounts |
456 | | -//================== |
457 | | -// |
458 | | -//(0) 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 (10000.000000000000000000 ETH) |
459 | | -//(1) 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 (10000.000000000000000000 ETH) |
460 | | -//(2) 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC (10000.000000000000000000 ETH) |
461 | | -//(3) 0x90F79bf6EB2c4f870365E785982E1f101E93b906 (10000.000000000000000000 ETH) |
462 | | -//(4) 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 (10000.000000000000000000 ETH) |
463 | | -//(5) 0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc (10000.000000000000000000 ETH) |
464 | | -//(6) 0x976EA74026E726554dB657fA54763abd0C3a0aa9 (10000.000000000000000000 ETH) |
465 | | -//(7) 0x14dC79964da2C08b23698B3D3cc7Ca32193d9955 (10000.000000000000000000 ETH) |
466 | | -//(8) 0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f (10000.000000000000000000 ETH) |
467 | | -//(9) 0xa0Ee7A142d267C1f36714E4a8F75612F20a79720 (10000.000000000000000000 ETH) |
468 | | -// |
469 | | -//Private Keys |
470 | | -//================== |
471 | | -// |
472 | | -//(0) 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 |
473 | | -//(1) 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d |
474 | | -//(2) 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a |
475 | | -//(3) 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6 |
476 | | -//(4) 0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a |
477 | | -//(5) 0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba |
478 | | -//(6) 0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e |
479 | | -//(7) 0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356 |
480 | | -//(8) 0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97 |
481 | | -//(9) 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6 |
482 | | -// |
483 | | -// ==================================================================== |
| 400 | + |
0 commit comments