diff --git a/examples/createTx.js b/examples/createTx.js new file mode 100644 index 000000000..e9cc25a4d --- /dev/null +++ b/examples/createTx.js @@ -0,0 +1,205 @@ + + + +var bitcore = require('../bitcore'); + +var priv = 'cTgGUrcro89yUtKeG6gHBAS14r3qp25KwTTxG9d4kEzcFxecuZDm'; +var amt = '0.005'; +var toAddress = 'myuAQcCc1REUgXGsCTiYhZvPPc3XxZ36G1'; +var changeAddressString = 'moDz3jEo9q7CxjBDjmb13sL4SKkgo2AACE'; +var feeString = '0.0001'; + +var safeUnspent = [ +{ +address: "mqSjTad2TKbPcKQ3Jq4kgCkKatyN44UMgZ", +hash: "2ac165fa7a3a2b535d106a0041c7568d03b531e58aeccdd3199d7289ab12cfc1", +vout: 1, +ts: 1394719301, +scriptPubKey: "76a9146ce4e1163eb18939b1440c42844d5f0261c0338288ac", +amount: 0.01, +confirmations: 2 +} +] +; + +console.log('TX Data: BTC:' + amt + ' => '+ toAddress + ', change To:' + changeAddressString ) ; +console.log('Unspends:', safeUnspent); + +var wk = new bitcore.WalletKey({ + network: bitcore.networks.testnet +}); +wk.fromObj({ priv: priv, }); + +var wkObj= wk.storeObj(); +var keyPairs = [{ + key: wkObj.priv, + address: wkObj.addr, +}]; +console.log('KEY DB IS:', keyPairs); + +var Address = bitcore.Address; +var Transaction = bitcore.Transaction; +var Script = bitcore.Script; +var nets = bitcore.networks; +var z = bitcore.bignum(0); +var amt = bitcore.util.parseValue(amt); + +if(z.cmp(amt) === 0 ) + throw "spend amount must be greater than zero"; + +if(!changeAddressString) + throw "change address was not provided"; + +var fee = bitcore.util.parseValue(feeString || '0'); +var total = bitcore.bignum(0).add(amt).add(fee); +var address = new Address(toAddress); +var sendTx = new Transaction(); +var i; + +var unspent = []; +var unspentAmt = bitcore.bignum(0); + + +for(i=0;i -1, we have enough to send the requested amount + if(unspentAmt.cmp(total) > -1) { + break; + } + } + + if(unspentAmt.cmp(total) < 0) { + throw "you do not have enough bitcoins to send this amount"; + } + + var txobj = {}; + txobj.version = 1; + txobj.lock_time = 0; + txobj.ins = []; + txobj.outs = []; + + for(i=0;i