Inicio
Bienvenido al Foro Comunitario de Solidity
Publicaciones
39- P&R expertosMar 29, 2025
How to generate random Number between 1&2 without VRF?
So I was making a coinflip game which assigns head- 1 and tails -2 and when user places bet on polygon chain.... smart contract generates a random number between 1 and 2 and if the outcome is same...user gets double - (5 % as fee to the owner of contract) ! from a pool and if outcome is different then user loses all and the lost amount is deposited in the pool - (3% as fee to the owner) (to fund winners)... but any way to make genrate a random number? I have no funds at all so I can't afford chainlink VRF to generate. So is there any other secure way for this? plus I am pritty new to solidity so I made this code with help of chat gpt but I don't it works....can anyone help to make the code better? code- // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract CoinFlip { address public owner; uint256 public contractBalance; event BetPlaced(address indexed player, uint256 amount, bool choice); event BetResult(address indexed player, uint256 amount, bool won); constructor() { owner = msg.sender; } function placeBet(bool choice) external payable { require(msg.value > 0, "Bet amount must be greater than 0"); bool outcome = (block.timestamp % 2 == 0); // Simple pseudo-random outcome if (outcome == choice) { uint256 winAmount = (msg.value * 2 * 95) / 100; require(address(this).balance >= winAmount, "Insufficient contract balance"); payable(msg.sender).transfer(winAmount); emit BetResult(msg.sender, winAmount, true); } else { uint256 lostAmount = (msg.value * 97) / 100; contractBalance += lostAmount; emit BetResult(msg.sender, msg.value, false); } emit BetPlaced(msg.sender, msg.value, choice); } function depositFunds() external payable { require(msg.sender == owner, "Only owner can deposit funds"); contractBalance += msg.value; } function withdrawFunds(uint256 amount) external { require(msg.sender == owner, "Only owner can withdraw funds"); require(amount <= address(this).balance, "Insufficient contract balance"); payable(owner).transfer(amount); contractBalance -= amount; } } `
- Smart Contract
- Solidity
00 - P&R expertosMar 29, 2025
¿Cómo generar un número aleatorio entre 1 y 2 sin VRF?
Así que estaba creando un juego con monedas que asigna 1 cara y cruz -2 y cuando el usuario hace una apuesta por una cadena de polígonos... el contrato inteligente genera un número aleatorio entre 1 y 2 y si el resultado es el mismo... ¡el usuario recibe el doble (un 5% como comisión para el propietario del contrato)! de un pool y si el resultado es diferente, el usuario lo pierde todo y la cantidad perdida se deposita en el pool (un 3% como comisión para el propietario) (para financiar a los ganadores)... pero ¿hay alguna forma de generar un número aleatorio? No tengo ningún fondo, así que no puedo permitirme generar un VRF con Chainlink. Entonces, ¿hay alguna otra forma segura de hacerlo? Además, soy bastante nuevo en Solidity, así que hice este código con la ayuda de chat gpt, pero no creo que funcione... ¿alguien puede ayudarme a mejorar el código? código- // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract CoinFlip { address public owner; uint256 public contractBalance; event BetPlaced(address indexed player, uint256 amount, bool choice); event BetResult(address indexed player, uint256 amount, bool won); constructor() { owner = msg.sender; } function placeBet(bool choice) external payable { require(msg.value > 0, "Bet amount must be greater than 0"); bool outcome = (block.timestamp % 2 == 0); // Simple pseudo-random outcome if (outcome == choice) { uint256 winAmount = (msg.value * 2 * 95) / 100; require(address(this).balance >= winAmount, "Insufficient contract balance"); payable(msg.sender).transfer(winAmount); emit BetResult(msg.sender, winAmount, true); } else { uint256 lostAmount = (msg.value * 97) / 100; contractBalance += lostAmount; emit BetResult(msg.sender, msg.value, false); } emit BetPlaced(msg.sender, msg.value, choice); } function depositFunds() external payable { require(msg.sender == owner, "Only owner can deposit funds"); contractBalance += msg.value; } function withdrawFunds(uint256 amount) external { require(msg.sender == owner, "Only owner can withdraw funds"); require(amount <= address(this).balance, "Insufficient contract balance"); payable(owner).transfer(amount); contractBalance -= amount; } } `
- Smart Contract
- Solidity
00 - DiscusiónFeb 27, 2025
viaje de auditoría de contratos inteligentes
¿qué consejo le darías a alguien que acaba de empezar el viaje de la auditoría de contratos inteligentes
- Smart Contract
- Solidity
- Yul
01 - DiscusiónFeb 24, 2025
Hola chicos, soy nuevo aquí. Esperaba que alguien pudiera darme enlaces para aprender solidez de manera efectiva.
//Identificador de licencia SDPX: MIT pragma solidity 0.8.24; contrato Hello World { cadena pública Hello World; } //Solo tenía que añadir algo aquí
- Smart Contract
- Solidity
02 - DiscusiónDec 09, 2024
Principiante en Solidity
Después de hacer el curso para principiantes sobre cifrina ascendente, estoy intentando construir algo para poder consolidar mis conocimientos, pero es como si no supiera nada. Realmente me entristece. ¿Qué consejo me daréis
- Smart Contract
- Solidity
23Mejor Respuesta - DiscusiónSep 13, 2024
Buscando oportunidades independientes para desarrolladores principiantes de Solidity»
Llevo un par de semanas estudiando Solidity y no tengo ninguna formación previa en TI. ¿Tengo alguna oportunidad de conseguir trabajo independiente o de ganar dinero con mis habilidades actuales?
- Solidity
- Use cases
00 - DiscusiónJul 24, 2024
Formatear/Hola
¡Soy nuevo en Solidity! Quería saludar a esta increíble comunidad con la esperanza de que me sacara de mi caparazón y, con suerte, conociera gente nueva. No tengo experiencia en programación, pero me encantan las criptomonedas. Al publicar preguntas en estos foros, ¿hay algún formato determinado en el que debo publicar mi pregunta o alguna regla no tan obvia que deba seguir en estos foros? ¡Gracias por tomarte el tiempo de leer y dejar una respuesta!
- Smart Contract
- Solidity
- Use cases
01 - DiscusiónJul 13, 2024
Trayectoria profesional en la auditoría WEB3: ¿construir proyectos o aprender a auditar primero?
Hola a todos, Recientemente completé los cursos básicos y avanzados de Solidity y Foundry con Cyfrin Updraft. Estoy pensando en mis próximos pasos y considerando dedicarme a una carrera en Solidity. ¿Debería empezar a aprender a auditar contratos inteligentes en esta etapa, o sería más beneficioso crear primero algunos proyectos para consolidar mis conocimientos actuales? ¡Espero tu consejo!
- Smart Contract
- Solidity
01 - P&R expertosJun 04, 2024
¿Con qué frecuencia cambia la sintaxis de solidity?
Me gustaría saber con qué frecuencia se cambian las reglas de sintaxis de Solidity y cuál es el mejor boletín para hacer un seguimiento de las actualizaciones más recientes
- Smart Contract
- Solidity
- Language Grammar
- Solidity Compiler
11 - DiscusiónMay 31, 2024
Vulnerabilidad de reingreso
Hola a todos, he notado que la función de oferta utiliza el método .call {value: amount} («») para enviar Ether a la dirección del destinatario. ¿Alguien podría darnos una idea de si esta función es realmente vulnerable al reingreso y sugerir alguna de las mejores prácticas o modificaciones para mitigar dichos riesgos? function _offer(address to, uint256 amount) internal { balance -= amount; (bool success, ) = to.call{value: amount}(""); if (!success) { revert TransferFailed(address(0), address(this), to, amount); } } `
- Smart Contract
- Solidity
- Solidity Compiler
01
- 76
- 50
- 46
- 37
- 36
- 25
- 25
- 25
- 20
- 18
Gana tu parte de 1000 Sui
Gana puntos de reputación y obtén recompensas por ayudar a crecer a la comunidad de Sui.
- Solidity
- Smart Contract
- Solidity Compiler
- Use cases
- Yul
- Optimizer
- Language Grammar
- Internals
- Private
- My ERC721 contract successfully deploys, but I can't verify the contract's source code with hardhat21
- Solidity y ethers.js calculan diferentes direcciones a partir de la misma firma21
- no puedo entender cuáles son las ubicaciones (uint256)22
- Cómo revertir keccak256 en Solidity22
- Aclaración sobre los reembolsos de gas y comparación entre «requerir» y «revertir» en los contratos inteligentes21