bitpay / bitcore-lib

A pure and powerful JavaScript Bitcoin library
https://bitcore.io/
Other
611 stars 1.03k forks source link

Invalid Argument Error when trying to forecast transaction #144

Open AzizGayes opened 7 years ago

AzizGayes commented 7 years ago

Hello guys,

When I try to broadcast a transaction, I'm having this error:

/home/aziz/node_modules/bitcore-explorers/node_modules/bitcore-lib/lib/util/preconditions.js:14 throw new errors.InvalidArgument(argumentName, message, docsPath); ^ Invalid Argument Error at NodeError (/home/aziz/node_modules/bitcore-explorers/node_modules/bitcore-lib/lib/errors/index.js:20:41) at Object.checkArgument (/home/aziz/node_modules/bitcore-explorers/node_modules/bitcore-lib/lib/util/preconditions.js:14:13) at Insight.broadcast (/home/aziz/node_modules/bitcore-explorers/lib/insight.js:96:5) at /home/aziz/node_modules/megachain-bitcoin.js:39:12 at Request._callback (/home/aziz/node_modules/bitcore-explorers/lib/insight.js:80:12) at Request.self.callback (/home/aziz/node_modules/bitcore-explorers/node_modules/request/request.js:188:22) at emitTwo (events.js:106:13) at Request.emit (events.js:194:7) at Request. (/home/aziz/node_modules/bitcore-explorers/node_modules/request/request.js:1171:10) at emitOne (events.js:96:13) at Request.emit (events.js:191:7) at IncomingMessage. (/home/aziz/node_modules/bitcore-explorers/node_modules/request/request.js:1091:12) at Object.onceWrapper (events.js:293:19) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:188:7) at endReadableNT (_stream_readable.js:975:12) at _combinedTickCallback (internal/process/next_tick.js:80:11) at process._tickCallback (internal/process/next_tick.js:104:9)

this is my code:


var sendBTC = function (SenderPrivateKey, SenderAddress, ReceiverAddress, Amount) //adresses in string format
{ 
    SenderPrivateKey = new bitcore.PrivateKey(SenderPrivateKey,'testnet');
    ReceiverAddress = new bitcore.Address(ReceiverAddress,'testnet');
    SenderAddress = SenderPrivateKey.toAddress();
    console.log(SenderPrivateKey);
    console.log(SenderAddress);
    console.log(ReceiverAddress);

    insight.getUnspentUtxos(SenderAddress, function(err, utxos) {
        if (err) {
            console.log(err);
        } else {
            var tx = bitcore.Transaction();
            tx.from(utxos);
            tx.to(ReceiverAddress, 500000);
            tx.change(SenderAddress);
            tx.sign(SenderPrivateKey);
            tx.serialize();

            insight.broadcast(tx, function(err, txId) {
                if (err) {
                    console.log('Error!:'+err);
                } else {
                    console.log('Successfully sent: '+txId);
                }
            });

        }
    });
}

Can someone help me? thanks!

AlexanderKozhevin commented 6 years ago

Getting the same error

/home/ubuntu/transaction/node_modules/bitcore-lib/lib/util/preconditions.js:14
      throw new errors.InvalidArgument(argumentName, message, docsPath);
      ^
Invalid Argument: Must provide an object from where to extract data
Error
    at Error.NodeError (/home/ubuntu/transaction/node_modules/bitcore-lib/lib/errors/index.js:20:41)
    at Object.module.exports.checkArgument (/home/ubuntu/transaction/node_modules/bitcore-lib/lib/util/preconditions.js:14:13)
    at new UnspentOutput (/home/ubuntu/transaction/node_modules/bitcore-lib/lib/transaction/unspentoutput.js:33:5)
    at Transaction._fromNonP2SH (/home/ubuntu/transaction/node_modules/bitcore-lib/lib/transaction/transaction.js:561:10)
    at Transaction.from (/home/ubuntu/transaction/node_modules/bitcore-lib/lib/transaction/transaction.js:554:10)
    at /home/ubuntu/transaction/output.js:11:5
    at Request._callback (/home/ubuntu/transaction/node_modules/bitcore-explorers/lib/insight.js:80:12)
    at Request.self.callback (/home/ubuntu/transaction/node_modules/bitcore-explorers/node_modules/request/request.js:188:22)
    at emitTwo (events.js:87:13)
    at Request.emit (events.js:172:7)
Lalitpatadiya12 commented 6 years ago

I am also having same error, if you guys @AlexanderKozhevin or @AzizGayes found any solution please let me know

matiu commented 6 years ago

You need to send a string to broadcast, see:

https://github.com/bitpay/bitcore-explorers/blob/master/lib/insight.js#L118

Try:

            insight.broadcast(tx.toString(), function(err, txId) {
anjalialance commented 5 years ago

I am getting the same error but even after using insight.broadcast(tx.toString(), function(err, txId) { The error is continuing to appear.

Desktop\btc\node_modules\bitcore-lib\lib\transaction\transaction.js:189 throw serializationError; ^ undefined Error at new NodeError (C:\Users\ADMIN\Desktop\btc\node_modules\bitcore-lib\lib\errors\index.js:20:41) at Transaction.getSerializationError (C:\Users\ADMIN\Desktop\btc\node_modules\bitcore-lib\lib\transaction\transaction.js:222:22) at Transaction.checkedSerialize (C:\Users\ADMIN\Desktop\btc\node_modules\bitcore-lib\lib\transaction\transaction.js:185:33) at Transaction.serialize (C:\Users\ADMIN\Desktop\btc\node_modules\bitcore-lib\lib\transaction\transaction.js:169:17) at C:\Users\ADMIN\Desktop\btc\app.js:46:6 at Request._callback (C:\Users\ADMIN\Desktop\btc\node_modules\bitcore-explorers\lib\insight.js:80:12) at Request.self.callback (C:\Users\ADMIN\Desktop\btc\node_modules\request\request.js:185:22) at Request.emit (events.js:189:13) at Request. (C:\Users\ADMIN\Desktop\btc\node_modules\request\request.js:1161:10) at Request.emit (events.js:189:13)