Skip to content

Instantly share code, notes, and snippets.

View oscarguindzberg's full-sized avatar

Oscar Guindzberg oscarguindzberg

View GitHub Profile
@oscarguindzberg
oscarguindzberg / AutocompleteService
Last active December 27, 2015 15:09
Samples for Arc90
package my.kalos.service;
import java.util.Collection;
import my.kalos.model.AutocompleteCampo;
import my.kalos.model.Obra;
public interface AutocompleteService {
@oscarguindzberg
oscarguindzberg / gist:68e9526928d40545273d
Last active July 30, 2019 11:15
Reference Miner for bitcoinj
public class MainClass {
public static void main(String[] args) throws Exception {
NetworkParameters params = ...
PeerGroup peers = ...
Wallet wallet = ...
FullPrunedBlockStore store = ...
AbstractBlockChain chain = ..,
Miner miner = new Miner(params, peers, wallet, store, chain);
miner.startAsync();
miner.awaitRunning();
@oscarguindzberg
oscarguindzberg / gist:65477cdd156de47eb20c9685a79194eb
Last active November 17, 2022 11:21
Find out priv key used on the bitfinex attack
import org.bitcoinj.core.Context;
import org.bitcoinj.core.Transaction;
import org.bitcoinj.params.MainNetParams;
import org.bitcoinj.script.Script;
import org.spongycastle.util.encoders.Hex;
/**
* Created by oscar on 02/08/2016.
*/
public class BitfinexResearch {
import org.bitcoinj.core.Context;
import org.bitcoinj.core.Transaction;
import org.bitcoinj.params.MainNetParams;
import org.bitcoinj.script.Script;
import org.spongycastle.util.encoders.Hex;
/**
* Created by oscar on 02/08/2016.
*/
public class BitfinexResearch {
@oscarguindzberg
oscarguindzberg / subarray.sol
Created October 6, 2017 17:13
subarray in solidity
bytes myByteArrayInStorage = ....;
uint pointer;
assembly {
pointer := myByteArrayInStorage_slot
}
uint pointer2 = uint(keccak256(bytes32(pointer)));
uint firstWord;
uint secondWord;
assembly {
firstWord := sload(pointer2)
pragma solidity ^0.4.18;
contract DogeEthBountySplit {
// Just hardcode externally owned accounts, don’t use contract addresses.
address public oscarGuindzbergAddress = 0xFc7E364035f52ecA68D71dcfb63D1E3769413d69;
address public coinfabrikAddress = 0x8ffC991Fc4C4fC53329Ad296C1aFe41470cFFbb3;
address public truebitAddress = 0x1e6d05543EaD73fb1820FAdBa481aAd716845FBa;
function() payable public {
from: 0x967bfaF76243CdB9403C67D2ceEfDee90a3feB73 (your account)
to: 0xdbf03b407c01e7cd3cbea99509d93f8dddc8c6fb (bounty contract)
Value: 0 ether
data: 0xd3c0715b0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
gas price: Your wallet's default should be ok. If you have to specify it, 60000000 (60 gwei) is ok.
gas limit: Your wallet 'sdefault should be ok. If you have to specify it, 200000 is ok.
package org.bitcoinj.tools.playground;
import org.bitcoinj.core.*;
import org.bitcoinj.kits.WalletAppKit;
import org.bitcoinj.params.RegTestParams;
import java.io.File;
public class FullBlockOnSpv {
public static void main(String[] args) {
package org.bitcoinj.examples;
import com.google.common.collect.ImmutableList;
import org.bitcoinj.core.*;
import org.bitcoinj.core.listeners.TransactionConfidenceEventListener;
import org.bitcoinj.crypto.TransactionSignature;
import org.bitcoinj.kits.WalletAppKit;
import org.bitcoinj.params.RegTestParams;
import org.bitcoinj.params.TestNet3Params;
import org.bitcoinj.script.Script;