mirror of https://github.com/BTCPrivate/copay.git
working on find_m_n script
This commit is contained in:
parent
194ddc8079
commit
c8ebf0ce65
|
@ -52,8 +52,7 @@ angular.module('copay.send').controller('SendController',
|
|||
var amount = (form.amount.$modelValue * 100000000).toString(); // satoshi to string
|
||||
|
||||
var w = $rootScope.wallet;
|
||||
w.createTx( address, amount,function() {
|
||||
|
||||
w.createTx(address, amount,function() {
|
||||
$scope.loading = false;
|
||||
$rootScope.$flashMessage = { message: 'The transaction proposal has been created', type: 'success'};
|
||||
$rootScope.$digest();
|
||||
|
|
|
@ -20,7 +20,8 @@ function Wallet(opts) {
|
|||
'requiredCopayers', 'totalCopayers', 'spendUnconfirmed',
|
||||
'publicKeyRing', 'txProposals', 'privateKey', 'version'
|
||||
].forEach(function(k) {
|
||||
if (typeof opts[k] === 'undefined') throw new Error('missing key:' + k);
|
||||
if (typeof opts[k] === 'undefined')
|
||||
throw new Error('missing required option for Wallet: ' + k);
|
||||
self[k] = opts[k];
|
||||
});
|
||||
|
||||
|
@ -544,6 +545,8 @@ Wallet.prototype.getUnspent = function(cb) {
|
|||
|
||||
Wallet.prototype.createTx = function(toAddress, amountSatStr, opts, cb) {
|
||||
var self = this;
|
||||
alert(amountSatStr);
|
||||
alert(JSON.stringify(opts));
|
||||
if (typeof opts === 'function') {
|
||||
cb = opts;
|
||||
opts = {};
|
||||
|
|
|
@ -17,6 +17,8 @@ var Wallet = require('./Wallet');
|
|||
|
||||
function WalletFactory(config, version) {
|
||||
var self = this;
|
||||
config = config || {};
|
||||
|
||||
this.storage = new Storage(config.storage);
|
||||
this.network = new Network(config.network);
|
||||
this.blockchain = new Blockchain(config.blockchain);
|
||||
|
@ -97,7 +99,6 @@ WalletFactory.prototype.create = function(opts) {
|
|||
|
||||
opts.privateKey = opts.privateKey || new PrivateKey({ networkName: this.networkName });
|
||||
|
||||
|
||||
var requiredCopayers = opts.requiredCopayers || this.walletDefaults.requiredCopayers;
|
||||
var totalCopayers = opts.totalCopayers || this.walletDefaults.totalCopayers;
|
||||
|
||||
|
@ -124,7 +125,7 @@ WalletFactory.prototype.create = function(opts) {
|
|||
opts.spendUnconfirmed = opts.spendUnconfirmed || this.walletDefaults.spendUnconfirmed;
|
||||
opts.requiredCopayers = requiredCopayers;
|
||||
opts.totalCopayers = totalCopayers;
|
||||
opts.version = this.version;
|
||||
opts.version = opts.version || this.version;
|
||||
var w = new Wallet(opts);
|
||||
w.store();
|
||||
return w;
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
'use strict';
|
||||
|
||||
var bitcore = require('bitcore');
|
||||
var PublicKeyRing = require('../js/models/core/PublicKeyRing');
|
||||
var PrivateKey = require('../js/models/core/PrivateKey');
|
||||
|
||||
var FakeNetwork = require('./mocks/FakeNetwork');
|
||||
var Insight = require('../js/models/blockchain/Insight');
|
||||
var FakeStorage = require('./mocks/FakeStorage');
|
||||
|
||||
var WalletFactory = require('soop').load('../js/models/core/WalletFactory', {
|
||||
Network: FakeNetwork,
|
||||
Blockchain: Insight,
|
||||
Storage: FakeStorage,
|
||||
});
|
||||
var Key = bitcore.Key;
|
||||
|
||||
|
||||
var N_LIMIT = 16;
|
||||
var nn = 'livenet';
|
||||
|
||||
for (var n = 1; n < N_LIMIT; n++) {
|
||||
for (var m = 1; m <= n; m++) {
|
||||
// case m-of-n
|
||||
console.log('case '+m+'-of-'+n);
|
||||
// create full pkr
|
||||
var publicKeyRing = new PublicKeyRing({
|
||||
networkName: nn,
|
||||
requiredCopayers: m,
|
||||
totalCopayers: n,
|
||||
});
|
||||
var privateKey = null;
|
||||
for (var i = 0; i < n; i++) {
|
||||
var pk = new PrivateKey({
|
||||
networkName: nn
|
||||
});
|
||||
if (i === 0) {
|
||||
privateKey = pk;
|
||||
} else {
|
||||
publicKeyRing.addCopayer(pk.getExtendedPublicKeyString(), 'dummy');
|
||||
}
|
||||
}
|
||||
|
||||
var opts = {};
|
||||
opts.publicKeyRing = publicKeyRing;
|
||||
opts.privateKey = privateKey;
|
||||
opts.requiredCopayers = m;
|
||||
opts.totalCopayers = n;
|
||||
opts.spendUnconfirmed = true;
|
||||
opts.version = 'script'
|
||||
|
||||
var w = new WalletFactory(opts).create(opts);
|
||||
var addr = w.generateAddress();
|
||||
console.log('\t receive addr='+addr);
|
||||
|
||||
|
||||
var toAddress = 'msj42CCGruhRsFrGATiUuh25dtxYtnpbTx';
|
||||
var amount = '5000000';
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue