Skip to content

Instantly share code, notes, and snippets.

@merlinboii
merlinboii / TryCatchExample-1.sol
Last active February 3, 2024 11:48
Try/Catch of solidity by example
contract ExternalContract {
function myFunc() public pure returns (bool) {
return true;
}
function myFuncRevert() public pure {
revert("revert-external-call");
}
}
@merlinboii
merlinboii / private_fork.md
Created February 2, 2024 12:50 — forked from 0xjac/private_fork.md
Create a private fork of a public repository

The repository for the assignment is public and Github does not allow the creation of private forks for public repositories.

The correct way of creating a private frok by duplicating the repo is documented here.

For this assignment the commands are:

  1. Create a bare clone of the repository. (This is temporary and will be removed so just do it wherever.)

git clone --bare [email protected]:usi-systems/easytrace.git

@merlinboii
merlinboii / A.sol
Last active January 20, 2024 17:34
selfdestruct example
contract A {
uint256 private secret = 5;
constructor() payable {}
function getSecret() external view returns(uint256){
return secret;
}
function destroy(address _target) external {
@merlinboii
merlinboii / Initializable.sol
Last active September 12, 2023 08:09
Fake-Dead-Code example
abstract contract Initializable {
// (...SNIPPED...)
modifier initializer() {
bool isTopLevelCall = !_initializing;
require(
(isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),
"Initializable: contract is already initialized"
);
@merlinboii
merlinboii / FixedInsecureFinance.sol
Last active September 11, 2023 10:46
Default-Enum-Value Vulnerability example
pragma solidity 0.8.20;
contract FixedInsecureFinance {
enum Permission { RegularUser, Administrator}
struct User {
address userAddress;
Permission permission;
uint256 balance;
}
@merlinboii
merlinboii / ExampleOne.sol
Created June 14, 2023 07:32
Linearization Inheritance
contract Base {
bool internal allowToChange;
function foo(string memory input) public virtual returns (string memory) {
return string.concat(input, " Base ");
}
}
contract A is Base {
function foo(string memory input) public virtual override returns (string memory) {
require(allowToChange, "permission denied!");
html {
font-size: 18px;
}
@media (min-width: 900px) {
html {
font-size: 24px;
}
}
body {
import cv2
import cv2
import numpy as np
import matplotlib.pyplot as plt
import math
import mysql.connector
# @desc connect MySQL database
mydb = mysql.connector.connect(
@merlinboii
merlinboii / FixedAirdrop.sol
Last active March 21, 2022 07:34
Reentrancy Example 2: Fixed Contract by Valix Consulting From Dev Mountain Tech Festival
pragma solidity 0.8.12;
// Dependencies
interface IAirdropReceiver {
function canReceiveAirdrop external returns(bool);
}
abstract contract ReentrancyGuard {
bool internal locked;
@merlinboii
merlinboii / Attack.sol
Last active March 21, 2022 07:04
Reentrancy Example 2: Attack Contract by Valix Consulting From Dev Mountain Tech Festival
pragma solidity 0.8.12;
// Dependencies
interface IAirdropReceiver {
function canReceiveAirdrop external returns(bool);
}
contract Attack is IAirdropReceiver{
IAirdrop public immutable airdrop;