Skip to content

Instantly share code, notes, and snippets.

View matiu's full-sized avatar

ematiu matiu

  • Bitpay Inc.
  • Tucuman, Argentina
View GitHub Profile
'use strict';
var imports = require('soop').imports();
var bitcore = require('bitcore');
var Storage = imports.Storage || require('./Storage');
function Wallet(opts) {
opts = opts || {};
this.network = opts.network === 'livenet' ?
bitcore.networks.livenet : bitcore.networks.testnet;
@matiu
matiu / gist:9833812
Last active August 29, 2015 13:57
Proposed TransactionBuilder Interfase.
/* create and sign */
var tx = TransactionBuilder.init(opts)
.addUtxos(utxos)
.addOutputs(outs)
.addKeys(keys)
.build();
broadcast(tx.serialize());
Cosign.prototype.cmd_raw_sign_scripthash = function(anypay, tx, i, scriptPubKey, txSigHash)
{
var scriptHash = scriptPubKey.capture()[0];
var addr = new Address(this.network.addressScript, scriptHash);
var addrStr = addr.as('base58');
if (!(addrStr in this.wallet.datastore.scripts))
return;
var scriptHex = this.wallet.datastore.scripts[addrStr];
//...
@matiu
matiu / gist:11237601
Created April 24, 2014 00:46
Copay peer handshake
Alice Bob
=================================================
.generates Extended PrivKey, PubKey
CopayerId=pubkey
PeerId=hash(CopayerId)
PeerID is provided to the PeerJS/WebRTC
P2P facilitator server
@matiu
matiu / gist:f17cacfdf9b3ae73619e
Last active August 29, 2015 14:02
insight-api

Sample return:

[
    {
    address: "n2PuaAguxZqLddRbTnAoAuwKYgN2w2hZk7",
    txid: "dbfdc2a0d22a8282c4e7be0452d595695f3a39173bed4f48e590877382b112fc",
    vout: 0,
    ts: 1401276201,
    scriptPubKey: "76a914e50575162795cd77366fb80d728e3216bd52deac88ac",
 amount: 0.001,
$for i in `seq 1 20`;do mocha >> output; done
$ cat output |grep passing
89 passing (8s)
89 passing (8s)
89 passing (9s)
89 passing (8s)
89 passing (8s)
89 passing (8s)
89 passing (8s)
89 passing (8s)
### Keybase proof
I hereby claim:
* I am matiu on github.
* I am matiu (https://keybase.io/matiu) on keybase.
* I have a public key whose fingerprint is F8FC 1D9B 1B46 486D 273D AE51 0247 0DB5 5127 7AB3
To claim this, I am signing this object:
@matiu
matiu / gist:0a1d7217c99350936d92
Created July 21, 2014 17:58
Copay / updated.

Copay

Copay is an open-source multisig wallet. Each peer is has control of her private keys, that never leave their system. Copay has two components: a client and a p2p network of servers. The servers form a p2p global network that exchange messages between clients and provide Bitcoin blockchain API services using insight-API.

Copay-client is implemented in JS client-side. It can work as a:

  • web app,
  • a webview based mobile app,
  • or a node-kit based desktop app.
@matiu
matiu / gist:3305c42b341916fb7afc
Last active August 29, 2015 14:05
Copay: Remove transaction proposals

Remove TxProposals

@matiu
matiu / gist:0d5201b89c2f9ed8e23e
Last active August 29, 2015 14:05
Copay Recovery Process

This procedure is for reseting a Copay Wallet status, reseting its transactions proposals, addresses and peer metainfo. It should be used as a last resource to recover wallet's funds, in case there is an error on the wallet or a corrupted backup.

A. Gathering the information

  1. You need to have access of the ALL peers of the wallet (*)
  2. If you will run the procedure on the same computer, BE SURE not to use the same browser, since localStorage is shared. You can use: 1 Chrome window, and 1 Chrome incognito window, 1 Firefox window, 1 Firefox incognito window.
  3. Start by creating backups of all the peers.
  4. Go to 'More' in the peers wallet, and add the &advanced=1 at the end of the URL. This should show some advanced options
  5. Take note of the Master Private Key of ALL the peers.