Skip to content

Instantly share code, notes, and snippets.


Maurelian maurelian

View GitHub Profile

Make your Gitcoin Grants go further

Not sure which Gitcoin grants you want to support? We've curated a list of great projects to make it easy for you to decide AND make your donations go even further.

The Hashing it Out podcast, with support from and ConsenSys Diligence has organized a Staking Cluster, giving us access to a whole bunch of the PAN tokens allocated to this round of Gitcoin Grants. In total the HiO community has 29% of a pool of 1,424,551 PAN tokens (worth ~$50,000). (Learn more in episode 83 with Panvala Founder Niran Babalola)

How it works

When you donate with PAN tokens to any of the grants we've selected, your donation will receiving matching funds from the new Panvala issuance. The current multiplier is over 5x!

View immutable-check.sol
pragma solidity ^0.6.0;
contract Test {
uint public immutable something = 20;
constructor() public {
something = block.timestamp;
// TypeError: Immutable state variable already initialized.
// something = block.timestamp;
// ^-------^
maurelian /
Last active Nov 17, 2020
Composability Gotchas

Ethereum Composability Security Guidelines

The following is an informal compendium of ways you can screw up when mixing and matching smart contracts:


View NoReturnERC20Check.sol
pragma solidity ^0.5.0;
contract Foo {
ERC20 e20;
ERC20NoReturn e20NoReturn;
constructor() public {
// deploy both tokens
e20 = new ERC20();
maurelian /
Last active Mar 25, 2020
Let's make sure we get the most out of this meeting!

To help us get the most from the call, could you please include a point form agenda on the invite:

  • The main topic
  • Objective/desired outcome

Please also include following items if they feel relevant:

  • Context
    • Why now? What is the impetus for this meeting?
    • What information or orther background will help us achieve the outcome?
maurelian /
Created Feb 10, 2020
Some optimistic rollups resources I found helpful

Start with these resources


About rust security and auditing

  • Review clippy warnings; most of the time these are benign or irrelevant, but they can help spotting red flags.
  • Build and run all the unit tests, assess the code coverage and keep note of the un(der)tested component.
  • Review the dependencies listed in Cargo.toml and Cargo.lock: Will the latest version be used? (preferable but not always the right choice) Are these established, trustworthy packages? You may use the subcommand cargo-audit (thanks @dues__ for the pointer).
  • Look for unsafe code blocks, and evaluate the risk (can an attacker control the input used in these blocks? etc.)
  • Look for risky uses of unwrap(), which can cause panics, as opposed to pattern-matched error
View gist:c6078a6a6e0a7bcf3fed22bc9e363330
This post links my 3Box profile to my Github account! Web3 social profiles by 3Box.
✅ did:muport:QmfDuJZ7fXN9PQCFEqpGdQuQhw5RePG6zBhmt75BZnpmh5 ✅
Create your profile today to start building social connection and trust online at
View delegatesToLib.asm
======= /Users/primary/Projects/Audits/0x-monorepo/contracts/exchange/contracts/src/delegatesToLib.sol:Math =======
EVM assembly:
/* "/Users/primary/Projects/Audits/0x-monorepo/contracts/exchange/contracts/src/delegatesToLib.sol":25:312 library Math {... */
/* "--CODEGEN--":132:134 */
/* "--CODEGEN--":166:173 */
View delegatesToLib.sol
pragma solidity ^0.5.9;
library Math {
function add(uint a, uint b) public returns (uint){
return a + b;
contract UsesMath {
using Math for uint;
You can’t perform that action at this time.