Open src/ReturnBool.sol
and test/ReturnBool.t.sol
. Your goal is to write assembly code in each puzzle that makes the test pass. You may only write assembly code.
Run the test with
forge test --mp test/ReturnBool.t.sol
Now repeat this with the other puzzles.
Go through the puzzles sequentially
- ReturnBool (solved)
- SimpleRevert
- RevertWithSelector
- Return42
- RevertWithError
- RevertWithSelectorPlusArgs
- RevertWithPanic
- Double
- Calculator
- DoubleOrNothing
- MaxOfTwoValues
- IsPrime
- CalldataLength
- KeccakX
- KeccakFirstCalldata
- KeccakSecondCalldata
- LengthOfDynamicArray
- MaxOfArray
- ReadFromStorage
- WriteToStorage
- ReadFromFixedArray
- Tenary
- WriteToFixedArray
- ReadFromDynamicArray
- WriteToDynamicArray
- ReadFromMapping
- WriteToMapping
- PushToDynamicArray
- PopFromDynamicArray
- ReadFromDoubleMapping
- ReadFromDynamicArrayAndRevertOnFailure
- WriteToDoubleMapping
- WriteDynamicArrayToStorage
- WriteTwoDynamicArraysToStorage
- ReadFromPacked128
- WriteToPacked128
- ReadFromPacked64
- WriteToPacked64
- WriteToPackedDynamicArray64
- ReadFromMappingInStruct
- EventWithoutData
- EventWithData
- EventWithIndexedData
- EventWithMultipleData
- AnonymonusEventWithoutData
- AnonymonusEventWithData
- AnonymonusEventWithIndexedData
- AnonymonusEventWithComplexData
- EventWithComplexData
- BatchEvents
- CalculatorInFallback
- ReturnOppositeBool
- ReturnTwoBools
- ReturnArrayOfUint256
- ReturnString
- ReturnBytes
- FizzBuzz
- ReturnTupleOfString
- ReturnSimpleStruct
- ReturnTupleOfUint256String
- ReturnTupleOfStringUnit256
- SendEther
- SendAllEther
- PaymentSplitter
- SendBack
- BasicBank
- SimpleCall
- SimpleCallWithValue
- Approve
- TransferFrom
- BalanceOf