Trang chủ
Chào mừng đến với Diễn đàn Cộng đồng Solidity
Bài viết
39- Hỏi đáp Chuyên GiaMar 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 - Hỏi đáp Chuyên GiaMar 29, 2025
Làm thế nào để tạo số ngẫu nhiên giữa 1 & 2 mà không có VRF?
Vì vậy, tôi đã tạo một trò chơi coinflip gán đầu- 1 và đuôi -2 và khi người dùng đặt cược vào chuỗi đa giác... hợp đồng thông minh tạo ra một số ngẫu nhiên từ 1 đến 2 và nếu kết quả giống nhau... người dùng nhận được gấp đôi - (5% phí cho chủ sở hữu hợp đồng)! từ một nhóm và nếu kết quả khác nhau thì người dùng mất tất cả và số tiền bị mất được gửi vào pool - (3% phí cho chủ sở hữu) (để tài trợ cho người chiến thắng)... nhưng có cách nào để biến genrate thành một số ngẫu nhiên không? Tôi hoàn toàn không có tiền nên tôi không đủ khả năng tạo ra VRF chainlink. Vậy có cách an toàn nào khác cho việc này không? cộng với tôi là người mới làm quen với solidity nên tôi đã tạo mã này với sự trợ giúp của trò chuyện gpt nhưng tôi không hoạt động... ai có thể giúp làm cho mã tốt hơn không? mã- // 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 - Thảo LuậnFeb 27, 2025
hành trình kiểm toán hợp đồng thông minh
bạn sẽ đưa ra lời khuyên nào cho ai đó mới bắt đầu hành trình kiểm toán hợp đồng thông minh
- Smart Contract
- Solidity
- Yul
01 - Thảo LuậnFeb 24, 2025
Này các bạn, tôi mới ở đây. Tôi đã hy vọng bất cứ ai cũng có thể cung cấp cho tôi các liên kết để học sự vững chắc một cách hiệu quả.
//Mã định danh giấy phép SDPX: MIT sự vững chắc của pragma 0.8.24; hợp đồng Hello World { chuỗi công khai Xin chào thế giới; } //Chỉ cần thêm một cái gì đó ở đây
- Smart Contract
- Solidity
02 - Thảo LuậnDec 09, 2024
Người mới bắt đầu với Solidity
Sau khi tham gia khóa học mới bắt đầu về cyfrin updraft, tôi đang cố gắng xây dựng một cái gì đó để tôi có thể củng cố kiến thức, nhưng dường như tôi không biết gì cả. Thực sự làm tôi buồn. Các bạn sẽ đưa ra lời khuyên gì
- Smart Contract
- Solidity
23Câu trả lời hay nhất - Thảo LuậnSep 13, 2024
Tìm kiếm cơ hội tự do cho nhà phát triển Solidity mới bắt đầu”
Tôi đã nghiên cứu Solidity được một vài tuần và không có bất kỳ nền tảng CNTT nào trước đây. Có cơ hội nào để tôi có được công việc tự do hoặc kiếm tiền với các kỹ năng hiện tại của mình không?
- Solidity
- Use cases
00 - Thảo LuậnJul 24, 2024
Định dạng/Xin chào
Tôi mới sử dụng Solidity! Tôi muốn chào cộng đồng tuyệt vời này với hy vọng rằng nó sẽ giúp tôi thoát khỏi vỏ bọc của mình và hy vọng gặp gỡ những người mới. Tôi không có kinh nghiệm lập trình, nhưng yêu tiền điện tử. Khi đăng câu hỏi trên các diễn đàn này, có định dạng nhất định nào tôi nên đăng câu hỏi của mình và/hoặc bất kỳ quy tắc nào không quá rõ ràng mà tôi nên tuân theo trong các diễn đàn này không? Cảm ơn bạn đã dành thời gian để đọc và để lại câu trả lời!
- Smart Contract
- Solidity
- Use cases
01 - Thảo LuậnJul 13, 2024
Con đường sự nghiệp trong Kiểm toán WEB3: Xây dựng dự án hay Kiểm toán học tập trước tiên?
Xin chào tất cả mọi người Gần đây tôi đã hoàn thành các khóa học cơ bản và nâng cao về Solidity và Foundry với Cyfrin Updraft. Tôi đang suy nghĩ về những bước tiếp theo của mình và xem xét sự nghiệp trong Solidity. Tôi có nên bắt đầu học kiểm toán hợp đồng thông minh ở giai đoạn này, hay sẽ có lợi hơn nếu trước tiên tạo một số dự án để củng cố kiến thức hiện tại của mình? Mong được lời khuyên của bạn!
- Smart Contract
- Solidity
01 - Hỏi đáp Chuyên GiaJun 04, 2024
Cú pháp solidity thay đổi bao lâu một lần
Tôi muốn biết tần suất thay đổi các quy tắc cú pháp solidity và bản tin tốt nhất để theo dõi các bản cập nhật gần đây nhất
- Smart Contract
- Solidity
- Language Grammar
- Solidity Compiler
11 - Thảo LuậnMay 31, 2024
Lỗ hổng tái nhập cảnh
Xin chào mọi người, tôi nhận thấy rằng hàm offer sử dụng phương thức.call {value: amount} (“”) để gửi Ether đến địa chỉ của người nhận. Có ai có thể cung cấp thông tin chi tiết về việc liệu chức năng này có thực sự dễ bị tổn thương khi tái nhập ngũ hay không và đề xuất bất kỳ phương pháp hay sửa đổi tốt nhất nào để giảm thiểu rủi ro đó không? 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
Kiếm phần của bạn từ 1000 Sui
Tích lũy điểm danh tiếng và nhận phần thưởng khi giúp cộng đồng Sui phát triển.
- 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 và ethers.js Tính toán các địa chỉ khác nhau từ cùng một chữ ký21
- không thể hiểu các vị trí là gì (uint256)22
- Làm thế nào để đảo ngược keccak256 trong độ rắn22
- Làm rõ về hoàn tiền gas và so sánh giữa “yêu cầu” và “hoàn lại” trong hợp đồng thông minh21