Skip to content

Instantly share code, notes, and snippets.

View hbarcelos's full-sized avatar
🕶️
I know how to exit Vim :v

Henrique Barcelos hbarcelos

🕶️
I know how to exit Vim :v
View GitHub Profile
#!/bin/env bash
set -euo pipefail
[ -z "$1" ] && {
cat <<USAGE
Usage:
$0 <ilk> [--estimate]
USAGE
@hbarcelos
hbarcelos / RwaLiquidationOracle2.sol
Last active March 22, 2022 20:07
RwaLiquidationOracle2 and RwaUrn2
// Copyright (C) 2020, 2021 Lev Livnev <lev@liv.nev.org.uk>
// Copyright (C) 2022 Dai Foundation
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@hbarcelos
hbarcelos / LightCurate_Brainstorming.md
Last active October 4, 2021 18:48
LightCurate Brainstorming

Current:

struct Item {
  Status status; // The current status of the item.
  Request[] requests; // List of status change requests made for the item in the form requests[requestID].
}

struct Request {
   bool disputed; // True if a dispute was raised.
@hbarcelos
hbarcelos / Constants.sol
Created June 24, 2021 18:44
Solidity Constants Initialization
pragma solidity ^0.8.0;
contract Contants {
uint256 public constant A = 10;
uint256 public constant B = 20;
uint256 public constant C = B/A;
}
@hbarcelos
hbarcelos / README.md
Created March 23, 2021 16:42
IPFS Cluster Example with IPFS Proxy Enabled

This example is adapted from the docker-compose file on IPFS Cluster repo.

It enables the usage of the IPFS Proxy API for clusters.

This API automatically pins content to all nodes in the cluster when /add is called.

@hbarcelos
hbarcelos / RealitioHomeArbitrationProxy.sol
Created October 22, 2020 15:15
Realitio Home Arbitration Proxy (fixed)
// File: src/dependencies/IAMB.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.2;
interface IAMB {
function requireToPassMessage(
address _contract,
bytes memory _data,
uint256 _gas
@hbarcelos
hbarcelos / keybase.md
Created October 19, 2020 20:37
Keybase Proof

Keybase proof

I hereby claim:

  • I am hbarcelos on github.
  • I am hbarcelos (https://keybase.io/hbarcelos) on keybase.
  • I have a public key ASDXXwdVi-W2TfqEWMFIO6V7uEdAvwN1B_bGUG1bk1jj-Qo

To claim this, I am signing this object:

@hbarcelos
hbarcelos / RealitioHomeArbitrationProxy.sol
Created October 15, 2020 14:32
Cross-chain Realitio Arbitration
// SPDX-License-Identifier: MIT
// File: src/dependencies/IAMB.sol
pragma solidity ^0.7.2;
interface IAMB {
function requireToPassMessage(
address _contract,
bytes memory _data,
uint256 _gas
) external returns (bytes32);
@hbarcelos
hbarcelos / README.md
Last active September 4, 2020 14:38
Reducing boilerplate of watcher sagas in redux-saga

How to use

import createWatcherSaga, { TakeType } from './create-watcher-saga.js';

// Act on every counter increment
const watchIncrementSaga = createWatcherSaga({ takeType: TakeType.every }, incrementSaga, 'counter/increment');
// Discard previous user fetches and act only on the latest
const watchFetchUser = createWatcherSaga({ takeType: TakeType.latest }, fetchUserSaga, 'user/fetch');
// Validate sign-up e-mail while the user is typing, but wait the user to have stopped typing for 2 seconds to not flood the server. 
@hbarcelos
hbarcelos / README.md
Last active June 11, 2020 19:43
RTK vs Nested Immer's Produce

This code doesn't quite work. There is an issue with the Immer proxy being revoked.

I didn't have the time to dig into this, so the solution was to not use produce in createStateMachineReducer.