Hỏi đáp Chuyên Gia
Hỏi đáp với các chuyên gia trong cộng đồng Cyfrin Updraft
Bài viết
189- Hỏi đáp Chuyên GiaJan 04, 2025
Kiểm tra độ rắn của xưởng đúc
Điều gì có thể sai trong mã của tôi? function testFundUpdatesFundedDataStructure() public { fundMe.fund{value: 10e18}(); uint256 amountFunded = fundMe.getAddressToAmountFunded(address(this)); assertEq(amountFunded, 10e18); } nhận được lỗi này: [14658] FundMeTest: :testFundUpdatesFundedDataStructure () ├─ [2658] FundMe: :fund {giá trị: 1000000000000000000} () │ ├─ [0] 0x0000000000000000000000000000000000000000: :LatestRoundData () [thống kê] │ │ └─ ← [Dừng lại] │ └─ ← [Quay lại] evmError: Quay lại └─ ← [Quay lại] evmError: Khôi phục
- Cyfrin Updraft
- Foundry
- Solidity
13 - Hỏi đáp Chuyên GiaDec 19, 2024
Cài đặt Zksync Foundry
có vẻ như cài đặt zksync Foundry, không còn trong repo github nữa, tôi đã cố gắng nhập dòng lệnh vào thiết bị đầu cuối của mình “quyền bị từ chối, không thể đọc từ kho lưu trữ từ xa”
- Cyfrin Updraft
- Foundry
- Solidity
12 - Hỏi đáp Chuyên GiaDec 14, 2024
Thiết lập SimpleStorage Deployer
Tại sao tôi tiếp tục gặp lỗi này khi cố gắng triển khai mã của mình trong mã VS, hỏi AI và nó vẫn giống nhau. Đây là lỗi: [] Biên dịch... [] Biên dịch 14 tập tin với Solc 0.8.18 [] Solc 0.8.18 kết thúc trong 149.20ms Lỗi: Chạy trình biên dịch không thành công: Lỗi (2314): Mong đợi ';' nhưng nhận định danh -> Script/DeploySimpleStorage.s.sol: 11:9: | 11 | vm.StopBroadcast (); | ^^ Và đây là mã của tôi. solidity “' //Định danh giấy phép SPDX: MIT sự vững chắc của thực ngữ ^0.8.18; nhập {Script} từ “forge-std/script.sol”; nhập {SimpleStorage} từ “.. /src/SimpleStorage.sol “; hợp đồng DeploySimpleStorage là Script { function run () trả về bên ngoài (simpleStorage) { vm.StartBroadcast (); SimpleStorage SimpleStorage = SimpleStorage mới (); vm.StopBroadcast (); trả về SimpleStorage; } } “'
- Cyfrin Updraft
- Foundry
- Solidity
11 - Hỏi đáp Chuyên GiaDec 12, 2024
Thiết lập xưởng đúc
Trong khi cố gắng thiết lập xưởng đúc của tôi sau khi cài đặt bằng lệnh “forge init”, tôi gặp lỗi này: Lỗi: không thực hiện được (mã = Some (128), stdout = "”, stderr="Danh tính tác giả không xác định\n\n*Vui lòng cho tôi biết bạn là ai. Chạy git config --global user.email\” you@example.com\”\ngit config --global user.name\ "Tên của bạn\”\n\nđể đặt danh tính mặc định của tài khoản của bạn. \nBỏ qua --global để chỉ đặt danh tính trong kho lưu trữ này. gây tử vong: không thể tự động phát hiện địa chỉ email (có 'user @MACs -MBP. (không có) ')”) Mặc dù tôi đã có thể lấy tất cả thư mục tôi cần, ngoại trừ “lib” và “.gitmodules” hy vọng điều này sẽ không ảnh hưởng đến tôi trong tương lai. Và tôi cũng thử sử dụng “forge init --force” vẫn giống nhau
- Cyfrin Updraft
- Foundry
- Solidity
12 - Hỏi đáp Chuyên GiaMar 29, 2024
What are the recommended protocols for smart contract audit?
I am looking to conduct a smart contract audit and would like to know the best protocols to follow. Can anyone suggest a wide range of protocols that are commonly used in competitive audits? Any insights or recommendations would be greatly appreciated. Thank you.
- Foundry
- Security
- Blockchain
01Câu trả lời chính thức - Hỏi đáp Chuyên GiaMar 29, 2024
Error `make deploy` in VS Code - `bash: make: command not found`
I am encountering an issue while trying to deploy using make deploy in VS Code with Foundry and Anvil. Despite Anvil launching properly without any errors, when I attempt to deploy using the command make deploy, I consistently receive the error message bash: make: command not found. Has anyone faced a similar problem or can provide guidance on resolving this issue? Any assistance would be greatly valued as I have been unable to progress since yesterday. Thank you.
- Foundry
01Câu trả lời chính thức - Hỏi đáp Chuyên GiaMar 29, 2024
Which function selector and input data should be used in solveChallenge?
I am working on the solveChallenge function which requires a function selector and input data to be passed. I am unsure about which function I should get the function selector for, and what the input data should be that needs to be turned into bytes. Any guidance on this would be greatly appreciated. Thank you in advance for your help. function solveChallenge(bytes4 selectorOne, bytes memory inputData, string memory yourTwitterHandle) external { (bool successOne, bytes memory responseDataOne) = i_helperContract.call(abi.encodeWithSelector(selectorOne)); if (!successOne || uint256(bytes32((responseDataOne))) != 1) { revert S1__WrongSelector(); } (bool successTwo, bytes memory responseDataTwo) = i_helperContract.call(inputData); if (!successTwo || uint256(bytes32((responseDataTwo))) != 1) { revert S1__WrongData(); } _updateAndRewardSolver(yourTwitterHandle); } I am motivated to understand how to find the solution, not just for obtaining the NFT. Thank you for your assistance.
- Transaction
- Solidity
- Smart Contract
01Câu trả lời chính thức - Hỏi đáp Chuyên GiaMar 29, 2024
How to Report Multiple Instances of an Attack Vector in Base Code?
I have encountered the same attack vector multiple times in a base code. Should I include each instance separately in my report or consolidate them into a single entry? For instance, if I identify a Denial of Service (DOS) attack in three different functions, should I classify these findings as three distinct high-severity issues in my report, or combine them into a single report entry for efficiency and clarity? Any insights on the best approach for reporting such repeated vulnerabilities would be greatly appreciated. Thank you.
- Security
01Câu trả lời chính thức - Hỏi đáp Chuyên GiaMar 29, 2024
Seeking Small LaTeX Package for Linux Installation
I attempted to install LaTeX on my Linux machine using sudo apt-get install texlive-full, which consumed over 7 GB of storage, causing my 120 GB SSD system to run out of space. As a result, I had to remove it. Could someone provide a link to a smaller LaTeX package (less than 1 GB) that is sufficient for my needs? Any guidance or recommendations would be greatly appreciated. Thank you.
- Foundry
- Course
01Câu trả lời chính thức - Hỏi đáp Chuyên GiaMar 29, 2024
Does mitigation of DoS in Section 4 Lesson 15 work correctly?
I am currently working on Section 4 Lesson 15 and addressing the PuppyRaffle::enterRaffle function. I have identified a potential issue with the second recommended mitigation of DoS. function enterRaffle(address[] memory newPlayers) public payable { require(msg.value == entranceFee * newPlayers.length, 'PuppyRaffle: Must send enough to enter raffle'); for (uint256 i = 0; i < newPlayers.length; i++) { players.push(newPlayers[i]); addressToRaffleId[newPlayers[i]] = raffleId; } for (uint256 i = 0; i < newPlayers.length ; i++) { require(addressToRaffleId[newPlayers[i]] != raffleId, 'PuppyRaffle: Duplicate player'); } } The concern is that the duplicate check in the function will always fail due to the way addressToRaffleId[newPlayers[i]] is being set to raffleId for each new player. This results in the condition addressToRaffleId[newPlayers[i]] != raffleId never being true for new players, rendering the duplicate check ineffective. I would like to confirm if my understanding of this issue is correct. Any insights or feedback on this matter would be greatly appreciated.
- Security
- Solidity
- Smart Contract
01Câu trả lời chính thức
- 1780
- 75
- 60
- 11
- 10
- 10
- 10
- 10
- 10
- 10
- Solidity
- Smart Contract
- Transaction
- Foundry
- Blockchain
- Gas
- Security
- Cyfrin Updraft
- Course
- erc20