Skip to content

Instantly share code, notes, and snippets.

View asselstine's full-sized avatar

Brendan Asselstine asselstine

View GitHub Profile
@asselstine
asselstine / config.yml
Created August 24, 2018 22:05
Run Truffle Tests on CircleCI 2.0
# Javascript Node CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
#
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
1. Open the multisig wallet.
2. Click "Add" for a new Multisig transaction
3. Enter the address 0xc0dA01a04C3f3E0be433606045bB7017A7323E38
4. Cut and paste the abi:
[{
"constant": false,
"inputs": [
@asselstine
asselstine / hotfix.sh
Last active April 3, 2020 12:12
hotfix workflow
# My Heroku git production remote is called 'production'
git remote -v
# Yields:
#
# origin git@github.com:Loft47/loft.git (fetch)
# origin git@github.com:Loft47/loft.git (push)
# production https://git.heroku.com/loft47-prod.git (fetch)
# production https://git.heroku.com/loft47-prod.git (push)
# staging https://git.heroku.com/vey-staging.git (fetch)
Time Step Open Committed Rewarded
Week 1 Draw 1
Week 2 Draw 2 Draw 1
Week 3 Draw 3 Draw 2 Draw 1
Week 4 Draw 4 Draw 3 Draw 2
Week 5 Draw 5 Draw 4 Draw 3
@asselstine
asselstine / CoordinationGame.mmd
Created November 19, 2018 17:58
Coordination Game Mermaid Diagram
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@asselstine
asselstine / zosMerge.js
Created November 15, 2018 18:30
Merges the latest zos proxies into Truffle artifacts
#!/usr/bin/env node
const fs = require('fs')
const shell = require('shelljs')
const program = require('commander')
const util = require('util')
const readFile = util.promisify(fs.readFile)
const writeFile = util.promisify(fs.writeFile)
program
@asselstine
asselstine / Work.sol
Created November 1, 2018 11:28
Work Contract supported deposits and withdrawals
pragma solidity ^0.4.24;
import 'openzeppelin-solidity/contracts/ownership/Ownable.sol';
import 'openzeppelin-solidity/contracts/token/ERC20/ERC20.sol';
import './IndexedAddressArray.sol';
contract Work is Ownable {
using IndexedAddressArray for IndexedAddressArray.Data;
address public jobManager;
@asselstine
asselstine / IndexedAddressArray.sol
Created November 1, 2018 11:24
Adds the ability to remove an address directly from an array
pragma solidity ^0.4.24;
library IndexedAddressArray {
struct Data {
address[] addresses;
mapping(address => uint256) indices;
}
function pushAddress(Data storage self, address _value) internal returns (uint256) {
@asselstine
asselstine / Work.sol
Created November 1, 2018 11:23
Work Contract
pragma solidity ^0.4.24;
import 'openzeppelin-solidity/contracts/ownership/Ownable.sol';
import 'openzeppelin-solidity/contracts/token/ERC20/ERC20.sol';
import './IndexedAddressArray.sol';
contract Work is Ownable {
using IndexedAddressArray for IndexedAddressArray.Data;
address public jobManager;
@asselstine
asselstine / test.sh
Last active September 26, 2018 22:39
Docker separated ganache runner
docker run --rm -it -d --name ganache-cli -p 8145:8545 trufflesuite/ganache-cli:latest -e 10000000000 -l 4700038 -h 0.0.0.0; \
truffle compile --network=test && truffle test --network=test $1; \
EXIT_STATUS=$?; \
echo 'Shutting down ganache-cli...'; \
docker stop ganache-cli && echo 'Shut down ganache-cli' & \
exit $EXIT_STATUS