Instantly share code, notes, and snippets.

@devrandom
devrandom / SimpleMultisig.sol
Created Jun 20, 2018
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.24+commit.e67f0147.js&optimize=false&gist=
View SimpleMultisig.sol
pragma solidity ^0.4.22;
contract SimpleMultiSig {
uint public nonce; // (only) mutable state
uint public threshold; // immutable state
mapping (address => bool) isOwner; // immutable state
address[] public ownersArr; // immutable state
// Note that owners_ must be strictly increasing, in order to prevent duplicates
@devrandom
devrandom / SimpleMultisig.sol
Created Jun 18, 2018
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.24+commit.e67f0147.js&optimize=false&gist=
View SimpleMultisig.sol
pragma solidity ^0.4.22;
contract SimpleMultiSig {
uint public nonce; // (only) mutable state
uint public threshold; // immutable state
mapping (address => bool) isOwner; // immutable state
address[] public ownersArr; // immutable state
// Note that owners_ must be strictly increasing, in order to prevent duplicates
@devrandom
devrandom / test_atomic.kt
Created Feb 24, 2015
One transactions, two wallets
View test_atomic.kt
import org.junit.Before
import org.junit.Test
import kotlin.test.fail
import org.bitcoinj.core.Transaction
import org.bitcoinj.params.MainNetParams
import org.bitcoinj.core.NetworkParameters
import org.bitcoinj.core.ECKey
import org.bitcoinj.core.Address
import org.bitcoinj.testing.FakeTxBuilder
import org.bitcoinj.core.Coin
View gist:2dcdd5e35a0b1ad26110
Verifying that +devrandom is my openname (Bitcoin username). https://onename.com/devrandom
@devrandom
devrandom / HDUtil.java
Created Dec 5, 2014 — forked from anonymous/HDUtil.java
Parse Bitcoin extended keys
View HDUtil.java
public class HDUtil {
private static final byte[] xprv = new byte[]{0x04, (byte) 0x88, (byte) 0xAD, (byte) 0xE4};
private static final byte[] xpub = new byte[]{0x04, (byte) 0x88, (byte) 0xB2, (byte) 0x1E};
private static final byte[] tprv = new byte[]{0x04, (byte) 0x35, (byte) 0x83, (byte) 0x94};
private static final byte[] tpub = new byte[]{0x04, (byte) 0x35, (byte) 0x87, (byte) 0xCF};
public static DeterministicKey parseDeterministicKey(String serialized) throws AddressFormatException {
byte[] data = Base58.decodeChecked(serialized);
if (data.length != 78) {
View C++ assignment with first == last
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> first;
std::vector<int> second;
first.assign (7,100); // 7 ints with a value of 100
View Multisignature Utils
class MultiSigUtils {
public static void signInput(Transaction tx, int inputIndex, byte[] inputScript, ECKey key) throws AddressFormatException {
TransactionInput input = tx.getInput(inputIndex);
Script existingScriptSig = input.getScriptSig();
int numSigs = Script.decodeFromOpN(inputScript[0]);
ScriptBuilder builder = new ScriptBuilder();
Script redeemScript = new Script(inputScript);
List<ScriptChunk> redeemChunks = redeemScript.getChunks();
View gist:947034
#create a 64 bit m1.large instance using ami-08f40561
ssh -i key ubuntu@...
sudo apt-get update
sudo apt-get install python-vm-builder qemu-kvm apt-cacher git-core ruby
# turn it on
sudo vi /etc/default/apt-cacher
sudo service apt-cacher start
sudo chown ubuntu /mnt
@devrandom
devrandom / bitcoin-desc.yml
Created Jan 30, 2011
Bitcoin build description file for gitian-builder
View bitcoin-desc.yml
---
name: "bitcoin"
suites:
- "lucid"
architectures:
- "i386"
- "amd64"
packages:
- "libdb4.8++-dev"
- "libxxf86vm-dev"